tenfourfox/dom/wifi/test/marionette/test_wifi_tethering_wifi_active.js
Cameron Kaiser c9b2922b70 hello FPR
2017-04-19 00:56:45 -07:00

74 lines
2.6 KiB
JavaScript

/* 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));
});