Files
appium/test/functional/android/toggle-specs.js
2014-05-13 19:03:17 +08:00

58 lines
1.9 KiB
JavaScript

"use strict";
var setup = require("../common/setup-base")
, getAppPath = require('../../helpers/app').getAppPath;
module.exports = {
app: getAppPath('TestApp')
};
var desired = {
app: getAppPath('ToggleTest'),
appPackage: 'com.example.toggletest',
appActivity: '.MainActivity',
newCommandTimeout: 90
};
var toggleTest = function (promisedBrowser, displayName, toggleElementName, toggleMethod) {
return function () {
var driver;
promisedBrowser.then(function (d) { driver = d; });
var initialValue;
it('should toggle ' + displayName, function (done) {
driver
.elementByName(toggleElementName).text().then(function (txt) {
initialValue = txt;
return driver[toggleMethod]();
})
.then(function () {
return driver.elementByName(toggleElementName).text().then(function (txt) {
txt.should.equal(initialValue === "ON" ? "OFF" : "ON");
});
})
.nodeify(done);
});
it('should toggle ' + displayName + ' back to initial value', function (done) {
driver[toggleMethod]()
.then(function () {
return driver.elementByName(toggleElementName).text().then(function (txt) {
txt.should.equal(initialValue);
});
})
.nodeify(done);
});
};
};
describe('toggles', function () {
var promisedBrowser = setup(this, desired);
describe('toggle cellular data', toggleTest(promisedBrowser, "cellular data", "data_toggle", "toggleData"));
describe('toggle Flight Mode', toggleTest(promisedBrowser, "Flight Mode", "flight_toggle", "toggleFlightMode"));
// toggle Wi-Fi doesn't work on emulator, real device only.
describe('toggle Wi-Fi @skip-android-all', toggleTest(promisedBrowser, "Wi-Fi", "wifi_toggle", "toggleWiFi"));
describe('toggle Location Services', toggleTest(promisedBrowser, "Location Services", "gps_toggle", "toggleLocationServices"));
});