@appium/fake-driver 3.0.5 → 3.2.2
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/build/lib/commands/alert.js +1 -1
- package/build/lib/commands/contexts.js +8 -3
- package/build/lib/commands/element.js +1 -1
- package/build/lib/commands/find.js +1 -1
- package/build/lib/commands/general.js +1 -1
- package/build/lib/driver.js +29 -18
- package/build/lib/fake-driver-schema.js +31 -0
- package/build/lib/index.js +48 -0
- package/build/lib/scripts/fake-error.js +2 -2
- package/build/lib/scripts/fake-success.js +2 -2
- package/build/screen.png +0 -0
- package/build/test/alert-tests.js +64 -0
- package/build/test/command-specs.js +33 -0
- package/build/test/context-tests.js +63 -0
- package/build/test/driver-e2e-specs.js +85 -0
- package/build/test/driver-specs.js +49 -0
- package/build/test/element-interaction-tests.js +133 -0
- package/build/test/find-element-tests.js +88 -0
- package/build/test/fixtures/app.xml +38 -0
- package/build/test/general-tests.js +118 -0
- package/build/test/helpers.js +69 -0
- package/index.js +1 -27
- package/lib/commands/contexts.js +5 -1
- package/lib/driver.js +23 -14
- package/lib/fake-driver-schema.js +36 -0
- package/lib/index.js +29 -0
- package/lib/scripts/fake-error.js +1 -1
- package/lib/scripts/fake-success.js +1 -1
- package/package.json +10 -17
- package/build/index.js +0 -48
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
require("source-map-support/register");
|
|
6
|
+
|
|
7
|
+
var _lodash = _interopRequireDefault(require("lodash"));
|
|
8
|
+
|
|
9
|
+
var _lib = require("../lib");
|
|
10
|
+
|
|
11
|
+
var _helpers = require("./helpers");
|
|
12
|
+
|
|
13
|
+
var _basedriver = require("@appium/base-driver/build/test/basedriver");
|
|
14
|
+
|
|
15
|
+
(0, _basedriver.baseDriverUnitTests)(_lib.FakeDriver, _lodash.default.cloneDeep(_helpers.W3C_PREFIXED_CAPS));
|
|
16
|
+
describe('FakeDriver', function () {
|
|
17
|
+
it('should not start a session when a unique session is already running', async function () {
|
|
18
|
+
let d1 = new _lib.FakeDriver();
|
|
19
|
+
let [uniqueSession] = await d1.createSession(null, null, {
|
|
20
|
+
alwaysMatch: { ..._lodash.default.cloneDeep(_helpers.W3C_PREFIXED_CAPS),
|
|
21
|
+
'appium:uniqueApp': true
|
|
22
|
+
},
|
|
23
|
+
firstMatch: [{}]
|
|
24
|
+
});
|
|
25
|
+
uniqueSession.should.be.a('string');
|
|
26
|
+
let d2 = new _lib.FakeDriver();
|
|
27
|
+
let otherSessionData = [d1.driverData];
|
|
28
|
+
|
|
29
|
+
try {
|
|
30
|
+
await d2.createSession(null, null, _lodash.default.cloneDeep(_helpers.W3C_CAPS), otherSessionData).should.eventually.be.rejectedWith(/unique/);
|
|
31
|
+
} finally {
|
|
32
|
+
await d1.deleteSession(uniqueSession);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
it('should start a new session when another non-unique session is running', async function () {
|
|
36
|
+
let d1 = new _lib.FakeDriver();
|
|
37
|
+
let [session1Id] = await d1.createSession(null, null, _lodash.default.cloneDeep(_helpers.W3C_CAPS));
|
|
38
|
+
session1Id.should.be.a('string');
|
|
39
|
+
let d2 = new _lib.FakeDriver();
|
|
40
|
+
let [session2Id] = await d2.createSession(null, null, _lodash.default.cloneDeep(_helpers.W3C_CAPS));
|
|
41
|
+
session2Id.should.be.a('string');
|
|
42
|
+
session1Id.should.not.equal(session2Id);
|
|
43
|
+
await d1.deleteSession(session1Id);
|
|
44
|
+
await d2.deleteSession(session2Id);
|
|
45
|
+
});
|
|
46
|
+
});require('source-map-support').install();
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZHJpdmVyLXNwZWNzLmpzIl0sIm5hbWVzIjpbIkZha2VEcml2ZXIiLCJfIiwiY2xvbmVEZWVwIiwiVzNDX1BSRUZJWEVEX0NBUFMiLCJkZXNjcmliZSIsIml0IiwiZDEiLCJ1bmlxdWVTZXNzaW9uIiwiY3JlYXRlU2Vzc2lvbiIsImFsd2F5c01hdGNoIiwiZmlyc3RNYXRjaCIsInNob3VsZCIsImJlIiwiYSIsImQyIiwib3RoZXJTZXNzaW9uRGF0YSIsImRyaXZlckRhdGEiLCJXM0NfQ0FQUyIsImV2ZW50dWFsbHkiLCJyZWplY3RlZFdpdGgiLCJkZWxldGVTZXNzaW9uIiwic2Vzc2lvbjFJZCIsInNlc3Npb24ySWQiLCJub3QiLCJlcXVhbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBSUEscUNBQW9CQSxlQUFwQixFQUFnQ0MsZ0JBQUVDLFNBQUYsQ0FBWUMsMEJBQVosQ0FBaEM7QUFFQUMsUUFBUSxDQUFDLFlBQUQsRUFBZSxZQUFZO0FBQ2pDQyxFQUFBQSxFQUFFLENBQUMscUVBQUQsRUFBd0Usa0JBQWtCO0FBQzFGLFFBQUlDLEVBQUUsR0FBRyxJQUFJTixlQUFKLEVBQVQ7QUFDQSxRQUFJLENBQUNPLGFBQUQsSUFBa0IsTUFBTUQsRUFBRSxDQUFDRSxhQUFILENBQWlCLElBQWpCLEVBQXVCLElBQXZCLEVBQTZCO0FBQ3ZEQyxNQUFBQSxXQUFXLEVBQUUsRUFBRSxHQUFHUixnQkFBRUMsU0FBRixDQUFZQywwQkFBWixDQUFMO0FBQXFDLDRCQUFvQjtBQUF6RCxPQUQwQztBQUV2RE8sTUFBQUEsVUFBVSxFQUFFLENBQUMsRUFBRDtBQUYyQyxLQUE3QixDQUE1QjtBQUlBSCxJQUFBQSxhQUFhLENBQUNJLE1BQWQsQ0FBcUJDLEVBQXJCLENBQXdCQyxDQUF4QixDQUEwQixRQUExQjtBQUNBLFFBQUlDLEVBQUUsR0FBRyxJQUFJZCxlQUFKLEVBQVQ7QUFDQSxRQUFJZSxnQkFBZ0IsR0FBRyxDQUFDVCxFQUFFLENBQUNVLFVBQUosQ0FBdkI7O0FBQ0EsUUFBSTtBQUNGLFlBQU1GLEVBQUUsQ0FDTE4sYUFERyxDQUVGLElBRkUsRUFHRixJQUhFLEVBSUZQLGdCQUFFQyxTQUFGLENBQVllLGlCQUFaLENBSkUsRUFLRkYsZ0JBTEUsRUFPSEosTUFQRyxDQU9JTyxVQVBKLENBT2VOLEVBUGYsQ0FPa0JPLFlBUGxCLENBTytCLFFBUC9CLENBQU47QUFRRCxLQVRELFNBU1U7QUFDUixZQUFNYixFQUFFLENBQUNjLGFBQUgsQ0FBaUJiLGFBQWpCLENBQU47QUFDRDtBQUNGLEdBckJDLENBQUY7QUFzQkFGLEVBQUFBLEVBQUUsQ0FBQyx1RUFBRCxFQUEwRSxrQkFBa0I7QUFDNUYsUUFBSUMsRUFBRSxHQUFHLElBQUlOLGVBQUosRUFBVDtBQUNBLFFBQUksQ0FBQ3FCLFVBQUQsSUFBZSxNQUFNZixFQUFFLENBQUNFLGFBQUgsQ0FBaUIsSUFBakIsRUFBdUIsSUFBdkIsRUFBNkJQLGdCQUFFQyxTQUFGLENBQVllLGlCQUFaLENBQTdCLENBQXpCO0FBQ0FJLElBQUFBLFVBQVUsQ0FBQ1YsTUFBWCxDQUFrQkMsRUFBbEIsQ0FBcUJDLENBQXJCLENBQXVCLFFBQXZCO0FBQ0EsUUFBSUMsRUFBRSxHQUFHLElBQUlkLGVBQUosRUFBVDtBQUNBLFFBQUksQ0FBQ3NCLFVBQUQsSUFBZSxNQUFNUixFQUFFLENBQUNOLGFBQUgsQ0FBaUIsSUFBakIsRUFBdUIsSUFBdkIsRUFBNkJQLGdCQUFFQyxTQUFGLENBQVllLGlCQUFaLENBQTdCLENBQXpCO0FBQ0FLLElBQUFBLFVBQVUsQ0FBQ1gsTUFBWCxDQUFrQkMsRUFBbEIsQ0FBcUJDLENBQXJCLENBQXVCLFFBQXZCO0FBQ0FRLElBQUFBLFVBQVUsQ0FBQ1YsTUFBWCxDQUFrQlksR0FBbEIsQ0FBc0JDLEtBQXRCLENBQTRCRixVQUE1QjtBQUNBLFVBQU1oQixFQUFFLENBQUNjLGFBQUgsQ0FBaUJDLFVBQWpCLENBQU47QUFDQSxVQUFNUCxFQUFFLENBQUNNLGFBQUgsQ0FBaUJFLFVBQWpCLENBQU47QUFDRCxHQVZDLENBQUY7QUFXRCxDQWxDTyxDQUFSIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHJhbnNwaWxlOm1vY2hhXG5cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBGYWtlRHJpdmVyIH0gZnJvbSAnLi4vbGliJztcbmltcG9ydCB7IFczQ19DQVBTLCBXM0NfUFJFRklYRURfQ0FQUyB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBiYXNlRHJpdmVyVW5pdFRlc3RzIH0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlci9idWlsZC90ZXN0L2Jhc2Vkcml2ZXInO1xuXG5cbi8vIHRlc3QgdGhlIHNhbWUgdGhpbmdzIGFzIGZvciBiYXNlIGRyaXZlclxuYmFzZURyaXZlclVuaXRUZXN0cyhGYWtlRHJpdmVyLCBfLmNsb25lRGVlcChXM0NfUFJFRklYRURfQ0FQUykpO1xuXG5kZXNjcmliZSgnRmFrZURyaXZlcicsIGZ1bmN0aW9uICgpIHtcbiAgaXQoJ3Nob3VsZCBub3Qgc3RhcnQgYSBzZXNzaW9uIHdoZW4gYSB1bmlxdWUgc2Vzc2lvbiBpcyBhbHJlYWR5IHJ1bm5pbmcnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGQxID0gbmV3IEZha2VEcml2ZXIoKTtcbiAgICBsZXQgW3VuaXF1ZVNlc3Npb25dID0gYXdhaXQgZDEuY3JlYXRlU2Vzc2lvbihudWxsLCBudWxsLCB7XG4gICAgICBhbHdheXNNYXRjaDogeyAuLi5fLmNsb25lRGVlcChXM0NfUFJFRklYRURfQ0FQUyksICdhcHBpdW06dW5pcXVlQXBwJzogdHJ1ZSB9LFxuICAgICAgZmlyc3RNYXRjaDogW3t9XSxcbiAgICB9KTtcbiAgICB1bmlxdWVTZXNzaW9uLnNob3VsZC5iZS5hKCdzdHJpbmcnKTtcbiAgICBsZXQgZDIgPSBuZXcgRmFrZURyaXZlcigpO1xuICAgIGxldCBvdGhlclNlc3Npb25EYXRhID0gW2QxLmRyaXZlckRhdGFdO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBkMlxuICAgICAgICAuY3JlYXRlU2Vzc2lvbihcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgXy5jbG9uZURlZXAoVzNDX0NBUFMpLFxuICAgICAgICAgIG90aGVyU2Vzc2lvbkRhdGEsXG4gICAgICAgIClcbiAgICAgICAgLnNob3VsZC5ldmVudHVhbGx5LmJlLnJlamVjdGVkV2l0aCgvdW5pcXVlLyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGQxLmRlbGV0ZVNlc3Npb24odW5pcXVlU2Vzc2lvbik7XG4gICAgfVxuICB9KTtcbiAgaXQoJ3Nob3VsZCBzdGFydCBhIG5ldyBzZXNzaW9uIHdoZW4gYW5vdGhlciBub24tdW5pcXVlIHNlc3Npb24gaXMgcnVubmluZycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgZDEgPSBuZXcgRmFrZURyaXZlcigpO1xuICAgIGxldCBbc2Vzc2lvbjFJZF0gPSBhd2FpdCBkMS5jcmVhdGVTZXNzaW9uKG51bGwsIG51bGwsIF8uY2xvbmVEZWVwKFczQ19DQVBTKSk7XG4gICAgc2Vzc2lvbjFJZC5zaG91bGQuYmUuYSgnc3RyaW5nJyk7XG4gICAgbGV0IGQyID0gbmV3IEZha2VEcml2ZXIoKTtcbiAgICBsZXQgW3Nlc3Npb24ySWRdID0gYXdhaXQgZDIuY3JlYXRlU2Vzc2lvbihudWxsLCBudWxsLCBfLmNsb25lRGVlcChXM0NfQ0FQUykpO1xuICAgIHNlc3Npb24ySWQuc2hvdWxkLmJlLmEoJ3N0cmluZycpO1xuICAgIHNlc3Npb24xSWQuc2hvdWxkLm5vdC5lcXVhbChzZXNzaW9uMklkKTtcbiAgICBhd2FpdCBkMS5kZWxldGVTZXNzaW9uKHNlc3Npb24xSWQpO1xuICAgIGF3YWl0IGQyLmRlbGV0ZVNlc3Npb24oc2Vzc2lvbjJJZCk7XG4gIH0pO1xufSk7XG4iXSwiZmlsZSI6InRlc3QvZHJpdmVyLXNwZWNzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
require("source-map-support/register");
|
|
11
|
+
|
|
12
|
+
var _chaiWebdriverioAsync = _interopRequireDefault(require("chai-webdriverio-async"));
|
|
13
|
+
|
|
14
|
+
var _helpers = require("./helpers");
|
|
15
|
+
|
|
16
|
+
function elementTests() {
|
|
17
|
+
describe('element interaction and introspection', function () {
|
|
18
|
+
let driver;
|
|
19
|
+
before(async function () {
|
|
20
|
+
driver = await (0, _helpers.initSession)(_helpers.W3C_PREFIXED_CAPS);
|
|
21
|
+
chai.use((0, _chaiWebdriverioAsync.default)(driver));
|
|
22
|
+
});
|
|
23
|
+
after(async function () {
|
|
24
|
+
return await (0, _helpers.deleteSession)(driver);
|
|
25
|
+
});
|
|
26
|
+
it('should not set value on an invalid element', async function () {
|
|
27
|
+
const el = await driver.$('//MockListItem');
|
|
28
|
+
await el.setValue('test value').should.eventually.be.rejectedWith(/invalid state/);
|
|
29
|
+
});
|
|
30
|
+
it('should set value on an element and retrieve text', async function () {
|
|
31
|
+
let el = await driver.$('//MockInputField');
|
|
32
|
+
await el.setValue('test value');
|
|
33
|
+
await el.should.have.text('test value');
|
|
34
|
+
});
|
|
35
|
+
it('should not clear an invalid element', async function () {
|
|
36
|
+
await (await driver.$('//MockListItem')).clearValue().should.eventually.be.rejectedWith(/invalid state/);
|
|
37
|
+
});
|
|
38
|
+
it('should clear an element', async function () {
|
|
39
|
+
let el = await driver.$('//MockInputField');
|
|
40
|
+
await el.setValue('test value');
|
|
41
|
+
await el.should.not.have.text('');
|
|
42
|
+
await el.clearValue();
|
|
43
|
+
await el.should.have.text('');
|
|
44
|
+
});
|
|
45
|
+
it('should not click an invisible element', async function () {
|
|
46
|
+
await (await driver.$('#Button1')).click().should.eventually.be.rejectedWith(/invalid state/);
|
|
47
|
+
});
|
|
48
|
+
it('should click an element and get its attributes', async function () {
|
|
49
|
+
let el = await driver.$('#Button2');
|
|
50
|
+
await el.click();
|
|
51
|
+
await el.click();
|
|
52
|
+
await el.click();
|
|
53
|
+
(await el.getAttribute('clicks')).should.equal(3);
|
|
54
|
+
});
|
|
55
|
+
it('should get the name of an element', async function () {
|
|
56
|
+
let el = await driver.$('MockInputField');
|
|
57
|
+
(await el.getTagName()).should.equal('MockInputField');
|
|
58
|
+
el = await driver.$('#wv');
|
|
59
|
+
(await el.getTagName()).should.equal('MockWebView');
|
|
60
|
+
});
|
|
61
|
+
it('should detect whether an element is displayed', async function () {
|
|
62
|
+
await driver.$('#Button1').should.not.be.displayed();
|
|
63
|
+
await driver.$('#Button2').should.be.displayed();
|
|
64
|
+
});
|
|
65
|
+
it('should detect whether an element is enabled', async function () {
|
|
66
|
+
await driver.$('#Button1').should.not.be.enabled();
|
|
67
|
+
await driver.$('#Button2').should.be.enabled();
|
|
68
|
+
});
|
|
69
|
+
it('should detect whether an element is selected', async function () {
|
|
70
|
+
await driver.$('#Button1').should.not.be.selected();
|
|
71
|
+
await driver.$('#Button2').should.be.selected();
|
|
72
|
+
});
|
|
73
|
+
it('should get the rect of an element', async function () {
|
|
74
|
+
let {
|
|
75
|
+
elementId
|
|
76
|
+
} = await driver.$('#nav');
|
|
77
|
+
(await driver.getElementRect(elementId)).should.eql({
|
|
78
|
+
x: 1,
|
|
79
|
+
y: 1,
|
|
80
|
+
width: 100,
|
|
81
|
+
height: 100
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
it('should get the rect of an element with float vals', async function () {
|
|
85
|
+
let {
|
|
86
|
+
elementId
|
|
87
|
+
} = await driver.$('#lv');
|
|
88
|
+
(await driver.getElementRect(elementId)).should.eql({
|
|
89
|
+
x: 20.8,
|
|
90
|
+
y: 15.3,
|
|
91
|
+
height: 2,
|
|
92
|
+
width: 30.5
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
it('should determine element equality', async function () {
|
|
96
|
+
let el1 = await driver.$('#wv');
|
|
97
|
+
let el2 = await driver.$('#wv');
|
|
98
|
+
(await el1.isEqual(el2)).should.equal(true);
|
|
99
|
+
});
|
|
100
|
+
it('should determine element inequality', async function () {
|
|
101
|
+
let el1 = await driver.$('#wv');
|
|
102
|
+
let el2 = await driver.$('#lv');
|
|
103
|
+
(await el1.isEqual(el2)).should.equal(false);
|
|
104
|
+
});
|
|
105
|
+
it('should not get the css property of an element when not in a webview', async function () {
|
|
106
|
+
const {
|
|
107
|
+
elementId
|
|
108
|
+
} = await driver.$('#Button1');
|
|
109
|
+
await driver.getElementCSSValue(elementId, 'height').should.eventually.be.rejectedWith({
|
|
110
|
+
code: 36
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
it('should get the css property of an element when in a webview', async function () {
|
|
114
|
+
await driver.switchContext('WEBVIEW_1');
|
|
115
|
+
let {
|
|
116
|
+
elementId
|
|
117
|
+
} = await driver.$('body');
|
|
118
|
+
(await driver.getElementCSSValue(elementId, 'background-color')).should.equal('#000');
|
|
119
|
+
});
|
|
120
|
+
it('should return null for an unspecified css property', async function () {
|
|
121
|
+
let {
|
|
122
|
+
elementId
|
|
123
|
+
} = await driver.$('body');
|
|
124
|
+
should.equal(await driver.getElementCSSValue(elementId, 'font-size'), null);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
var _default = elementTests;
|
|
130
|
+
exports.default = _default;require('source-map-support').install();
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZWxlbWVudC1pbnRlcmFjdGlvbi10ZXN0cy5qcyJdLCJuYW1lcyI6WyJlbGVtZW50VGVzdHMiLCJkZXNjcmliZSIsImRyaXZlciIsImJlZm9yZSIsIlczQ19QUkVGSVhFRF9DQVBTIiwiY2hhaSIsInVzZSIsImFmdGVyIiwiaXQiLCJlbCIsIiQiLCJzZXRWYWx1ZSIsInNob3VsZCIsImV2ZW50dWFsbHkiLCJiZSIsInJlamVjdGVkV2l0aCIsImhhdmUiLCJ0ZXh0IiwiY2xlYXJWYWx1ZSIsIm5vdCIsImNsaWNrIiwiZ2V0QXR0cmlidXRlIiwiZXF1YWwiLCJnZXRUYWdOYW1lIiwiZGlzcGxheWVkIiwiZW5hYmxlZCIsInNlbGVjdGVkIiwiZWxlbWVudElkIiwiZ2V0RWxlbWVudFJlY3QiLCJlcWwiLCJ4IiwieSIsIndpZHRoIiwiaGVpZ2h0IiwiZWwxIiwiZWwyIiwiaXNFcXVhbCIsImdldEVsZW1lbnRDU1NWYWx1ZSIsImNvZGUiLCJzd2l0Y2hDb250ZXh0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUVBLFNBQVNBLFlBQVQsR0FBeUI7QUFDdkJDLEVBQUFBLFFBQVEsQ0FBQyx1Q0FBRCxFQUEwQyxZQUFZO0FBQzVELFFBQUlDLE1BQUo7QUFDQUMsSUFBQUEsTUFBTSxDQUFFLGtCQUFrQjtBQUN4QkQsTUFBQUEsTUFBTSxHQUFHLE1BQU0sMEJBQVlFLDBCQUFaLENBQWY7QUFDQUMsTUFBQUEsSUFBSSxDQUFDQyxHQUFMLENBQVMsbUNBQXFCSixNQUFyQixDQUFUO0FBQ0QsS0FISyxDQUFOO0FBSUFLLElBQUFBLEtBQUssQ0FBQyxrQkFBa0I7QUFDdEIsYUFBTyxNQUFNLDRCQUFjTCxNQUFkLENBQWI7QUFDRCxLQUZJLENBQUw7QUFJQU0sSUFBQUEsRUFBRSxDQUFDLDRDQUFELEVBQStDLGtCQUFrQjtBQUNqRSxZQUFNQyxFQUFFLEdBQUcsTUFBTVAsTUFBTSxDQUFDUSxDQUFQLENBQVMsZ0JBQVQsQ0FBakI7QUFDQSxZ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RUFBd0Usa0JBQWtCO0FBQzFGLFlBQU07QUFBQ21CLFFBQUFBO0FBQUQsVUFBYyxNQUFNekIsTUFBTSxDQUFDUSxDQUFQLENBQVMsVUFBVCxDQUExQjtBQUNBLFlBQU1SLE1BQU0sQ0FBQ21DLGtCQUFQLENBQTBCVixTQUExQixFQUFxQyxRQUFyQyxFQUErQ2YsTUFBL0MsQ0FBc0RDLFVBQXRELENBQWlFQyxFQUFqRSxDQUFvRUMsWUFBcEUsQ0FBaUY7QUFBQ3VCLFFBQUFBLElBQUksRUFBRTtBQUFQLE9BQWpGLENBQU47QUFDRCxLQUhDLENBQUY7QUFJQTlCLElBQUFBLEVBQUUsQ0FBQyw2REFBRCxFQUFnRSxrQkFBa0I7QUFDbEYsWUFBTU4sTUFBTSxDQUFDcUMsYUFBUCxDQUFxQixXQUFyQixDQUFOO0FBQ0EsVUFBSTtBQUFDWixRQUFBQTtBQUFELFVBQWMsTUFBTXpCLE1BQU0sQ0FBQ1EsQ0FBUCxDQUFTLE1BQVQsQ0FBeEI7QUFDQSxPQUFDLE1BQU1SLE1BQU0sQ0FBQ21DLGtCQUFQLENBQTBCVixTQUExQixFQUFxQyxrQkFBckMsQ0FBUCxFQUFpRWYsTUFBakUsQ0FBd0VVLEtBQXhFLENBQThFLE1BQTlFO0FBQ0QsS0FKQyxDQUFGO0FBS0FkLElBQUFBLEVBQUUsQ0FBQyxvREFBRCxFQUF1RCxrQkFBa0I7QUFDekUsVUFBSTtBQUFDbUIsUUFBQUE7QUFBRCxVQUFjLE1BQU16QixNQUFNLENBQUNRLENBQVAsQ0FBUyxNQUFULENBQXhCO0FBQ0FFLE1BQUFBLE1BQU0sQ0FBQ1UsS0FBUCxDQUFhLE1BQU1wQixNQUFNLENBQUNtQyxrQkFBUCxDQUEwQlYsU0FBMUIsRUFBcUMsV0FBckMsQ0FBbkIsRUFBc0UsSUFBdEU7QUFDRCxLQUhDLENBQUY7QUFJRCxHQTNGTyxDQUFSO0FBNEZEOztlQUVjM0IsWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFpV2ViZHJpdmVySU9Bc3luYyBmcm9tICdjaGFpLXdlYmRyaXZlcmlvLWFzeW5jJztcblxuaW1wb3J0IHsgaW5pdFNlc3Npb24sIGRlbGV0ZVNlc3Npb24sIFczQ19QUkVGSVhFRF9DQVBTIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuZnVuY3Rpb24gZWxlbWVudFRlc3RzICgpIHtcbiAgZGVzY3JpYmUoJ2VsZW1lbnQgaW50ZXJhY3Rpb24gYW5kIGludHJvc3BlY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGRyaXZlcjtcbiAgICBiZWZvcmUgKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGRyaXZlciA9IGF3YWl0IGluaXRTZXNzaW9uKFczQ19QUkVGSVhFRF9DQVBTKTtcbiAgICAgIGNoYWkudXNlKGNoYWlXZWJkcml2ZXJJT0FzeW5jKGRyaXZlcikpO1xuICAgIH0pO1xuICAgIGFmdGVyKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBhd2FpdCBkZWxldGVTZXNzaW9uKGRyaXZlcik7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG5vdCBzZXQgdmFsdWUgb24gYW4gaW52YWxpZCBlbGVtZW50JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgZWwgPSBhd2FpdCBkcml2ZXIuJCgnLy9Nb2NrTGlzdEl0ZW0nKTtcbiAgICAgIGF3YWl0IGVsLnNldFZhbHVlKCd0ZXN0IHZhbHVlJykuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKC9pbnZhbGlkIHN0YXRlLyk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBzZXQgdmFsdWUgb24gYW4gZWxlbWVudCBhbmQgcmV0cmlldmUgdGV4dCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGxldCBlbCA9IGF3YWl0IGRyaXZlci4kKCcvL01vY2tJbnB1dEZpZWxkJyk7XG4gICAgICBhd2FpdCBlbC5zZXRWYWx1ZSgndGVzdCB2YWx1ZScpO1xuICAgICAgYXdhaXQgZWwuc2hvdWxkLmhhdmUudGV4dCgndGVzdCB2YWx1ZScpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgbm90IGNsZWFyIGFuIGludmFsaWQgZWxlbWVudCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGF3YWl0IChhd2FpdCBkcml2ZXIuJCgnLy9Nb2NrTGlzdEl0ZW0nKSkuY2xlYXJWYWx1ZSgpXG4gICAgICAgICAgICAgIC5zaG91bGQuZXZlbnR1YWxseS5iZS5yZWplY3RlZFdpdGgoL2ludmFsaWQgc3RhdGUvKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGNsZWFyIGFuIGVsZW1lbnQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBsZXQgZWwgPSBhd2FpdCBkcml2ZXIuJCgnLy9Nb2NrSW5wdXRGaWVsZCcpO1xuICAgICAgYXdhaXQgZWwuc2V0VmFsdWUoJ3Rlc3QgdmFsdWUnKTtcbiAgICAgIGF3YWl0IGVsLnNob3VsZC5ub3QuaGF2ZS50ZXh0KCcnKTtcbiAgICAgIGF3YWl0IGVsLmNsZWFyVmFsdWUoKTtcbiAgICAgIGF3YWl0IGVsLnNob3VsZC5oYXZlLnRleHQoJycpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgbm90IGNsaWNrIGFuIGludmlzaWJsZSBlbGVtZW50JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQgKGF3YWl0IGRyaXZlci4kKCcjQnV0dG9uMScpKS5jbGljaygpXG4gICAgICAgICAgICAgIC5zaG91bGQuZXZlbnR1YWxseS5iZS5yZWplY3RlZFdpdGgoL2ludmFsaWQgc3RhdGUvKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGNsaWNrIGFuIGVsZW1lbnQgYW5kIGdldCBpdHMgYXR0cmlidXRlcycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGxldCBlbCA9IGF3YWl0IGRyaXZlci4kKCcjQnV0dG9uMicpO1xuICAgICAgYXdhaXQgZWwuY2xpY2soKTtcbiAgICAgIGF3YWl0IGVsLmNsaWNrKCk7XG4gICAgICBhd2FpdCBlbC5jbGljaygpO1xuICAgICAgKGF3YWl0IGVsLmdldEF0dHJpYnV0ZSgnY2xpY2tzJykpLnNob3VsZC5lcXVhbCgzKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGdldCB0aGUgbmFtZSBvZiBhbiBlbGVtZW50JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgbGV0IGVsID0gYXdhaXQgZHJpdmVyLiQoJ01vY2tJbnB1dEZpZWxkJyk7XG4gICAgICAoYXdhaXQgZWwuZ2V0VGFnTmFtZSgpKS5zaG91bGQuZXF1YWwoJ01vY2tJbnB1dEZpZWxkJyk7XG4gICAgICBlbCA9IGF3YWl0IGRyaXZlci4kKCcjd3YnKTtcbiAgICAgIChhd2FpdCBlbC5nZXRUYWdOYW1lKCkpLnNob3VsZC5lcXVhbCgnTW9ja1dlYlZpZXcnKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGRldGVjdCB3aGV0aGVyIGFuIGVsZW1lbnQgaXMgZGlzcGxheWVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQgZHJpdmVyLiQoJyNCdXR0b24xJykuc2hvdWxkLm5vdC5iZS5kaXNwbGF5ZWQoKTtcbiAgICAgIGF3YWl0IGRyaXZlci4kKCcjQnV0dG9uMicpLnNob3VsZC5iZS5kaXNwbGF5ZWQoKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGRldGVjdCB3aGV0aGVyIGFuIGVsZW1lbnQgaXMgZW5hYmxlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGF3YWl0IGRyaXZlci4kKCcjQnV0dG9uMScpLnNob3VsZC5ub3QuYmUuZW5hYmxlZCgpO1xuICAgICAgYXdhaXQgZHJpdmVyLiQoJyNCdXR0b24yJykuc2hvdWxkLmJlLmVuYWJsZWQoKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGRldGVjdCB3aGV0aGVyIGFuIGVsZW1lbnQgaXMgc2VsZWN0ZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBkcml2ZXIuJCgnI0J1dHRvbjEnKS5zaG91bGQubm90LmJlLnNlbGVjdGVkKCk7XG4gICAgICBhd2FpdCBkcml2ZXIuJCgnI0J1dHRvbjInKS5zaG91bGQuYmUuc2VsZWN0ZWQoKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGdldCB0aGUgcmVjdCBvZiBhbiBlbGVtZW50JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgbGV0IHtlbGVtZW50SWR9ID0gYXdhaXQgZHJpdmVyLiQoJyNuYXYnKTtcbiAgICAgIChhd2FpdCBkcml2ZXIuZ2V0RWxlbWVudFJlY3QoZWxlbWVudElkKSkuc2hvdWxkLmVxbCh7eDogMSwgeTogMSwgd2lkdGg6IDEwMCwgaGVpZ2h0OiAxMDB9KTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGdldCB0aGUgcmVjdCBvZiBhbiBlbGVtZW50IHdpdGggZmxvYXQgdmFscycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGxldCB7ZWxlbWVudElkfSA9IGF3YWl0IGRyaXZlci4kKCcjbHYnKTtcbiAgICAgIChhd2FpdCBkcml2ZXIuZ2V0RWxlbWVudFJlY3QoZWxlbWVudElkKSkuc2hvdWxkLmVxbCh7eDogMjAuOCwgeTogMTUuMywgaGVpZ2h0OiAyLCB3aWR0aDogMzAuNX0pO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgZGV0ZXJtaW5lIGVsZW1lbnQgZXF1YWxpdHknLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBsZXQgZWwxID0gYXdhaXQgZHJpdmVyLiQoJyN3dicpO1xuICAgICAgbGV0IGVsMiA9IGF3YWl0IGRyaXZlci4kKCcjd3YnKTtcbiAgICAgIChhd2FpdCBlbDEuaXNFcXVhbChlbDIpKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBkZXRlcm1pbmUgZWxlbWVudCBpbmVxdWFsaXR5JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgbGV0IGVsMSA9IGF3YWl0IGRyaXZlci4kKCcjd3YnKTtcbiAgICAgIGxldCBlbDIgPSBhd2FpdCBkcml2ZXIuJCgnI2x2Jyk7XG4gICAgICAoYXdhaXQgZWwxLmlzRXF1YWwoZWwyKSkuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgbm90IGdldCB0aGUgY3NzIHByb3BlcnR5IG9mIGFuIGVsZW1lbnQgd2hlbiBub3QgaW4gYSB3ZWJ2aWV3JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qge2VsZW1lbnRJZH0gPSBhd2FpdCBkcml2ZXIuJCgnI0J1dHRvbjEnKTtcbiAgICAgIGF3YWl0IGRyaXZlci5nZXRFbGVtZW50Q1NTVmFsdWUoZWxlbWVudElkLCAnaGVpZ2h0Jykuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKHtjb2RlOiAzNn0pO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgZ2V0IHRoZSBjc3MgcHJvcGVydHkgb2YgYW4gZWxlbWVudCB3aGVuIGluIGEgd2VidmlldycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGF3YWl0IGRyaXZlci5zd2l0Y2hDb250ZXh0KCdXRUJWSUVXXzEnKTtcbiAgICAgIGxldCB7ZWxlbWVudElkfSA9IGF3YWl0IGRyaXZlci4kKCdib2R5Jyk7XG4gICAgICAoYXdhaXQgZHJpdmVyLmdldEVsZW1lbnRDU1NWYWx1ZShlbGVtZW50SWQsICdiYWNrZ3JvdW5kLWNvbG9yJykpLnNob3VsZC5lcXVhbCgnIzAwMCcpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgZm9yIGFuIHVuc3BlY2lmaWVkIGNzcyBwcm9wZXJ0eScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGxldCB7ZWxlbWVudElkfSA9IGF3YWl0IGRyaXZlci4kKCdib2R5Jyk7XG4gICAgICBzaG91bGQuZXF1YWwoYXdhaXQgZHJpdmVyLmdldEVsZW1lbnRDU1NWYWx1ZShlbGVtZW50SWQsICdmb250LXNpemUnKSwgbnVsbCk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBlbGVtZW50VGVzdHM7XG4iXSwiZmlsZSI6InRlc3QvZWxlbWVudC1pbnRlcmFjdGlvbi10ZXN0cy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
require("source-map-support/register");
|
|
11
|
+
|
|
12
|
+
var _helpers = require("./helpers");
|
|
13
|
+
|
|
14
|
+
var _chaiWebdriverioAsync = _interopRequireDefault(require("chai-webdriverio-async"));
|
|
15
|
+
|
|
16
|
+
function findElementTests() {
|
|
17
|
+
describe('finding elements', function () {
|
|
18
|
+
let driver;
|
|
19
|
+
before(async function () {
|
|
20
|
+
driver = await (0, _helpers.initSession)(_helpers.W3C_PREFIXED_CAPS);
|
|
21
|
+
chai.use((0, _chaiWebdriverioAsync.default)(driver));
|
|
22
|
+
});
|
|
23
|
+
after(async function () {
|
|
24
|
+
return await (0, _helpers.deleteSession)(driver);
|
|
25
|
+
});
|
|
26
|
+
describe('by XPath', function () {
|
|
27
|
+
it('should find a single element by xpath', async function () {
|
|
28
|
+
await driver.$('//MockWebView').should.be.existing();
|
|
29
|
+
});
|
|
30
|
+
it('should not find a single element that is not there', async function () {
|
|
31
|
+
await driver.$('//dontexist').should.not.be.existing();
|
|
32
|
+
});
|
|
33
|
+
it('should find multiple elements', async function () {
|
|
34
|
+
await driver.$$('//MockListItem').should.have.count(3);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
describe('by classname', function () {
|
|
38
|
+
it('should find a single element by class', async function () {
|
|
39
|
+
await driver.$('.MockWebView').should.be.existing();
|
|
40
|
+
});
|
|
41
|
+
it('should not find a single element by class that is not there', async function () {
|
|
42
|
+
await driver.$('.dontexist').should.not.be.existing();
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
describe('using bad selectors', function () {
|
|
46
|
+
it('should not find a single element with bad selector', async function () {
|
|
47
|
+
await driver.$('badsel').should.eventually.be.rejectedWith({
|
|
48
|
+
code: 32
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
it('should not find multiple elements with bad selector', async function () {
|
|
52
|
+
await driver.$$('badsel').should.eventually.be.rejectedWith({
|
|
53
|
+
code: 32
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
describe('via element selectors', function () {
|
|
58
|
+
it('should find an element from another element', async function () {
|
|
59
|
+
let el = await driver.$('#1');
|
|
60
|
+
let title = await el.$('title');
|
|
61
|
+
let earlierTitle = await driver.$('title');
|
|
62
|
+
await earlierTitle.isEqual(title).should.eventually.equal(false);
|
|
63
|
+
});
|
|
64
|
+
it('should find multiple elements from another element', async function () {
|
|
65
|
+
let el = await driver.$('html');
|
|
66
|
+
await el.$$('title').should.have.count(2);
|
|
67
|
+
});
|
|
68
|
+
it(`should not find an element that doesn't exist from another element`, async function () {
|
|
69
|
+
let el = await driver.$('#1');
|
|
70
|
+
await el.$('marquee').should.not.be.existing();
|
|
71
|
+
});
|
|
72
|
+
it(`should not find multiple elements that don't exist from another element`, async function () {
|
|
73
|
+
let el = await driver.$('#1');
|
|
74
|
+
(await el.$$('marquee')).should.have.count(0);
|
|
75
|
+
});
|
|
76
|
+
it('should not find elements if root element does not exist', async function () {
|
|
77
|
+
let el = await driver.$('#blub');
|
|
78
|
+
await el.$('body').should.eventually.be.rejectedWith(/Can't call \$/);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
var _default = findElementTests;
|
|
85
|
+
exports.default = _default;require('source-map-support').install();
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZmluZC1lbGVtZW50LXRlc3RzLmpzIl0sIm5hbWVzIjpbImZpbmRFbGVtZW50VGVzdHMiLCJkZXNjcmliZSIsImRyaXZlciIsImJlZm9yZSIsIlczQ19QUkVGSVhFRF9DQVBTIiwiY2hhaSIsInVzZSIsImFmdGVyIiwiaXQiLCIkIiwic2hvdWxkIiwiYmUiLCJleGlzdGluZyIsIm5vdCIsIiQkIiwiaGF2ZSIsImNvdW50IiwiZXZlbnR1YWxseSIsInJlamVjdGVkV2l0aCIsImNvZGUiLCJlbCIsInRpdGxlIiwiZWFybGllclRpdGxlIiwiaXNFcXVhbCIsImVxdWFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUdBLFNBQVNBLGdCQUFULEdBQTZCO0FBQzNCQyxFQUFBQSxRQUFRLENBQUMsa0JBQUQsRUFBcUIsWUFBWTtBQUN2QyxRQUFJQyxNQUFKO0FBQ0FDLElBQUFBLE1BQU0sQ0FBRSxrQkFBa0I7QUFDeEJELE1BQUFBLE1BQU0sR0FBRyxNQUFNLDBCQUFZRSwwQkFBWixDQUFmO0FBQ0FDLE1BQUFBLElBQUksQ0FBQ0MsR0FBTCxDQUFTLG1DQUFxQkosTUFBckIsQ0FBVDtBQUNELEtBSEssQ0FBTjtBQUlBSyxJQUFBQSxLQUFLLENBQUMsa0JBQWtCO0FBQ3RCLGFBQU8sTUFBTSw0QkFBY0wsTUFBZCxDQUFiO0FBQ0QsS0FGSSxDQUFMO0FBSUFELElBQUFBLFFBQVEsQ0FBQyxVQUFELEVBQWEsWUFBWTtBQUMvQk8sTUFBQUEsRUFBRSxDQUFDLHVDQUFELEVBQTBDLGtCQUFrQjtBQUM1RCxjQUFNTixNQUFNLENBQUNPLENBQVAsQ0FBUyxlQUFULEVBQTBCQyxNQUExQixDQUFpQ0MsRUFBakMsQ0FBb0NDLFFBQXBDLEVBQU47QUFDRCxPQUZDLENBQUY7QUFHQUosTUFBQUEsRUFBRSxDQUFDLG9EQUFELEVBQXVELGtCQUFrQjtBQUN6RSxjQUFNTixNQUFNLENBQUNPLENBQVAsQ0FBUyxhQUFULEVBQXdCQyxNQUF4QixDQUEr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QUUseUVBQUYsRUFBNEUsa0JBQWtCO0FBQzlGLFlBQUlZLEVBQUUsR0FBRyxNQUFNbEIsTUFBTSxDQUFDTyxDQUFQLENBQVMsSUFBVCxDQUFmO0FBQ0EsU0FBQyxNQUFNVyxFQUFFLENBQUNOLEVBQUgsQ0FBTSxTQUFOLENBQVAsRUFBeUJKLE1BQXpCLENBQWdDSyxJQUFoQyxDQUFxQ0MsS0FBckMsQ0FBMkMsQ0FBM0M7QUFDRCxPQUhDLENBQUY7QUFJQVIsTUFBQUEsRUFBRSxDQUFDLHlEQUFELEVBQTRELGtCQUFrQjtBQUM5RSxZQUFJWSxFQUFFLEdBQUcsTUFBTWxCLE1BQU0sQ0FBQ08sQ0FBUCxDQUFTLE9BQVQsQ0FBZjtBQUNBLGNBQU1XLEVBQUUsQ0FBQ1gsQ0FBSCxDQUFLLE1BQUwsRUFBYUMsTUFBYixDQUFvQk8sVUFBcEIsQ0FBK0JOLEVBQS9CLENBQWtDTyxZQUFsQyxDQUErQyxlQUEvQyxDQUFOO0FBQ0QsT0FIQyxDQUFGO0FBSUQsS0F2Qk8sQ0FBUjtBQXdCRCxHQXBFTyxDQUFSO0FBcUVEOztlQUVjbEIsZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbml0U2Vzc2lvbiwgZGVsZXRlU2Vzc2lvbiwgVzNDX1BSRUZJWEVEX0NBUFMgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IGNoYWlXZWJkcml2ZXJJT0FzeW5jIGZyb20gJ2NoYWktd2ViZHJpdmVyaW8tYXN5bmMnO1xuXG5cbmZ1bmN0aW9uIGZpbmRFbGVtZW50VGVzdHMgKCkge1xuICBkZXNjcmliZSgnZmluZGluZyBlbGVtZW50cycsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgZHJpdmVyO1xuICAgIGJlZm9yZSAoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgZHJpdmVyID0gYXdhaXQgaW5pdFNlc3Npb24oVzNDX1BSRUZJWEVEX0NBUFMpO1xuICAgICAgY2hhaS51c2UoY2hhaVdlYmRyaXZlcklPQXN5bmMoZHJpdmVyKSk7XG4gICAgfSk7XG4gICAgYWZ0ZXIoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGF3YWl0IGRlbGV0ZVNlc3Npb24oZHJpdmVyKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdieSBYUGF0aCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGl0KCdzaG91bGQgZmluZCBhIHNpbmdsZSBlbGVtZW50IGJ5IHhwYXRoJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBhd2FpdCBkcml2ZXIuJCgnLy9Nb2NrV2ViVmlldycpLnNob3VsZC5iZS5leGlzdGluZygpO1xuICAgICAgfSk7XG4gICAgICBpdCgnc2hvdWxkIG5vdCBmaW5kIGEgc2luZ2xlIGVsZW1lbnQgdGhhdCBpcyBub3QgdGhlcmUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGF3YWl0IGRyaXZlci4kKCcvL2RvbnRleGlzdCcpLnNob3VsZC5ub3QuYmUuZXhpc3RpbmcoKTtcbiAgICAgIH0pO1xuICAgICAgaXQoJ3Nob3VsZCBmaW5kIG11bHRpcGxlIGVsZW1lbnRzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBhd2FpdCBkcml2ZXIuJCQoJy8vTW9ja0xpc3RJdGVtJykuc2hvdWxkLmhhdmUuY291bnQoMyk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCdieSBjbGFzc25hbWUnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpdCgnc2hvdWxkIGZpbmQgYSBzaW5nbGUgZWxlbWVudCBieSBjbGFzcycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXdhaXQgZHJpdmVyLiQoJy5Nb2NrV2ViVmlldycpLnNob3VsZC5iZS5leGlzdGluZygpO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgbm90IGZpbmQgYSBzaW5nbGUgZWxlbWVudCBieSBjbGFzcyB0aGF0IGlzIG5vdCB0aGVyZScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgYXdhaXQgZHJpdmVyLiQoJy5kb250ZXhpc3QnKS5zaG91bGQubm90LmJlLmV4aXN0aW5nKCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCd1c2luZyBiYWQgc2VsZWN0b3JzJywgZnVuY3Rpb24gKCkge1xuICAgICAgaXQoJ3Nob3VsZCBub3QgZmluZCBhIHNpbmdsZSBlbGVtZW50IHdpdGggYmFkIHNlbGVjdG9yJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBhd2FpdCBkcml2ZXIuJCgnYmFkc2VsJylcbiAgICAgICAgICAgICAgICAuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKHtjb2RlOiAzMn0pO1xuICAgICAgfSk7XG5cbiAgICAgIGl0KCdzaG91bGQgbm90IGZpbmQgbXVsdGlwbGUgZWxlbWVudHMgd2l0aCBiYWQgc2VsZWN0b3InLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGF3YWl0IGRyaXZlci4kJCgnYmFkc2VsJylcbiAgICAgICAgICAgICAgICAuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKHtjb2RlOiAzMn0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgndmlhIGVsZW1lbnQgc2VsZWN0b3JzJywgZnVuY3Rpb24gKCkge1xuICAgICAgaXQoJ3Nob3VsZCBmaW5kIGFuIGVsZW1lbnQgZnJvbSBhbm90aGVyIGVsZW1lbnQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBlbCA9IGF3YWl0IGRyaXZlci4kKCcjMScpO1xuICAgICAgICBsZXQgdGl0bGUgPSBhd2FpdCBlbC4kKCd0aXRsZScpO1xuICAgICAgICBsZXQgZWFybGllclRpdGxlID0gYXdhaXQgZHJpdmVyLiQoJ3RpdGxlJyk7XG4gICAgICAgIGF3YWl0IGVhcmxpZXJUaXRsZS5pc0VxdWFsKHRpdGxlKS5zaG91bGQuZXZlbnR1YWxseS5lcXVhbChmYWxzZSk7XG4gICAgICB9KTtcbiAgICAgIGl0KCdzaG91bGQgZmluZCBtdWx0aXBsZSBlbGVtZW50cyBmcm9tIGFub3RoZXIgZWxlbWVudCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbGV0IGVsID0gYXdhaXQgZHJpdmVyLiQoJ2h0bWwnKTtcbiAgICAgICAgYXdhaXQgZWwuJCQoJ3RpdGxlJykuc2hvdWxkLmhhdmUuY291bnQoMik7XG4gICAgICB9KTtcbiAgICAgIGl0KGBzaG91bGQgbm90IGZpbmQgYW4gZWxlbWVudCB0aGF0IGRvZXNuJ3QgZXhpc3QgZnJvbSBhbm90aGVyIGVsZW1lbnRgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBlbCA9IGF3YWl0IGRyaXZlci4kKCcjMScpO1xuICAgICAgICBhd2FpdCBlbC4kKCdtYXJxdWVlJykuc2hvdWxkLm5vdC5iZS5leGlzdGluZygpO1xuICAgICAgfSk7XG4gICAgICBpdChgc2hvdWxkIG5vdCBmaW5kIG11bHRpcGxlIGVsZW1lbnRzIHRoYXQgZG9uJ3QgZXhpc3QgZnJvbSBhbm90aGVyIGVsZW1lbnRgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGxldCBlbCA9IGF3YWl0IGRyaXZlci4kKCcjMScpO1xuICAgICAgICAoYXdhaXQgZWwuJCQoJ21hcnF1ZWUnKSkuc2hvdWxkLmhhdmUuY291bnQoMCk7XG4gICAgICB9KTtcbiAgICAgIGl0KCdzaG91bGQgbm90IGZpbmQgZWxlbWVudHMgaWYgcm9vdCBlbGVtZW50IGRvZXMgbm90IGV4aXN0JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICBsZXQgZWwgPSBhd2FpdCBkcml2ZXIuJCgnI2JsdWInKTtcbiAgICAgICAgYXdhaXQgZWwuJCgnYm9keScpLnNob3VsZC5ldmVudHVhbGx5LmJlLnJlamVjdGVkV2l0aCgvQ2FuJ3QgY2FsbCBcXCQvKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZmluZEVsZW1lbnRUZXN0cztcbiJdLCJmaWxlIjoidGVzdC9maW5kLWVsZW1lbnQtdGVzdHMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<app width="400" height="852">
|
|
3
|
+
<MockNavBar id="nav" top="1" left="1" width="100" height="100">
|
|
4
|
+
<MockTextField id="Mock App" />
|
|
5
|
+
</MockNavBar>
|
|
6
|
+
<MockWebView id="wv" top="10" left="10.57" width="20.8" height="20.5">
|
|
7
|
+
<html>
|
|
8
|
+
<head>
|
|
9
|
+
<title value="webview title">Test Webview</title>
|
|
10
|
+
</head>
|
|
11
|
+
<body style="background-color: #000">
|
|
12
|
+
<h1>Hello</h1>
|
|
13
|
+
<iframe id="1">
|
|
14
|
+
<html>
|
|
15
|
+
<head>
|
|
16
|
+
<title value="iframe title">Test iFrame</title>
|
|
17
|
+
</head>
|
|
18
|
+
<body>
|
|
19
|
+
<h1 style="font-family: 'comic sans'">I'm an iFrame</h1>
|
|
20
|
+
</body>
|
|
21
|
+
</html>
|
|
22
|
+
</iframe>
|
|
23
|
+
</body>
|
|
24
|
+
</html>
|
|
25
|
+
</MockWebView>
|
|
26
|
+
<MockListView id="lv" top="15.3" left="20.8" width="30.5" height="2">
|
|
27
|
+
<MockListItem id="li" />
|
|
28
|
+
<MockListItem id="li" />
|
|
29
|
+
<MockListItem />
|
|
30
|
+
</MockListView>
|
|
31
|
+
<MockInputField id="input" name="TypeMe" />
|
|
32
|
+
<MockButton id="Button1" visible="false" enabled="false" />
|
|
33
|
+
<MockButton id="Button2" selected="true" />
|
|
34
|
+
<MockButton id="AlertButton" showAlert="alert1" />
|
|
35
|
+
<MockButton id="AlertButton2" showAlert="alert2" />
|
|
36
|
+
<alert id="alert1" text="Fake Alert" hasPrompt="true" />
|
|
37
|
+
<alert id="alert2" text="Fake Alert 2" hasPrompt="false" />
|
|
38
|
+
</app>
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
require("source-map-support/register");
|
|
11
|
+
|
|
12
|
+
var _chaiWebdriverioAsync = _interopRequireDefault(require("chai-webdriverio-async"));
|
|
13
|
+
|
|
14
|
+
var _helpers = require("./helpers");
|
|
15
|
+
|
|
16
|
+
function generalTests() {
|
|
17
|
+
describe('generic actions', function () {
|
|
18
|
+
let driver;
|
|
19
|
+
before(async function () {
|
|
20
|
+
driver = await (0, _helpers.initSession)(_helpers.W3C_PREFIXED_CAPS);
|
|
21
|
+
chai.use((0, _chaiWebdriverioAsync.default)(driver));
|
|
22
|
+
});
|
|
23
|
+
after(async function () {
|
|
24
|
+
return await (0, _helpers.deleteSession)(driver);
|
|
25
|
+
});
|
|
26
|
+
it.skip('should set geolocation', async function () {
|
|
27
|
+
await driver.setGeoLocation(-30, 30);
|
|
28
|
+
});
|
|
29
|
+
it('should get geolocation', async function () {
|
|
30
|
+
let geo = await driver.getGeoLocation();
|
|
31
|
+
should.exist(geo.latitude);
|
|
32
|
+
should.exist(geo.longitude);
|
|
33
|
+
});
|
|
34
|
+
it('should get app source', async function () {
|
|
35
|
+
let source = await driver.getPageSource();
|
|
36
|
+
source.should.contain('<MockNavBar id="nav"');
|
|
37
|
+
});
|
|
38
|
+
it('should get the orientation', async function () {
|
|
39
|
+
(await driver.getOrientation()).should.equal('PORTRAIT');
|
|
40
|
+
});
|
|
41
|
+
it('should set the orientation to something valid', async function () {
|
|
42
|
+
await driver.setOrientation('LANDSCAPE');
|
|
43
|
+
(await driver.getOrientation()).should.equal('LANDSCAPE');
|
|
44
|
+
});
|
|
45
|
+
it('should not set the orientation to something invalid', async function () {
|
|
46
|
+
await driver.setOrientation('INSIDEOUT').should.eventually.be.rejectedWith(/Orientation must be/);
|
|
47
|
+
});
|
|
48
|
+
it('should get a screenshot', async function () {
|
|
49
|
+
const screenshot = await driver.takeScreenshot();
|
|
50
|
+
screenshot.should.match(/^iVBOR/);
|
|
51
|
+
screenshot.should.have.length.above(4000);
|
|
52
|
+
});
|
|
53
|
+
it('should get screen height/width', async function () {
|
|
54
|
+
const {
|
|
55
|
+
height,
|
|
56
|
+
width
|
|
57
|
+
} = await driver.getWindowSize();
|
|
58
|
+
height.should.be.above(100);
|
|
59
|
+
width.should.be.above(100);
|
|
60
|
+
});
|
|
61
|
+
it('should set implicit wait timeout', async function () {
|
|
62
|
+
await driver.setTimeout({
|
|
63
|
+
implicit: 1000
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
it('should not set invalid implicit wait timeout', async function () {
|
|
67
|
+
await driver.setTimeout({
|
|
68
|
+
implicit: 'foo'
|
|
69
|
+
}).should.eventually.be.rejectedWith(/values are not valid/);
|
|
70
|
+
});
|
|
71
|
+
it.skip('should set async script timeout', async function () {
|
|
72
|
+
await driver.setTimeout({
|
|
73
|
+
script: 1000
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
it.skip('should not set invalid async script timeout', async function () {
|
|
77
|
+
await driver.setTimeout({
|
|
78
|
+
script: 'foo'
|
|
79
|
+
}).should.eventually.be.rejectedWith(/values are not valid/);
|
|
80
|
+
});
|
|
81
|
+
it.skip('should set page load timeout', async function () {
|
|
82
|
+
await driver.setTimeout({
|
|
83
|
+
pageLoad: 1000
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
it.skip('should not set page load script timeout', async function () {
|
|
87
|
+
await driver.setTimeout({
|
|
88
|
+
pageLoad: 'foo'
|
|
89
|
+
}).should.eventually.be.rejectedWith(/values are not valid/);
|
|
90
|
+
});
|
|
91
|
+
it('should allow performing actions that do nothing but save them', async function () {
|
|
92
|
+
const actions = [{
|
|
93
|
+
type: 'pointer',
|
|
94
|
+
id: 'finger1',
|
|
95
|
+
parameters: {
|
|
96
|
+
pointerType: 'touch'
|
|
97
|
+
},
|
|
98
|
+
actions: [{
|
|
99
|
+
type: 'pointerDown',
|
|
100
|
+
button: 0
|
|
101
|
+
}, {
|
|
102
|
+
type: 'pointerUp',
|
|
103
|
+
button: 0
|
|
104
|
+
}]
|
|
105
|
+
}];
|
|
106
|
+
await driver.performActions(actions);
|
|
107
|
+
const [res] = await driver.getLogs('actions');
|
|
108
|
+
res[0].type.should.eql('pointer');
|
|
109
|
+
res[0].actions.should.have.length(2);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
var _default = generalTests;
|
|
115
|
+
exports.default = _default;require('source-map-support').install();
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZ2VuZXJhbC10ZXN0cy5qcyJdLCJuYW1lcyI6WyJnZW5lcmFsVGVzdHMiLCJkZXNjcmliZSIsImRyaXZlciIsImJlZm9yZSIsIlczQ19QUkVGSVhFRF9DQVBTIiwiY2hhaSIsInVzZSIsImFmdGVyIiwiaXQiLCJza2lwIiwic2V0R2VvTG9jYXRpb24iLCJnZW8iLCJnZXRHZW9Mb2NhdGlvbiIsInNob3VsZCIsImV4aXN0IiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJzb3VyY2UiLCJnZXRQYWdlU291cmNlIiwiY29udGFpbiIsImdldE9yaWVudGF0aW9uIiwiZXF1YWwiLCJzZXRPcmllbnRhdGlvbiIsImV2ZW50dWFsbHkiLCJiZSIsInJlamVjdGVkV2l0aCIsInNjcmVlbnNob3QiLCJ0YWtlU2NyZWVuc2hvdCIsIm1hdGNoIiwiaGF2ZSIsImxlbmd0aCIsImFib3ZlIiwiaGVpZ2h0Iiwid2lkdGgiLCJnZXRXaW5kb3dTaXplIiwic2V0VGltZW91dCIsImltcGxpY2l0Iiwic2NyaXB0IiwicGFnZUxvYWQiLCJhY3Rpb25zIiwidHlwZSIsImlkIiwicGFyYW1ldGVycyIsInBvaW50ZXJUeXBlIiwiYnV0dG9uIiwicGVyZm9ybUFjdGlvbnMiLCJyZXMiLCJnZXRMb2dzIiwiZXFsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBLFNBQVNBLFlBQVQsR0FBeUI7QUFDdkJDLEVBQUFBLFFBQVEsQ0FBQyxpQkFBRCxFQUFvQixZQUFZO0FBQ3RDLFFBQUlDLE1BQUo7QUFFQUMsSUFBQUEsTUFBTSxDQUFDLGtCQUFrQjtBQUN2QkQsTUFBQUEsTUFBTSxHQUFHLE1BQU0sMEJBQVlFLDBCQUFaLENBQWY7QUFDQUMsTUFBQUEsSUFBSSxDQUFDQyxHQUFMLENBQVMsbUNBQXFCSixNQUFyQixDQUFUO0FBQ0QsS0FISyxDQUFOO0FBS0FLLElBQUFBLEtBQUssQ0FBQyxrQkFBa0I7QUFDdEIsYUFBTyxNQUFNLDRCQUFjTCxNQUFkLENBQWI7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SUFBSSxFQUFFLGFBRFI7QUFFRUksVUFBQUEsTUFBTSxFQUFFO0FBRlYsU0FETyxFQUtQO0FBQ0VKLFVBQUFBLElBQUksRUFBRSxXQURSO0FBRUVJLFVBQUFBLE1BQU0sRUFBRTtBQUZWLFNBTE87QUFOWCxPQURjLENBQWhCO0FBbUJBLFlBQU0xQyxNQUFNLENBQUMyQyxjQUFQLENBQXNCTixPQUF0QixDQUFOO0FBQ0EsWUFBTSxDQUFDTyxHQUFELElBQVEsTUFBTTVDLE1BQU0sQ0FBQzZDLE9BQVAsQ0FBZSxTQUFmLENBQXBCO0FBQ0FELE1BQUFBLEdBQUcsQ0FBQyxDQUFELENBQUgsQ0FBT04sSUFBUCxDQUFZM0IsTUFBWixDQUFtQm1DLEdBQW5CLENBQXVCLFNBQXZCO0FBQ0FGLE1BQUFBLEdBQUcsQ0FBQyxDQUFELENBQUgsQ0FBT1AsT0FBUCxDQUFlMUIsTUFBZixDQUFzQmdCLElBQXRCLENBQTJCQyxNQUEzQixDQUFrQyxDQUFsQztBQUNELEtBeEJDLENBQUY7QUF5QkQsR0FwR08sQ0FBUjtBQXFHRDs7ZUFFYzlCLFkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhaVdlYmRyaXZlcklPQXN5bmMgZnJvbSAnY2hhaS13ZWJkcml2ZXJpby1hc3luYyc7XG5pbXBvcnQgeyBpbml0U2Vzc2lvbiwgZGVsZXRlU2Vzc2lvbiwgVzNDX1BSRUZJWEVEX0NBUFMgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5mdW5jdGlvbiBnZW5lcmFsVGVzdHMgKCkge1xuICBkZXNjcmliZSgnZ2VuZXJpYyBhY3Rpb25zJywgZnVuY3Rpb24gKCkge1xuICAgIGxldCBkcml2ZXI7XG5cbiAgICBiZWZvcmUoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgZHJpdmVyID0gYXdhaXQgaW5pdFNlc3Npb24oVzNDX1BSRUZJWEVEX0NBUFMpO1xuICAgICAgY2hhaS51c2UoY2hhaVdlYmRyaXZlcklPQXN5bmMoZHJpdmVyKSk7XG4gICAgfSk7XG5cbiAgICBhZnRlcihhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gYXdhaXQgZGVsZXRlU2Vzc2lvbihkcml2ZXIpO1xuICAgIH0pO1xuXG4gICAgaXQuc2tpcCgnc2hvdWxkIHNldCBnZW9sb2NhdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIFRPRE8gdW5xdWFyYW50aW5lIHdoZW4gV0QgZml4ZXMgd2hhdCBpdCBzZW5kcyB0aGUgc2VydmVyXG4gICAgICBhd2FpdCBkcml2ZXIuc2V0R2VvTG9jYXRpb24oLTMwLCAzMCk7XG4gICAgfSk7XG4gICAgaXQoJ3Nob3VsZCBnZXQgZ2VvbG9jYXRpb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBsZXQgZ2VvID0gYXdhaXQgZHJpdmVyLmdldEdlb0xvY2F0aW9uKCk7XG4gICAgICBzaG91bGQuZXhpc3QoZ2VvLmxhdGl0dWRlKTtcbiAgICAgIHNob3VsZC5leGlzdChnZW8ubG9uZ2l0dWRlKTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIGdldCBhcHAgc291cmNlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgbGV0IHNvdXJjZSA9IGF3YWl0IGRyaXZlci5nZXRQYWdlU291cmNlKCk7XG4gICAgICBzb3VyY2Uuc2hvdWxkLmNvbnRhaW4oJzxNb2NrTmF2QmFyIGlkPVwibmF2XCInKTtcbiAgICB9KTtcbiAgICAvLyBUT0RPIGRvIHdlIHdhbnQgdG8gdGVzdCBkcml2ZXIucGFnZUluZGV4PyBwcm9iYWJseSBub3RcblxuICAgIGl0KCdzaG91bGQgZ2V0IHRoZSBvcmllbnRhdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIChhd2FpdCBkcml2ZXIuZ2V0T3JpZW50YXRpb24oKSkuc2hvdWxkLmVxdWFsKCdQT1JUUkFJVCcpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgc2V0IHRoZSBvcmllbnRhdGlvbiB0byBzb21ldGhpbmcgdmFsaWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBkcml2ZXIuc2V0T3JpZW50YXRpb24oJ0xBTkRTQ0FQRScpO1xuICAgICAgKGF3YWl0IGRyaXZlci5nZXRPcmllbnRhdGlvbigpKS5zaG91bGQuZXF1YWwoJ0xBTkRTQ0FQRScpO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgbm90IHNldCB0aGUgb3JpZW50YXRpb24gdG8gc29tZXRoaW5nIGludmFsaWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBkcml2ZXIuc2V0T3JpZW50YXRpb24oJ0lOU0lERU9VVCcpXG4gICAgICAgICAgICAgIC5zaG91bGQuZXZlbnR1YWxseS5iZS5yZWplY3RlZFdpdGgoL09yaWVudGF0aW9uIG11c3QgYmUvKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZ2V0IGEgc2NyZWVuc2hvdCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHNjcmVlbnNob3QgPSBhd2FpdCBkcml2ZXIudGFrZVNjcmVlbnNob3QoKTtcbiAgICAgIHNjcmVlbnNob3Quc2hvdWxkLm1hdGNoKC9eaVZCT1IvKTtcbiAgICAgIHNjcmVlbnNob3Quc2hvdWxkLmhhdmUubGVuZ3RoLmFib3ZlKDQwMDApO1xuICAgIH0pO1xuICAgIGl0KCdzaG91bGQgZ2V0IHNjcmVlbiBoZWlnaHQvd2lkdGgnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB7aGVpZ2h0LCB3aWR0aH0gPSBhd2FpdCBkcml2ZXIuZ2V0V2luZG93U2l6ZSgpO1xuICAgICAgaGVpZ2h0LnNob3VsZC5iZS5hYm92ZSgxMDApO1xuICAgICAgd2lkdGguc2hvdWxkLmJlLmFib3ZlKDEwMCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHNldCBpbXBsaWNpdCB3YWl0IHRpbWVvdXQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBkcml2ZXIuc2V0VGltZW91dCh7aW1wbGljaXQ6IDEwMDB9KTtcbiAgICB9KTtcbiAgICBpdCgnc2hvdWxkIG5vdCBzZXQgaW52YWxpZCBpbXBsaWNpdCB3YWl0IHRpbWVvdXQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBkcml2ZXIuc2V0VGltZW91dCh7aW1wbGljaXQ6ICdmb28nfSlcbiAgICAgICAgICAgICAgLnNob3VsZC5ldmVudHVhbGx5LmJlLnJlamVjdGVkV2l0aCgvdmFsdWVzIGFyZSBub3QgdmFsaWQvKTtcbiAgICB9KTtcblxuICAgIC8vIHNraXAgdGhlc2UgdW50aWwgYmFzZWRyaXZlciBzdXBwb3J0cyB0aGVzZSB0aW1lb3V0c1xuICAgIGl0LnNraXAoJ3Nob3VsZCBzZXQgYXN5bmMgc2NyaXB0IHRpbWVvdXQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBkcml2ZXIuc2V0VGltZW91dCh7c2NyaXB0OiAxMDAwfSk7XG4gICAgfSk7XG4gICAgaXQuc2tpcCgnc2hvdWxkIG5vdCBzZXQgaW52YWxpZCBhc3luYyBzY3JpcHQgdGltZW91dCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGF3YWl0IGRyaXZlci5zZXRUaW1lb3V0KHtzY3JpcHQ6ICdmb28nfSlcbiAgICAgICAgICAgICAgLnNob3VsZC5ldmVudHVhbGx5LmJlLnJlamVjdGVkV2l0aCgvdmFsdWVzIGFyZSBub3QgdmFsaWQvKTtcbiAgICB9KTtcblxuICAgIGl0LnNraXAoJ3Nob3VsZCBzZXQgcGFnZSBsb2FkIHRpbWVvdXQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBkcml2ZXIuc2V0VGltZW91dCh7cGFnZUxvYWQ6IDEwMDB9KTtcbiAgICB9KTtcbiAgICBpdC5za2lwKCdzaG91bGQgbm90IHNldCBwYWdlIGxvYWQgc2NyaXB0IHRpbWVvdXQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBhd2FpdCBkcml2ZXIuc2V0VGltZW91dCh7cGFnZUxvYWQ6ICdmb28nfSlcbiAgICAgICAgICAgICAgLnNob3VsZC5ldmVudHVhbGx5LmJlLnJlamVjdGVkV2l0aCgvdmFsdWVzIGFyZSBub3QgdmFsaWQvKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYWxsb3cgcGVyZm9ybWluZyBhY3Rpb25zIHRoYXQgZG8gbm90aGluZyBidXQgc2F2ZSB0aGVtJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYWN0aW9ucyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdwb2ludGVyJyxcbiAgICAgICAgICBpZDogJ2ZpbmdlcjEnLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIHBvaW50ZXJUeXBlOiAndG91Y2gnXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICdwb2ludGVyRG93bicsXG4gICAgICAgICAgICAgIGJ1dHRvbjogMFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3BvaW50ZXJVcCcsXG4gICAgICAgICAgICAgIGJ1dHRvbjogMFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgICAgXTtcbiAgICAgIGF3YWl0IGRyaXZlci5wZXJmb3JtQWN0aW9ucyhhY3Rpb25zKTtcbiAgICAgIGNvbnN0IFtyZXNdID0gYXdhaXQgZHJpdmVyLmdldExvZ3MoJ2FjdGlvbnMnKTtcbiAgICAgIHJlc1swXS50eXBlLnNob3VsZC5lcWwoJ3BvaW50ZXInKTtcbiAgICAgIHJlc1swXS5hY3Rpb25zLnNob3VsZC5oYXZlLmxlbmd0aCgyKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGdlbmVyYWxUZXN0cztcbiJdLCJmaWxlIjoidGVzdC9nZW5lcmFsLXRlc3RzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.WD_OPTS = exports.W3C_PREFIXED_CAPS = exports.W3C_CAPS = exports.TEST_PORT = exports.TEST_HOST = exports.TEST_APP = exports.BASE_CAPS = void 0;
|
|
9
|
+
exports.deleteSession = deleteSession;
|
|
10
|
+
exports.initSession = initSession;
|
|
11
|
+
|
|
12
|
+
require("source-map-support/register");
|
|
13
|
+
|
|
14
|
+
var _path = _interopRequireDefault(require("path"));
|
|
15
|
+
|
|
16
|
+
var _webdriverio = require("webdriverio");
|
|
17
|
+
|
|
18
|
+
const TEST_HOST = '127.0.0.1';
|
|
19
|
+
exports.TEST_HOST = TEST_HOST;
|
|
20
|
+
const TEST_PORT = 4774;
|
|
21
|
+
exports.TEST_PORT = TEST_PORT;
|
|
22
|
+
|
|
23
|
+
const TEST_APP = _path.default.join(__dirname, 'fixtures', 'app.xml');
|
|
24
|
+
|
|
25
|
+
exports.TEST_APP = TEST_APP;
|
|
26
|
+
const BASE_CAPS = {
|
|
27
|
+
platformName: 'Fake',
|
|
28
|
+
deviceName: 'Commodore 64',
|
|
29
|
+
app: TEST_APP,
|
|
30
|
+
address: TEST_HOST,
|
|
31
|
+
port: 8181
|
|
32
|
+
};
|
|
33
|
+
exports.BASE_CAPS = BASE_CAPS;
|
|
34
|
+
const W3C_PREFIXED_CAPS = {
|
|
35
|
+
'appium:deviceName': BASE_CAPS.deviceName,
|
|
36
|
+
'appium:app': BASE_CAPS.app,
|
|
37
|
+
'appium:address': BASE_CAPS.address,
|
|
38
|
+
'appium:port': BASE_CAPS.port,
|
|
39
|
+
platformName: BASE_CAPS.platformName
|
|
40
|
+
};
|
|
41
|
+
exports.W3C_PREFIXED_CAPS = W3C_PREFIXED_CAPS;
|
|
42
|
+
const W3C_CAPS = {
|
|
43
|
+
alwaysMatch: { ...W3C_PREFIXED_CAPS
|
|
44
|
+
},
|
|
45
|
+
firstMatch: [{}]
|
|
46
|
+
};
|
|
47
|
+
exports.W3C_CAPS = W3C_CAPS;
|
|
48
|
+
const WD_OPTS = {
|
|
49
|
+
hostname: TEST_HOST,
|
|
50
|
+
port: TEST_PORT,
|
|
51
|
+
connectionRetryCount: 0,
|
|
52
|
+
logLevel: 'error'
|
|
53
|
+
};
|
|
54
|
+
exports.WD_OPTS = WD_OPTS;
|
|
55
|
+
|
|
56
|
+
async function initSession(w3cPrefixedCaps) {
|
|
57
|
+
return await (0, _webdriverio.remote)({ ...WD_OPTS,
|
|
58
|
+
capabilities: w3cPrefixedCaps
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
async function deleteSession(driver) {
|
|
63
|
+
try {
|
|
64
|
+
await driver.deleteSession();
|
|
65
|
+
} catch (ign) {}
|
|
66
|
+
}require('source-map-support').install();
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvaGVscGVycy5qcyJdLCJuYW1lcyI6WyJURVNUX0hPU1QiLCJURVNUX1BPUlQiLCJURVNUX0FQUCIsInBhdGgiLCJqb2luIiwiX19kaXJuYW1lIiwiQkFTRV9DQVBTIiwicGxhdGZvcm1OYW1lIiwiZGV2aWNlTmFtZSIsImFwcCIsImFkZHJlc3MiLCJwb3J0IiwiVzNDX1BSRUZJWEVEX0NBUFMiLCJXM0NfQ0FQUyIsImFsd2F5c01hdGNoIiwiZmlyc3RNYXRjaCIsIldEX09QVFMiLCJob3N0bmFtZSIsImNvbm5lY3Rpb25SZXRyeUNvdW50IiwibG9nTGV2ZWwiLCJpbml0U2Vzc2lvbiIsInczY1ByZWZpeGVkQ2FwcyIsImNhcGFiaWxpdGllcyIsImRlbGV0ZVNlc3Npb24iLCJkcml2ZXIiLCJpZ24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQSxNQUFNQSxTQUFTLEdBQUcsV0FBbEI7O0FBQ0EsTUFBTUMsU0FBUyxHQUFHLElBQWxCOzs7QUFFQSxNQUFNQyxRQUFRLEdBQUdDLGNBQUtDLElBQUwsQ0FBVUMsU0FBVixFQUFxQixVQUFyQixFQUFpQyxTQUFqQyxDQUFqQjs7O0FBRUEsTUFBTUMsU0FBUyxHQUFHO0FBQ2hCQyxFQUFBQSxZQUFZLEVBQUUsTUFERTtBQUVoQkMsRUFBQUEsVUFBVSxFQUFFLGNBRkk7QUFHaEJDLEVBQUFBLEdBQUcsRUFBRVAsUUFIVztBQUloQlEsRUFBQUEsT0FBTyxFQUFFVixTQUpPO0FBS2hCVyxFQUFBQSxJQUFJLEVBQUU7QUFMVSxDQUFsQjs7QUFRQSxNQUFNQyxpQkFBaUIsR0FBRztBQUN4Qix1QkFBcUJOLFNBQVMsQ0FBQ0UsVUFEUDtBQUV4QixnQkFBY0YsU0FBUyxDQUFDRyxHQUZBO0FBR3hCLG9CQUFrQkgsU0FBUyxDQUFDSSxPQUhKO0FBSXhCLGlCQUFlSixTQUFTLENBQUNLLElBSkQ7QUFLeEJKLEVBQUFBLFlBQVksRUFBRUQsU0FBUyxDQUFDQztBQUxBLENBQTFCOztBQVFBLE1BQU1NLFFBQVEsR0FBRztBQUNmQyxFQUFBQSxXQUFXLEVBQUUsRUFBQyxHQUFHRjtBQUFKLEdBREU7QUFFZkcsRUFBQUEsVUFBVSxFQUFFLENBQUMsRUFBRDtBQUZHLENBQWpCOztBQUtBLE1BQU1DLE9BQU8sR0FBRztBQUNkQyxFQUFBQSxRQUFRLEVBQUVqQixTQURJO0FBRWRXLEVBQUFBLElBQUksRUFBRVYsU0FGUTtBQUdkaUIsRUFBQUEsb0JBQW9CLEVBQUUsQ0FIUjtBQUlkQyxFQUFBQSxRQUFRLEVBQUU7QUFKSSxDQUFoQjs7O0FBT0EsZUFBZUMsV0FBZixDQUE0QkMsZUFBNUIsRUFBNkM7QUFDM0MsU0FBTyxNQUFNLHlCQUFLLEVBQUMsR0FBR0wsT0FBSjtBQUFhTSxJQUFBQSxZQUFZLEVBQUVEO0FBQTNCLEdBQUwsQ0FBYjtBQUNEOztBQUVELGVBQWVFLGFBQWYsQ0FBOEJDLE1BQTlCLEVBQXNDO0FBQ3BDLE1BQUk7QUFDRixVQUFNQSxNQUFNLENBQUNELGFBQVAsRUFBTjtBQUNELEdBRkQsQ0FFRSxPQUFPRSxHQUFQLEVBQVksQ0FBRTtBQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcmVtb3RlIGFzIHdkaW8gfSBmcm9tICd3ZWJkcml2ZXJpbyc7XG5cbmNvbnN0IFRFU1RfSE9TVCA9ICcxMjcuMC4wLjEnO1xuY29uc3QgVEVTVF9QT1JUID0gNDc3NDtcblxuY29uc3QgVEVTVF9BUFAgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnZml4dHVyZXMnLCAnYXBwLnhtbCcpO1xuXG5jb25zdCBCQVNFX0NBUFMgPSB7XG4gIHBsYXRmb3JtTmFtZTogJ0Zha2UnLFxuICBkZXZpY2VOYW1lOiAnQ29tbW9kb3JlIDY0JyxcbiAgYXBwOiBURVNUX0FQUCxcbiAgYWRkcmVzczogVEVTVF9IT1NULFxuICBwb3J0OiA4MTgxLFxufTtcblxuY29uc3QgVzNDX1BSRUZJWEVEX0NBUFMgPSB7XG4gICdhcHBpdW06ZGV2aWNlTmFtZSc6IEJBU0VfQ0FQUy5kZXZpY2VOYW1lLFxuICAnYXBwaXVtOmFwcCc6IEJBU0VfQ0FQUy5hcHAsXG4gICdhcHBpdW06YWRkcmVzcyc6IEJBU0VfQ0FQUy5hZGRyZXNzLFxuICAnYXBwaXVtOnBvcnQnOiBCQVNFX0NBUFMucG9ydCxcbiAgcGxhdGZvcm1OYW1lOiBCQVNFX0NBUFMucGxhdGZvcm1OYW1lXG59O1xuXG5jb25zdCBXM0NfQ0FQUyA9IHtcbiAgYWx3YXlzTWF0Y2g6IHsuLi5XM0NfUFJFRklYRURfQ0FQU30sXG4gIGZpcnN0TWF0Y2g6IFt7fV0sXG59O1xuXG5jb25zdCBXRF9PUFRTID0ge1xuICBob3N0bmFtZTogVEVTVF9IT1NULFxuICBwb3J0OiBURVNUX1BPUlQsXG4gIGNvbm5lY3Rpb25SZXRyeUNvdW50OiAwLFxuICBsb2dMZXZlbDogJ2Vycm9yJ1xufTtcblxuYXN5bmMgZnVuY3Rpb24gaW5pdFNlc3Npb24gKHczY1ByZWZpeGVkQ2Fwcykge1xuICByZXR1cm4gYXdhaXQgd2Rpbyh7Li4uV0RfT1BUUywgY2FwYWJpbGl0aWVzOiB3M2NQcmVmaXhlZENhcHN9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gZGVsZXRlU2Vzc2lvbiAoZHJpdmVyKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgZHJpdmVyLmRlbGV0ZVNlc3Npb24oKTtcbiAgfSBjYXRjaCAoaWduKSB7fVxufVxuXG5leHBvcnQgeyBpbml0U2Vzc2lvbiwgZGVsZXRlU2Vzc2lvbiwgVEVTVF9BUFAsIFRFU1RfSE9TVCwgVEVTVF9QT1JULCBCQVNFX0NBUFMsIFczQ19DQVBTLCBXM0NfUFJFRklYRURfQ0FQUywgV0RfT1BUUyB9O1xuIl0sImZpbGUiOiJ0ZXN0L2hlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
package/index.js
CHANGED
|
@@ -1,29 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// transpile:main
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
import * as driver from './lib/driver';
|
|
6
|
-
import * as server from './lib/server';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const { FakeDriver } = driver;
|
|
10
|
-
const { startServer } = server;
|
|
11
|
-
|
|
12
|
-
const DEFAULT_HOST = 'localhost';
|
|
13
|
-
const DEFAULT_PORT = 4774;
|
|
14
|
-
|
|
15
|
-
async function main () {
|
|
16
|
-
const getArgValue = (argName) => {
|
|
17
|
-
const argIndex = process.argv.indexOf(argName);
|
|
18
|
-
return argIndex > 0 ? process.argv[argIndex + 1] : null;
|
|
19
|
-
};
|
|
20
|
-
const port = parseInt(getArgValue('--port'), 10) || DEFAULT_PORT;
|
|
21
|
-
const host = getArgValue('--host') || DEFAULT_HOST;
|
|
22
|
-
return await startServer(port, host);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
if (require.main === module) {
|
|
26
|
-
asyncify(main);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export { FakeDriver, startServer };
|
|
3
|
+
module.exports = require('./build/lib');
|
package/lib/commands/contexts.js
CHANGED
|
@@ -4,7 +4,7 @@ import { errors } from '@appium/base-driver';
|
|
|
4
4
|
let commands = {}, helpers = {}, extensions = {};
|
|
5
5
|
|
|
6
6
|
helpers.getRawContexts = function getRawContexts () {
|
|
7
|
-
let contexts = {
|
|
7
|
+
let contexts = {NATIVE_APP: null, PROXY: null};
|
|
8
8
|
let wvs = this.appModel.getWebviews();
|
|
9
9
|
for (let i = 1; i < wvs.length + 1; i++) {
|
|
10
10
|
contexts[`WEBVIEW_${i}`] = wvs[i - 1];
|
|
@@ -32,8 +32,12 @@ commands.setContext = async function setContext (context) {
|
|
|
32
32
|
this.curContext = context;
|
|
33
33
|
if (context === 'NATIVE_APP') {
|
|
34
34
|
this.appModel.deactivateWebview();
|
|
35
|
+
this._proxyActive = false;
|
|
36
|
+
} else if (context === 'PROXY') {
|
|
37
|
+
this._proxyActive = true;
|
|
35
38
|
} else {
|
|
36
39
|
this.appModel.activateWebview(contexts[context]);
|
|
40
|
+
this._proxyActive = false;
|
|
37
41
|
}
|
|
38
42
|
} else {
|
|
39
43
|
throw new errors.NoSuchContextError();
|