Mock WifiP2pManager.class for WifiP2pSettingsTest

Bug: 214938188
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiP2pSettingsTest

Change-Id: I21bfc1c8303970437ae2641ed0f2f9c16f09b33f
This commit is contained in:
Weng Su
2022-01-23 10:12:17 +00:00
parent 7dd97c7091
commit 679153be09

View File

@@ -49,7 +49,6 @@ import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor;
import com.android.settingslib.core.AbstractPreferenceController;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -68,7 +67,7 @@ public class WifiP2pSettingsTest {
private Context mContext;
private FragmentActivity mActivity;
private WifiP2pSettings mFragment;
private TestWifiP2pSettings mFragment;
@Mock
public WifiP2pManager mWifiP2pManager;
@@ -86,8 +85,10 @@ public class WifiP2pSettingsTest {
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
TestWifiP2pSettings.sMockWifiP2pManager = mWifiP2pManager;
mActivity = Robolectric.setupActivity(FragmentActivity.class);
mFragment = new WifiP2pSettings();
mFragment = new TestWifiP2pSettings();
mFragment.mWifiP2pManager = mWifiP2pManager;
doReturn(mChannel).when(mWifiP2pManager).initialize(any(), any(), any());
FragmentManager fragmentManager = mActivity.getSupportFragmentManager();
@@ -504,7 +505,6 @@ public class WifiP2pSettingsTest {
}
@Test
@Ignore
public void onActivityCreate_withNullP2pManager_shouldGetP2pManagerAgain() {
mFragment.mChannel = null; // Reset channel to re-test onActivityCreated flow
mFragment.mWifiP2pManager = null;
@@ -542,4 +542,13 @@ public class WifiP2pSettingsTest {
wifiP2pDevice.deviceName = "testName";
mWifiP2pPeer.device = wifiP2pDevice;
}
public static class TestWifiP2pSettings extends WifiP2pSettings {
static WifiP2pManager sMockWifiP2pManager;
@Override
protected Object getSystemService(final String name) {
if (Context.WIFI_P2P_SERVICE.equals(name)) return sMockWifiP2pManager;
return getActivity().getSystemService(name);
}
}
}