Merge tag 'android-13.0.0_r52' into int/13/fp3

Android 13.0.0 Release 52 (TQ3A.230605.012)

* tag 'android-13.0.0_r52':
  Import translations. DO NOT MERGE ANYWHERE
  Import translations. DO NOT MERGE ANYWHERE
  Import translations. DO NOT MERGE ANYWHERE
  Fix "Connected via app / Connected / No internet access" summary
  Remove IMSI privacy warning from NetworkDetails
  Revert "Revert "[DO NOT MERGE] wifi: remove certificates for network factory reset""
  Revert "Revert "[DO NOT MERGE] wifi: remove certificates for network factory reset""
  Revert "[DO NOT MERGE] wifi: remove certificates for network factory reset"
  Revert "[DO NOT MERGE] wifi: remove certificates for network factory reset"
  Revert "[DO NOT MERGE] wifi: remove certificates for network factory reset"

Change-Id: Id3c81ddc1d64aabe31ad07c371975b1e78c71a73
diff --git a/libs/WifiTrackerLib/res/values-it/arrays.xml b/libs/WifiTrackerLib/res/values-it/arrays.xml
index 7b81856..d0913c4 100644
--- a/libs/WifiTrackerLib/res/values-it/arrays.xml
+++ b/libs/WifiTrackerLib/res/values-it/arrays.xml
@@ -23,10 +23,10 @@
   <string-array name="wifitrackerlib_wifi_status">
     <item msgid="4878873480828298657"></item>
     <item msgid="5782995872855767551">"Ricerca…"</item>
-    <item msgid="9055468790485684083">"Connessione…"</item>
+    <item msgid="9055468790485684083">"Connessione in corso…"</item>
     <item msgid="6099499723199990208">"Autenticazione…"</item>
     <item msgid="6794055951297347103">"Acquisizione indirizzo IP…"</item>
-    <item msgid="5450920562291300229">"Rete connessa"</item>
+    <item msgid="5450920562291300229">"Connessa"</item>
     <item msgid="6332116533879646145">"Connessione sospesa"</item>
     <item msgid="294459081501073818">"Disconnessione…"</item>
     <item msgid="1577368920272598676">"Rete disconnessa"</item>
diff --git a/libs/WifiTrackerLib/res/values-uz/strings.xml b/libs/WifiTrackerLib/res/values-uz/strings.xml
index 702f510..7d19e87 100644
--- a/libs/WifiTrackerLib/res/values-uz/strings.xml
+++ b/libs/WifiTrackerLib/res/values-uz/strings.xml
@@ -26,7 +26,7 @@
     <string name="wifitrackerlib_wifi_check_password_try_again" msgid="2327777719175574699">"Parolni tekshirib, qaytadan urining"</string>
     <string name="wifitrackerlib_wifi_disabled_network_failure" msgid="3046956554224277166">"IP manzil sozlanmadi"</string>
     <string name="wifitrackerlib_wifi_disabled_transition_disable_indication" msgid="6416221593061166867">"Joriy xavfsizlik sozlamalari bilan ishlamaydi"</string>
-    <string name="wifitrackerlib_wifi_disabled_generic" msgid="4278806060337007814">"Yoqilmagan"</string>
+    <string name="wifitrackerlib_wifi_disabled_generic" msgid="4278806060337007814">"Oʻchiq"</string>
     <string name="wifitrackerlib_wifi_ap_unable_to_handle_new_sta" msgid="931922372010639716">"Ulanish nuqtasi vaqtinchalik toʻlgan"</string>
     <string name="wifitrackerlib_wifi_poor_channel_conditions" msgid="26484680900376236">"Tarmoq signali vaqtincha kuchsiz"</string>
     <string name="wifitrackerlib_wifi_mbo_oce_assoc_disallowed_insufficient_rssi" msgid="5078611817423181773">"Signal kuchsiz. Routerga yaqinlashtiring."</string>
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java
index b4c4b1a..193b8ec 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/PasspointWifiEntry.java
@@ -29,7 +29,6 @@
 import static com.android.wifitrackerlib.Utils.getConnectedDescription;
 import static com.android.wifitrackerlib.Utils.getConnectingDescription;
 import static com.android.wifitrackerlib.Utils.getDisconnectedDescription;
-import static com.android.wifitrackerlib.Utils.getImsiProtectionDescription;
 import static com.android.wifitrackerlib.Utils.getMeteredDescription;
 import static com.android.wifitrackerlib.Utils.getVerboseLoggingDescription;
 
@@ -227,12 +226,6 @@
     }
 
     @Override
-    public synchronized CharSequence getSecondSummary() {
-        return getConnectedState() == CONNECTED_STATE_CONNECTED
-                ? getImsiProtectionDescription(mContext, mWifiConfig) : "";
-    }
-
-    @Override
     public synchronized String getSsid() {
         if (mWifiInfo != null) {
             return sanitizeSsid(mWifiInfo.getSSID());
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
index f3ce326..d32f802 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/StandardWifiEntry.java
@@ -39,7 +39,6 @@
 import static com.android.wifitrackerlib.Utils.getConnectedDescription;
 import static com.android.wifitrackerlib.Utils.getConnectingDescription;
 import static com.android.wifitrackerlib.Utils.getDisconnectedDescription;
-import static com.android.wifitrackerlib.Utils.getImsiProtectionDescription;
 import static com.android.wifitrackerlib.Utils.getMeteredDescription;
 import static com.android.wifitrackerlib.Utils.getSecurityTypesFromScanResult;
 import static com.android.wifitrackerlib.Utils.getSecurityTypesFromWifiConfiguration;
@@ -244,12 +243,6 @@
     }
 
     @Override
-    public CharSequence getSecondSummary() {
-        return getConnectedState() == CONNECTED_STATE_CONNECTED
-                ? getImsiProtectionDescription(mContext, getWifiConfiguration()) : "";
-    }
-
-    @Override
     public String getSsid() {
         return mKey.getScanResultKey().getSsid();
     }
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java
index 2e4b39b..22c3765 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/Utils.java
@@ -226,15 +226,16 @@
         }
     }
 
-    static String getConnectedDescription(Context context,
-            WifiConfiguration wifiConfiguration,
-            NetworkCapabilities networkCapabilities,
+    static String getConnectedDescription(@NonNull Context context,
+            @Nullable WifiConfiguration wifiConfiguration,
+            @Nullable NetworkCapabilities networkCapabilities,
             boolean isDefaultNetwork,
             boolean isLowQuality,
-            ConnectivityDiagnosticsManager.ConnectivityReport connectivityReport) {
+            @Nullable ConnectivityDiagnosticsManager.ConnectivityReport connectivityReport) {
         final StringJoiner sj = new StringJoiner(context.getString(
                 R.string.wifitrackerlib_summary_separator));
 
+        boolean shouldShowConnected = isDefaultNetwork;
         if (wifiConfiguration != null
                 && (wifiConfiguration.fromWifiNetworkSuggestion
                 || wifiConfiguration.fromWifiNetworkSpecifier)) {
@@ -249,25 +250,58 @@
                     sj.add(context.getString(R.string.wifitrackerlib_connected_via_app,
                             suggestionOrSpecifierLabel));
                 }
+                shouldShowConnected = false;
             }
         }
 
         if (isLowQuality) {
             sj.add(context.getString(R.string.wifi_connected_low_quality));
+            shouldShowConnected = false;
         }
 
         // For displaying network capability info, such as captive portal or no internet
-        String networkCapabilitiesInformation = getCurrentNetworkCapabilitiesInformation(
-                context,  networkCapabilities, connectivityReport,
-                wifiConfiguration != null && wifiConfiguration.isNoInternetAccessExpected());
-        if (!TextUtils.isEmpty(networkCapabilitiesInformation)) {
-            sj.add(networkCapabilitiesInformation);
+        if (networkCapabilities != null) {
+            if (networkCapabilities.hasCapability(
+                    NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL)) {
+                // "Sign in to network"
+                sj.add(context.getString(context.getResources()
+                        .getIdentifier("network_available_sign_in", "string", "android")));
+                shouldShowConnected = false;
+            } else if (networkCapabilities.hasCapability(
+                    NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY)) {
+                // "Limited connection..."
+                sj.add(context.getString(
+                        R.string.wifitrackerlib_wifi_limited_connection));
+                shouldShowConnected = false;
+            } else if (!networkCapabilities.hasCapability(
+                    NetworkCapabilities.NET_CAPABILITY_VALIDATED)) {
+                boolean noInternetExpected = wifiConfiguration != null
+                        && wifiConfiguration.isNoInternetAccessExpected();
+                if (connectivityReport == null && !noInternetExpected) {
+                    // "Checking for internet access..."
+                    sj.add(context.getString(R.string.wifitrackerlib_checking_for_internet_access));
+                    shouldShowConnected = false;
+                } else if (networkCapabilities.isPrivateDnsBroken()) {
+                    // "Private DNS server cannot be accessed"
+                    sj.add(context.getString(R.string.wifitrackerlib_private_dns_broken));
+                    shouldShowConnected = false;
+                } else if (noInternetExpected) {
+                    // "Connected to device. Can't provide internet."
+                    sj.add(context.getString(
+                            R.string.wifitrackerlib_wifi_connected_cannot_provide_internet));
+                    shouldShowConnected = false;
+                } else {
+                    // "No internet access"
+                    sj.add(context.getString(R.string.wifitrackerlib_wifi_no_internet));
+                }
+            }
         }
 
-        // Default to "Connected" if nothing else to display
-        if (sj.length() == 0 && isDefaultNetwork) {
-            return context.getResources().getStringArray(R.array.wifitrackerlib_wifi_status)
-                    [DetailedState.CONNECTED.ordinal()];
+        // Show "Connected" first if we haven't hidden it due to other strings.
+        if (shouldShowConnected) {
+            return new StringJoiner(context.getString(R.string.wifitrackerlib_summary_separator))
+                    .add(context.getResources().getStringArray(R.array.wifitrackerlib_wifi_status)
+                            [DetailedState.CONNECTED.ordinal()]).merge(sj).toString();
         }
 
         return sj.toString();
@@ -517,46 +551,6 @@
         return description.toString();
     }
 
-    static String getCurrentNetworkCapabilitiesInformation(@Nullable Context context,
-            @Nullable NetworkCapabilities networkCapabilities,
-            @Nullable ConnectivityDiagnosticsManager.ConnectivityReport connectivityReport,
-            boolean noInternetExpected) {
-        if (context == null || networkCapabilities == null) {
-            return "";
-        }
-
-        if (networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL)) {
-            return context.getString(context.getResources()
-                    .getIdentifier("network_available_sign_in", "string", "android"));
-        }
-
-        if (networkCapabilities.hasCapability(
-                NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY)) {
-            return context.getString(R.string.wifitrackerlib_wifi_limited_connection);
-        }
-
-        if (!networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)) {
-            if (connectivityReport == null && !noInternetExpected) {
-                return context.getString(R.string.wifitrackerlib_checking_for_internet_access);
-            }
-            if (networkCapabilities.isPrivateDnsBroken()) {
-                return context.getString(R.string.wifitrackerlib_private_dns_broken);
-            }
-            if (noInternetExpected) {
-                return context.getString(
-                        R.string.wifitrackerlib_wifi_connected_cannot_provide_internet);
-            }
-            // Connected / No internet access
-            final StringJoiner sj = new StringJoiner(context.getString(
-                    R.string.wifitrackerlib_summary_separator));
-            sj.add(context.getResources().getStringArray(R.array.wifitrackerlib_wifi_status)
-                    [DetailedState.CONNECTED.ordinal()]);
-            sj.add(context.getString(R.string.wifitrackerlib_wifi_no_internet));
-            return sj.toString();
-        }
-        return "";
-    }
-
     /**
      * Returns the display string corresponding to the detailed state of the given NetworkInfo
      */
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java
index bc99e08..f7d029e 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/UtilsTest.java
@@ -39,6 +39,7 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
@@ -50,6 +51,8 @@
 import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.net.NetworkInfo;
+import android.net.ConnectivityDiagnosticsManager;
+import android.net.NetworkCapabilities;
 import android.net.wifi.ScanResult;
 import android.net.wifi.WifiConfiguration;
 import android.net.wifi.WifiConfiguration.NetworkSelectionStatus;
@@ -83,6 +86,31 @@
 
 @Config(shadows = {ShadowSystem.class})
 public class UtilsTest {
+    private static final int ID_NETWORK_AVAILABLE_SIGN_IN = 1;
+    private static final String STRING_SUMMARY_SEPARATOR = " / ";
+    private static final String STRING_AVAILABLE_VIA_APP = "available_via_";
+    private static final String STRING_CONNECTED_VIA_APP = "connected_via_";
+    private static final String STRING_CONNECTED_LOW_QUALITY = "low_quality";
+    private static final String STRING_NETWORK_AVAILABLE_SIGN_IN = "network_available_sign_in";
+    private static final String STRING_LIMITED_CONNECTION = "limited_connection";
+    private static final String STRING_CHECKING_FOR_INTERNET_ACCESS =
+            "checking_for_internet_access";
+    private static final String STRING_PRIVATE_DNS_BROKEN = "private_dns_broken";
+    private static final String STRING_CONNECTED_CANNOT_PROVIDE_INTERNET =
+            "connected_cannot_provide_internet";
+    private static final String STRING_NO_INTERNET = "no_internet";
+
+    private static final String STRING_WIFI_STATUS_IDLE = "";
+    private static final String STRING_WIFI_STATUS_SCANNING = "scanning";
+    private static final String STRING_WIFI_STATUS_CONNECTING = "connecting";
+    private static final String STRING_WIFI_STATUS_AUTHENTICATING = "authenticating";
+    private static final String STRING_WIFI_STATUS_OBTAINING_IP_ADDRESS = "obtaining_ip_address";
+    private static final String STRING_WIFI_STATUS_CONNECTED = "connected";
+    private static final String[] STRING_ARRAY_WIFI_STATUS = new String[]{STRING_WIFI_STATUS_IDLE,
+            STRING_WIFI_STATUS_SCANNING, STRING_WIFI_STATUS_CONNECTING,
+            STRING_WIFI_STATUS_AUTHENTICATING, STRING_WIFI_STATUS_OBTAINING_IP_ADDRESS,
+            STRING_WIFI_STATUS_CONNECTED};
+
     private static final String LABEL_AUTO_CONNECTION_DISABLED = "Auto-Connection disabled";
     private static final String LABEL_METERED = "Metered";
     private static final String LABEL_UNMETERED = "Unmetered";
@@ -113,7 +141,6 @@
         TestLooper testLooper = new TestLooper();
         mTestHandler = new Handler(testLooper.getLooper());
         when(mMockContext.getResources()).thenReturn(mMockResources);
-        when(mMockContext.getString(R.string.wifitrackerlib_summary_separator)).thenReturn("/");
         when(mMockContext.getText(R.string.wifitrackerlib_imsi_protection_warning))
                 .thenReturn("IMSI");
         when(mMockContext.getSystemService(Context.CARRIER_CONFIG_SERVICE))
@@ -129,6 +156,30 @@
         when(mMockContext.getContentResolver()).thenReturn(mContentResolver);
         when(mContentResolver.getUserId()).thenReturn(0);
         when(mMockInjector.getNoAttributionAnnotationPackages()).thenReturn(Collections.emptySet());
+        when(mMockResources.getStringArray(R.array.wifitrackerlib_wifi_status))
+                .thenReturn(STRING_ARRAY_WIFI_STATUS);
+        when(mMockResources.getIdentifier(eq("network_available_sign_in"), eq("string"),
+                eq("android"))).thenReturn(ID_NETWORK_AVAILABLE_SIGN_IN);
+        when(mMockContext.getString(ID_NETWORK_AVAILABLE_SIGN_IN))
+                .thenReturn(STRING_NETWORK_AVAILABLE_SIGN_IN);
+        when(mMockContext.getString(R.string.wifitrackerlib_summary_separator))
+                .thenReturn(STRING_SUMMARY_SEPARATOR);
+        when(mMockContext.getString(R.string.wifi_connected_low_quality))
+                .thenReturn(STRING_CONNECTED_LOW_QUALITY);
+        when(mMockContext.getString(R.string.wifitrackerlib_wifi_limited_connection))
+                .thenReturn(STRING_LIMITED_CONNECTION);
+        when(mMockContext.getString(R.string.wifitrackerlib_checking_for_internet_access))
+                .thenReturn(STRING_CHECKING_FOR_INTERNET_ACCESS);
+        when(mMockContext.getString(R.string.wifitrackerlib_private_dns_broken))
+                .thenReturn(STRING_PRIVATE_DNS_BROKEN);
+        when(mMockContext.getString(R.string.wifitrackerlib_wifi_connected_cannot_provide_internet))
+                .thenReturn(STRING_CONNECTED_CANNOT_PROVIDE_INTERNET);
+        when(mMockContext.getString(R.string.wifitrackerlib_wifi_no_internet))
+                .thenReturn(STRING_NO_INTERNET);
+        when(mMockContext.getString(eq(R.string.wifitrackerlib_connected_via_app),
+                any())).thenAnswer((answer) -> STRING_CONNECTED_VIA_APP + answer.getArguments()[1]);
+        when(mMockContext.getString(eq(R.string.wifitrackerlib_available_via_app),
+                any())).thenAnswer((answer) -> STRING_AVAILABLE_VIA_APP + answer.getArguments()[1]);
     }
 
     @Test
@@ -581,4 +632,142 @@
         entry.updateConnectionInfo(mockWifiInfo, mockNetworkInfo);
         return entry;
     }
+
+    @Test
+    public void testGetConnectedDescription() {
+        WifiConfiguration wifiConfig = mock(WifiConfiguration.class);
+        NetworkCapabilities networkCapabilities = mock(NetworkCapabilities.class);
+        ConnectivityDiagnosticsManager.ConnectivityReport connectivityReport = mock(
+                ConnectivityDiagnosticsManager.ConnectivityReport.class);
+
+        // Not default. Do not show "Connected"
+        assertThat(Utils.getConnectedDescription(
+                mMockContext,
+                null,
+                null,
+                false,
+                false,
+                null)).isEmpty();
+
+        // Default but no info, return "Connected"
+        assertThat(Utils.getConnectedDescription(
+                mMockContext,
+                null,
+                null,
+                true,
+                false,
+                null)).isEqualTo(STRING_WIFI_STATUS_CONNECTED);
+
+        // Low quality
+        assertThat(Utils.getConnectedDescription(
+                mMockContext,
+                null,
+                null,
+                false,
+                true,
+                null)).isEqualTo(STRING_CONNECTED_LOW_QUALITY);
+
+        // No internet access
+        assertThat(Utils.getConnectedDescription(
+                mMockContext,
+                null,
+                networkCapabilities,
+                true,
+                false,
+                connectivityReport)).isEqualTo(STRING_WIFI_STATUS_CONNECTED
+                + STRING_SUMMARY_SEPARATOR + STRING_NO_INTERNET);
+
+        // Connected to device. Can't provide internet
+        when(wifiConfig.isNoInternetAccessExpected()).thenReturn(true);
+        assertThat(Utils.getConnectedDescription(
+                mMockContext,
+                wifiConfig,
+                networkCapabilities,
+                true,
+                false,
+                connectivityReport)).isEqualTo(STRING_CONNECTED_CANNOT_PROVIDE_INTERNET);
+
+        // Private DNS server cannot be accessed
+        when(networkCapabilities.isPrivateDnsBroken()).thenReturn(true);
+        assertThat(Utils.getConnectedDescription(
+                mMockContext,
+                wifiConfig,
+                networkCapabilities,
+                true,
+                false,
+                connectivityReport)).isEqualTo(STRING_PRIVATE_DNS_BROKEN);
+
+        // Checking for internet access...
+        when(wifiConfig.isNoInternetAccessExpected()).thenReturn(false);
+        assertThat(Utils.getConnectedDescription(
+                mMockContext,
+                wifiConfig,
+                networkCapabilities,
+                true,
+                false,
+                null)).isEqualTo(STRING_CHECKING_FOR_INTERNET_ACCESS);
+
+        // Limited connection
+        when(networkCapabilities.hasCapability(
+                NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY)).thenReturn(true);
+        assertThat(Utils.getConnectedDescription(
+                mMockContext,
+                wifiConfig,
+                networkCapabilities,
+                true,
+                false,
+                null)).isEqualTo(STRING_LIMITED_CONNECTION);
+
+        // Sign in to network
+        when(networkCapabilities.hasCapability(
+                NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL)).thenReturn(true);
+        assertThat(Utils.getConnectedDescription(
+                mMockContext,
+                wifiConfig,
+                networkCapabilities,
+                true,
+                false,
+                null)).isEqualTo(STRING_NETWORK_AVAILABLE_SIGN_IN);
+
+        // Connected via app + No internet access
+        WifiConfiguration suggestionConfig = new WifiConfiguration();
+        suggestionConfig.fromWifiNetworkSuggestion = true;
+        suggestionConfig.creatorName = "app";
+        when(mApplicationInfo.loadLabel(any())).thenReturn("appLabel");
+        when(networkCapabilities.isPrivateDnsBroken()).thenReturn(false);
+        when(networkCapabilities.hasCapability(
+                NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY)).thenReturn(false);
+        when(networkCapabilities.hasCapability(
+                NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL)).thenReturn(false);
+        assertThat(Utils.getConnectedDescription(
+                mMockContext,
+                suggestionConfig,
+                networkCapabilities,
+                true,
+                false,
+                connectivityReport)).isEqualTo(STRING_CONNECTED_VIA_APP + "appLabel"
+                + STRING_SUMMARY_SEPARATOR + STRING_NO_INTERNET);
+
+        // Connected via app + Low quality + No internet access
+        assertThat(Utils.getConnectedDescription(
+                mMockContext,
+                suggestionConfig,
+                networkCapabilities,
+                true,
+                true,
+                connectivityReport)).isEqualTo(STRING_CONNECTED_VIA_APP + "appLabel"
+                + STRING_SUMMARY_SEPARATOR + STRING_CONNECTED_LOW_QUALITY
+                + STRING_SUMMARY_SEPARATOR + STRING_NO_INTERNET);
+
+        // Available via app + Low quality + No internet access
+        assertThat(Utils.getConnectedDescription(
+                mMockContext,
+                suggestionConfig,
+                networkCapabilities,
+                false,
+                true,
+                connectivityReport)).isEqualTo(STRING_AVAILABLE_VIA_APP + "appLabel"
+                + STRING_SUMMARY_SEPARATOR + STRING_CONNECTED_LOW_QUALITY
+                + STRING_SUMMARY_SEPARATOR + STRING_NO_INTERNET);
+    }
 }