From 28036b9b6c6bbe6abfe6622ecb6dbb5fcf548cf6 Mon Sep 17 00:00:00 2001 From: Kai Shi Date: Mon, 4 May 2020 15:56:23 -0700 Subject: Add start/stop-softap shell command Add start-softap and stop-softap wifi shell commands to help automate wifi hotspot tests. Note that this doesn't go through tetheringManager. In some devices, internet sharing might be possible if wifi STA is also enabled and is associated to another AP with internet access. Bug: 155682782 Test: atest com.android.server.wifi.WifiShellCommandTest Test: manual test with "adb shell cmd wifi start/stop-softap" in open/wpa2 modes with different band options. In all tested modes, another device can associate to the DUT's hotspot. If DUT's STA is also enabled and associated to another internet-bounding AP, internet should be also avaiable to the device associated to DUT's hotspot. Change-Id: I9ad561b0e10171ff9ccb395e1538472ac637e17a --- .../android/server/wifi/WifiShellCommandTest.java | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'tests') diff --git a/tests/wifitests/src/com/android/server/wifi/WifiShellCommandTest.java b/tests/wifitests/src/com/android/server/wifi/WifiShellCommandTest.java index a1897ded9..1f4af5cc0 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiShellCommandTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiShellCommandTest.java @@ -16,6 +16,7 @@ package com.android.server.wifi; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; @@ -29,6 +30,7 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.net.ConnectivityManager; +import android.net.wifi.SoftApConfiguration; import android.os.Binder; import android.os.Process; @@ -37,6 +39,7 @@ import androidx.test.filters.SmallTest; import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @@ -396,4 +399,28 @@ public class WifiShellCommandTest extends WifiBaseTest { verify(mClientModeImpl, times(2)).hasNetworkRequestUserApprovedApp(TEST_PACKAGE); mWifiShellCommand.getOutPrintWriter().toString().contains("no"); } + + @Test + public void testStartSoftAp() { + mWifiShellCommand.exec( + new Binder(), new FileDescriptor(), new FileDescriptor(), new FileDescriptor(), + new String[]{"start-softap", "ap1", "wpa2", "xyzabc321", "-b", "5"}); + ArgumentCaptor softApConfigurationCaptor = ArgumentCaptor.forClass( + SoftApConfiguration.class); + verify(mWifiService).startTetheredHotspot(softApConfigurationCaptor.capture()); + assertEquals(SoftApConfiguration.BAND_5GHZ, + softApConfigurationCaptor.getValue().getBand()); + assertEquals(SoftApConfiguration.SECURITY_TYPE_WPA2_PSK, + softApConfigurationCaptor.getValue().getSecurityType()); + assertEquals("\"ap1\"", softApConfigurationCaptor.getValue().getSsid()); + assertEquals("xyzabc321", softApConfigurationCaptor.getValue().getPassphrase()); + } + + @Test + public void testStopSoftAp() { + mWifiShellCommand.exec( + new Binder(), new FileDescriptor(), new FileDescriptor(), new FileDescriptor(), + new String[]{"stop-softap"}); + verify(mWifiService).stopSoftAp(); + } } -- cgit v1.2.3