def test_fake_emergency_call_by_emergency_dialer_wfc_apm_off_with_ecbm_call_block(
            self):
        """Test emergency call with emergency dialer in user account.

        Configure DUT in WFC APM off.
        Add system emergency number list with fake emergency number.
        Configure allow_non_emergency_calls_in_ecm_bool false.
        Use the emergency dialer to call fake emergency number and hung up before connect.
        Verify DUT cannot make call in ecbm mode.
        Verify DUT can make call out of ecbm mode.

        Returns:
            True if success.
            False if failed.
        """
        if CAPABILITY_WFC not in operator_capabilities.get(
                self.dut_operator, operator_capabilities["default"]):
            raise signals.TestSkip("WFC is not supported for carrier %s" %
                                   self.dut_operator)
        if self.dut_operator != "tmo":
            raise signals.TestSkip(
                "WFC in non-APM is not supported for carrier %s" %
                self.dut_operator)
        if not phone_setup_iwlan(
                self.log, self.dut, False, WFC_MODE_WIFI_PREFERRED,
                self.wifi_network_ssid, self.wifi_network_pass):
            self.dut.log.error("Failed to setup WFC.")
            return False
        self.set_ims_first("false")
        return self.check_emergency_call_back_mode(
            non_emergency_call_allowed=False)
Esempio n. 2
0
 def _setup_phone_active_call_wfc(self,
                                  ad,
                                  ssid,
                                  password,
                                  airplane_mode,
                                  wfc_mode,
                                  setup_volte=False):
     if setup_volte and (not phone_setup_volte(self.log, ad)):
         self.log.error("Phone failed to setup VoLTE.")
         return False
     if not phone_setup_iwlan(self.log, ad, airplane_mode, wfc_mode, ssid,
                              password):
         self.log.error("DUT Failed to Set Up WiFi Calling")
         return False
     ensure_phones_idle(self.log, [ad, self.android_devices[1]])
     if not phone_idle_iwlan(self.log, ad):
         self.log.error("DUT not in WFC enabled state.")
         return False
     if not call_setup_teardown(self.log,
                                ad,
                                self.android_devices[1],
                                ad_hangup=None,
                                verify_caller_func=is_phone_in_call_iwlan):
         self.log.error("Setup Call failed.")
         return False
     ad.droid.goToSleepNow()
     return True
    def test_fake_emergency_call_by_emergency_dialer_wfc_apm_off(self):
        """Test emergency call with emergency dialer in user account.

        Configure DUT in WFC APM off.
        Add system emergency number list with fake emergency number.
        Use the emergency dialer to call fake emergency number.
        Verify DUT has in call activity.
        Bring DUT to normal state and make regular call.

        Returns:
            True if success.
            False if failed.
        """
        if CAPABILITY_WFC not in operator_capabilities.get(
                self.dut_operator, operator_capabilities["default"]):
            raise signals.TestSkip("WFC is not supported for carrier %s" %
                                   self.dut_operator)
        if self.dut_operator != "tmo":
            raise signals.TestSkip(
                "WFC in non-APM is not supported for carrier %s" %
                self.dut_operator)
        if not phone_setup_iwlan(
                self.log, self.dut, False, WFC_MODE_WIFI_PREFERRED,
                self.wifi_network_ssid, self.wifi_network_pass):
            self.dut.log.error("Failed to setup WFC.")
            return False
        self.set_ims_first("false")
        return self.fake_emergency_call_test() and self.check_normal_call()
Esempio n. 4
0
 def _idle_wfc_2g_apm(ad):
     if not phone_setup_iwlan(
             self.log, ad, True, WFC_MODE_WIFI_PREFERRED,
             self.wifi_network_ssid_2g, self.wifi_network_pass_2g):
         self.log.error("Phone failed to setup WFC.")
         return False
     ad.droid.goToSleepNow()
     return True
Esempio n. 5
0
 def _setup_wfc_apm(self):
     for ad in self.android_devices:
         if not phone_setup_iwlan(
                 self.log, ad, True, WFC_MODE_CELLULAR_PREFERRED,
                 self.wifi_network_ssid, self.wifi_network_pass):
             ad.log.error("Failed to setup WFC.")
             return False
     return True
 def setup_wfc_apm(self):
     if CAPABILITY_WFC not in self.dut_capabilities:
         raise signals.TestSkip("WFC is not supported, abort test.")
     if not phone_setup_iwlan(self.log, self.dut, True,
                              self.dut_wfc_modes[0], self.wifi_network_ssid,
                              self.wifi_network_pass):
         self.dut.log.error("Failed to setup WFC.")
         raise signals.TestFailure("Failed to setup WFC in APM")
     self.dut.log.info("Phone is in WFC enabled state.")
     return True
 def setup_wfc_non_apm(self):
     if CAPABILITY_WFC not in self.dut_capabilities and (
             WFC_MODE_WIFI_PREFERRED not in self.dut_wfc_modes):
         raise signals.TestSkip(
             "WFC in non-APM is not supported, abort test.")
     if not phone_setup_iwlan(
             self.log, self.dut, False, WFC_MODE_WIFI_PREFERRED,
             self.wifi_network_ssid, self.wifi_network_pass):
         self.dut.log.error("Failed to setup WFC.")
         raise signals.TestFailure("Failed to setup WFC in non-APM")
     self.dut.log.info("Phone is in WFC enabled state.")
     return True
Esempio n. 8
0
 def _check_wfc_apm(self):
     if CAPABILITY_WFC in self.dut_capabilities:
         self.log.info("Check WFC in APM")
         if not phone_setup_iwlan(
                 self.log, self.dut, True, WFC_MODE_CELLULAR_PREFERRED,
                 self.wifi_network_ssid, self.wifi_network_pass):
             self.log.error("Failed to setup WFC.")
             return False
         if not call_setup_teardown(self.log, self.dut, self.ad_reference,
                                    self.dut, is_phone_in_call_iwlan):
             self.log.error("WFC Call Failed.")
             return False
         else:
             return True
     return False
 def _check_wfc(self, ad, ad_reference):
     if (CAPABILITY_WFC in device_capabilities[self.dut_model] and
             CAPABILITY_WFC in operator_capabilities[self.dut_operator]):
         self.log.info("Check WFC")
         if not phone_setup_iwlan(self.log, ad, True, WFC_MODE_WIFI_PREFERRED,
             self.wifi_network_ssid, self.wifi_network_pass):
             self.log.error("Failed to setup WFC.")
             return False
         if not call_setup_teardown(self.log, ad, ad_reference, ad,
                                    is_phone_in_call_iwlan):
             self.log.error("WFC Call Failed.")
             return False
         if not sms_send_receive_verify(self.log, ad, ad_reference,
                                        [rand_ascii_str(50)]):
             self.log.error("SMS failed")
             return False
     return True
    def test_lte_wfc_enabled_wifi_connected_toggle_volte(self):
        """Test for WiFi Calling settings:
        LTE + VoLTE Enabled + WiFi Connected + WFC enabled, toggle VoLTE setting

        Steps:
        1. Setup DUT Idle, LTE network type, VoLTE enabled.
        2. Make sure DUT WiFi connected, WFC enabled (WiFi Preferred).
            Verify DUT WFC available, report iwlan rat.
        3. Disable VoLTE on DUT, verify in 2 minutes period,
            DUT does not lost WiFi Calling, DUT still report WFC available,
            rat iwlan.
        4. Enable VoLTE on DUT, verify in 2 minutes period,
            DUT does not lost WiFi Calling, DUT still report WFC available,
            rat iwlan.

        Expected Results:
        2. DUT WiFi Calling feature bit return True, network rat is iwlan.
        3. DUT WiFi Calling feature bit return True, network rat is iwlan.
        4. DUT WiFi Calling feature bit return True, network rat is iwlan.
        """
        if not phone_setup_volte(self.log, self.ad):
            self.log.error("Failed to setup VoLTE.")
            return False
        if not phone_setup_iwlan(self.log, self.ad, False,
                                 WFC_MODE_WIFI_PREFERRED,
                                 self.wifi_network_ssid,
                                 self.wifi_network_pass):
            self.log.error("Failed to setup WFC.")
            return False
        # Turn Off VoLTE, then Turn On VoLTE
        for i in range(2):
            if not toggle_volte(self.log, self.ad):
                self.log.error("Failed to toggle VoLTE.")
                return False
            if wait_for_wfc_disabled(self.log, self.ad):
                self.log.error("WFC is not available.")
                return False
            if not is_droid_in_rat_family(self.log, self.ad, RAT_FAMILY_WLAN,
                                          NETWORK_SERVICE_DATA):
                self.log.error("Data Rat is not iwlan.")
                return False
        return True
    def _set_user_profile_before_ota(self):
        ad = self.android_devices[0]
        if not phone_setup_iwlan_cellular_preferred(
                self.log, ad, self.wifi_network_ssid, self.wifi_network_pass):
            ad.log.error("Failed to setup WFC to %s.",
                         WFC_MODE_CELLULAR_PREFERRED)
        if len(self.android_devices) > 1:
            ad = self.android_devices[1]
            if not phone_setup_iwlan(
                    self.log, ad, True, WFC_MODE_WIFI_PREFERRED,
                    self.wifi_network_ssid, self.wifi_network_pass):
                ad.log.error("Failed to setup WFC to %s.",
                             WFC_MODE_WIFI_PREFERRED)

        if ad.droid.imsIsEnhanced4gLteModeSettingEnabledByPlatform():
            ad.droid.imsSetEnhanced4gMode(False)
            state = ad.droid.imsIsEnhanced4gLteModeSettingEnabledByUser()
            ad.log.info("Enhanced 4G LTE Setting is %s",
                        "on" if state else "off")
            if state:
                ad.log.error("Expecting Enhanced 4G LTE Setting off")
    def test_fake_emergency_call_by_emergency_dialer_wfc_apm_ecbm(self):
        """Test emergency call with emergency dialer in user account.

        Configure DUT in WFC APM on.
        Add system emergency number list with fake emergency number.
        Turn off emergency call IMS first.
        Configure allow_non_emergency_calls_in_ecm_bool false.
        Use the emergency dialer to call fake emergency number and hung up before connect.
        Verify DUT voice and data in ecbm mode.

        Returns:
            True if success.
            False if failed.
        """
        if CAPABILITY_WFC not in operator_capabilities.get(
                self.dut_operator, operator_capabilities["default"]):
            raise signals.TestSkip("WFC is not supported for carrier %s" %
                                   self.dut_operator)
        if not phone_setup_iwlan(
                self.log, self.dut, True, WFC_MODE_WIFI_PREFERRED,
                self.wifi_network_ssid, self.wifi_network_pass):
            self.dut.log.error("Failed to setup WFC.")
            return False
        return self.check_emergency_call_back_mode()