Add check environment in TelLivePreflightTest and fix bugs.

1. Add check environment in TelLivePreflightTest.
2. Fix bugs for abort_all in TelLivePreflightTest.

BUG: 28937981
BUG: 28848179
Change-Id: Ie85cb011170bc616e3c9db4d90e281311a36f022
diff --git a/acts/tests/google/tel/live/TelLivePreflightTest.py b/acts/tests/google/tel/live/TelLivePreflightTest.py
index 08dfb2d..187848b 100644
--- a/acts/tests/google/tel/live/TelLivePreflightTest.py
+++ b/acts/tests/google/tel/live/TelLivePreflightTest.py
@@ -34,15 +34,20 @@
 from acts.test_utils.tel.tel_defines import WAIT_TIME_AFTER_REBOOT
 from acts.test_utils.tel.tel_lookup_tables import device_capabilities
 from acts.test_utils.tel.tel_lookup_tables import operator_capabilities
+from acts.test_utils.tel.tel_test_utils import WifiUtils
 from acts.test_utils.tel.tel_test_utils import ensure_phones_default_state
+from acts.test_utils.tel.tel_test_utils import ensure_wifi_connected
 from acts.test_utils.tel.tel_test_utils import get_operator_name
 from acts.test_utils.tel.tel_test_utils import setup_droid_properties
 from acts.test_utils.tel.tel_test_utils import set_phone_screen_on
 from acts.test_utils.tel.tel_test_utils import set_phone_silent_mode
 from acts.test_utils.tel.tel_test_utils import toggle_airplane_mode
+from acts.test_utils.tel.tel_test_utils import verify_http_connection
 from acts.test_utils.tel.tel_test_utils import wait_for_voice_attach_for_subscription
+from acts.test_utils.tel.tel_test_utils import wait_for_wifi_data_connection
 from acts.test_utils.tel.tel_voice_utils import phone_setup_volte
 from acts.utils import load_config
+from acts.asserts import abort_all
 
 
 class TelLivePreflightTest(TelephonyBaseTest):
@@ -51,7 +56,31 @@
 
         self.simconf = load_config(self.user_params["sim_conf_file"])
 
+        self.wifi_network_ssid = self.user_params["wifi_network_ssid"]
+        try:
+            self.wifi_network_pass = self.user_params["wifi_network_pass"]
+        except KeyError:
+            self.wifi_network_pass = None
+
     """ Tests Begin """
+    @TelephonyBaseTest.tel_test_wrap
+    def test_check_environment(self):
+        ad = self.android_devices[0]
+        # Check WiFi environment.
+        # 1. Connect to WiFi.
+        # 2. Check WiFi have Internet access.
+        toggle_airplane_mode(self.log, ad, True)
+        try:
+            if not ensure_wifi_connected(self.log, ad, self.wifi_network_ssid,
+                                         self.wifi_network_pass):
+                abort_all("WiFi connect fail.")
+            if (not wait_for_wifi_data_connection(self.log, ad, True) or
+                    not verify_http_connection(self.log, ad)):
+                abort_all("Data not available on WiFi.")
+        finally:
+            WifiUtils.wifi_toggle_state(self.log, ad, False)
+        # TODO: add more environment check here.
+        return True
 
     @TelephonyBaseTest.tel_test_wrap
     def test_pre_flight_check(self):
@@ -150,12 +179,12 @@
                                 CAPABILITY_WFC: droid_has_wifi_calling,
                                 CAPABILITY_VT: droid_has_vt
                         }[capability](self.log, ad):
-                            self.abort_all(
+                            abort_all(
                                 "Pre-flight check FAILED for <{}>, <{}:{}>."
                                 " Failed Check: <{}>".format(
                                     operator, model, ad.serial, capability))
         except Exception as e:
-            self.abort_all("Pre-flight check exception: {}".format(e))
+            abort_all("Pre-flight check exception: {}".format(e))
         return True