From 40dc8e50535f84204053c5b5948384a0db381bec Mon Sep 17 00:00:00 2001 From: Nate Jiang Date: Thu, 19 Mar 2020 14:13:00 -0700 Subject: [PATCH] Add Cts test for createNetworkSpecifierPmk Bug: 150976232 Test: atest SingleDeviceTest Change-Id: Idb8e28067f08c7d767649d182c325304c6a2fff3 --- .../net/wifi/aware/cts/SingleDeviceTest.java | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java b/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java index 5eb3e3680a..1645f32845 100644 --- a/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java +++ b/tests/cts/net/src/android/net/wifi/aware/cts/SingleDeviceTest.java @@ -64,6 +64,9 @@ public class SingleDeviceTest extends AndroidTestCase { // wait for Wi-Fi Aware state changes & network requests callbacks static private final int WAIT_FOR_AWARE_CHANGE_SECS = 10; // 10 seconds + private static final int MIN_DISTANCE_MM = 1 * 1000; + private static final int MAX_DISTANCE_MM = 3 * 1000; + private static final byte[] PMK_VALID = "01234567890123456789012345678901".getBytes(); private final Object mLock = new Object(); private final HandlerThread mHandlerThread = new HandlerThread("SingleDeviceTest"); @@ -741,7 +744,8 @@ public class SingleDeviceTest extends AndroidTestCase { } /** - * Request an Aware data-path (encrypted) as a Responder with an arbitrary peer MAC address. + * Request an Aware data-path (encrypted with Passphrase) as a Responder with an arbitrary peer + * MAC address. * Validate that receive an onUnavailable() callback. */ public void testDataPathPassphraseOutOfBandFail() { @@ -773,6 +777,40 @@ public class SingleDeviceTest extends AndroidTestCase { session.close(); } + /** + * Request an Aware data-path (encrypted with PMK) as a Responder with an arbitrary peer MAC + * address. + * Validate that receive an onUnavailable() callback. + */ + public void testDataPathPmkOutOfBandFail() { + if (!TestUtils.shouldTestWifiAware(getContext())) { + return; + } + MacAddress mac = MacAddress.fromString("00:01:02:03:04:05"); + + // 1. initialize Aware: only purpose is to make sure it is available for OOB data-path + WifiAwareSession session = attachAndGetSession(); + + PublishConfig publishConfig = new PublishConfig.Builder().setServiceName( + "ValidName").build(); + DiscoverySessionCallbackTest discoveryCb = new DiscoverySessionCallbackTest(); + session.publish(publishConfig, discoveryCb, mHandler); + assertTrue("Publish started", + discoveryCb.waitForCallback(DiscoverySessionCallbackTest.ON_PUBLISH_STARTED)); + + // 2. request an AWARE network + NetworkCallbackTest networkCb = new NetworkCallbackTest(); + NetworkRequest nr = new NetworkRequest.Builder().addTransportType( + NetworkCapabilities.TRANSPORT_WIFI_AWARE).setNetworkSpecifier( + session.createNetworkSpecifierPmk( + WifiAwareManager.WIFI_AWARE_DATA_PATH_ROLE_INITIATOR, mac.toByteArray(), + PMK_VALID)).build(); + mConnectivityManager.requestNetwork(nr, networkCb); + assertTrue("OnUnavailable not received", networkCb.waitForOnUnavailable()); + + session.close(); + } + // local utilities private WifiAwareSession attachAndGetSession() {