appium-flutter-driver
Version:
54 lines • 2.54 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getObservatoryWsUri = exports.connectAndroidSession = exports.startAndroidSession = void 0;
const appium_uiautomator2_driver_1 = __importDefault(require("appium-uiautomator2-driver"));
const logger_1 = require("../logger");
const observatory_1 = require("./observatory");
const setupNewAndroidDriver = async (...args) => {
const androiddriver = new appium_uiautomator2_driver_1.default({});
//@ts-ignore Args are ok
await androiddriver.createSession(...args);
return androiddriver;
};
const startAndroidSession = async (flutterDriver, caps, ...args) => {
logger_1.log.info(`Starting an Android proxy session`);
const androiddriver = await setupNewAndroidDriver(...args);
// the session starts without any apps
if (caps.app === undefined && caps.appPackage === undefined) {
return [androiddriver, null];
}
return [
androiddriver,
await (0, observatory_1.connectSocket)(exports.getObservatoryWsUri, flutterDriver, androiddriver, caps),
];
};
exports.startAndroidSession = startAndroidSession;
const connectAndroidSession = async (flutterDriver, androiddriver, caps) => await (0, observatory_1.connectSocket)(exports.getObservatoryWsUri, flutterDriver, androiddriver, caps);
exports.connectAndroidSession = connectAndroidSession;
const getObservatoryWsUri = async (flutterDriver, proxydriver, caps) => {
let urlObject;
if (caps.observatoryWsUri) {
urlObject = new URL(caps.observatoryWsUri);
urlObject.protocol = `ws`;
// defaults to skip the port-forwarding as backward compatibility
if (caps.skipPortForward === undefined || caps.skipPortForward) {
return urlObject.toJSON();
}
}
else {
urlObject = (0, observatory_1.fetchObservatoryUrl)(proxydriver.adb.logcat.logs);
}
const remotePort = urlObject.port;
flutterDriver.portForwardLocalPort = caps.forwardingPort ?? remotePort;
urlObject.port = flutterDriver.portForwardLocalPort;
await proxydriver.adb.forwardPort(flutterDriver.portForwardLocalPort, remotePort);
if (!caps.observatoryWsUri && proxydriver.adb.adbHost) {
urlObject.host = proxydriver.adb.adbHost;
}
return urlObject.toJSON();
};
exports.getObservatoryWsUri = getObservatoryWsUri;
//# sourceMappingURL=android.js.map