Snap for 5791668 from 11cdd596e5c607a638cbd26556eef8a85e92b9c6 to qt-c2f2-release

Change-Id: I4a60a4fe5f184f9b5b7366fe45b4ca32f3074ecb
diff --git a/acts/framework/acts/test_utils/wifi/wifi_test_utils.py b/acts/framework/acts/test_utils/wifi/wifi_test_utils.py
index b2ae9a4..6e29e61 100755
--- a/acts/framework/acts/test_utils/wifi/wifi_test_utils.py
+++ b/acts/framework/acts/test_utils/wifi/wifi_test_utils.py
@@ -44,7 +44,6 @@
 SHORT_TIMEOUT = 30
 ROAMING_TIMEOUT = 30
 WIFI_CONNECTION_TIMEOUT_DEFAULT = 30
-WIFI_ABNORMAL_CONNECTION_TIME = 10
 # Speed of light in m/s.
 SPEED_OF_LIGHT = 299792458
 
@@ -1166,9 +1165,7 @@
     if id is None and ssid is None:
         for i in range(tries):
             try:
-                start = time.time()
                 conn_result = ad.ed.pop_event(wifi_constants.WIFI_CONNECTED, 30)
-                _assert_connection_time(start)
                 break
             except Empty:
                 pass
@@ -1176,25 +1173,16 @@
     # If ssid or network id is specified, wait for specific connect event.
         for i in range(tries):
             try:
-                start = time.time()
                 conn_result = ad.ed.pop_event(wifi_constants.WIFI_CONNECTED, 30)
                 if id and conn_result['data'][WifiEnums.NETID_KEY] == id:
-                    _assert_connection_time(start)
                     break
                 elif ssid and conn_result['data'][WifiEnums.SSID_KEY] == ssid:
-                    _assert_connection_time(start)
                     break
             except Empty:
                 pass
 
     return conn_result
 
-def _assert_connection_time(start):
-    duration = time.time() - start
-    asserts.assert_true(
-        duration < WIFI_ABNORMAL_CONNECTION_TIME,
-        "Took " + str(duration) + "s to connect to network, " +
-        " expected " + str(WIFI_ABNORMAL_CONNECTION_TIME))
 
 def wait_for_disconnect(ad, timeout=10):
     """Wait for a disconnect event within the specified timeout.
@@ -1430,6 +1418,7 @@
     finally:
         ad.droid.wifiStopTrackingStateChange()
 
+
 def wifi_connect_using_network_request(ad, network, network_specifier,
                                        num_of_tries=3, assert_on_fail=True):
     """Connect an Android device to a wifi network using network request.
diff --git a/acts/tests/google/wifi/WifiNetworkSuggestionTest.py b/acts/tests/google/wifi/WifiNetworkSuggestionTest.py
index 6d97c7e..27f859c 100755
--- a/acts/tests/google/wifi/WifiNetworkSuggestionTest.py
+++ b/acts/tests/google/wifi/WifiNetworkSuggestionTest.py
@@ -57,10 +57,10 @@
     def setup_class(self):
         self.dut = self.android_devices[0]
         wutils.wifi_test_device_init(self.dut)
-        req_params = ["radius_conf_2g", "radius_conf_5g", "ca_cert",
-                      "eap_identity", "eap_password",]
+        req_params = []
         opt_param = [
-            "open_network", "reference_networks"
+            "open_network", "reference_networks", "radius_conf_2g", "radius_conf_5g", "ca_cert",
+            "eap_identity", "eap_password"
         ]
         self.unpack_userparams(
             req_param_names=req_params, opt_param_names=opt_param)
@@ -74,24 +74,27 @@
         asserts.assert_true(
             len(self.reference_networks) > 0,
             "Need at least one reference network with psk.")
-        self.wpa_psk_2g = self.reference_networks[0]["2g"]
-        self.wpa_psk_5g = self.reference_networks[0]["5g"]
-        self.open_2g = self.open_network[0]["2g"]
-        self.open_5g = self.open_network[0]["5g"]
-        self.ent_network_2g = self.ent_networks[0]["2g"]
-        self.ent_network_5g = self.ent_networks[0]["5g"]
-        self.config_aka = {
-            Ent.EAP: int(EAP.AKA),
-            WifiEnums.SSID_KEY: self.ent_network_2g[WifiEnums.SSID_KEY],
-        }
-        self.config_ttls = {
-            Ent.EAP: int(EAP.TTLS),
-            Ent.CA_CERT: self.ca_cert,
-            Ent.IDENTITY: self.eap_identity,
-            Ent.PASSWORD: self.eap_password,
-            Ent.PHASE2: int(EapPhase2.MSCHAPV2),
-            WifiEnums.SSID_KEY: self.ent_network_2g[WifiEnums.SSID_KEY],
-        }
+        if hasattr(self, "reference_networks"):
+            self.wpa_psk_2g = self.reference_networks[0]["2g"]
+            self.wpa_psk_5g = self.reference_networks[0]["5g"]
+        if hasattr(self, "open_network"):
+            self.open_2g = self.open_network[0]["2g"]
+            self.open_5g = self.open_network[0]["5g"]
+        if hasattr(self, "ent_networks"):
+            self.ent_network_2g = self.ent_networks[0]["2g"]
+            self.ent_network_5g = self.ent_networks[0]["5g"]
+            self.config_aka = {
+                Ent.EAP: int(EAP.AKA),
+                WifiEnums.SSID_KEY: self.ent_network_2g[WifiEnums.SSID_KEY],
+            }
+            self.config_ttls = {
+                Ent.EAP: int(EAP.TTLS),
+                Ent.CA_CERT: self.ca_cert,
+                Ent.IDENTITY: self.eap_identity,
+                Ent.PASSWORD: self.eap_password,
+                Ent.PHASE2: int(EapPhase2.MSCHAPV2),
+                WifiEnums.SSID_KEY: self.ent_network_2g[WifiEnums.SSID_KEY],
+            }
         self.dut.droid.wifiRemoveNetworkSuggestions([])
 
     def setup_test(self):
@@ -173,6 +176,26 @@
             self.dut.droid.wifiStopTrackingNetworkSuggestionStateChange()
         self.dut.ed.clear_all_events()
 
+    def remove_suggestions_disconnect_and_ensure_no_connection_back(self,
+                                                                    network_suggestions,
+                                                                    expected_ssid):
+        self.dut.log.info("Removing network suggestions")
+        asserts.assert_true(
+            self.dut.droid.wifiRemoveNetworkSuggestions(network_suggestions),
+            "Failed to remove suggestions")
+        # Ensure we did not disconnect
+        wutils.ensure_no_disconnect(self.dut)
+
+        # Trigger a disconnect and wait for the disconnect.
+        self.dut.droid.wifiDisconnect()
+        wutils.wait_for_disconnect(self.dut)
+        self.dut.ed.clear_all_events()
+
+        # Now ensure that we didn't connect back.
+        asserts.assert_false(
+            wutils.wait_for_connect(self.dut, expected_ssid, assert_on_fail=False),
+            "Device should not connect back")
+
     def _test_connect_to_wifi_network_reboot_config_store(self,
                                                           network_suggestions,
                                                           wifi_network):
@@ -192,20 +215,8 @@
 
         wutils.wait_for_connect(self.dut, wifi_network[WifiEnums.SSID_KEY])
 
-        # Remove suggestion trigger disconnect and wait for the disconnect.
-        self.dut.log.info("Removing network suggestions")
-        asserts.assert_true(
-            self.dut.droid.wifiRemoveNetworkSuggestions(network_suggestions),
-            "Failed to remove suggestions")
-        wutils.wait_for_disconnect(self.dut)
-        self.dut.ed.clear_all_events()
-
-        # Now ensure that we didn't connect back.
-        asserts.assert_false(
-            wutils.wait_for_connect(self.dut,
-                                    wifi_network[WifiEnums.SSID_KEY],
-                                    assert_on_fail=False),
-            "Device should not connect back")
+        self.remove_suggestions_disconnect_and_ensure_no_connection_back(
+            network_suggestions, wifi_network[WifiEnums.SSID_KEY])
 
     @test_tracker_info(uuid="bda8ed20-4382-4380-831a-64cf77eca108")
     def test_connect_to_wpa_psk_2g(self):
@@ -222,20 +233,8 @@
             [self.wpa_psk_2g], self.wpa_psk_2g[WifiEnums.SSID_KEY],
             False)
 
-        # Remove suggestion trigger disconnect and wait for the disconnect.
-        self.dut.log.info("Removing network suggestions");
-        asserts.assert_true(
-            self.dut.droid.wifiRemoveNetworkSuggestions([self.wpa_psk_2g]),
-            "Failed to remove suggestions")
-        wutils.wait_for_disconnect(self.dut)
-        self.dut.ed.clear_all_events()
-
-        # Now ensure that we didn't connect back.
-        asserts.assert_false(
-            wutils.wait_for_connect(self.dut,
-                                    self.wpa_psk_2g[WifiEnums.SSID_KEY],
-                                    assert_on_fail=False),
-            "Device should not connect back")
+        self.remove_suggestions_disconnect_and_ensure_no_connection_back(
+            [self.wpa_psk_2g], self.wpa_psk_2g[WifiEnums.SSID_KEY])
 
     @test_tracker_info(uuid="f54bc250-d9e9-4f00-8b5b-b866e8550b43")
     def test_connect_to_highest_priority(self):
@@ -262,13 +261,8 @@
             self.wpa_psk_2g[WifiEnums.SSID_KEY],
             None)
 
-        # Remove all suggestions trigger disconnect and wait for the disconnect.
-        self.dut.log.info("Removing network suggestions")
-        asserts.assert_true(
-            self.dut.droid.wifiRemoveNetworkSuggestions([]),
-            "Failed to remove suggestions")
-        wutils.wait_for_disconnect(self.dut)
-        self.dut.ed.clear_all_events()
+        self.remove_suggestions_disconnect_and_ensure_no_connection_back(
+            [], self.wpa_psk_2g[WifiEnums.SSID_KEY])
 
         # Reverse the priority.
         # Add suggestions & wait for the connection event.
@@ -296,21 +290,8 @@
         self.add_suggestions_and_ensure_connection(
             [network_suggestion], self.wpa_psk_2g[WifiEnums.SSID_KEY],
             True)
-
-        # Remove suggestion trigger disconnect and wait for the disconnect.
-        self.dut.log.info("Removing network suggestions");
-        asserts.assert_true(
-            self.dut.droid.wifiRemoveNetworkSuggestions([network_suggestion]),
-            "Failed to remove suggestions")
-        wutils.wait_for_disconnect(self.dut)
-        self.dut.ed.clear_all_events()
-
-        # Now ensure that we didn't connect back.
-        asserts.assert_false(
-            wutils.wait_for_connect(self.dut,
-                                    self.wpa_psk_2g[WifiEnums.SSID_KEY],
-                                    assert_on_fail=False),
-            "Device should not connect back")
+        self.remove_suggestions_disconnect_and_ensure_no_connection_back(
+            [self.wpa_psk_2g], self.wpa_psk_2g[WifiEnums.SSID_KEY])
 
     @test_tracker_info(uuid="a036a24d-29c0-456d-ae6a-afdde34da710")
     def test_connect_to_wpa_psk_5g_reboot_config_store(self):
@@ -439,7 +420,7 @@
             [network_suggestion], self.wpa_psk_2g[WifiEnums.SSID_KEY],
             True)
 
-        # Simulate user forgeting the ephemeral network.
+        # Simulate user forgetting the ephemeral network.
         self.dut.droid.wifiDisableEphemeralNetwork(
             self.wpa_psk_2g[WifiEnums.SSID_KEY])
         wutils.wait_for_disconnect(self.dut)