118 lines
No EOL
4.7 KiB
JavaScript
Executable file
118 lines
No EOL
4.7 KiB
JavaScript
Executable file
"use strict";
|
|
/**
|
|
* Custom appium commands
|
|
*
|
|
* In this file we define all the custom commands which are part of the appium API but will probably
|
|
* never be part of the webdriver spec or JsonWireProtocol.
|
|
*/
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const fs = require("fs");
|
|
const selenium_mock_1 = require("selenium-mock");
|
|
const helpers_1 = require("./helpers");
|
|
let app = {};
|
|
let device = {};
|
|
exports.appium = {
|
|
app: app,
|
|
device: device
|
|
};
|
|
app.toBackground =
|
|
new selenium_mock_1.Command('POST', 'appium/app/background', (session, params) => {
|
|
return new Promise((resolve) => {
|
|
setTimeout(resolve, (params['seconds'] || 0) * 1000);
|
|
});
|
|
});
|
|
app.closeApp = helpers_1.noopFactory('appium/app/close');
|
|
app.getStrings = helpers_1.constFactory('POST', '/appium/app/strings', ['Hello', 'World']);
|
|
app.launch = helpers_1.noopFactory('appium/app/launch');
|
|
app.reset = helpers_1.noopFactory('appium/app/reset');
|
|
device.getActivity = helpers_1.getterFactory('/appium/device/current_activity', 'activity');
|
|
device.startActivity = helpers_1.setterFactory('/appium/device/start_activity', 'activity', 'appActivity');
|
|
device.hideKeyboard = helpers_1.noopFactory('/appium/device/hide_keyboard');
|
|
device.sendKeyEvent = helpers_1.noopFactory('/appium/device/keyevent');
|
|
device.pressKeyCode = helpers_1.noopFactory('/appium/device/press_keycode');
|
|
device.longPressKeyCode = helpers_1.noopFactory('/appium/device/long_press_keycode');
|
|
device.installApp =
|
|
new selenium_mock_1.Command('POST', 'appium/device/install_app', (session, params) => {
|
|
fs.readFile(params['appPath'], (err, contents) => {
|
|
if (err) {
|
|
throw 'Error while trying to read "' + params['appPath'] + ': ' + err;
|
|
}
|
|
session.installedApps.push(contents.toString().trim());
|
|
});
|
|
});
|
|
device.isAppInstalled =
|
|
new selenium_mock_1.Command('POST', 'appium/device/app_installed', (session, params) => {
|
|
return session.installedApps.some((app) => {
|
|
return app === params['bundleId'] || app === params['appId'];
|
|
});
|
|
});
|
|
device.removeApp =
|
|
new selenium_mock_1.Command('POST', '/appium/device/remove_app', (session, params) => {
|
|
session.installedApps = session.installedApps.filter((app) => {
|
|
return app !== params['bundleId'] && app !== params['appId'];
|
|
});
|
|
});
|
|
device.isLocked = helpers_1.getterFactory('/appium/device/is_locked', 'locked', 'POST');
|
|
device.lock =
|
|
new selenium_mock_1.Command('POST', 'appium/device/lock', (session, params) => {
|
|
return new Promise((resolve) => {
|
|
setTimeout(() => {
|
|
session.locked = true;
|
|
resolve();
|
|
}, (params['seconds'] || 0) * 1000);
|
|
});
|
|
});
|
|
device.unlock =
|
|
new selenium_mock_1.Command('POST', 'appium/device/unlock', (session) => {
|
|
session.locked = false;
|
|
});
|
|
device.pullFile =
|
|
new selenium_mock_1.Command('POST', '/appium/device/pull_file', (session, params) => {
|
|
let path = params['path'].split('/');
|
|
if (path[0].length == 0) {
|
|
path = path.slice(1);
|
|
}
|
|
;
|
|
let file = session.files;
|
|
for (let folder of path) {
|
|
file = file[folder];
|
|
}
|
|
return file;
|
|
});
|
|
device.pullFolder =
|
|
new selenium_mock_1.Command('POST', '/appium/device/pull_folder', (session, params) => {
|
|
let path = params['path'].split('/');
|
|
if (path[0].length == 0) {
|
|
path = path.slice(1);
|
|
}
|
|
;
|
|
let folder = session.files;
|
|
for (let name of path) {
|
|
folder = folder[name];
|
|
}
|
|
return folder;
|
|
});
|
|
device.pushFile =
|
|
new selenium_mock_1.Command('POST', 'appium/device/push_file', (session, params) => {
|
|
let path = params['path'].split('/');
|
|
if (path[0].length == 0) {
|
|
path = path.slice(1);
|
|
}
|
|
;
|
|
let folder = session.files;
|
|
for (let i = 0; i < path.length - 1; i++) {
|
|
if (folder[path[i]] === undefined) {
|
|
folder[path[i]] = {};
|
|
}
|
|
folder = folder[path[i]];
|
|
}
|
|
folder[path[path.length - 1]] = params['data'];
|
|
});
|
|
device.getTime = helpers_1.constFactory('GET', '/appium/device/system_time', new Date().toString());
|
|
device.openNotifications = helpers_1.noopFactory('/appium/device/open_notifications');
|
|
device.rotate = helpers_1.noopFactory('appium/device/rotate');
|
|
device.shake = helpers_1.noopFactory('appium/device/shake');
|
|
exports.appium.getSettings = helpers_1.getterFactory('/appium/settings');
|
|
exports.appium.setSettings = helpers_1.setterFactory('/appium/settings');
|
|
exports.appium.setImmediateValue = helpers_1.noopFactory('/appium/element/:id/value');
|
|
//# sourceMappingURL=appium.js.map
|