@appium/fake-driver 3.1.0 → 3.2.3

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.
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ require("source-map-support/register");
6
+
7
+ var _axios = _interopRequireDefault(require("axios"));
8
+
9
+ var _basedriver = require("@appium/base-driver/build/test/basedriver");
10
+
11
+ var _index = require("../lib/index.js");
12
+
13
+ var _helpers = require("./helpers");
14
+
15
+ var _contextTests = _interopRequireDefault(require("./context-tests"));
16
+
17
+ var _findElementTests = _interopRequireDefault(require("./find-element-tests"));
18
+
19
+ var _elementInteractionTests = _interopRequireDefault(require("./element-interaction-tests"));
20
+
21
+ var _alertTests = _interopRequireDefault(require("./alert-tests"));
22
+
23
+ var _generalTests = _interopRequireDefault(require("./general-tests"));
24
+
25
+ const shouldStartServer = process.env.USE_RUNNING_SERVER !== '0';
26
+ (0, _basedriver.baseDriverE2ETests)(_index.FakeDriver, _helpers.W3C_PREFIXED_CAPS);
27
+ describe('FakeDriver - via HTTP', function () {
28
+ let server = null;
29
+ before(async function () {
30
+ if (shouldStartServer) {
31
+ server = await (0, _index.startServer)(_helpers.TEST_PORT, _helpers.TEST_HOST);
32
+ }
33
+ });
34
+ after(function () {
35
+ if (server) {
36
+ server.close();
37
+ }
38
+ });
39
+ describe('session handling', function () {
40
+ it('should start and stop a session', async function () {
41
+ let driver = await (0, _helpers.initSession)(_helpers.W3C_PREFIXED_CAPS);
42
+ should.exist(driver.sessionId);
43
+ driver.sessionId.should.be.a('string');
44
+ await (0, _helpers.deleteSession)(driver);
45
+ await driver.getTitle().should.eventually.be.rejectedWith(/terminated/);
46
+ });
47
+ });
48
+ describe('session-based tests', function () {
49
+ (0, _contextTests.default)();
50
+ (0, _findElementTests.default)();
51
+ (0, _elementInteractionTests.default)();
52
+ (0, _alertTests.default)();
53
+ (0, _generalTests.default)();
54
+ });
55
+ describe('w3c', function () {
56
+ it('should return value.capabilities object for W3C', async function () {
57
+ const res = await _axios.default.post(`http://${_helpers.TEST_HOST}:${_helpers.TEST_PORT}/session`, {
58
+ capabilities: {
59
+ alwaysMatch: _helpers.W3C_PREFIXED_CAPS,
60
+ firstMatch: [{
61
+ 'appium:fakeCap': 'Foo'
62
+ }]
63
+ }
64
+ });
65
+ const {
66
+ value,
67
+ status
68
+ } = res.data;
69
+ value.capabilities.should.deep.equal({ ..._helpers.BASE_CAPS,
70
+ fakeCap: 'Foo'
71
+ });
72
+ value.sessionId.should.exist;
73
+ should.not.exist(status);
74
+ await _axios.default.delete(`http://${_helpers.TEST_HOST}:${_helpers.TEST_PORT}/session/${value.sessionId}`);
75
+ });
76
+ it('should fail if given unsupported desiredCapabilities', async function () {
77
+ await _axios.default.post(`http://${_helpers.TEST_HOST}:${_helpers.TEST_PORT}/session`, {
78
+ desiredCapabilities: _helpers.W3C_PREFIXED_CAPS
79
+ }).should.eventually.be.rejectedWith(/500/);
80
+ });
81
+ });
82
+ });require('source-map-support').install();
83
+
84
+
85
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlc3QvZHJpdmVyLWUyZS1zcGVjcy5qcyJdLCJuYW1lcyI6WyJzaG91bGRTdGFydFNlcnZlciIsInByb2Nlc3MiLCJlbnYiLCJVU0VfUlVOTklOR19TRVJWRVIiLCJGYWtlRHJpdmVyIiwiVzNDX1BSRUZJWEVEX0NBUFMiLCJkZXNjcmliZSIsInNlcnZlciIsImJlZm9yZSIsIlRFU1RfUE9SVCIsIlRFU1RfSE9TVCIsImFmdGVyIiwiY2xvc2UiLCJpdCIsImRyaXZlciIsInNob3VsZCIsImV4aXN0Iiwic2Vzc2lvbklkIiwiYmUiLCJhIiwiZ2V0VGl0bGUiLCJldmVudHVhbGx5IiwicmVqZWN0ZWRXaXRoIiwicmVzIiwiYXhpb3MiLCJwb3N0IiwiY2FwYWJpbGl0aWVzIiwiYWx3YXlzTWF0Y2giLCJmaXJzdE1hdGNoIiwidmFsdWUiLCJzdGF0dXMiLCJkYXRhIiwiZGVlcCIsImVxdWFsIiwiQkFTRV9DQVBTIiwiZmFrZUNhcCIsIm5vdCIsImRlbGV0ZSIsImRlc2lyZWRDYXBhYmlsaXRpZXMiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLE1BQU1BLGlCQUFpQixHQUFHQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsa0JBQVosS0FBbUMsR0FBN0Q7QUFJQSxvQ0FBbUJDLGlCQUFuQixFQUErQkMsMEJBQS9CO0FBRUFDLFFBQVEsQ0FBQyx1QkFBRCxFQUEwQixZQUFZO0FBQzVDLE1BQUlDLE1BQU0sR0FBRyxJQUFiO0FBQ0FDLEVBQUFBLE1BQU0sQ0FBQyxrQkFBa0I7QUFDdkIsUUFBSVIsaUJBQUosRUFBdUI7QUFDckJPLE1BQUFBLE1BQU0sR0FBRyxNQUFNLHdCQUFZRSxrQkFBWixFQUF1QkMsa0JBQXZCLENBQWY7QUFDRDtBQUNGLEdBSkssQ0FBTjtBQUtBQyxFQUFBQSxLQUFLLENBQUMsWUFBWTtBQUNoQixRQUFJSixNQUFKLEVBQVk7QUFDVkEsTUFBQUEsTUFBTSxDQUFDSyxLQUFQO0FBQ0Q7QUFDRixHQUpJLENBQUw7QUFNQU4sRUFBQUEsUUFBUSxDQUFDLGtCQUFELEVBQXFCLFlBQVk7QUFDdkNPLElBQUFBLEVBQUUsQ0FBQyxpQ0FBRCxFQUFvQyxrQkFBa0I7QUFDdEQsVUFBSUMsTUFBTSxHQUFHLE1BQU0sMEJBQVlULDBCQUFaLENBQW5CO0FBQ0FVLE1BQUFBLE1BQU0sQ0FBQ0MsS0FBUCxDQUFhRixNQUFNLENBQUNHLFNBQXBCO0FBQ0FILE1BQUFBLE1BQU0sQ0FBQ0csU0FBUCxDQUFpQkYsTUFBakIsQ0FBd0JHLEVBQXhCLENBQTJCQyxDQUEzQixDQUE2QixRQUE3QjtBQUNBLFlBQU0sNEJBQWNMLE1BQWQsQ0FBTjtBQUNBLFlBQU1BLE1BQU0sQ0FBQ00sUUFBUCxHQUFrQkwsTUFBbEIsQ0FBeUJNLFVBQXpCLENBQW9DSCxFQUFwQyxDQUF1Q0ksWUFBdkMsQ0FBb0QsWUFBcEQsQ0FBTjtBQUNELEtBTkMsQ0FBRjtBQU9ELEdBUk8sQ0FBUjtBQVVBaEIsRUFBQUEsUUFBUSxDQUFDLHFCQUFELEVBQXdCLFlBQVk7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNELEdBTk8sQ0FBUjtBQVFBQSxFQUFBQSxRQUFRLENBQUMsS0FBRCxFQUFRLFlBQVk7QUFDMUJPLElBQUFBLEVBQUUsQ0FBQyxpREFBRCxFQUFvRCxrQkFBa0I7QUFDdEUsWUFBTVUsR0FBRyxHQUFHLE1BQU1DLGVBQU1DLElBQU4sQ0FBWSxVQUFTZixrQkFBVSxJQUFHRCxrQkFBVSxVQUE1QyxFQUF1RDtBQUN2RWlCLFFBQUFBLFlBQVksRUFBRTtBQUNaQyxVQUFBQSxXQUFXLEVBQUV0QiwwQkFERDtBQUVadUIsVUFBQUEsVUFBVSxFQUFFLENBQ1Y7QUFBQyw4QkFBa0I7QUFBbkIsV0FEVTtBQUZBO0FBRHlELE9BQXZELENBQWxCO0FBT0EsWUFBTTtBQUFDQyxRQUFBQSxLQUFEO0FBQVFDLFFBQUFBO0FBQVIsVUFBa0JQLEdBQUcsQ0FBQ1EsSUFBNUI7QUFDQUYsTUFBQUEsS0FBSyxDQUFDSCxZQUFOLENBQW1CWCxNQUFuQixDQUEwQmlCLElBQTFCLENBQStCQyxLQUEvQixDQUFxQyxFQUFDLEdBQUdDLGtCQUFKO0FBQWVDLFFBQUFBLE9BQU8sRUFBRTtBQUF4QixPQUFyQztBQUNBTixNQUFBQSxLQUFLLENBQUNaLFNBQU4sQ0FBZ0JGLE1BQWhCLENBQXVCQyxLQUF2QjtBQUNBRCxNQUFBQSxNQUFNLENBQUNxQixHQUFQLENBQVdwQixLQUFYLENBQWlCYyxNQUFqQjtBQUNBLFlBQU1OLGVBQU1hLE1BQU4sQ0FBYyxVQUFTM0Isa0JBQVUsSUFBR0Qsa0JBQVUsWUFBV29CLEtBQUssQ0FBQ1osU0FBVSxFQUF6RSxDQUFOO0FBQ0QsS0FiQyxDQUFGO0FBZUFKLElBQUFBLEVBQUUsQ0FBQyxzREFBRCxFQUF5RCxrQkFBa0I7QUFDM0UsWUFBTVcsZUFBTUMsSUFBTixDQUFZLFVBQVNmLGtCQUFVLElBQUdELGtCQUFVLFVBQTVDLEVBQXVEO0FBQzNENkIsUUFBQUEsbUJBQW1CLEVBQUVqQztBQURzQyxPQUF2RCxFQUVIVSxNQUZHLENBRUlNLFVBRkosQ0FFZUgsRUFGZixDQUVrQkksWUFGbEIsQ0FFK0IsS0FGL0IsQ0FBTjtBQUdELEtBSkMsQ0FBRjtBQUtELEdBckJPLENBQVI7QUF1QkQsQ0F0RE8sQ0FBUiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRyYW5zcGlsZTptb2NoYVxuXG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgYmFzZURyaXZlckUyRVRlc3RzIH0gZnJvbSAnQGFwcGl1bS9iYXNlLWRyaXZlci9idWlsZC90ZXN0L2Jhc2Vkcml2ZXInO1xuaW1wb3J0IHsgRmFrZURyaXZlciwgc3RhcnRTZXJ2ZXIgfSBmcm9tICcuLi9saWIvaW5kZXguanMnO1xuaW1wb3J0IHsgQkFTRV9DQVBTLCBkZWxldGVTZXNzaW9uLCBpbml0U2Vzc2lvbiwgVEVTVF9IT1NULCBURVNUX1BPUlQsIFczQ19QUkVGSVhFRF9DQVBTIH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCBjb250ZXh0VGVzdHMgZnJvbSAnLi9jb250ZXh0LXRlc3RzJztcbmltcG9ydCBmaW5kRWxlbWVudFRlc3RzIGZyb20gJy4vZmluZC1lbGVtZW50LXRlc3RzJztcbmltcG9ydCBlbGVtZW50SW50ZXJhY3Rpb25UZXN0cyBmcm9tICcuL2VsZW1lbnQtaW50ZXJhY3Rpb24tdGVzdHMnO1xuaW1wb3J0IGFsZXJ0VGVzdHMgZnJvbSAnLi9hbGVydC10ZXN0cyc7XG5pbXBvcnQgZ2VuZXJhbFRlc3RzIGZyb20gJy4vZ2VuZXJhbC10ZXN0cyc7XG5cblxuY29uc3Qgc2hvdWxkU3RhcnRTZXJ2ZXIgPSBwcm9jZXNzLmVudi5VU0VfUlVOTklOR19TRVJWRVIgIT09ICcwJztcblxuXG4vLyB0ZXN0IHRoZSBzYW1lIHRoaW5ncyBhcyBmb3IgYmFzZSBkcml2ZXJcbmJhc2VEcml2ZXJFMkVUZXN0cyhGYWtlRHJpdmVyLCBXM0NfUFJFRklYRURfQ0FQUyk7XG5cbmRlc2NyaWJlKCdGYWtlRHJpdmVyIC0gdmlhIEhUVFAnLCBmdW5jdGlvbiAoKSB7XG4gIGxldCBzZXJ2ZXIgPSBudWxsO1xuICBiZWZvcmUoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGlmIChzaG91bGRTdGFydFNlcnZlcikge1xuICAgICAgc2VydmVyID0gYXdhaXQgc3RhcnRTZXJ2ZXIoVEVTVF9QT1JULCBURVNUX0hPU1QpO1xuICAgIH1cbiAgfSk7XG4gIGFmdGVyKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoc2VydmVyKSB7XG4gICAgICBzZXJ2ZXIuY2xvc2UoKTtcbiAgICB9XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzZXNzaW9uIGhhbmRsaW5nJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgc3RhcnQgYW5kIHN0b3AgYSBzZXNzaW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgbGV0IGRyaXZlciA9IGF3YWl0IGluaXRTZXNzaW9uKFczQ19QUkVGSVhFRF9DQVBTKTtcbiAgICAgIHNob3VsZC5leGlzdChkcml2ZXIuc2Vzc2lvbklkKTtcbiAgICAgIGRyaXZlci5zZXNzaW9uSWQuc2hvdWxkLmJlLmEoJ3N0cmluZycpO1xuICAgICAgYXdhaXQgZGVsZXRlU2Vzc2lvbihkcml2ZXIpO1xuICAgICAgYXdhaXQgZHJpdmVyLmdldFRpdGxlKCkuc2hvdWxkLmV2ZW50dWFsbHkuYmUucmVqZWN0ZWRXaXRoKC90ZXJtaW5hdGVkLyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzZXNzaW9uLWJhc2VkIHRlc3RzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnRleHRUZXN0cygpO1xuICAgIGZpbmRFbGVtZW50VGVzdHMoKTtcbiAgICBlbGVtZW50SW50ZXJhY3Rpb25UZXN0cygpO1xuICAgIGFsZXJ0VGVzdHMoKTtcbiAgICBnZW5lcmFsVGVzdHMoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3czYycsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiB2YWx1ZS5jYXBhYmlsaXRpZXMgb2JqZWN0IGZvciBXM0MnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBheGlvcy5wb3N0KGBodHRwOi8vJHtURVNUX0hPU1R9OiR7VEVTVF9QT1JUfS9zZXNzaW9uYCwge1xuICAgICAgICBjYXBhYmlsaXRpZXM6IHtcbiAgICAgICAgICBhbHdheXNNYXRjaDogVzNDX1BSRUZJWEVEX0NBUFMsXG4gICAgICAgICAgZmlyc3RNYXRjaDogW1xuICAgICAgICAgICAgeydhcHBpdW06ZmFrZUNhcCc6ICdGb28nLCB9XG4gICAgICAgICAgXVxuICAgICAgICB9fSk7XG4gICAgICBjb25zdCB7dmFsdWUsIHN0YXR1c30gPSByZXMuZGF0YTtcbiAgICAgIHZhbHVlLmNhcGFiaWxpdGllcy5zaG91bGQuZGVlcC5lcXVhbCh7Li4uQkFTRV9DQVBTLCBmYWtlQ2FwOiAnRm9vJ30pO1xuICAgICAgdmFsdWUuc2Vzc2lvbklkLnNob3VsZC5leGlzdDtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3Qoc3RhdHVzKTtcbiAgICAgIGF3YWl0IGF4aW9zLmRlbGV0ZShgaHR0cDovLyR7VEVTVF9IT1NUfToke1RFU1RfUE9SVH0vc2Vzc2lvbi8ke3ZhbHVlLnNlc3Npb25JZH1gKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCBpZiBnaXZlbiB1bnN1cHBvcnRlZCBkZXNpcmVkQ2FwYWJpbGl0aWVzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQgYXhpb3MucG9zdChgaHR0cDovLyR7VEVTVF9IT1NUfToke1RFU1RfUE9SVH0vc2Vzc2lvbmAsIHtcbiAgICAgICAgZGVzaXJlZENhcGFiaWxpdGllczogVzNDX1BSRUZJWEVEX0NBUFNcbiAgICAgIH0pLnNob3VsZC5ldmVudHVhbGx5LmJlLnJlamVjdGVkV2l0aCgvNTAwLyk7XG4gICAgfSk7XG4gIH0pO1xuXG59KTtcbiJdLCJmaWxlIjoidGVzdC9kcml2ZXItZTJlLXNwZWNzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
@@ -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=