Remove auto-join check PasspointNetworkNominateHelper

Move auto-join check to saved and suggestion nominator

Bug: 155434194
Test: atest com.android.server.wifi
Change-Id: I41e4d3d46a7a59e4f2201e1044f6bb514494f721
diff --git a/service/java/com/android/server/wifi/SavedNetworkNominator.java b/service/java/com/android/server/wifi/SavedNetworkNominator.java
index a303909..3070f09 100644
--- a/service/java/com/android/server/wifi/SavedNetworkNominator.java
+++ b/service/java/com/android/server/wifi/SavedNetworkNominator.java
@@ -166,6 +166,9 @@
                 mPasspointNetworkNominateHelper.getPasspointNetworkCandidates(scanDetails, false);
         for (Pair<ScanDetail, WifiConfiguration> candidate : candidates) {
             WifiConfiguration config = candidate.second;
+            if (!config.allowAutojoin) {
+                continue;
+            }
             if (isNetworkSimBasedCredential(config) && !isSimBasedNetworkAbleToAutoJoin(config)) {
                 continue;
             }
diff --git a/service/java/com/android/server/wifi/hotspot2/PasspointNetworkNominateHelper.java b/service/java/com/android/server/wifi/hotspot2/PasspointNetworkNominateHelper.java
index 0a5da1f..e1491aa 100644
--- a/service/java/com/android/server/wifi/hotspot2/PasspointNetworkNominateHelper.java
+++ b/service/java/com/android/server/wifi/hotspot2/PasspointNetworkNominateHelper.java
@@ -146,9 +146,6 @@
                 if (matchedProvider.first.isFromSuggestion() != isFromSuggestion) {
                     continue;
                 }
-                if (!matchedProvider.first.isAutojoinEnabled()) {
-                    continue;
-                }
                 List<PasspointNetworkCandidate> candidates = candidatesPerProvider
                         .computeIfAbsent(matchedProvider.first, k -> new ArrayList<>());
                 candidates.add(new PasspointNetworkCandidate(matchedProvider.first,
diff --git a/tests/wifitests/src/com/android/server/wifi/SavedNetworkNominatorTest.java b/tests/wifitests/src/com/android/server/wifi/SavedNetworkNominatorTest.java
index 839b2e5..1fbb0f5 100644
--- a/tests/wifitests/src/com/android/server/wifi/SavedNetworkNominatorTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/SavedNetworkNominatorTest.java
@@ -38,7 +38,7 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
-import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -225,21 +225,26 @@
     }
 
     /**
-     * Ensure that we do nominate the only matching saved passponit network .
+     * Ensure that we do nominate the only matching saved passponit network with auto-join enabled .
      */
     @Test
-    public void returnCandidatesIfPasspointNetworksAvailable() {
-        ScanDetail scanDetail = mock(ScanDetail.class);
-        List<ScanDetail> scanDetails = new ArrayList<>();
-        scanDetails.add(scanDetail);
-        WifiConfiguration configuration = mock(WifiConfiguration.class);
-        List<Pair<ScanDetail, WifiConfiguration>> passpointCandidates = new ArrayList<>();
-        passpointCandidates.add(Pair.create(scanDetail, configuration));
+    public void returnCandidatesIfPasspointNetworksAvailableWithAutojoinEnabled() {
+        ScanDetail scanDetail1 = mock(ScanDetail.class);
+        ScanDetail scanDetail2 = mock(ScanDetail.class);
+        List<ScanDetail> scanDetails = Arrays.asList(scanDetail1, scanDetail2);
+        WifiConfiguration configuration1 = mock(WifiConfiguration.class);
+        configuration1.allowAutojoin = true;
+        WifiConfiguration configuration2 = mock(WifiConfiguration.class);
+        configuration2.allowAutojoin = false;
+        List<Pair<ScanDetail, WifiConfiguration>> passpointCandidates =
+                Arrays.asList(Pair.create(scanDetail1, configuration1), Pair.create(scanDetail2,
+                        configuration2));
         when(mPasspointNetworkNominateHelper.getPasspointNetworkCandidates(scanDetails, false))
                 .thenReturn(passpointCandidates);
         mSavedNetworkNominator.nominateNetworks(scanDetails, null, null,
                 false, false, mOnConnectableListener);
-        verify(mOnConnectableListener).onConnectable(scanDetail, configuration);
+        verify(mOnConnectableListener).onConnectable(scanDetail1, configuration1);
+        verify(mOnConnectableListener, never()).onConnectable(scanDetail2, configuration2);
     }
 
     /**
diff --git a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointNetworkNominateHelperTest.java b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointNetworkNominateHelperTest.java
index 32fcb70..a361a19 100644
--- a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointNetworkNominateHelperTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointNetworkNominateHelperTest.java
@@ -320,74 +320,6 @@
     }
 
     /**
-     * Verify that when a network matches a roaming provider is found for different scanDetails,
-     * will nominate only the candidate with auto-join enabled.
-     */
-    @Test
-    public void evaluateScansWithHomeProviderNetworkAndRoamingProviderNetworkAutoJoinSomeoff() {
-        List<ScanDetail> scanDetails = Arrays.asList(generateScanDetail(TEST_SSID1, TEST_BSSID1),
-                generateScanDetail(TEST_SSID2, TEST_BSSID2));
-
-        // Setup matching providers for ScanDetail with TEST_SSID1.
-        when(sTestProvider1.isAutojoinEnabled()).thenReturn(false); // disable auto-join on provider
-        List<Pair<PasspointProvider, PasspointMatch>> homeProvider = new ArrayList<>();
-        homeProvider.add(Pair.create(sTestProvider1, PasspointMatch.HomeProvider));
-        List<Pair<PasspointProvider, PasspointMatch>> roamingProvider = new ArrayList<>();
-        roamingProvider.add(Pair.create(sTestProvider2, PasspointMatch.RoamingProvider));
-
-        // Return homeProvider for the first ScanDetail (TEST_SSID1) and
-        // roamingProvider for the second (TEST_SSID2);
-        when(mPasspointManager.matchProvider(any(ScanResult.class)))
-                .thenReturn(homeProvider).thenReturn(roamingProvider);
-        when(mWifiConfigManager.addOrUpdateNetwork(any(WifiConfiguration.class), anyInt(),
-                any())).thenReturn(new NetworkUpdateResult(TEST_NETWORK_ID + 1));
-        when(mWifiConfigManager.getConfiguredNetwork(TEST_NETWORK_ID)).thenReturn(TEST_CONFIG1);
-        when(mWifiConfigManager.getConfiguredNetwork(TEST_NETWORK_ID + 1))
-                .thenReturn(TEST_CONFIG2);
-        List<Pair<ScanDetail, WifiConfiguration>> candidates = mNominateHelper
-                .getPasspointNetworkCandidates(scanDetails, false);
-        assertEquals(1, candidates.size());
-        assertEquals(TEST_FQDN2, candidates.get(0).second.FQDN);
-
-        verify(mWifiConfigManager).addOrUpdateNetwork(any(), anyInt(), any());
-    }
-
-    /**
-     * Verify that when a network matches a roaming provider is found for different scanDetails,
-     * and if all have auto-join disabled - will nominate no candidates.
-     */
-    @Test
-    public void evaluateScansWithHomeProviderNetworkAndRoamingProviderNetworkAutoJoinAllOff() {
-        List<ScanDetail> scanDetails = Arrays.asList(generateScanDetail(TEST_SSID1, TEST_BSSID1),
-                generateScanDetail(TEST_SSID2, TEST_BSSID2));
-
-        // Setup matching providers for ScanDetail with TEST_SSID1.
-        when(sTestProvider1.isAutojoinEnabled()).thenReturn(false); // disable auto-join on provider
-        when(sTestProvider2.isAutojoinEnabled()).thenReturn(false); // disable auto-join on provider
-        List<Pair<PasspointProvider, PasspointMatch>> homeProvider = new ArrayList<>();
-        homeProvider.add(Pair.create(sTestProvider1, PasspointMatch.HomeProvider));
-        List<Pair<PasspointProvider, PasspointMatch>> roamingProvider = new ArrayList<>();
-        roamingProvider.add(Pair.create(sTestProvider2, PasspointMatch.RoamingProvider));
-
-        // Return homeProvider for the first ScanDetail (TEST_SSID1) and
-        // roamingProvider for the second (TEST_SSID2);
-        when(mPasspointManager.matchProvider(any(ScanResult.class)))
-                .thenReturn(homeProvider).thenReturn(roamingProvider);
-        when(mWifiConfigManager.addOrUpdateNetwork(any(WifiConfiguration.class), anyInt(),
-                any())).thenReturn(new NetworkUpdateResult(TEST_NETWORK_ID))
-                .thenReturn(new NetworkUpdateResult(TEST_NETWORK_ID + 1));
-        when(mWifiConfigManager.getConfiguredNetwork(TEST_NETWORK_ID)).thenReturn(TEST_CONFIG1);
-        when(mWifiConfigManager.getConfiguredNetwork(TEST_NETWORK_ID + 1))
-                .thenReturn(TEST_CONFIG2);
-        List<Pair<ScanDetail, WifiConfiguration>> candidates = mNominateHelper
-                .getPasspointNetworkCandidates(scanDetails, false);
-        assertEquals(0, candidates.size());
-
-        verify(mWifiConfigManager, never()).addOrUpdateNetwork(any(), anyInt(), any());
-    }
-
-
-    /**
      * Verify that anonymous identity is empty when matching a SIM credential provider with a
      * network that supports encrypted IMSI and anonymous identity. The anonymous identity will be
      * populated with {@code anonymous@<realm>} by ClientModeImpl's handling of the