[Wi-Fi] Enhance NetworkRequestDialogActivityTest unit test cases
Add new unit test cases in NetworkRequestDialogActivityTest.java The coverage rate of NetworkRequestDialogActivity will raise from 48% to 91% Bug: 151696220 Test: make RunSettingsRoboTests ROBOTEST_FILTER=NetworkRequestDialogActivityTest Change-Id: I6530815ded8d21d01d5da1d7ee5f38ef190d3863
This commit is contained in:
@@ -31,6 +31,7 @@ import android.os.Message;
|
|||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -57,12 +58,12 @@ public class NetworkRequestDialogActivity extends FragmentActivity implements
|
|||||||
final static String EXTRA_IS_SPECIFIED_SSID =
|
final static String EXTRA_IS_SPECIFIED_SSID =
|
||||||
"com.android.settings.wifi.extra.REQUEST_IS_FOR_SINGLE_NETWORK";
|
"com.android.settings.wifi.extra.REQUEST_IS_FOR_SINGLE_NETWORK";
|
||||||
|
|
||||||
private NetworkRequestDialogBaseFragment mDialogFragment;
|
@VisibleForTesting NetworkRequestDialogBaseFragment mDialogFragment;
|
||||||
private NetworkRequestUserSelectionCallback mUserSelectionCallback;
|
private NetworkRequestUserSelectionCallback mUserSelectionCallback;
|
||||||
private boolean mIsSpecifiedSsid;
|
private boolean mIsSpecifiedSsid;
|
||||||
private boolean mShowingErrorDialog;
|
private boolean mShowingErrorDialog;
|
||||||
private WifiConfiguration mMatchedConfig;
|
private WifiConfiguration mMatchedConfig;
|
||||||
private ProgressDialog mProgressDialog;
|
@VisibleForTesting ProgressDialog mProgressDialog;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
|
@@ -25,8 +25,11 @@ import static org.mockito.Mockito.verify;
|
|||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.net.wifi.ScanResult;
|
||||||
import android.net.wifi.WifiConfiguration;
|
import android.net.wifi.WifiConfiguration;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
|
import android.net.wifi.WifiManager.NetworkRequestUserSelectionCallback;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
@@ -40,22 +43,31 @@ import com.android.settingslib.wifi.WifiTrackerFactory;
|
|||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
import org.mockito.MockitoAnnotations;
|
||||||
import org.robolectric.Robolectric;
|
import org.robolectric.Robolectric;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
import org.robolectric.RuntimeEnvironment;
|
||||||
import org.robolectric.annotation.Config;
|
import org.robolectric.annotation.Config;
|
||||||
import org.robolectric.shadows.ShadowLooper;
|
import org.robolectric.shadows.ShadowLooper;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
@Config(shadows = ShadowAlertDialogCompat.class)
|
@Config(shadows = ShadowAlertDialogCompat.class)
|
||||||
public class NetworkRequestDialogActivityTest {
|
public class NetworkRequestDialogActivityTest {
|
||||||
|
|
||||||
|
private static final String TEST_SSID = "testssid";
|
||||||
|
private static final String TEST_CAPABILITY = "wep";
|
||||||
|
|
||||||
NetworkRequestDialogActivity mActivity;
|
NetworkRequestDialogActivity mActivity;
|
||||||
WifiManager mWifiManager;
|
WifiManager mWifiManager;
|
||||||
Context mContext;
|
Context mContext;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
|
MockitoAnnotations.initMocks(this);
|
||||||
|
|
||||||
mContext = spy(RuntimeEnvironment.application);
|
mContext = spy(RuntimeEnvironment.application);
|
||||||
|
|
||||||
WifiTracker wifiTracker = mock(WifiTracker.class);
|
WifiTracker wifiTracker = mock(WifiTracker.class);
|
||||||
@@ -118,6 +130,15 @@ public class NetworkRequestDialogActivityTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void startSpecifiedActivity() {
|
||||||
|
final Intent intent = new Intent().setClassName(
|
||||||
|
RuntimeEnvironment.application.getPackageName(),
|
||||||
|
NetworkRequestDialogActivity.class.getName());
|
||||||
|
intent.putExtra(NetworkRequestDialogActivity.EXTRA_IS_SPECIFIED_SSID, true);
|
||||||
|
mActivity = spy(Robolectric.buildActivity(NetworkRequestDialogActivity.class,
|
||||||
|
intent).create().get());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateAccessPointList_onUserSelectionConnectSuccess_shouldFinishActivity() {
|
public void updateAccessPointList_onUserSelectionConnectSuccess_shouldFinishActivity() {
|
||||||
final WifiConfiguration config = new WifiConfiguration();
|
final WifiConfiguration config = new WifiConfiguration();
|
||||||
@@ -126,4 +147,87 @@ public class NetworkRequestDialogActivityTest {
|
|||||||
|
|
||||||
verify(mActivity).finish();
|
verify(mActivity).finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void specifiedSsid_onCreate_shouldShowProgressDialog() {
|
||||||
|
startSpecifiedActivity();
|
||||||
|
|
||||||
|
assertThat(mActivity.mProgressDialog).isNotNull();
|
||||||
|
assertThat(mActivity.mProgressDialog.isShowing()).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
private ScanResult getScanResult(String ssid, String capability) {
|
||||||
|
final ScanResult scanResult = mock(ScanResult.class);
|
||||||
|
scanResult.SSID = ssid;
|
||||||
|
scanResult.capabilities = capability;
|
||||||
|
|
||||||
|
return scanResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void specifiedSsid_onMatch_shouldShowDialogFragment() {
|
||||||
|
startSpecifiedActivity();
|
||||||
|
|
||||||
|
final List<ScanResult> scanResults = new ArrayList<>();
|
||||||
|
scanResults.add(getScanResult(TEST_SSID, TEST_CAPABILITY));
|
||||||
|
|
||||||
|
mActivity.onMatch(scanResults);
|
||||||
|
|
||||||
|
assertThat(mActivity.mProgressDialog).isNull();
|
||||||
|
assertThat(mActivity.mDialogFragment).isNotNull();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onAbort_withFakeActivity_callStopAndPopShouldBeTrue() {
|
||||||
|
final FakeNetworkRequestDialogActivity fakeActivity =
|
||||||
|
Robolectric.setupActivity(FakeNetworkRequestDialogActivity.class);
|
||||||
|
|
||||||
|
fakeActivity.onResume();
|
||||||
|
fakeActivity.onAbort();
|
||||||
|
|
||||||
|
assertThat(fakeActivity.bCalledStopAndPop).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onUserSelectionConnectFailure_shouldShowDialogFragment() {
|
||||||
|
WifiConfiguration wifiConfiguration = mock(WifiConfiguration.class);
|
||||||
|
startSpecifiedActivity();
|
||||||
|
final List<ScanResult> scanResults = new ArrayList<>();
|
||||||
|
scanResults.add(getScanResult(TEST_SSID, TEST_CAPABILITY));
|
||||||
|
mActivity.onMatch(scanResults);
|
||||||
|
|
||||||
|
mActivity.onUserSelectionConnectFailure(wifiConfiguration);
|
||||||
|
|
||||||
|
assertThat(mActivity.mProgressDialog).isNull();
|
||||||
|
assertThat(mActivity.mDialogFragment).isNotNull();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onClickConnectButton_shouldShowProgressDialog() {
|
||||||
|
NetworkRequestUserSelectionCallback networkRequestUserSelectionCallback = mock(
|
||||||
|
NetworkRequestUserSelectionCallback.class);
|
||||||
|
startSpecifiedActivity();
|
||||||
|
final List<ScanResult> scanResults = new ArrayList<>();
|
||||||
|
scanResults.add(getScanResult(TEST_SSID, TEST_CAPABILITY));
|
||||||
|
mActivity.onMatch(scanResults);
|
||||||
|
mActivity.onUserSelectionCallbackRegistration(networkRequestUserSelectionCallback);
|
||||||
|
|
||||||
|
mActivity.onClickConnectButton();
|
||||||
|
|
||||||
|
assertThat(mActivity.mProgressDialog.isShowing()).isTrue();
|
||||||
|
assertThat(mActivity.mDialogFragment).isNull();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void onCancel_shouldCloseAllUI() {
|
||||||
|
startSpecifiedActivity();
|
||||||
|
final List<ScanResult> scanResults = new ArrayList<>();
|
||||||
|
scanResults.add(getScanResult(TEST_SSID, TEST_CAPABILITY));
|
||||||
|
mActivity.onMatch(scanResults);
|
||||||
|
|
||||||
|
mActivity.onCancel();
|
||||||
|
|
||||||
|
assertThat(mActivity.mProgressDialog).isNull();
|
||||||
|
assertThat(mActivity.mDialogFragment).isNull();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user