appium-xcuitest-driver 10.18.0 → 10.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/npm-shrinkwrap.json +5 -5
- package/package.json +3 -2
- package/build/test/functional/basic/alert-e2e-specs.d.ts +0 -2
- package/build/test/functional/basic/alert-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/basic/alert-e2e-specs.js +0 -129
- package/build/test/functional/basic/alert-e2e-specs.js.map +0 -1
- package/build/test/functional/basic/basic-e2e-specs.d.ts +0 -2
- package/build/test/functional/basic/basic-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/basic/basic-e2e-specs.js +0 -268
- package/build/test/functional/basic/basic-e2e-specs.js.map +0 -1
- package/build/test/functional/basic/element-e2e-specs.d.ts +0 -2
- package/build/test/functional/basic/element-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/basic/element-e2e-specs.js +0 -354
- package/build/test/functional/basic/element-e2e-specs.js.map +0 -1
- package/build/test/functional/basic/find-e2e-specs.d.ts +0 -2
- package/build/test/functional/basic/find-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/basic/find-e2e-specs.js +0 -434
- package/build/test/functional/basic/find-e2e-specs.js.map +0 -1
- package/build/test/functional/basic/gesture-e2e-specs.d.ts +0 -2
- package/build/test/functional/basic/gesture-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/basic/gesture-e2e-specs.js +0 -211
- package/build/test/functional/basic/gesture-e2e-specs.js.map +0 -1
- package/build/test/functional/desired.d.ts +0 -26
- package/build/test/functional/desired.d.ts.map +0 -1
- package/build/test/functional/desired.js +0 -124
- package/build/test/functional/desired.js.map +0 -1
- package/build/test/functional/device/accessibility-e2e-specs.d.ts +0 -2
- package/build/test/functional/device/accessibility-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/device/accessibility-e2e-specs.js +0 -117
- package/build/test/functional/device/accessibility-e2e-specs.js.map +0 -1
- package/build/test/functional/device/file-movement-e2e-specs.d.ts +0 -2
- package/build/test/functional/device/file-movement-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/device/file-movement-e2e-specs.js +0 -141
- package/build/test/functional/device/file-movement-e2e-specs.js.map +0 -1
- package/build/test/functional/device/otherApps-e2e-specs.d.ts +0 -2
- package/build/test/functional/device/otherApps-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/device/otherApps-e2e-specs.js +0 -66
- package/build/test/functional/device/otherApps-e2e-specs.js.map +0 -1
- package/build/test/functional/device/passwords-e2e-specs.d.ts +0 -2
- package/build/test/functional/device/passwords-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/device/passwords-e2e-specs.js +0 -91
- package/build/test/functional/device/passwords-e2e-specs.js.map +0 -1
- package/build/test/functional/device/performance-e2e-specs.d.ts +0 -2
- package/build/test/functional/device/performance-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/device/performance-e2e-specs.js +0 -72
- package/build/test/functional/device/performance-e2e-specs.js.map +0 -1
- package/build/test/functional/driver/driver-e2e-specs.d.ts +0 -2
- package/build/test/functional/driver/driver-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/driver/driver-e2e-specs.js +0 -296
- package/build/test/functional/driver/driver-e2e-specs.js.map +0 -1
- package/build/test/functional/helpers/element.d.ts +0 -4
- package/build/test/functional/helpers/element.d.ts.map +0 -1
- package/build/test/functional/helpers/element.js +0 -8
- package/build/test/functional/helpers/element.js.map +0 -1
- package/build/test/functional/helpers/ports.d.ts +0 -6
- package/build/test/functional/helpers/ports.d.ts.map +0 -1
- package/build/test/functional/helpers/ports.js +0 -29
- package/build/test/functional/helpers/ports.js.map +0 -1
- package/build/test/functional/helpers/session.d.ts +0 -7
- package/build/test/functional/helpers/session.d.ts.map +0 -1
- package/build/test/functional/helpers/session.js +0 -39
- package/build/test/functional/helpers/session.js.map +0 -1
- package/build/test/functional/helpers/simulator.d.ts +0 -12
- package/build/test/functional/helpers/simulator.d.ts.map +0 -1
- package/build/test/functional/helpers/simulator.js +0 -51
- package/build/test/functional/helpers/simulator.js.map +0 -1
- package/build/test/functional/long/typing-stress-e2e-specs.d.ts +0 -2
- package/build/test/functional/long/typing-stress-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/long/typing-stress-e2e-specs.js +0 -84
- package/build/test/functional/long/typing-stress-e2e-specs.js.map +0 -1
- package/build/test/functional/tv/tvos-e2e-specs.d.ts +0 -2
- package/build/test/functional/tv/tvos-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/tv/tvos-e2e-specs.js +0 -83
- package/build/test/functional/tv/tvos-e2e-specs.js.map +0 -1
- package/build/test/functional/web/helpers.d.ts +0 -28
- package/build/test/functional/web/helpers.d.ts.map +0 -1
- package/build/test/functional/web/helpers.js +0 -137
- package/build/test/functional/web/helpers.js.map +0 -1
- package/build/test/functional/web/safari-alerts-e2e-specs.d.ts +0 -2
- package/build/test/functional/web/safari-alerts-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/web/safari-alerts-e2e-specs.js +0 -109
- package/build/test/functional/web/safari-alerts-e2e-specs.js.map +0 -1
- package/build/test/functional/web/safari-basic-e2e-specs.d.ts +0 -2
- package/build/test/functional/web/safari-basic-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/web/safari-basic-e2e-specs.js +0 -425
- package/build/test/functional/web/safari-basic-e2e-specs.js.map +0 -1
- package/build/test/functional/web/safari-execute-e2e-specs.d.ts +0 -2
- package/build/test/functional/web/safari-execute-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/web/safari-execute-e2e-specs.js +0 -167
- package/build/test/functional/web/safari-execute-e2e-specs.js.map +0 -1
- package/build/test/functional/web/safari-nativewebtap-e2e-specs.d.ts +0 -2
- package/build/test/functional/web/safari-nativewebtap-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/web/safari-nativewebtap-e2e-specs.js +0 -323
- package/build/test/functional/web/safari-nativewebtap-e2e-specs.js.map +0 -1
- package/build/test/functional/web/safari-ssl-e2e-specs.d.ts +0 -2
- package/build/test/functional/web/safari-ssl-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/web/safari-ssl-e2e-specs.js +0 -131
- package/build/test/functional/web/safari-ssl-e2e-specs.js.map +0 -1
- package/build/test/functional/web/safari-window-e2e-specs.d.ts +0 -2
- package/build/test/functional/web/safari-window-e2e-specs.d.ts.map +0 -1
- package/build/test/functional/web/safari-window-e2e-specs.js +0 -263
- package/build/test/functional/web/safari-window-e2e-specs.js.map +0 -1
- package/build/test/setup.d.ts +0 -19
- package/build/test/setup.d.ts.map +0 -1
- package/build/test/setup.js +0 -117
- package/build/test/setup.js.map +0 -1
- package/build/test/unit/app-infos-cache-specs.d.ts +0 -2
- package/build/test/unit/app-infos-cache-specs.d.ts.map +0 -1
- package/build/test/unit/app-infos-cache-specs.js +0 -101
- package/build/test/unit/app-infos-cache-specs.js.map +0 -1
- package/build/test/unit/app-utils-specs.d.ts +0 -2
- package/build/test/unit/app-utils-specs.d.ts.map +0 -1
- package/build/test/unit/app-utils-specs.js +0 -131
- package/build/test/unit/app-utils-specs.js.map +0 -1
- package/build/test/unit/commands/activeAppInfo-specs.d.ts +0 -2
- package/build/test/unit/commands/activeAppInfo-specs.d.ts.map +0 -1
- package/build/test/unit/commands/activeAppInfo-specs.js +0 -74
- package/build/test/unit/commands/activeAppInfo-specs.js.map +0 -1
- package/build/test/unit/commands/alert-specs.d.ts +0 -2
- package/build/test/unit/commands/alert-specs.d.ts.map +0 -1
- package/build/test/unit/commands/alert-specs.js +0 -111
- package/build/test/unit/commands/alert-specs.js.map +0 -1
- package/build/test/unit/commands/context-specs.d.ts +0 -2
- package/build/test/unit/commands/context-specs.d.ts.map +0 -1
- package/build/test/unit/commands/context-specs.js +0 -119
- package/build/test/unit/commands/context-specs.js.map +0 -1
- package/build/test/unit/commands/deviceinfo-specs.d.ts +0 -2
- package/build/test/unit/commands/deviceinfo-specs.d.ts.map +0 -1
- package/build/test/unit/commands/deviceinfo-specs.js +0 -67
- package/build/test/unit/commands/deviceinfo-specs.js.map +0 -1
- package/build/test/unit/commands/element-specs.d.ts +0 -2
- package/build/test/unit/commands/element-specs.d.ts.map +0 -1
- package/build/test/unit/commands/element-specs.js +0 -419
- package/build/test/unit/commands/element-specs.js.map +0 -1
- package/build/test/unit/commands/file-movement-specs.d.ts +0 -2
- package/build/test/unit/commands/file-movement-specs.d.ts.map +0 -1
- package/build/test/unit/commands/file-movement-specs.js +0 -81
- package/build/test/unit/commands/file-movement-specs.js.map +0 -1
- package/build/test/unit/commands/find-specs.d.ts +0 -2
- package/build/test/unit/commands/find-specs.d.ts.map +0 -1
- package/build/test/unit/commands/find-specs.js +0 -106
- package/build/test/unit/commands/find-specs.js.map +0 -1
- package/build/test/unit/commands/general-specs.d.ts +0 -2
- package/build/test/unit/commands/general-specs.d.ts.map +0 -1
- package/build/test/unit/commands/general-specs.js +0 -154
- package/build/test/unit/commands/general-specs.js.map +0 -1
- package/build/test/unit/commands/gesture-specs.d.ts +0 -2
- package/build/test/unit/commands/gesture-specs.d.ts.map +0 -1
- package/build/test/unit/commands/gesture-specs.js +0 -263
- package/build/test/unit/commands/gesture-specs.js.map +0 -1
- package/build/test/unit/commands/location-specs.d.ts +0 -2
- package/build/test/unit/commands/location-specs.d.ts.map +0 -1
- package/build/test/unit/commands/location-specs.js +0 -141
- package/build/test/unit/commands/location-specs.js.map +0 -1
- package/build/test/unit/commands/pasteboard-specs.d.ts +0 -2
- package/build/test/unit/commands/pasteboard-specs.d.ts.map +0 -1
- package/build/test/unit/commands/pasteboard-specs.js +0 -65
- package/build/test/unit/commands/pasteboard-specs.js.map +0 -1
- package/build/test/unit/commands/proxy-helper-specs.d.ts +0 -2
- package/build/test/unit/commands/proxy-helper-specs.d.ts.map +0 -1
- package/build/test/unit/commands/proxy-helper-specs.js +0 -88
- package/build/test/unit/commands/proxy-helper-specs.js.map +0 -1
- package/build/test/unit/commands/screenshots-specs.d.ts +0 -2
- package/build/test/unit/commands/screenshots-specs.d.ts.map +0 -1
- package/build/test/unit/commands/screenshots-specs.js +0 -71
- package/build/test/unit/commands/screenshots-specs.js.map +0 -1
- package/build/test/unit/commands/session-specs.d.ts +0 -2
- package/build/test/unit/commands/session-specs.d.ts.map +0 -1
- package/build/test/unit/commands/session-specs.js +0 -49
- package/build/test/unit/commands/session-specs.js.map +0 -1
- package/build/test/unit/commands/simctl-specs.d.ts +0 -2
- package/build/test/unit/commands/simctl-specs.d.ts.map +0 -1
- package/build/test/unit/commands/simctl-specs.js +0 -54
- package/build/test/unit/commands/simctl-specs.js.map +0 -1
- package/build/test/unit/commands/source-specs.d.ts +0 -2
- package/build/test/unit/commands/source-specs.d.ts.map +0 -1
- package/build/test/unit/commands/source-specs.js +0 -55
- package/build/test/unit/commands/source-specs.js.map +0 -1
- package/build/test/unit/commands/ssl-certificate-specs.d.ts +0 -2
- package/build/test/unit/commands/ssl-certificate-specs.d.ts.map +0 -1
- package/build/test/unit/commands/ssl-certificate-specs.js +0 -16
- package/build/test/unit/commands/ssl-certificate-specs.js.map +0 -1
- package/build/test/unit/commands/xctest-specs.d.ts +0 -2
- package/build/test/unit/commands/xctest-specs.d.ts.map +0 -1
- package/build/test/unit/commands/xctest-specs.js +0 -116
- package/build/test/unit/commands/xctest-specs.js.map +0 -1
- package/build/test/unit/css-converter-specs.d.ts +0 -2
- package/build/test/unit/css-converter-specs.d.ts.map +0 -1
- package/build/test/unit/css-converter-specs.js +0 -99
- package/build/test/unit/css-converter-specs.js.map +0 -1
- package/build/test/unit/device-connections-factory-specs.d.ts +0 -2
- package/build/test/unit/device-connections-factory-specs.d.ts.map +0 -1
- package/build/test/unit/device-connections-factory-specs.js +0 -88
- package/build/test/unit/device-connections-factory-specs.js.map +0 -1
- package/build/test/unit/driver-specs.d.ts +0 -2
- package/build/test/unit/driver-specs.d.ts.map +0 -1
- package/build/test/unit/driver-specs.js +0 -358
- package/build/test/unit/driver-specs.js.map +0 -1
- package/build/test/unit/helpers.d.ts +0 -2
- package/build/test/unit/helpers.d.ts.map +0 -1
- package/build/test/unit/helpers.js +0 -5
- package/build/test/unit/helpers.js.map +0 -1
- package/build/test/unit/language-specs.d.ts +0 -2
- package/build/test/unit/language-specs.d.ts.map +0 -1
- package/build/test/unit/language-specs.js +0 -159
- package/build/test/unit/language-specs.js.map +0 -1
- package/build/test/unit/logs-helpers-specs.d.ts +0 -2
- package/build/test/unit/logs-helpers-specs.d.ts.map +0 -1
- package/build/test/unit/logs-helpers-specs.js +0 -71
- package/build/test/unit/logs-helpers-specs.js.map +0 -1
- package/build/test/unit/processargs-specs.d.ts +0 -2
- package/build/test/unit/processargs-specs.d.ts.map +0 -1
- package/build/test/unit/processargs-specs.js +0 -87
- package/build/test/unit/processargs-specs.js.map +0 -1
- package/build/test/unit/real-device-management-specs.d.ts +0 -2
- package/build/test/unit/real-device-management-specs.d.ts.map +0 -1
- package/build/test/unit/real-device-management-specs.js +0 -151
- package/build/test/unit/real-device-management-specs.js.map +0 -1
- package/build/test/unit/simulator-management-specs.d.ts +0 -2
- package/build/test/unit/simulator-management-specs.d.ts.map +0 -1
- package/build/test/unit/simulator-management-specs.js +0 -143
- package/build/test/unit/simulator-management-specs.js.map +0 -1
- package/build/test/unit/utils-specs.d.ts +0 -2
- package/build/test/unit/utils-specs.d.ts.map +0 -1
- package/build/test/unit/utils-specs.js +0 -132
- package/build/test/unit/utils-specs.js.map +0 -1
|
@@ -1,425 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const bluebird_1 = __importDefault(require("bluebird"));
|
|
40
|
-
const session_1 = require("../helpers/session");
|
|
41
|
-
const desired_1 = require("../desired");
|
|
42
|
-
const helpers_1 = require("./helpers");
|
|
43
|
-
const support_1 = require("appium/support");
|
|
44
|
-
const asyncbox_1 = require("asyncbox");
|
|
45
|
-
const chai_1 = __importStar(require("chai"));
|
|
46
|
-
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
47
|
-
chai_1.default.use(chai_as_promised_1.default);
|
|
48
|
-
const DEFAULT_CAPS = (0, desired_1.amendCapabilities)(desired_1.SAFARI_CAPS, {
|
|
49
|
-
'appium:safariInitialUrl': helpers_1.GUINEA_PIG_PAGE,
|
|
50
|
-
// 'appium:safariLogAllCommunication': true,
|
|
51
|
-
// adding 'safariIgnoreWebHostnames' to validate that adding blacklist URL's doesn't break anything
|
|
52
|
-
'appium:safariIgnoreWebHostnames': 'www.yahoo.com,www.bing.com,www.google.com,about:blank',
|
|
53
|
-
});
|
|
54
|
-
describe('Safari - basics -', function () {
|
|
55
|
-
this.timeout(session_1.MOCHA_TIMEOUT);
|
|
56
|
-
let driver;
|
|
57
|
-
describe('basics', function () {
|
|
58
|
-
before(async function () {
|
|
59
|
-
const caps = (0, desired_1.amendCapabilities)(DEFAULT_CAPS, {
|
|
60
|
-
'appium:safariIgnoreFraudWarning': false,
|
|
61
|
-
'appium:showSafariConsoleLog': true,
|
|
62
|
-
});
|
|
63
|
-
driver = await (0, session_1.initSession)(caps);
|
|
64
|
-
});
|
|
65
|
-
after(async function () {
|
|
66
|
-
await (0, session_1.deleteSession)();
|
|
67
|
-
});
|
|
68
|
-
// TODO: in appium-remote-debugger, figure out how to check if a page is loaded
|
|
69
|
-
describe.skip('page load timeouts', function () {
|
|
70
|
-
describe('small timeout, slow page load', function () {
|
|
71
|
-
it('should go to the requested page', async function () {
|
|
72
|
-
await driver.setTimeout({ pageLoad: 3000 });
|
|
73
|
-
await (0, helpers_1.openPage)(driver, `${helpers_1.GUINEA_PIG_PAGE}?delay=30000`);
|
|
74
|
-
// the page should not have time to load
|
|
75
|
-
await (0, chai_1.expect)(driver.getPageSource()).to.eventually.include(`Let's browse!`);
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
describe('no timeout, very slow page', function () {
|
|
79
|
-
const startMs = Date.now();
|
|
80
|
-
it('should go to the requested page', async function () {
|
|
81
|
-
// await driver.setCommandTimeout(12000);
|
|
82
|
-
await driver.setTimeout({ pageLoad: 0 });
|
|
83
|
-
await (0, helpers_1.openPage)(driver, `${helpers_1.GUINEA_PIG_PAGE}?delay=3000`);
|
|
84
|
-
// the page should load after 70000
|
|
85
|
-
await (0, chai_1.expect)(driver.getPageSource()).to.eventually.include('I am some page content');
|
|
86
|
-
(0, chai_1.expect)(Date.now() - startMs).to.be.above(3000);
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
describe('context', function () {
|
|
91
|
-
it('should be able to get current context initially', async function () {
|
|
92
|
-
await bluebird_1.default.delay(500);
|
|
93
|
-
await (0, chai_1.expect)(driver.getContext()).to.eventually.be.ok;
|
|
94
|
-
});
|
|
95
|
-
it('should get full context list through mobile: getContexts', async function () {
|
|
96
|
-
const ctxs = await driver.executeScript('mobile: getContexts', []);
|
|
97
|
-
const webviews = ctxs.filter((ctx) => ctx.id !== 'NATIVE_APP');
|
|
98
|
-
(0, chai_1.expect)(webviews.every((ctx) => support_1.util.hasValue(ctx.title) && support_1.util.hasValue(ctx.url))).to.be.true;
|
|
99
|
-
});
|
|
100
|
-
});
|
|
101
|
-
describe('implicit wait', function () {
|
|
102
|
-
after(async function () {
|
|
103
|
-
await driver.setTimeout({ implicit: 0 });
|
|
104
|
-
});
|
|
105
|
-
it('should set the implicit wait for finding web elements', async function () {
|
|
106
|
-
await driver.setTimeout({ implicit: 5000 });
|
|
107
|
-
const before = new Date().getTime();
|
|
108
|
-
(0, chai_1.expect)((await driver.$('<dsfsdfsdfdsfsd />')).error.error).to.eql('no such element');
|
|
109
|
-
const after = new Date().getTime();
|
|
110
|
-
(0, chai_1.expect)(after - before >= 5 * 1000).to.be.ok;
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
describe('window title', function () {
|
|
114
|
-
it('should return a valid title on web view', async function () {
|
|
115
|
-
await (0, chai_1.expect)(driver.getTitle()).to.eventually.include('I am a page title');
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
describe('element handling', function () {
|
|
119
|
-
beforeEach(async function () {
|
|
120
|
-
await (0, helpers_1.openPage)(driver, helpers_1.GUINEA_PIG_PAGE);
|
|
121
|
-
});
|
|
122
|
-
it('should find a web element in the web view', async function () {
|
|
123
|
-
(0, chai_1.expect)(await driver.$('#i_am_an_id')).to.exist;
|
|
124
|
-
});
|
|
125
|
-
it('should find multiple web elements in the web view', async function () {
|
|
126
|
-
(0, chai_1.expect)(await driver.$$('<a />')).to.have.length.at.least(5);
|
|
127
|
-
});
|
|
128
|
-
it('should fail gracefully to find multiple missing web elements in the web view', async function () {
|
|
129
|
-
(0, chai_1.expect)(await driver.$$('<blar />')).to.have.length(0);
|
|
130
|
-
});
|
|
131
|
-
it('should find element from another element', async function () {
|
|
132
|
-
const el = await driver.$('.border');
|
|
133
|
-
(0, chai_1.expect)(await el.$('./form')).to.exist;
|
|
134
|
-
});
|
|
135
|
-
it('should be able to click links', async function () {
|
|
136
|
-
const el = await driver.$('=i am a link');
|
|
137
|
-
await el.click();
|
|
138
|
-
await (0, helpers_1.spinTitleEquals)(driver, 'I am another page title');
|
|
139
|
-
});
|
|
140
|
-
it('should retrieve an element attribute', async function () {
|
|
141
|
-
const el = await driver.$('#i_am_an_id');
|
|
142
|
-
await (0, chai_1.expect)(el.getAttribute('id')).to.eventually.equal('i_am_an_id');
|
|
143
|
-
(0, chai_1.expect)(await el.getAttribute('blar')).to.be.null;
|
|
144
|
-
});
|
|
145
|
-
it('should retrieve implicit attributes', async function () {
|
|
146
|
-
const els = await driver.$$('<option />');
|
|
147
|
-
(0, chai_1.expect)(els).to.have.length(3);
|
|
148
|
-
await (0, chai_1.expect)(els[2].getAttribute('index')).to.eventually.equal('2');
|
|
149
|
-
});
|
|
150
|
-
it('should retrieve an element text', async function () {
|
|
151
|
-
const el = await driver.$('#i_am_an_id');
|
|
152
|
-
await (0, chai_1.expect)(el.getText()).to.eventually.equal('I am a div');
|
|
153
|
-
});
|
|
154
|
-
// TODO: figure out what equality means here
|
|
155
|
-
it.skip('should check if two elements are equal', async function () {
|
|
156
|
-
const el1 = await driver.$('#i_am_an_id');
|
|
157
|
-
const el2 = await driver.$('#i_am_an_id');
|
|
158
|
-
(0, chai_1.expect)(el1).to.equal(el2);
|
|
159
|
-
});
|
|
160
|
-
it('should return the page source', async function () {
|
|
161
|
-
const source = await driver.getPageSource();
|
|
162
|
-
(0, chai_1.expect)(source).to.include('<html');
|
|
163
|
-
(0, chai_1.expect)(source).to.include('I am a page title');
|
|
164
|
-
(0, chai_1.expect)(source).to.include('i appear 3 times');
|
|
165
|
-
(0, chai_1.expect)(source).to.include('</html>');
|
|
166
|
-
});
|
|
167
|
-
it('should get current url', async function () {
|
|
168
|
-
await (0, chai_1.expect)(driver.getUrl()).to.eventually.include('test/guinea-pig');
|
|
169
|
-
});
|
|
170
|
-
it('should get updated URL without breaking window handles', async function () {
|
|
171
|
-
const el = await driver.$('=i am an anchor link');
|
|
172
|
-
await el.click();
|
|
173
|
-
// allow the click to happen
|
|
174
|
-
await bluebird_1.default.delay(500);
|
|
175
|
-
await (0, chai_1.expect)(driver.getUrl()).to.eventually.contain('#anchor');
|
|
176
|
-
await (0, chai_1.expect)(driver.getWindowHandles()).to.eventually.be.ok;
|
|
177
|
-
});
|
|
178
|
-
it('should send keystrokes to specific element', async function () {
|
|
179
|
-
const el = await driver.$('#comments');
|
|
180
|
-
await el.clearValue();
|
|
181
|
-
await el.setValue('hello world');
|
|
182
|
-
(0, chai_1.expect)(['how world', 'hello world']).to.include((await el.getAttribute('value')).toLowerCase());
|
|
183
|
-
});
|
|
184
|
-
it('should send keystrokes to active element', async function () {
|
|
185
|
-
const el = await driver.$('#comments');
|
|
186
|
-
await el.click();
|
|
187
|
-
await el.setValue('hello world');
|
|
188
|
-
(0, chai_1.expect)(['how world', 'hello world']).to.include((await el.getAttribute('value')).toLowerCase());
|
|
189
|
-
});
|
|
190
|
-
it('should clear element', async function () {
|
|
191
|
-
const el = await driver.$('#comments');
|
|
192
|
-
await el.setValue('hello world');
|
|
193
|
-
await (0, chai_1.expect)(el.getAttribute('value')).to.eventually.have.length.above(0);
|
|
194
|
-
await el.clearValue();
|
|
195
|
-
await (0, chai_1.expect)(el.getAttribute('value')).to.eventually.equal('');
|
|
196
|
-
});
|
|
197
|
-
it('should say whether an input is selected', async function () {
|
|
198
|
-
const el = await driver.$('#unchecked_checkbox');
|
|
199
|
-
await (0, chai_1.expect)(el.isSelected()).to.eventually.not.be.ok;
|
|
200
|
-
await el.click();
|
|
201
|
-
await (0, asyncbox_1.retryInterval)(10, 1000, async function () {
|
|
202
|
-
await (0, chai_1.expect)(el.isSelected()).to.eventually.be.ok;
|
|
203
|
-
});
|
|
204
|
-
});
|
|
205
|
-
it('should be able to retrieve css properties', async function () {
|
|
206
|
-
const el = await driver.$('#fbemail');
|
|
207
|
-
(0, chai_1.expect)((await el.getCSSProperty('background-color')).value).to.contain('rgb');
|
|
208
|
-
});
|
|
209
|
-
it('should retrieve an element size', async function () {
|
|
210
|
-
const el = await driver.$('#i_am_an_id');
|
|
211
|
-
const size = await el.getSize();
|
|
212
|
-
(0, chai_1.expect)(size.width).to.be.above(0);
|
|
213
|
-
(0, chai_1.expect)(size.height).to.be.above(0);
|
|
214
|
-
});
|
|
215
|
-
it('should get location of an element', async function () {
|
|
216
|
-
const el = await driver.$('#fbemail');
|
|
217
|
-
const loc = await el.getLocation();
|
|
218
|
-
(0, chai_1.expect)(loc.x).to.be.above(0);
|
|
219
|
-
(0, chai_1.expect)(loc.y).to.be.above(0);
|
|
220
|
-
});
|
|
221
|
-
// getTagName not supported by mjwp
|
|
222
|
-
it.skip('should retrieve tag name of an element', async function () {
|
|
223
|
-
const el = await driver.$('#fbemail');
|
|
224
|
-
const a = await driver.$('<a />');
|
|
225
|
-
await (0, chai_1.expect)(el.getTagName()).to.eventually.equal('input');
|
|
226
|
-
await (0, chai_1.expect)(a.getTagName()).to.eventually.equal('a');
|
|
227
|
-
});
|
|
228
|
-
it('should retrieve a window size', async function () {
|
|
229
|
-
const size = await driver.getWindowRect();
|
|
230
|
-
(0, chai_1.expect)(size.height).to.be.above(0);
|
|
231
|
-
(0, chai_1.expect)(size.width).to.be.above(0);
|
|
232
|
-
});
|
|
233
|
-
// TODO: Update for WdIO compatibility
|
|
234
|
-
it.skip('should submit a form', async function () {
|
|
235
|
-
const el = await driver.$('#comments');
|
|
236
|
-
const form = await driver.$('#jumpContact');
|
|
237
|
-
await el.setValue('This is a comment');
|
|
238
|
-
await form.submit();
|
|
239
|
-
await (0, helpers_1.spinWait)(async function () {
|
|
240
|
-
const comments = await driver.$('#your_comments');
|
|
241
|
-
await (0, chai_1.expect)(comments.getText()).to.eventually.equal('Your comments: This is a comment');
|
|
242
|
-
});
|
|
243
|
-
});
|
|
244
|
-
it('should return true when the element is displayed', async function () {
|
|
245
|
-
const el = await driver.$('=i am a link');
|
|
246
|
-
await (0, chai_1.expect)(el.isDisplayed()).to.eventually.be.ok;
|
|
247
|
-
});
|
|
248
|
-
it('should return false when the element is not displayed', async function () {
|
|
249
|
-
const el = await driver.$('#invisible div');
|
|
250
|
-
await (0, chai_1.expect)(el.isDisplayed()).to.eventually.not.be.ok;
|
|
251
|
-
});
|
|
252
|
-
it('should return true when the element is enabled', async function () {
|
|
253
|
-
const el = await driver.$('=i am a link');
|
|
254
|
-
await (0, chai_1.expect)(el.isEnabled()).to.eventually.be.ok;
|
|
255
|
-
});
|
|
256
|
-
it('should return false when the element is not enabled', async function () {
|
|
257
|
-
await driver.executeScript(`$('#fbemail').attr('disabled', 'disabled');`, []);
|
|
258
|
-
const el = await driver.$('#fbemail');
|
|
259
|
-
await (0, chai_1.expect)(el.isEnabled()).to.eventually.not.be.ok;
|
|
260
|
-
});
|
|
261
|
-
it('should return the active element', async function () {
|
|
262
|
-
const testText = 'hi there';
|
|
263
|
-
const el = await driver.$('#i_am_a_textbox');
|
|
264
|
-
await el.setValue(testText);
|
|
265
|
-
const activeElId = await driver.getActiveElement();
|
|
266
|
-
const activeEl = await driver.$(activeElId);
|
|
267
|
-
await (0, chai_1.expect)(activeEl.getAttribute('value')).to.eventually.equal(testText);
|
|
268
|
-
});
|
|
269
|
-
it('should properly navigate to anchor', async function () {
|
|
270
|
-
const el = await driver.$('=i am an anchor link');
|
|
271
|
-
await el.click();
|
|
272
|
-
// let the click happen
|
|
273
|
-
await bluebird_1.default.delay(500);
|
|
274
|
-
const url = await driver.getUrl();
|
|
275
|
-
await (0, helpers_1.openPage)(driver, url);
|
|
276
|
-
await (0, chai_1.expect)(driver.getUrl()).to.eventually.include('#anchor');
|
|
277
|
-
});
|
|
278
|
-
it('should be able to refresh', async function () {
|
|
279
|
-
await driver.refresh();
|
|
280
|
-
});
|
|
281
|
-
});
|
|
282
|
-
// TODO: Update for WdIO compatibility
|
|
283
|
-
// describe('console logging', function () {
|
|
284
|
-
// beforeEach(async function () {
|
|
285
|
-
// // get the logs to clear anything out
|
|
286
|
-
// await driver.log('safariConsole');
|
|
287
|
-
// await driver.get(GUINEA_PIG_SCROLLABLE_PAGE);
|
|
288
|
-
// });
|
|
289
|
-
// // there can be other things logged, so check that the text is there somewhere
|
|
290
|
-
// function checkTexts (logs, expectedTexts) {
|
|
291
|
-
// const logText = _.map(logs, (el) => el.message || el.text).join(',');
|
|
292
|
-
// for (const line of expectedTexts) {
|
|
293
|
-
// logText.should.include(line);
|
|
294
|
-
// }
|
|
295
|
-
// }
|
|
296
|
-
// it('should get console logs for JS on the page', async function () {
|
|
297
|
-
// // reload the page to execute JS
|
|
298
|
-
// await openPage(driver, GUINEA_PIG_PAGE);
|
|
299
|
-
// const logs = await driver.log('safariConsole');
|
|
300
|
-
// checkTexts(logs, ['Hello from Appium', 'Loading guinea-pig page', 'Done']);
|
|
301
|
-
// });
|
|
302
|
-
// it('should get console logs for JS on the page with error', async function () {
|
|
303
|
-
// // reload the page to execute JS
|
|
304
|
-
// await openPage(driver, `${GUINEA_PIG_PAGE}?throwError=xcuitest-error`);
|
|
305
|
-
// const logs = await driver.log('safariConsole');
|
|
306
|
-
// checkTexts(logs, ['Hello from Appium', 'Loading guinea-pig page', 'Done', 'JavaScript Error: xcuitest-error']);
|
|
307
|
-
// });
|
|
308
|
-
// it('should get console logs for inserted JS', async function () {
|
|
309
|
-
// const strings = [
|
|
310
|
-
// 'Log something to debug',
|
|
311
|
-
// 'Log something to warn',
|
|
312
|
-
// 'Log something to error',
|
|
313
|
-
// ];
|
|
314
|
-
// for (const line of strings) {
|
|
315
|
-
// await driver.execute(`console.log('${line}');`);
|
|
316
|
-
// }
|
|
317
|
-
// const logs = await driver.log('safariConsole');
|
|
318
|
-
// checkTexts(logs, strings);
|
|
319
|
-
// // execute some more and see that we don't have overlap
|
|
320
|
-
// await driver.execute(`console.log('HELLO WORLD')`);
|
|
321
|
-
// // new logs should _just_ be the above statement
|
|
322
|
-
// const logs2 = await driver.log('safariConsole');
|
|
323
|
-
// logs2.should.have.length(1);
|
|
324
|
-
// // there should be no overlap
|
|
325
|
-
// _.intersection(logs, logs2).should.have.length(0);
|
|
326
|
-
// });
|
|
327
|
-
// });
|
|
328
|
-
describe('cookies', function () {
|
|
329
|
-
describe('within iframe webview', function () {
|
|
330
|
-
it('should be able to get cookies for a page with none', async function () {
|
|
331
|
-
await (0, helpers_1.openPage)(driver, helpers_1.GUINEA_PIG_IFRAME_PAGE);
|
|
332
|
-
await driver.deleteAllCookies();
|
|
333
|
-
await (0, asyncbox_1.retryInterval)(5, 1000, async function () {
|
|
334
|
-
await (0, chai_1.expect)(driver.getAllCookies()).to.eventually.have.length(0);
|
|
335
|
-
});
|
|
336
|
-
});
|
|
337
|
-
});
|
|
338
|
-
describe('within webview', function () {
|
|
339
|
-
describe('insecure', function () {
|
|
340
|
-
beforeEach(async function () {
|
|
341
|
-
await (0, helpers_1.openPage)(driver, helpers_1.GUINEA_PIG_PAGE);
|
|
342
|
-
await driver.deleteCookie(helpers_1.newCookie.name);
|
|
343
|
-
});
|
|
344
|
-
it('should be able to get cookies for a page', async function () {
|
|
345
|
-
const cookies = await driver.getAllCookies();
|
|
346
|
-
(0, chai_1.expect)(cookies.length).to.equal(2);
|
|
347
|
-
(0, helpers_1.doesIncludeCookie)(cookies, helpers_1.oldCookie1);
|
|
348
|
-
(0, helpers_1.doesIncludeCookie)(cookies, helpers_1.oldCookie2);
|
|
349
|
-
});
|
|
350
|
-
it('should be able to set a cookie for a page', async function () {
|
|
351
|
-
await driver.addCookie(helpers_1.newCookie);
|
|
352
|
-
const cookies = await driver.getAllCookies();
|
|
353
|
-
(0, helpers_1.doesIncludeCookie)(cookies, helpers_1.newCookie);
|
|
354
|
-
// should not clobber old cookies
|
|
355
|
-
(0, helpers_1.doesIncludeCookie)(cookies, helpers_1.oldCookie1);
|
|
356
|
-
(0, helpers_1.doesIncludeCookie)(cookies, helpers_1.oldCookie2);
|
|
357
|
-
});
|
|
358
|
-
it('should be able to set a cookie with expiry', async function () {
|
|
359
|
-
const expiredCookie = {
|
|
360
|
-
...helpers_1.newCookie,
|
|
361
|
-
expiry: parseInt(String(Date.now() / 1000), 10) - 1000, // set cookie in past
|
|
362
|
-
name: 'expiredcookie',
|
|
363
|
-
};
|
|
364
|
-
let cookies = await driver.getAllCookies();
|
|
365
|
-
(0, helpers_1.doesNotIncludeCookie)(cookies, expiredCookie);
|
|
366
|
-
await driver.addCookie(expiredCookie);
|
|
367
|
-
cookies = await driver.getAllCookies();
|
|
368
|
-
// should not include cookie we just added because of expiry
|
|
369
|
-
(0, helpers_1.doesNotIncludeCookie)(cookies, expiredCookie);
|
|
370
|
-
// should not clobber old cookies
|
|
371
|
-
(0, helpers_1.doesIncludeCookie)(cookies, helpers_1.oldCookie1);
|
|
372
|
-
(0, helpers_1.doesIncludeCookie)(cookies, helpers_1.oldCookie2);
|
|
373
|
-
await driver.deleteCookie(expiredCookie.name);
|
|
374
|
-
});
|
|
375
|
-
it('should be able to delete one cookie', async function () {
|
|
376
|
-
await driver.addCookie(helpers_1.newCookie);
|
|
377
|
-
let cookies = await driver.getAllCookies();
|
|
378
|
-
(0, helpers_1.doesIncludeCookie)(cookies, helpers_1.newCookie);
|
|
379
|
-
await driver.deleteCookie(helpers_1.newCookie.name);
|
|
380
|
-
cookies = await driver.getAllCookies();
|
|
381
|
-
(0, helpers_1.doesNotIncludeCookie)(cookies, helpers_1.newCookie);
|
|
382
|
-
(0, helpers_1.doesIncludeCookie)(cookies, helpers_1.oldCookie1);
|
|
383
|
-
(0, helpers_1.doesIncludeCookie)(cookies, helpers_1.oldCookie2);
|
|
384
|
-
});
|
|
385
|
-
it('should be able to delete all cookies', async function () {
|
|
386
|
-
await driver.addCookie(helpers_1.newCookie);
|
|
387
|
-
let cookies = await driver.getAllCookies();
|
|
388
|
-
(0, helpers_1.doesIncludeCookie)(cookies, helpers_1.newCookie);
|
|
389
|
-
await driver.deleteAllCookies();
|
|
390
|
-
cookies = await driver.getAllCookies();
|
|
391
|
-
(0, chai_1.expect)(cookies.length).to.equal(0);
|
|
392
|
-
(0, helpers_1.doesNotIncludeCookie)(cookies, helpers_1.oldCookie1);
|
|
393
|
-
(0, helpers_1.doesNotIncludeCookie)(cookies, helpers_1.oldCookie2);
|
|
394
|
-
});
|
|
395
|
-
describe('native context', function () {
|
|
396
|
-
const notImplementedRegExp = /Method is not implemented/;
|
|
397
|
-
let context;
|
|
398
|
-
beforeEach(async function () {
|
|
399
|
-
context = await driver.getContext();
|
|
400
|
-
await driver.switchContext('NATIVE_APP');
|
|
401
|
-
});
|
|
402
|
-
afterEach(async function () {
|
|
403
|
-
if (context) {
|
|
404
|
-
await driver.switchContext(context);
|
|
405
|
-
}
|
|
406
|
-
});
|
|
407
|
-
it('should reject all functions', async function () {
|
|
408
|
-
await (0, chai_1.expect)(driver.addCookie(helpers_1.newCookie)).to.be.rejectedWith(notImplementedRegExp);
|
|
409
|
-
await (0, chai_1.expect)(driver.getAllCookies()).to.be.rejectedWith(notImplementedRegExp);
|
|
410
|
-
await (0, chai_1.expect)(driver
|
|
411
|
-
.deleteCookie(helpers_1.newCookie.name)).to.be.rejectedWith(notImplementedRegExp);
|
|
412
|
-
await (0, chai_1.expect)(driver.deleteAllCookies()).to.be.rejectedWith(notImplementedRegExp);
|
|
413
|
-
});
|
|
414
|
-
});
|
|
415
|
-
});
|
|
416
|
-
describe('secure', function () {
|
|
417
|
-
/*
|
|
418
|
-
* secure cookie tests are in `./safari-ssl-e2e-specs.ts`
|
|
419
|
-
*/
|
|
420
|
-
});
|
|
421
|
-
});
|
|
422
|
-
});
|
|
423
|
-
});
|
|
424
|
-
});
|
|
425
|
-
//# sourceMappingURL=safari-basic-e2e-specs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"safari-basic-e2e-specs.js","sourceRoot":"","sources":["../../../../test/functional/web/safari-basic-e2e-specs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"safari-execute-e2e-specs.d.ts","sourceRoot":"","sources":["../../../../test/functional/web/safari-execute-e2e-specs.ts"],"names":[],"mappings":""}
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const desired_1 = require("../desired");
|
|
40
|
-
const session_1 = require("../helpers/session");
|
|
41
|
-
const helpers_1 = require("./helpers");
|
|
42
|
-
const chai_1 = __importStar(require("chai"));
|
|
43
|
-
const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
|
|
44
|
-
chai_1.default.use(chai_as_promised_1.default);
|
|
45
|
-
const SCROLL_INTO_VIEW = `return arguments[0].scrollIntoView(true);`;
|
|
46
|
-
const GET_RIGHT_INNERHTML = `return document.body.innerHTML.indexOf('I am some page content') > 0`;
|
|
47
|
-
const GET_WRONG_INNERHTML = `return document.body.innerHTML.indexOf('I am not some page content') > 0`;
|
|
48
|
-
const GET_ELEM_BY_TAGNAME = `return document.getElementsByTagName('a');`;
|
|
49
|
-
describe('safari - execute -', function () {
|
|
50
|
-
this.timeout(session_1.MOCHA_TIMEOUT);
|
|
51
|
-
let driver;
|
|
52
|
-
before(async function () {
|
|
53
|
-
const caps = (0, desired_1.amendCapabilities)(desired_1.SAFARI_CAPS, {
|
|
54
|
-
'appium:safariInitialUrl': helpers_1.GUINEA_PIG_PAGE,
|
|
55
|
-
'appium:showSafariConsoleLog': true,
|
|
56
|
-
});
|
|
57
|
-
driver = await (0, session_1.initSession)(caps);
|
|
58
|
-
});
|
|
59
|
-
after(async function () {
|
|
60
|
-
await (0, session_1.deleteSession)();
|
|
61
|
-
});
|
|
62
|
-
async function runTests(secure = false) {
|
|
63
|
-
describe('mobile: x methods', function () {
|
|
64
|
-
it('should run in native context', async function () {
|
|
65
|
-
await (0, chai_1.expect)(driver.executeScript('mobile: scroll', [{ direction: 'down' }])).to.not.be.rejected;
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
describe('synchronous', function () {
|
|
69
|
-
it('should bubble up javascript errors', async function () {
|
|
70
|
-
await (0, chai_1.expect)(driver.executeScript(`'nan'--`, [])).to.be.rejected;
|
|
71
|
-
});
|
|
72
|
-
it('should eval javascript', async function () {
|
|
73
|
-
await (0, chai_1.expect)(driver.executeScript('return 1 + 1', [])).to.eventually.equal(2);
|
|
74
|
-
});
|
|
75
|
-
it('should not be returning hardcoded results', async function () {
|
|
76
|
-
await (0, chai_1.expect)(driver.executeScript('return 1+1', [])).to.eventually.equal(2);
|
|
77
|
-
});
|
|
78
|
-
it(`should return nothing when you don't explicitly return`, async function () {
|
|
79
|
-
(0, chai_1.expect)(await driver.executeScript('1+1', [])).to.not.exist;
|
|
80
|
-
});
|
|
81
|
-
if (!secure) {
|
|
82
|
-
it('should execute code inside the web view', async function () {
|
|
83
|
-
await (0, chai_1.expect)(driver.executeScript(GET_RIGHT_INNERHTML, [])).to.eventually.be.ok;
|
|
84
|
-
await (0, chai_1.expect)(driver.executeScript(GET_WRONG_INNERHTML, [])).to.eventually.not.be.ok;
|
|
85
|
-
});
|
|
86
|
-
it('should convert selenium element arg to webview element', async function () {
|
|
87
|
-
const el = await driver.findElement('id', 'useragent');
|
|
88
|
-
await driver.executeScript(SCROLL_INTO_VIEW, [el]);
|
|
89
|
-
});
|
|
90
|
-
it('should catch stale or undefined element as arg', async function () {
|
|
91
|
-
const el = await driver.findElement('id', 'useragent');
|
|
92
|
-
await (0, chai_1.expect)(driver.executeScript(SCROLL_INTO_VIEW, [{ ELEMENT: el.value + 1 }])).to.be
|
|
93
|
-
.rejected;
|
|
94
|
-
});
|
|
95
|
-
it('should be able to return multiple elements from javascript', async function () {
|
|
96
|
-
await (0, chai_1.expect)(driver
|
|
97
|
-
.executeScript(GET_ELEM_BY_TAGNAME, [])).to.eventually.have.length.above(0);
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
it('should pass along non-element arguments', async function () {
|
|
101
|
-
const arg = 'non-element-argument';
|
|
102
|
-
await (0, chai_1.expect)(driver
|
|
103
|
-
.executeScript('var args = Array.prototype.slice.call(arguments, 0); return args[0];', [
|
|
104
|
-
arg,
|
|
105
|
-
])).to.eventually.equal(arg);
|
|
106
|
-
});
|
|
107
|
-
it('should handle return values correctly', async function () {
|
|
108
|
-
const arg = ['one', 'two', 'three'];
|
|
109
|
-
await (0, chai_1.expect)(driver
|
|
110
|
-
.executeScript('var args = Array.prototype.slice.call(arguments, 0); return args;', arg)).to.eventually.eql(arg);
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
// TODO: Update for WdIO compatibility
|
|
114
|
-
// describe('asynchronous', function () {
|
|
115
|
-
// it('should execute async javascript', async function () {
|
|
116
|
-
// await driver.setAsyncScriptTimeout(1000);
|
|
117
|
-
// await driver.executeAsync(`arguments[arguments.length - 1](123);`)
|
|
118
|
-
// .should.eventually.equal(123);
|
|
119
|
-
// });
|
|
120
|
-
// it('should bubble up errors', async function () {
|
|
121
|
-
// await driver.executeAsync(`arguments[arguments.length - 1]('nan'--);`)
|
|
122
|
-
// .should.be.rejectedWith(/operator applied to value that is not a reference/);
|
|
123
|
-
// });
|
|
124
|
-
// it('should timeout when callback is not invoked', async function () {
|
|
125
|
-
// await driver.setAsyncScriptTimeout(1000);
|
|
126
|
-
// await driver.executeAsync(`return 1 + 2`)
|
|
127
|
-
// .should.be.rejectedWith(/Timed out waiting for/);
|
|
128
|
-
// });
|
|
129
|
-
// });
|
|
130
|
-
}
|
|
131
|
-
describe('http', function () {
|
|
132
|
-
runTests();
|
|
133
|
-
// TODO: Update for WdIO compatibility
|
|
134
|
-
// describe('cors', function () {
|
|
135
|
-
// let server;
|
|
136
|
-
// const host = '127.0.0.1';
|
|
137
|
-
// const port = 8080;
|
|
138
|
-
// before(function () {
|
|
139
|
-
// // create an http server so we can test CORS handling without
|
|
140
|
-
// // going to an external site
|
|
141
|
-
// server = http.createServer(function (req, res) {
|
|
142
|
-
// res.writeHead(200, {'Content-Type': 'text/html'});
|
|
143
|
-
// res.write('appium-xcuitest-driver async execute tests');
|
|
144
|
-
// res.end();
|
|
145
|
-
// }).listen({host, port});
|
|
146
|
-
// });
|
|
147
|
-
// after(function () {
|
|
148
|
-
// if (server) {
|
|
149
|
-
// server.close();
|
|
150
|
-
// }
|
|
151
|
-
// });
|
|
152
|
-
// it('should execute async javascript from a different site', async function () {
|
|
153
|
-
// await driver.navigateTo(`http://${host}:${port}`);
|
|
154
|
-
// await driver.setAsyncScriptTimeout(1000);
|
|
155
|
-
// await driver.executeAsync(`arguments[arguments.length - 1](123);`)
|
|
156
|
-
// .should.eventually.equal(123);
|
|
157
|
-
// });
|
|
158
|
-
// });
|
|
159
|
-
});
|
|
160
|
-
describe('https', function () {
|
|
161
|
-
before(async function () {
|
|
162
|
-
await (0, helpers_1.openPage)(driver, 'https://google.com');
|
|
163
|
-
});
|
|
164
|
-
runTests(true);
|
|
165
|
-
});
|
|
166
|
-
});
|
|
167
|
-
//# sourceMappingURL=safari-execute-e2e-specs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"safari-execute-e2e-specs.js","sourceRoot":"","sources":["../../../../test/functional/web/safari-execute-e2e-specs.ts"],"names":[],"mappings":"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"}
|