@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.
- package/build/lib/commands/contexts.js +7 -2
- package/build/lib/driver.js +28 -14
- package/build/lib/fake-app.js +2 -2
- package/build/lib/fake-element.js +2 -2
- 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 +22 -11
- package/lib/fake-app.js +1 -1
- package/lib/fake-element.js +1 -1
- 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 +9 -17
- package/build/index.js +0 -48
|
@@ -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=
|