Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
174 lines
4.3 KiB
JavaScript
Executable file
174 lines
4.3 KiB
JavaScript
Executable file
'use strict';
|
|
var Base = require('../base');
|
|
var LanguagePanel = require('./language');
|
|
|
|
/**
|
|
* Abstraction around settings root panel
|
|
* @constructor
|
|
* @param {Marionette.Client} client for operations.
|
|
*/
|
|
function RootPanel(client) {
|
|
|
|
// Call the Base constructor to initiate base class.
|
|
Base.call(this, client, null, RootPanel.Selectors);
|
|
|
|
}
|
|
|
|
module.exports = RootPanel;
|
|
|
|
RootPanel.Selectors = {
|
|
'airplaneModeCheckbox': '.airplaneMode-input',
|
|
'airplaneModeMenuItem': '#menuItem-airplaneMode',
|
|
'applicationStorageDesc': '.application-storage-desc',
|
|
'batteryDesc': '.battery-desc',
|
|
'bluetoothDesc': '.bluetooth-desc',
|
|
'firefoxAccountDesc': '#fxa-desc',
|
|
'geolocationCheckbox': 'gaia-switch[name="geolocation.enabled"]',
|
|
'languageDesc': '.language-desc',
|
|
'mediaStorageDesc': '.media-storage-desc',
|
|
'simManagerItem': '#simCardManager-settings',
|
|
'simSecurityItem': '#simSecurity-settings',
|
|
'screenLockDesc': '.screenLock-desc',
|
|
'wifiDesc': '#wifi-desc',
|
|
'nfcCheckbox': '#nfc-input'
|
|
};
|
|
|
|
RootPanel.prototype = {
|
|
|
|
__proto__: Base.prototype,
|
|
|
|
// application storage
|
|
get applicationStorageDesc() {
|
|
return this.waitForElement('applicationStorageDesc').text();
|
|
},
|
|
|
|
// airplane mode
|
|
airplaneMode: function(enabled) {
|
|
var self = this;
|
|
|
|
this.client.waitFor(function() {
|
|
return self.airplaneModeCheckboxEnabled;
|
|
});
|
|
|
|
if (enabled !== this.airplaneModeCheckboxChecked) {
|
|
this.waitForElement('airplaneModeCheckbox').click();
|
|
this.client.waitFor(function() {
|
|
return enabled === self.airplaneModeCheckboxChecked;
|
|
});
|
|
}
|
|
|
|
// make sure we would wait for two more status here
|
|
if (enabled === true) {
|
|
this.client.waitFor(function() {
|
|
return self.WiFiDesc === 'Disabled';
|
|
});
|
|
this.client.waitFor(function() {
|
|
return self.bluetoothDesc === 'Turned off';
|
|
});
|
|
}
|
|
},
|
|
|
|
get airplaneModeCheckboxChecked() {
|
|
return !!this.findElement('airplaneModeCheckbox').scriptWith(function(el) {
|
|
return el.wrappedJSObject.checked;
|
|
});
|
|
},
|
|
|
|
get airplaneModeCheckboxEnabled() {
|
|
return this.findElement('airplaneModeCheckbox').scriptWith(function(el) {
|
|
return !el.wrappedJSObject.hasAttribute('disabled');
|
|
});
|
|
},
|
|
|
|
// battery
|
|
get batteryDesc() {
|
|
return this.waitForElement('batteryDesc').text();
|
|
},
|
|
|
|
// bluetooth
|
|
get bluetoothDesc() {
|
|
return this.waitForElement('bluetoothDesc').text();
|
|
},
|
|
|
|
// firefox account
|
|
get firefoxAccountDesc() {
|
|
return this.waitForElement('firefoxAccountDesc').text();
|
|
},
|
|
|
|
// geolocation
|
|
geolocation: function(enabled) {
|
|
if (enabled !== this.geolocationCheckboxChecked) {
|
|
this.waitForElement('geolocationCheckbox').tap();
|
|
this.client.waitFor(function() {
|
|
return enabled === this.geolocationCheckboxChecked;
|
|
}.bind(this));
|
|
}
|
|
},
|
|
|
|
get geolocationCheckboxChecked() {
|
|
return !!this.findElement('geolocationCheckbox').scriptWith(function(el) {
|
|
return el.wrappedJSObject.checked;
|
|
});
|
|
},
|
|
|
|
get geolocationEnabledSetting() {
|
|
return this.client.settings.get('geolocation.enabled');
|
|
},
|
|
|
|
get wifiEnabledSetting() {
|
|
return this.client.settings.get('wifi.enabled');
|
|
},
|
|
|
|
get bluetoothEnabledSetting() {
|
|
return this.client.settings.get('bluetooth.enabled');
|
|
},
|
|
|
|
get nfcCheckboxChecked() {
|
|
return !!this.findElement('nfcCheckbox').scriptWith(function(el) {
|
|
return el.wrappedJSObject.checked;
|
|
});
|
|
},
|
|
|
|
// language
|
|
isLanguageDescTranslated: function(languageKey) {
|
|
if (!LanguagePanel.prototype._languageMap[languageKey]) {
|
|
return false;
|
|
}
|
|
|
|
var expected;
|
|
this.client.waitFor(function() {
|
|
expected = LanguagePanel.prototype._languageMap[languageKey].desc;
|
|
return this.languageDesc === expected;
|
|
}.bind(this));
|
|
return true;
|
|
},
|
|
|
|
get languageDesc() {
|
|
return this.findElement('languageDesc').text();
|
|
},
|
|
|
|
// media storage
|
|
get mediaStorageDesc() {
|
|
return this.waitForElement('mediaStorageDesc').text();
|
|
},
|
|
|
|
// screen lock
|
|
get screenLockDesc() {
|
|
return this.waitForElement('screenLockDesc').text();
|
|
},
|
|
|
|
// wifi
|
|
get WiFiDesc() {
|
|
return this.waitForElement('wifiDesc').text();
|
|
},
|
|
|
|
// sim manager
|
|
get isSimManagerItemVisible() {
|
|
return this.findElement('simManagerItem').displayed();
|
|
},
|
|
|
|
get isSimSecurityItemVisible() {
|
|
return this.findElement('simSecurityItem').displayed();
|
|
}
|
|
|
|
};
|