summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/utils/testutils/java/com/android/internal/util/test/BidirectionalAsyncChannelServer.java5
-rw-r--r--wifi/tests/src/android/net/wifi/WifiManagerTest.java2
-rw-r--r--wifi/tests/src/android/net/wifi/WifiScannerTest.java73
3 files changed, 76 insertions, 4 deletions
diff --git a/tests/utils/testutils/java/com/android/internal/util/test/BidirectionalAsyncChannelServer.java b/tests/utils/testutils/java/com/android/internal/util/test/BidirectionalAsyncChannelServer.java
index 49c833228b6c..ecf271601b6b 100644
--- a/tests/utils/testutils/java/com/android/internal/util/test/BidirectionalAsyncChannelServer.java
+++ b/tests/utils/testutils/java/com/android/internal/util/test/BidirectionalAsyncChannelServer.java
@@ -27,6 +27,7 @@ import com.android.internal.util.AsyncChannel;
import java.util.HashMap;
import java.util.Map;
+import java.util.Set;
/**
* Provides an interface for the server side implementation of a bidirectional channel as described
@@ -83,4 +84,8 @@ public class BidirectionalAsyncChannelServer {
return mMessenger;
}
+ public Set<Messenger> getClientMessengers() {
+ return mClients.keySet();
+ }
+
}
diff --git a/wifi/tests/src/android/net/wifi/WifiManagerTest.java b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
index 37b7386eb3b2..b75a1acf87c9 100644
--- a/wifi/tests/src/android/net/wifi/WifiManagerTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiManagerTest.java
@@ -1593,7 +1593,7 @@ i * Verify that a call to cancel WPS immediately returns a failure.
}
/**
- * Test behavior of {@link WifiManager#isDualModeSupported()}
+ * Test behavior of {@link WifiManager#isDualModeSupported()} ()}
* @throws Exception
*/
@Test
diff --git a/wifi/tests/src/android/net/wifi/WifiScannerTest.java b/wifi/tests/src/android/net/wifi/WifiScannerTest.java
index 949a757c26a4..dd05b47fbd4f 100644
--- a/wifi/tests/src/android/net/wifi/WifiScannerTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiScannerTest.java
@@ -22,7 +22,9 @@ import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.validateMockitoUsage;
import static org.mockito.Mockito.verify;
@@ -36,6 +38,7 @@ import android.net.wifi.WifiScanner.ScanSettings;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
+import android.os.Messenger;
import android.os.Parcel;
import android.os.test.TestLooper;
@@ -78,6 +81,7 @@ public class WifiScannerTest {
private WifiScanner mWifiScanner;
private TestLooper mLooper;
private Handler mHandler;
+ private BidirectionalAsyncChannelServer mBidirectionalAsyncChannelServer;
/**
* Setup before tests.
@@ -86,10 +90,10 @@ public class WifiScannerTest {
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
mLooper = new TestLooper();
- mHandler = mock(Handler.class);
- BidirectionalAsyncChannelServer server = new BidirectionalAsyncChannelServer(
+ mHandler = spy(new Handler(mLooper.getLooper()));
+ mBidirectionalAsyncChannelServer = new BidirectionalAsyncChannelServer(
mContext, mLooper.getLooper(), mHandler);
- when(mService.getMessenger()).thenReturn(server.getMessenger());
+ when(mService.getMessenger()).thenReturn(mBidirectionalAsyncChannelServer.getMessenger());
mWifiScanner = new WifiScanner(mContext, mService, mLooper.getLooper());
mLooper.dispatchAll();
}
@@ -296,6 +300,69 @@ public class WifiScannerTest {
}
/**
+ * Test behavior of {@link WifiScanner#startScan(ScanSettings, WifiScanner.ScanListener)}
+ * @throws Exception
+ */
+ @Test
+ public void testStartScanListenerOnSuccess() throws Exception {
+ ScanSettings scanSettings = new ScanSettings();
+ WifiScanner.ScanListener scanListener = mock(WifiScanner.ScanListener.class);
+
+ mWifiScanner.startScan(scanSettings, scanListener);
+ mLooper.dispatchAll();
+
+ ArgumentCaptor<Message> messageArgumentCaptor = ArgumentCaptor.forClass(Message.class);
+ verify(mHandler).handleMessage(messageArgumentCaptor.capture());
+ Message sentMessage = messageArgumentCaptor.getValue();
+ assertNotNull(sentMessage);
+
+ assertEquals(1, mBidirectionalAsyncChannelServer.getClientMessengers().size());
+ Messenger scannerMessenger =
+ mBidirectionalAsyncChannelServer.getClientMessengers().iterator().next();
+
+ Message responseMessage = Message.obtain();
+ responseMessage.what = WifiScanner.CMD_OP_SUCCEEDED;
+ responseMessage.arg2 = sentMessage.arg2;
+ scannerMessenger.send(responseMessage);
+ mLooper.dispatchAll();
+
+ verify(scanListener).onSuccess();
+ }
+
+ /**
+ * Test behavior of {@link WifiScanner#startScan(ScanSettings, WifiScanner.ScanListener)}
+ * @throws Exception
+ */
+ @Test
+ public void testStartScanListenerOnResults() throws Exception {
+ ScanSettings scanSettings = new ScanSettings();
+ WifiScanner.ScanListener scanListener = mock(WifiScanner.ScanListener.class);
+
+ mWifiScanner.startScan(scanSettings, scanListener);
+ mLooper.dispatchAll();
+
+ ArgumentCaptor<Message> messageArgumentCaptor = ArgumentCaptor.forClass(Message.class);
+ verify(mHandler).handleMessage(messageArgumentCaptor.capture());
+ Message sentMessage = messageArgumentCaptor.getValue();
+ assertNotNull(sentMessage);
+
+ assertEquals(1, mBidirectionalAsyncChannelServer.getClientMessengers().size());
+ Messenger scannerMessenger =
+ mBidirectionalAsyncChannelServer.getClientMessengers().iterator().next();
+
+ ScanResult scanResult = new ScanResult();
+ ScanData scanDatas[] = new ScanData[]{new ScanData(0, 0 , new ScanResult[] {scanResult})};
+ Message responseMessage = Message.obtain();
+ responseMessage.what = WifiScanner.CMD_SCAN_RESULT;
+ responseMessage.arg2 = sentMessage.arg2;
+ responseMessage.obj = new WifiScanner.ParcelableScanData(scanDatas);
+ scannerMessenger.send(responseMessage);
+ mLooper.dispatchAll();
+
+ verify(scanListener).onResults(scanDatas);
+ }
+
+ /**
* Test behavior of {@link WifiScanner#startDisconnectedPnoScan(ScanSettings, PnoSettings,
* WifiScanner.PnoScanListener)}
* @throws Exception