[WifiStressTest]Add STA On/Off stress test under airplane mode

Bug: 208387281

Test: Verify locally
Change-Id: Ib91807034039faab21682fd8014003dd980a1698
diff --git a/acts_tests/tests/google/wifi/WifiStressTest.py b/acts_tests/tests/google/wifi/WifiStressTest.py
index 87417f8..81a3511 100644
--- a/acts_tests/tests/google/wifi/WifiStressTest.py
+++ b/acts_tests/tests/google/wifi/WifiStressTest.py
@@ -34,9 +34,10 @@
 
 WAIT_FOR_AUTO_CONNECT = 40
 WAIT_BEFORE_CONNECTION = 30
-
-TIMEOUT = 5
+DEFAULT_TIMEOUT = 10
 PING_ADDR = 'www.google.com'
+BAND_2GHZ = 0
+BAND_5GHZ = 1
 
 class WifiStressTest(WifiBaseTest):
     """WiFi Stress test class.
@@ -96,6 +97,10 @@
         self.dut.droid.wakeLockRelease()
         self.dut.droid.goToSleepNow()
         wutils.reset_wifi(self.dut)
+        self.log.debug("Toggling Airplane mode OFF")
+        asserts.assert_true(
+            acts.utils.force_airplane_mode(self.dut, False),
+            "Can not turn airplane mode off: %s" % self.dut.serial)
 
     def teardown_class(self):
         wutils.reset_wifi(self.dut)
@@ -535,3 +540,38 @@
         wutils.set_attns(self.attenuators, "default")
         raise signals.TestPass(details="", extras={"Iterations":"%d" %
             self.stress_count, "Pass":"%d" %(count+1)})
+
+    @test_tracker_info(uuid="c880e742-8d20-4134-b717-5b6d45f6c337")
+    def test_2g_sta_wifi_on_off_under_airplane_mode(self):
+        """Toggle WiFi state ON and OFF for N times when airplane mode ON."""
+        self.scan_and_connect_by_ssid(self.dut, self.wpa_2g)
+        self.log.debug("Toggling Airplane mode ON")
+        asserts.assert_true(
+            acts.utils.force_airplane_mode(self.dut, True),
+            "Can not turn on airplane mode on: %s" % self.dut.serial)
+        time.sleep(DEFAULT_TIMEOUT)
+        for count in range(self.stress_count):
+            """Test toggling wifi"""
+            try:
+                self.log.debug("Going from on to off.")
+                wutils.wifi_toggle_state(self.dut, False)
+                self.log.debug("Going from off to on.")
+                startTime = time.time()
+                wutils.wifi_toggle_state(self.dut, True)
+                startup_time = time.time() - startTime
+                self.log.debug("WiFi was enabled on the device in %s s." %
+                    startup_time)
+                time.sleep(DEFAULT_TIMEOUT)
+                # Start IPerf traffic from phone to server.
+                # Upload data for 10s.
+                args = "-p {} -t {}".format(self.iperf_server_port, 10)
+                self.log.info("Running iperf client {}".format(args))
+                result, data = self.dut.run_iperf_client(self.iperf_server_address, args)
+                if not result:
+                    self.log.debug("Error occurred in iPerf traffic.")
+                    self.run_ping(10)
+            except:
+                signals.TestFailure(details="", extras={"Iterations":"%d" %
+                    self.stress_count, "Pass":"%d" %count})
+        raise signals.TestPass(details="", extras={"Iterations":"%d" %
+            self.stress_count, "Pass":"%d" %(count+1)})
\ No newline at end of file