diff --git a/tests/cts/net/src/android/net/wifi/cts/WifiManagerTest.java b/tests/cts/net/src/android/net/wifi/cts/WifiManagerTest.java
index 3af58f6..09b25e9 100644
--- a/tests/cts/net/src/android/net/wifi/cts/WifiManagerTest.java
+++ b/tests/cts/net/src/android/net/wifi/cts/WifiManagerTest.java
@@ -34,9 +34,6 @@
 import android.net.wifi.WifiManager;
 import android.net.wifi.WifiManager.TxPacketCountListener;
 import android.net.wifi.WifiManager.WifiLock;
-import android.net.wifi.hotspot2.PasspointConfiguration;
-import android.net.wifi.hotspot2.pps.Credential;
-import android.net.wifi.hotspot2.pps.HomeSp;
 import android.os.Process;
 import android.os.SystemClock;
 import android.os.UserHandle;
@@ -55,9 +52,6 @@
 import java.lang.StringBuilder;
 import java.net.HttpURLConnection;
 import java.net.URL;
-import java.security.MessageDigest;
-import java.security.cert.X509Certificate;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Objects;
 import java.util.concurrent.ConcurrentLinkedQueue;
@@ -232,21 +226,14 @@
 
     // Get the current scan status from sticky broadcast.
     private boolean isScanCurrentlyAvailable() {
-        boolean isAvailable = false;
         IntentFilter intentFilter = new IntentFilter();
-        intentFilter.addAction(WifiManager.WIFI_SCAN_AVAILABLE);
+        intentFilter.addAction(WifiManager.ACTION_WIFI_SCAN_AVAILABLE);
         Intent intent = mContext.registerReceiver(null, intentFilter);
         assertNotNull(intent);
-        if (intent.getAction().equals(WifiManager.WIFI_SCAN_AVAILABLE)) {
-            int state = intent.getIntExtra(
-                    WifiManager.EXTRA_SCAN_AVAILABLE, WifiManager.WIFI_STATE_UNKNOWN);
-            if (state == WifiManager.WIFI_STATE_ENABLED) {
-                isAvailable = true;
-            } else if (state == WifiManager.WIFI_STATE_DISABLED) {
-                isAvailable = false;
-            }
+        if (intent.getAction().equals(WifiManager.ACTION_WIFI_SCAN_AVAILABLE)) {
+            return intent.getBooleanExtra(WifiManager.EXTRA_SCAN_AVAILABLE, false);
         }
-        return isAvailable;
+        return false;
     }
 
     private void startScan() throws Exception {
diff --git a/tests/cts/net/src/android/net/wifi/rtt/cts/WifiRttTest.java b/tests/cts/net/src/android/net/wifi/rtt/cts/WifiRttTest.java
index f71cadb..44a9cc2 100644
--- a/tests/cts/net/src/android/net/wifi/rtt/cts/WifiRttTest.java
+++ b/tests/cts/net/src/android/net/wifi/rtt/cts/WifiRttTest.java
@@ -16,6 +16,8 @@
 
 package android.net.wifi.rtt.cts;
 
+import static org.mockito.Mockito.mock;
+
 import android.net.wifi.ScanResult;
 import android.net.wifi.rtt.RangingRequest;
 import android.net.wifi.rtt.RangingResult;
@@ -185,7 +187,7 @@
             return;
         }
 
-        ScanResult dummy = new ScanResult();
+        ScanResult dummy = mock(ScanResult.class);
         dummy.BSSID = "00:01:02:03:04:05";
 
         RangingRequest.Builder builder = new RangingRequest.Builder();
