Merge "[Wi-Fi] Add one network request case for adding Wi-Fi for apps feature."

This commit is contained in:
Goven Liu
2019-11-29 03:28:05 +00:00
committed by Android (Google) Code Review
5 changed files with 425 additions and 37 deletions

View File

@@ -22,49 +22,112 @@ import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import android.content.Context;
import android.net.wifi.WifiConfiguration;
import android.os.Bundle;
import android.os.Parcelable;
import android.provider.Settings;
import android.widget.TextView;
import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.shadows.androidx.fragment.FragmentController;
import java.util.ArrayList;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
public class AddAppNetworksFragmentTest {
private static final String FAKE_APP_NAME = "fake_app_name";
private FragmentActivity mActivity;
private static final String FAKE_SSID = "fake_ssid";
private AddAppNetworksFragment mAddAppNetworksFragment;
private Context mContext;
@Before
public void setUp() {
mAddAppNetworksFragment = spy(new AddAppNetworksFragment());
MockitoAnnotations.initMocks(this);
// Set up bundle
final Bundle bundle = new Bundle();
bundle.putString(AddAppNetworksActivity.KEY_CALLING_PACKAGE_NAME, FAKE_APP_NAME);
doReturn(bundle).when(mAddAppNetworksFragment).getArguments();
FragmentController.setupFragment(mAddAppNetworksFragment);
}
@Test
public void callingPackageName_onCreateView_shouldBeCorrect() {
setUpOneNetworkBundle();
setupFragment();
assertThat(mAddAppNetworksFragment.mCallingPackageName).isEqualTo(FAKE_APP_NAME);
}
@Test
public void launchFragment_shouldShowSaveButton() {
setUpOneNetworkBundle();
setupFragment();
assertThat(mAddAppNetworksFragment.mSaveButton).isNotNull();
}
@Test
public void launchFragment_shouldShowCancelButton() {
setUpOneNetworkBundle();
setupFragment();
assertThat(mAddAppNetworksFragment.mCancelButton).isNotNull();
}
@Test
public void requestOneNetwork_shouldShowCorrectSSID() {
setUpOneNetworkBundle();
setupFragment();
TextView ssidView = (TextView) mAddAppNetworksFragment.mLayoutView.findViewById(
R.id.single_ssid);
assertThat(ssidView.getText()).isEqualTo(FAKE_SSID);
}
@Test
public void withNoExtra_requestNetwork_shouldFinished() {
setUpNoNetworkBundle();
setupFragment();
assertThat(mAddAppNetworksFragment.mActivity.isFinishing()).isTrue();
}
private void setUpOneNetworkBundle() {
// Setup one network.
List<WifiConfiguration> wifiConfigurationList = new ArrayList<>();
wifiConfigurationList.add(
generateWifiConfig(FAKE_SSID, WifiConfiguration.KeyMgmt.WPA_PSK, "\"1234567890\""));
// Set up bundle.
final Bundle bundle = new Bundle();
bundle.putString(AddAppNetworksActivity.KEY_CALLING_PACKAGE_NAME, FAKE_APP_NAME);
bundle.putParcelableArrayList(Settings.EXTRA_WIFI_CONFIGURATION_LIST,
(ArrayList<? extends Parcelable>) wifiConfigurationList);
doReturn(bundle).when(mAddAppNetworksFragment).getArguments();
}
private void setUpNoNetworkBundle() {
// Set up bundle.
final Bundle bundle = new Bundle();
bundle.putString(AddAppNetworksActivity.KEY_CALLING_PACKAGE_NAME, FAKE_APP_NAME);
bundle.putParcelableArrayList(Settings.EXTRA_WIFI_CONFIGURATION_LIST, null);
doReturn(bundle).when(mAddAppNetworksFragment).getArguments();
}
private void setupFragment() {
FragmentController.setupFragment(mAddAppNetworksFragment);
}
private static WifiConfiguration generateWifiConfig(String ssid, int securityType,
String password) {
final WifiConfiguration config = new WifiConfiguration();
config.SSID = ssid;
config.allowedKeyManagement.set(securityType);
if (password != null) {
config.preSharedKey = password;
}
return config;
}
}