Files
appium/test/functional/android/apidemos/ime-specs.js
T
2014-06-26 09:13:06 -07:00

65 lines
1.8 KiB
JavaScript

"use strict";
var setup = require("../../common/setup-base")
, _ = require('underscore');
// running batched will pull `unicodeKeyboard` into all tests
var getAppPath = require('../../../helpers/app').getAppPath;
var ucDesired = {
app: getAppPath('ApiDemos'),
device: 'Android',
unicodeKeyboard: true,
resetKeyboard: true
};
describe("apidemo - ime", function () {
var unicodeImeId = 'io.appium.android.ime/.UnicodeIME'
, latinImeId = 'com.android.inputmethod.latin/.LatinIME'
, driver;
setup(this, _.defaults({appActivity: "view.Controls1" }, ucDesired))
.then(function (d) { driver = d; });
beforeEach(function (done) {
driver.resetApp().nodeify(done);
});
it('should get the default (enabled) input method', function (done) {
driver
.activeIMEEngine()
.should.eventually.equal(unicodeImeId)
.nodeify(done);
});
it('should get the available input methods', function (done) {
driver
.availableIMEEngines()
.should.eventually.have.length.at.least(4)
.nodeify(done());
});
it('should activate an installed input method', function (done) {
driver
.activateIMEEngine(unicodeImeId)
.should.not.be.rejected
.nodeify(done());
});
it('should fail to activate an uninstalled input method', function (done) {
var invalidImeId = "sdf.wer.gdasdfsf/.OsdfEfgd";
driver
.activateIMEEngine(invalidImeId)
.should.be.rejectedWith(/status: 30/)
.nodeify(done());
});
it('should deactivate the current input method', function (done) {
driver
.activateIMEEngine(unicodeImeId)
.activeIMEEngine().should.eventually.equal(unicodeImeId)
.deactivateIMEEngine()
.activeIMEEngine().should.eventually.equal(latinImeId)
.nodeify(done);
});
});