projecte_ionic/node_modules/webdriver-js-extender/built/spec/mock-server/commands/appium.js
2022-02-09 18:30:03 +01:00

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