diff options
Diffstat (limited to 'dom/wifi/test/marionette/test_wifi_tethering_wifi_active.js')
-rw-r--r-- | dom/wifi/test/marionette/test_wifi_tethering_wifi_active.js | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/dom/wifi/test/marionette/test_wifi_tethering_wifi_active.js b/dom/wifi/test/marionette/test_wifi_tethering_wifi_active.js new file mode 100644 index 000000000..af0df01a0 --- /dev/null +++ b/dom/wifi/test/marionette/test_wifi_tethering_wifi_active.js @@ -0,0 +1,74 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +MARIONETTE_TIMEOUT = 60000; +MARIONETTE_HEAD_JS = 'head.js'; + +const TESTING_HOSTAPD = [{ ssid: 'ap0' }]; + +function connectToFirstNetwork() { + let firstNetwork; + return gTestSuite.requestWifiScan() + .then(function (networks) { + firstNetwork = networks[0]; + return gTestSuite.testAssociate(firstNetwork); + }) + .then(() => firstNetwork); +} + +gTestSuite.doTestTethering(function() { + let firstNetwork; + + return gTestSuite.ensureWifiEnabled(true) + // Start custom hostapd for testing. + .then(() => gTestSuite.startHostapds(TESTING_HOSTAPD)) + .then(() => gTestSuite.verifyNumOfProcesses('hostapd', TESTING_HOSTAPD.length)) + + // Connect to the testing AP and wait for data becoming disconnected. + .then(function () { + return Promise.all([ + // 1) Set up the event listener first: + // RIL data should become disconnected after connecting to wifi. + gTestSuite.waitForRilDataConnected(false), + + // 2) Connect to the first scanned network. + connectToFirstNetwork() + .then(aFirstNetwork => firstNetwork = aFirstNetwork) + ]); + }) + .then(function() { + return Promise.all([ + // 1) Set up the event listeners first: + // Wifi should be turned off and RIL data should be connected. + gTestSuite.waitForWifiManagerEventOnce('disabled'), + gTestSuite.waitForRilDataConnected(true), + + // 2) Start wifi tethering. + gTestSuite.requestTetheringEnabled(true) + ]); + }) + .then(function() { + return Promise.all([ + // 1) Set up the event listeners first: + // Wifi should be enabled, RIL data should become disconnected and + // we should connect to an wifi AP. + gTestSuite.waitForWifiManagerEventOnce('enabled'), + + // Due to Bug 1168285, after re-enablin wifi, the remembered network + // will not be connected automatically. Leave "auto connect test" + // covered by test_wifi_auto_connect.js. + //gTestSuite.waitForRilDataConnected(false), + //gTestSuite.waitForConnected(firstNetwork), + + // 2) Stop wifi tethering. + gTestSuite.requestTetheringEnabled(false) + ]); + }) + // Remove wlan0 from default route by disabling wifi. Otherwise, + // it will cause the subsequent test cases loading page error. + .then(() => gTestSuite.requestWifiEnabled(false)) + + // Kill running hostapd. + .then(gTestSuite.killAllHostapd) + .then(() => gTestSuite.verifyNumOfProcesses('hostapd', 0)); +});
\ No newline at end of file |