summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/p2p/WifiP2pServiceImplTest.java196
1 files changed, 134 insertions, 62 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/p2p/WifiP2pServiceImplTest.java b/tests/wifitests/src/com/android/server/wifi/p2p/WifiP2pServiceImplTest.java
index cae812d58..171dc9b24 100644
--- a/tests/wifitests/src/com/android/server/wifi/p2p/WifiP2pServiceImplTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/p2p/WifiP2pServiceImplTest.java
@@ -56,6 +56,8 @@ import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.TetheringManager;
+import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.net.wifi.WpsInfo;
import android.net.wifi.p2p.WifiP2pConfig;
@@ -65,6 +67,7 @@ import android.net.wifi.p2p.WifiP2pGroup;
import android.net.wifi.p2p.WifiP2pGroupList;
import android.net.wifi.p2p.WifiP2pInfo;
import android.net.wifi.p2p.WifiP2pManager;
+import android.net.wifi.p2p.WifiP2pProvDiscEvent;
import android.net.wifi.p2p.WifiP2pWfdInfo;
import android.net.wifi.p2p.nsd.WifiP2pServiceInfo;
import android.net.wifi.p2p.nsd.WifiP2pServiceRequest;
@@ -167,6 +170,8 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Mock WifiP2pServiceRequest mTestWifiP2pServiceRequest;
@Mock UserManager mUserManager;
@Mock WifiP2pMetrics mWifiP2pMetrics;
+ @Mock WifiManager mWifiManager;
+ @Mock WifiInfo mWifiInfo;
@Spy FakeWifiLog mLog;
@Spy MockWifiP2pMonitor mWifiMonitor;
@@ -626,6 +631,25 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
}
/**
+ * Send simple API msg.
+ *
+ * Mock the API msg with objects.
+ *
+ * @param replyMessenger for checking replied message.
+ */
+ private void sendSimpleMsg(Messenger replyMessenger,
+ int what, Object obj) throws Exception {
+ Message msg = Message.obtain();
+ msg.what = what;
+ msg.obj = obj;
+ if (replyMessenger != null) {
+ msg.replyTo = replyMessenger;
+ }
+ mP2pStateMachineMessenger.send(Message.obtain(msg));
+ mLooper.dispatchAll();
+ }
+
+ /**
* force P2p State enter InactiveState to start others unit test
*
* @param clientBinder client binder to use for p2p channel init
@@ -747,6 +771,8 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
when(mContext.getPackageManager()).thenReturn(mPackageManager);
when(mContext.getResources()).thenReturn(mResources);
+ when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
+ when(mWifiManager.getConnectionInfo()).thenReturn(mWifiInfo);
when(mWifiSettingsConfigStore.get(eq(WIFI_P2P_DEVICE_NAME))).thenReturn(thisDeviceName);
when(mWifiSettingsConfigStore.get(eq(WIFI_P2P_PENDING_FACTORY_RESET))).thenReturn(false);
when(mHandlerThread.getLooper()).thenReturn(mLooper.getLooper());
@@ -772,6 +798,8 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
when(mWifiPermissionsUtil.checkNetworkStackPermission(anyInt())).thenReturn(true);
when(mWifiPermissionsUtil.checkReadWifiCredentialPermission(anyInt())).thenReturn(true);
when(mWifiPermissionsUtil.checkConfigOverridePermission(anyInt())).thenReturn(true);
+ when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
+ anyBoolean())).thenReturn(true);
when(mWifiNative.setupInterface(any(), any())).thenReturn(IFACE_NAME_P2P);
when(mWifiNative.p2pGetDeviceAddress()).thenReturn(thisDeviceMac);
doAnswer(new AnswerWithArguments() {
@@ -982,8 +1010,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
forceP2pEnabled(mClient1);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
doNothing().when(mWifiPermissionsUtil).checkPackage(anyInt(), anyString());
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
when(mWifiNative.p2pServiceAdd(any())).thenReturn(true);
sendAddLocalServiceMsg(mClientMessenger);
verify(mWifiNative).p2pServiceAdd(any());
@@ -1000,8 +1026,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
forceP2pEnabled(mClient1);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
doNothing().when(mWifiPermissionsUtil).checkPackage(anyInt(), anyString());
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
when(mWifiNative.p2pServiceAdd(any())).thenReturn(false);
sendAddLocalServiceMsg(mClientMessenger);
verify(mWifiNative).p2pServiceAdd(any());
@@ -1062,8 +1086,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testConnectWithConfigValidAsGroupSuccess() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
when(mWifiNative.p2pGroupAdd(any(), eq(true))).thenReturn(true);
sendConnectMsgWithConfigValidAsGroup(mClientMessenger);
@@ -1079,8 +1101,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testConnectWithConfigValidAsGroupFailureWhenNativeCallFailure() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
when(mWifiNative.p2pGroupAdd(any(), eq(true))).thenReturn(false);
sendConnectMsgWithConfigValidAsGroup(mClientMessenger);
@@ -1147,8 +1167,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testCreateGroupWithConfigValidAsGroupSuccess() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
when(mWifiNative.p2pGroupAdd(any(), eq(false))).thenReturn(true);
sendCreateGroupMsgWithConfigValidAsGroup(mClientMessenger);
@@ -1165,8 +1183,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
public void testCreateGroupWithConfigValidAsGroupFailureWhenNativeCallFailure()
throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
when(mWifiNative.p2pGroupAdd(any(), eq(false))).thenReturn(false);
sendCreateGroupMsgWithConfigValidAsGroup(mClientMessenger);
@@ -1247,8 +1263,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testDiscoverPeersSuccess() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
when(mWifiNative.p2pFind(anyInt())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendDiscoverPeersMsg(mClientMessenger);
@@ -1264,8 +1278,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testDiscoverPeersFailureWhenNativeCallFailure() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
when(mWifiNative.p2pFind(anyInt())).thenReturn(false);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendDiscoverPeersMsg(mClientMessenger);
@@ -1364,8 +1376,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
.thenReturn("mServiceDiscReqId");
when(mWifiNative.p2pFind(anyInt())).thenReturn(true);
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendAddServiceRequestMsg(mClientMessenger);
sendDiscoverServiceMsg(mClientMessenger);
@@ -1383,8 +1393,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
public void testDiscoverServicesFailureWhenAddServiceRequestFailure() throws Exception {
when(mWifiNative.p2pServDiscReq(anyString(), anyString())).thenReturn(null);
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendAddServiceRequestMsg(mClientMessenger);
sendDiscoverServiceMsg(mClientMessenger);
@@ -1404,8 +1412,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
.thenReturn("mServiceDiscReqId");
when(mWifiNative.p2pFind(anyInt())).thenReturn(false);
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendAddServiceRequestMsg(mClientMessenger);
sendDiscoverServiceMsg(mClientMessenger);
@@ -1504,8 +1510,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
public void testRequestPeersSuccess() throws Exception {
forceP2pEnabled(mClient1);
mockPeersList();
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendRequestPeersMsg(mClientMessenger);
verify(mClientHandler).sendMessage(mMessageCaptor.capture());
@@ -1581,8 +1585,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
sendGroupStartedMsg(mTestWifiP2pGroup);
simulateTetherReady();
when(mWifiPermissionsUtil.checkLocalMacAddressPermission(anyInt())).thenReturn(false);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendRequestGroupInfoMsg(mClientMessenger);
verify(mClientHandler).sendMessage(mMessageCaptor.capture());
@@ -1606,8 +1608,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
sendGroupStartedMsg(mTestWifiP2pGroup);
simulateTetherReady();
when(mWifiPermissionsUtil.checkLocalMacAddressPermission(anyInt())).thenReturn(true);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendRequestGroupInfoMsg(mClientMessenger);
verify(mClientHandler).sendMessage(mMessageCaptor.capture());
@@ -1791,8 +1791,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testPeerScanMetricWhenSendDiscoverPeers() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
when(mWifiNative.p2pFind(anyInt())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendDiscoverPeersMsg(mClientMessenger);
@@ -1811,8 +1809,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
.thenReturn("mServiceDiscReqId");
when(mWifiNative.p2pFind(anyInt())).thenReturn(true);
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendAddServiceRequestMsg(mClientMessenger);
sendDiscoverServiceMsg(mClientMessenger);
@@ -1920,8 +1916,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testStartFreshConnectionEventWhenSendConnect() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
mockPeersList();
@@ -1943,8 +1937,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testStartReinvokeConnectionEventWhenSendConnect() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
when(mWifiNative.p2pGroupAdd(anyInt()))
.thenReturn(true);
when(mTestWifiP2pDevice.isGroupOwner()).thenReturn(true);
@@ -1976,8 +1968,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
public void testStartReinvokeConnectionEventWhenCreateGroup()
throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendCreateGroupMsg(mClientMessenger, WifiP2pGroup.NETWORK_ID_PERSISTENT, null);
@@ -1996,8 +1986,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testStartLocalConnectionWhenCreateGroup() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
// permissions for factory reset
@@ -2028,8 +2016,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testStartLocalConnectionEventWhenCreateTemporaryGroup() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendCreateGroupMsg(mClientMessenger, WifiP2pGroup.NETWORK_ID_TEMPORARY, null);
@@ -2049,8 +2035,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
public void testStartFastConnectionEventWhenSendConnectWithConfig()
throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
when(mWifiNative.p2pGroupAdd(any(), eq(true))).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
@@ -2075,8 +2059,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
public void testStartFastConnectionEventWhenCreateGroupWithConfig()
throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendCreateGroupMsg(mClientMessenger, 0, mTestWifiP2pFastConnectionConfig);
@@ -2118,8 +2100,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testEndConnectionEventWhenTimeout() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
when(mWifiNative.p2pGroupAdd(anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
@@ -2140,8 +2120,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testEndConnectionEventWhenCancel() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
when(mWifiNative.p2pGroupAdd(anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
@@ -2161,8 +2139,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testEndConnectionEventWhenProvDiscFailure() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
when(mWifiNative.p2pGroupAdd(anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
@@ -2182,8 +2158,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testEndConnectionEventWhenGroupRemoval() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
when(mWifiNative.p2pGroupAdd(anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
@@ -2203,8 +2177,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testEndConnectionEventWhenInvitationFailure() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
when(mWifiNative.p2pGroupAdd(anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
@@ -2244,8 +2216,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testRequestDeviceInfoSuccessWhenP2pEnabled() throws Exception {
forceP2pEnabled(mClient1);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendSimpleMsg(mClientMessenger, WifiP2pManager.REQUEST_DEVICE_INFO);
verify(mWifiPermissionsUtil).checkCanAccessWifiDirect(eq("testPkg1"), eq("testFeature"),
@@ -2263,8 +2233,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
*/
@Test
public void testRequestDeviceInfoReturnEmptyWifiP2pDeviceWhenP2pDisabled() throws Exception {
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendSimpleMsg(mClientMessenger, WifiP2pManager.REQUEST_DEVICE_INFO);
verify(mWifiPermissionsUtil).checkCanAccessWifiDirect(eq("testPkg1"), eq("testFeature"),
@@ -2284,8 +2252,6 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
public void testRequestDeviceInfoReturnsActualMacForNetworkSettingsApp() throws Exception {
forceP2pEnabled(mClient1);
when(mWifiPermissionsUtil.checkLocalMacAddressPermission(anyInt())).thenReturn(true);
- when(mWifiPermissionsUtil.checkCanAccessWifiDirect(anyString(), anyString(), anyInt(),
- anyBoolean())).thenReturn(true);
sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
sendSimpleMsg(mClientMessenger, WifiP2pManager.REQUEST_DEVICE_INFO);
verify(mWifiPermissionsUtil).checkCanAccessWifiDirect(eq("testPkg1"), eq("testFeature"),
@@ -3578,6 +3544,8 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
@Test
public void testRequestDiscoveryStateWhenStarted() throws Exception {
forceP2pEnabled(mClient1);
+ when(mWifiPermissionsUtil.checkCanAccessWifiDirect(any(), any(),
+ anyInt(), anyBoolean())).thenReturn(false);
when(mWifiPermissionsUtil.checkCanAccessWifiDirect(eq("testPkg1"), eq("testFeature"),
anyInt(), anyBoolean())).thenReturn(true);
when(mWifiNative.p2pFind(anyInt())).thenReturn(true);
@@ -4002,4 +3970,108 @@ public class WifiP2pServiceImplTest extends WifiBaseTest {
Message message = mMessageCaptor.getValue();
assertEquals(WifiP2pManager.CONNECT_FAILED, message.what);
}
+
+ /**
+ * Verify the group owner intent value is selected correctly when no STA connection.
+ */
+ @Test
+ public void testGroupOwnerIntentSelectionWithoutStaConnection() throws Exception {
+ when(mWifiInfo.getNetworkId()).thenReturn(WifiConfiguration.INVALID_NETWORK_ID);
+ when(mWifiInfo.getFrequency()).thenReturn(2412);
+ forceP2pEnabled(mClient1);
+ sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
+
+ mockEnterProvisionDiscoveryState();
+
+ WifiP2pProvDiscEvent pdEvent = new WifiP2pProvDiscEvent();
+ pdEvent.device = mTestWifiP2pDevice;
+ sendSimpleMsg(null,
+ WifiP2pMonitor.P2P_PROV_DISC_PBC_RSP_EVENT,
+ pdEvent);
+
+ ArgumentCaptor<WifiP2pConfig> configCaptor =
+ ArgumentCaptor.forClass(WifiP2pConfig.class);
+ verify(mWifiNative).p2pConnect(configCaptor.capture(), anyBoolean());
+ WifiP2pConfig config = configCaptor.getValue();
+ assertEquals(WifiP2pServiceImpl.DEFAULT_GROUP_OWNER_INTENT + 1,
+ config.groupOwnerIntent);
+ }
+
+ /**
+ * Verify the group owner intent value is selected correctly when 2.4GHz STA connection.
+ */
+ @Test
+ public void testGroupOwnerIntentSelectionWith24GStaConnection() throws Exception {
+ when(mWifiInfo.getNetworkId()).thenReturn(1);
+ when(mWifiInfo.getFrequency()).thenReturn(2412);
+ forceP2pEnabled(mClient1);
+ sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
+
+ mockEnterProvisionDiscoveryState();
+
+ WifiP2pProvDiscEvent pdEvent = new WifiP2pProvDiscEvent();
+ pdEvent.device = mTestWifiP2pDevice;
+ sendSimpleMsg(null,
+ WifiP2pMonitor.P2P_PROV_DISC_PBC_RSP_EVENT,
+ pdEvent);
+
+ ArgumentCaptor<WifiP2pConfig> configCaptor =
+ ArgumentCaptor.forClass(WifiP2pConfig.class);
+ verify(mWifiNative).p2pConnect(configCaptor.capture(), anyBoolean());
+ WifiP2pConfig config = configCaptor.getValue();
+ assertEquals(WifiP2pConfig.GROUP_OWNER_INTENT_MIN,
+ config.groupOwnerIntent);
+ }
+
+ /**
+ * Verify the group owner intent value is selected correctly when 5GHz STA connection.
+ */
+ @Test
+ public void testGroupOwnerIntentSelectionWith5GHzStaConnection() throws Exception {
+ when(mWifiInfo.getNetworkId()).thenReturn(1);
+ when(mWifiInfo.getFrequency()).thenReturn(5200);
+ forceP2pEnabled(mClient1);
+ sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
+
+ mockEnterProvisionDiscoveryState();
+
+ WifiP2pProvDiscEvent pdEvent = new WifiP2pProvDiscEvent();
+ pdEvent.device = mTestWifiP2pDevice;
+ sendSimpleMsg(null,
+ WifiP2pMonitor.P2P_PROV_DISC_PBC_RSP_EVENT,
+ pdEvent);
+
+ ArgumentCaptor<WifiP2pConfig> configCaptor =
+ ArgumentCaptor.forClass(WifiP2pConfig.class);
+ verify(mWifiNative).p2pConnect(configCaptor.capture(), anyBoolean());
+ WifiP2pConfig config = configCaptor.getValue();
+ assertEquals(WifiP2pConfig.GROUP_OWNER_INTENT_MAX - 1,
+ config.groupOwnerIntent);
+ }
+
+ /**
+ * Verify the group owner intent value is selected correctly when 6GHz STA connection.
+ */
+ @Test
+ public void testGroupOwnerIntentSelectionWith6GHzStaConnection() throws Exception {
+ when(mWifiInfo.getNetworkId()).thenReturn(1);
+ when(mWifiInfo.getFrequency()).thenReturn(6000);
+ forceP2pEnabled(mClient1);
+ sendChannelInfoUpdateMsg("testPkg1", "testFeature", mClient1, mClientMessenger);
+
+ mockEnterProvisionDiscoveryState();
+
+ WifiP2pProvDiscEvent pdEvent = new WifiP2pProvDiscEvent();
+ pdEvent.device = mTestWifiP2pDevice;
+ sendSimpleMsg(null,
+ WifiP2pMonitor.P2P_PROV_DISC_PBC_RSP_EVENT,
+ pdEvent);
+
+ ArgumentCaptor<WifiP2pConfig> configCaptor =
+ ArgumentCaptor.forClass(WifiP2pConfig.class);
+ verify(mWifiNative).p2pConnect(configCaptor.capture(), anyBoolean());
+ WifiP2pConfig config = configCaptor.getValue();
+ assertEquals(WifiP2pServiceImpl.DEFAULT_GROUP_OWNER_INTENT,
+ config.groupOwnerIntent);
+ }
}