@appium/fake-driver 6.1.2 → 6.2.0
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/command-maps/execute-method-map.d.ts +9 -0
- package/build/lib/command-maps/execute-method-map.d.ts.map +1 -1
- package/build/lib/command-maps/execute-method-map.js +9 -0
- package/build/lib/command-maps/execute-method-map.js.map +1 -1
- package/build/lib/commands/contexts.d.ts.map +1 -1
- package/build/lib/commands/contexts.js +2 -6
- package/build/lib/commands/contexts.js.map +1 -1
- package/build/lib/commands/element.d.ts.map +1 -1
- package/build/lib/commands/element.js +2 -6
- package/build/lib/commands/element.js.map +1 -1
- package/build/lib/commands/find.d.ts.map +1 -1
- package/build/lib/commands/find.js +12 -12
- package/build/lib/commands/find.js.map +1 -1
- package/build/lib/commands/general.d.ts +5 -0
- package/build/lib/commands/general.d.ts.map +1 -1
- package/build/lib/commands/general.js +5 -0
- package/build/lib/commands/general.js.map +1 -1
- package/build/lib/driver.d.ts +25 -2
- package/build/lib/driver.d.ts.map +1 -1
- package/build/lib/driver.js +49 -6
- package/build/lib/driver.js.map +1 -1
- package/build/lib/fake-app.d.ts.map +1 -1
- package/build/lib/fake-app.js +4 -5
- package/build/lib/fake-app.js.map +1 -1
- package/build/lib/fake-element.d.ts.map +1 -1
- package/build/lib/fake-element.js +2 -3
- package/build/lib/fake-element.js.map +1 -1
- package/lib/command-maps/execute-method-map.ts +9 -0
- package/lib/commands/contexts.ts +2 -3
- package/lib/commands/element.ts +2 -3
- package/lib/commands/find.ts +12 -10
- package/lib/commands/general.ts +5 -0
- package/lib/driver.ts +55 -8
- package/lib/fake-app.ts +4 -5
- package/lib/fake-element.ts +2 -3
- package/package.json +3 -4
- package/tsconfig.json +1 -0
|
@@ -18,5 +18,14 @@ export declare const EXECUTE_METHOD_MAP: {
|
|
|
18
18
|
readonly 'fake: getDeprecatedCommandsCalled': {
|
|
19
19
|
readonly command: "getDeprecatedCommandsCalled";
|
|
20
20
|
};
|
|
21
|
+
readonly 'fake: getLastPluginMath': {
|
|
22
|
+
readonly command: "getLastPluginMath";
|
|
23
|
+
};
|
|
24
|
+
readonly 'fake: startClock': {
|
|
25
|
+
readonly command: "fakeStartClock";
|
|
26
|
+
};
|
|
27
|
+
readonly 'fake: stopClock': {
|
|
28
|
+
readonly command: "fakeStopClock";
|
|
29
|
+
};
|
|
21
30
|
};
|
|
22
31
|
//# sourceMappingURL=execute-method-map.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-method-map.d.ts","sourceRoot":"","sources":["../../../lib/command-maps/execute-method-map.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"execute-method-map.d.ts","sourceRoot":"","sources":["../../../lib/command-maps/execute-method-map.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwBkB,CAAC"}
|
|
@@ -16,5 +16,14 @@ exports.EXECUTE_METHOD_MAP = {
|
|
|
16
16
|
'fake: getDeprecatedCommandsCalled': {
|
|
17
17
|
command: 'getDeprecatedCommandsCalled',
|
|
18
18
|
},
|
|
19
|
+
'fake: getLastPluginMath': {
|
|
20
|
+
command: 'getLastPluginMath',
|
|
21
|
+
},
|
|
22
|
+
'fake: startClock': {
|
|
23
|
+
command: 'fakeStartClock',
|
|
24
|
+
},
|
|
25
|
+
'fake: stopClock': {
|
|
26
|
+
command: 'fakeStopClock',
|
|
27
|
+
},
|
|
19
28
|
};
|
|
20
29
|
//# sourceMappingURL=execute-method-map.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute-method-map.js","sourceRoot":"","sources":["../../../lib/command-maps/execute-method-map.ts"],"names":[],"mappings":";;;AAGa,QAAA,kBAAkB,GAAG;IAChC,gBAAgB,EAAE;QAChB,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAC;KACzD;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,cAAc;KACxB;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,EAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAC;KAC9B;IACD,mCAAmC,EAAE;QACnC,OAAO,EAAE,6BAA6B;KACvC;CAC8C,CAAC"}
|
|
1
|
+
{"version":3,"file":"execute-method-map.js","sourceRoot":"","sources":["../../../lib/command-maps/execute-method-map.ts"],"names":[],"mappings":";;;AAGa,QAAA,kBAAkB,GAAG;IAChC,gBAAgB,EAAE;QAChB,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAC;KACzD;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,cAAc;KACxB;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,EAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAC;KAC9B;IACD,mCAAmC,EAAE;QACnC,OAAO,EAAE,6BAA6B;KACvC;IACD,yBAAyB,EAAE;QACzB,OAAO,EAAE,mBAAmB;KAC7B;IACD,kBAAkB,EAAE;QAClB,OAAO,EAAE,gBAAgB;KAC1B;IACD,iBAAiB,EAAE;QACjB,OAAO,EAAE,eAAe;KACzB;CAC8C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../../../lib/commands/contexts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contexts.d.ts","sourceRoot":"","sources":["../../../lib/commands/contexts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAI1C,uEAAuE;AACvE,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOxE;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAI3D;AAED,yBAAyB;AACzB,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAEzE;AAED,mBAAmB;AACnB,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAErE;AAED,kBAAkB;AAClB,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBjF;AAED,gBAAgB;AAChB,wBAAsB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAWtF"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.getRawContexts = getRawContexts;
|
|
7
4
|
exports.assertWebviewContext = assertWebviewContext;
|
|
@@ -9,7 +6,6 @@ exports.getCurrentContext = getCurrentContext;
|
|
|
9
6
|
exports.getContexts = getContexts;
|
|
10
7
|
exports.setContext = setContext;
|
|
11
8
|
exports.setFrame = setFrame;
|
|
12
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
13
9
|
const driver_1 = require("appium/driver");
|
|
14
10
|
/** NATIVE_APP, PROXY, and WEBVIEW_1, WEBVIEW_2, ... from app model. */
|
|
15
11
|
function getRawContexts() {
|
|
@@ -32,7 +28,7 @@ async function getCurrentContext() {
|
|
|
32
28
|
}
|
|
33
29
|
/** getContexts. */
|
|
34
30
|
async function getContexts() {
|
|
35
|
-
return
|
|
31
|
+
return Object.keys(this.getRawContexts());
|
|
36
32
|
}
|
|
37
33
|
/** setContext. */
|
|
38
34
|
async function setContext(context) {
|
|
@@ -63,7 +59,7 @@ async function setFrame(frameId) {
|
|
|
63
59
|
}
|
|
64
60
|
else {
|
|
65
61
|
const nodes = this.appModel.xpathQuery(`//iframe[@id="${frameId}"]`);
|
|
66
|
-
if (!
|
|
62
|
+
if (!Array.isArray(nodes) || nodes.length === 0) {
|
|
67
63
|
throw new driver_1.errors.NoSuchFrameError();
|
|
68
64
|
}
|
|
69
65
|
this.appModel.activateFrame(nodes[0]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contexts.js","sourceRoot":"","sources":["../../../lib/commands/contexts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"contexts.js","sourceRoot":"","sources":["../../../lib/commands/contexts.ts"],"names":[],"mappings":";;AAMA,wCAOC;AAGD,oDAIC;AAGD,8CAEC;AAGD,kCAEC;AAGD,gCAgBC;AAGD,4BAWC;AA5DD,0CAAqC;AAErC,uEAAuE;AACvE,SAAgB,cAAc;IAC5B,MAAM,QAAQ,GAA4B,EAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,CAAC;IAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,iFAAiF;AACjF,SAAgB,oBAAoB;IAClC,IAAI,IAAI,CAAC,UAAU,KAAK,YAAY,EAAE,CAAC;QACrC,MAAM,IAAI,eAAM,CAAC,mBAAmB,EAAE,CAAC;IACzC,CAAC;AACH,CAAC;AAED,yBAAyB;AAClB,KAAK,UAAU,iBAAiB;IACrC,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC;AAED,mBAAmB;AACZ,KAAK,UAAU,WAAW;IAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,kBAAkB;AACX,KAAK,UAAU,UAAU,CAAmB,OAAe;IAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACvC,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC1B,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;aAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAgB,CAAC,CAAC;YAChE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,eAAM,CAAC,kBAAkB,EAAE,CAAC;IACxC,CAAC;AACH,CAAC;AAED,gBAAgB;AACT,KAAK,UAAU,QAAQ,CAAmB,OAAsB;IACrE,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC5B,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,OAAO,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,eAAM,CAAC,gBAAgB,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAgB,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../lib/commands/element.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../../../lib/commands/element.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,EAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAEjD,mGAAmG;AACnG,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAOjF;AAED,kBAAkB;AAClB,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,CAE3E;AAED,eAAe;AACf,wBAAsB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGlF;AAED,wBAAwB;AACxB,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG5F;AAED,sBAAsB;AACtB,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG1F;AAED,uBAAuB;AACvB,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG3F;AAED,gBAAgB;AAChB,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,eAAe;AACf,wBAAsB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGlF;AAED,aAAa;AACb,wBAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E;AAED,aAAa;AACb,wBAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ9E;AAED,qFAAqF;AACrF,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,sBAAsB;AACtB,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvF;AAED,eAAe;AACf,wBAAsB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhF;AAED,qBAAqB;AACrB,wBAAsB,aAAa,CACjC,IAAI,EAAE,UAAU,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAIlB;AAED,gFAAgF;AAChF,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAIjB;AAED,mBAAmB;AACnB,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAGxF;AAED,yBAAyB;AACzB,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,QAAQ,CAAC,CAEnB"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.getElements = getElements;
|
|
7
4
|
exports.getElement = getElement;
|
|
@@ -20,12 +17,11 @@ exports.equalsElement = equalsElement;
|
|
|
20
17
|
exports.getCssProperty = getCssProperty;
|
|
21
18
|
exports.getLocation = getLocation;
|
|
22
19
|
exports.getLocationInView = getLocationInView;
|
|
23
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
24
20
|
const driver_1 = require("appium/driver");
|
|
25
21
|
/** Resolve element ids to FakeElements; throws StaleElementReferenceError if any id is missing. */
|
|
26
22
|
function getElements(elementIds) {
|
|
27
23
|
for (const elId of elementIds) {
|
|
28
|
-
if (!
|
|
24
|
+
if (!(elId in this.elMap)) {
|
|
29
25
|
throw new driver_1.errors.StaleElementReferenceError();
|
|
30
26
|
}
|
|
31
27
|
}
|
|
@@ -57,7 +53,7 @@ async function elementSelected(elementId) {
|
|
|
57
53
|
}
|
|
58
54
|
/** setValue. */
|
|
59
55
|
async function setValue(keys, elementId) {
|
|
60
|
-
const value =
|
|
56
|
+
const value = Array.isArray(keys) ? keys.join('') : keys;
|
|
61
57
|
const el = this.getElement(elementId);
|
|
62
58
|
// Only MockInputField supports value in the fake app XML.
|
|
63
59
|
if (el.type !== 'MockInputField') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../../lib/commands/element.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../../lib/commands/element.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../lib/commands/find.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../lib/commands/find.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAC,WAAW,EAAE,KAAK,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAK1C,8FAA8F;AAC9F,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,WAAW,GAChB,MAAM,GAAG,IAAI,CAOf;AAED,wFAAwF;AACxF,wBAAgB,SAAS,CACvB,IAAI,EAAE,UAAU,EAChB,GAAG,EAAE,WAAW,GAAG,WAAW,GAC7B,OAAO,CAqBT;AAED,uBAAuB;AACvB,iBAAe,eAAe,CAAC,GAAG,GAAG,OAAO,EAC1C,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,IAAI,EACV,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AACtB,uBAAuB;AACvB,iBAAe,eAAe,CAAC,GAAG,GAAG,OAAO,EAC1C,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,OAAO,CAAC,CAAC;AAiDpB,eAAO,MAAM,WAAW,wBAAkB,CAAC;AAE3C,mBAAmB;AACnB,wBAAsB,WAAW,CAC/B,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAID,oBAAoB;AACpB,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,EAAE,CAAC,CAEpB;AAED,8BAA8B;AAC9B,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,+BAA+B;AAC/B,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,EAAE,CAAC,CAGpB"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.findElOrEls = void 0;
|
|
7
4
|
exports.getExistingElementForNode = getExistingElementForNode;
|
|
@@ -10,14 +7,13 @@ exports.findElement = findElement;
|
|
|
10
7
|
exports.findElements = findElements;
|
|
11
8
|
exports.findElementFromElement = findElementFromElement;
|
|
12
9
|
exports.findElementsFromElement = findElementsFromElement;
|
|
13
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
14
10
|
const driver_1 = require("appium/driver");
|
|
15
11
|
const fake_element_1 = require("../fake-element");
|
|
16
12
|
const support_1 = require("appium/support");
|
|
17
13
|
const { W3C_WEB_ELEMENT_IDENTIFIER } = support_1.util;
|
|
18
14
|
/** Find an existing element id in elMap for the same underlying node (reference equality). */
|
|
19
15
|
function getExistingElementForNode(node) {
|
|
20
|
-
for (const [id, el] of
|
|
16
|
+
for (const [id, el] of Object.entries(this.elMap)) {
|
|
21
17
|
if (el.node === node.node) {
|
|
22
18
|
return id;
|
|
23
19
|
}
|
|
@@ -26,10 +22,8 @@ function getExistingElementForNode(node) {
|
|
|
26
22
|
}
|
|
27
23
|
/** Accepts either a FakeElement (reuse existing id) or a raw XmlNodeLike from xpath. */
|
|
28
24
|
function wrapNewEl(obj) {
|
|
29
|
-
const node =
|
|
30
|
-
|
|
31
|
-
: obj;
|
|
32
|
-
if (lodash_1.default.has(obj, 'node')) {
|
|
25
|
+
const node = obj instanceof fake_element_1.FakeElement ? obj.node : obj;
|
|
26
|
+
if (obj instanceof fake_element_1.FakeElement) {
|
|
33
27
|
const existingElId = this.getExistingElementForNode(obj);
|
|
34
28
|
if (existingElId) {
|
|
35
29
|
return { ELEMENT: existingElId, [W3C_WEB_ELEMENT_IDENTIFIER]: existingElId };
|
|
@@ -37,7 +31,7 @@ function wrapNewEl(obj) {
|
|
|
37
31
|
}
|
|
38
32
|
else {
|
|
39
33
|
// raw node: reuse id if we already have an element for this node
|
|
40
|
-
for (const [id, el] of
|
|
34
|
+
for (const [id, el] of Object.entries(this.elMap)) {
|
|
41
35
|
if (el.node === node) {
|
|
42
36
|
return { ELEMENT: id, [W3C_WEB_ELEMENT_IDENTIFIER]: id };
|
|
43
37
|
}
|
|
@@ -59,7 +53,7 @@ async function findElOrElsImpl(strategy, selector, mult, context) {
|
|
|
59
53
|
'tag name': 'classQuery',
|
|
60
54
|
'css selector': 'cssQuery',
|
|
61
55
|
};
|
|
62
|
-
if (!
|
|
56
|
+
if (!(strategy in qMap)) {
|
|
63
57
|
throw new driver_1.errors.UnknownCommandError();
|
|
64
58
|
}
|
|
65
59
|
if (selector === 'badsel') {
|
|
@@ -67,7 +61,13 @@ async function findElOrElsImpl(strategy, selector, mult, context) {
|
|
|
67
61
|
}
|
|
68
62
|
const methodName = qMap[strategy];
|
|
69
63
|
const raw = this.appModel[methodName].call(this.appModel, selector, context);
|
|
70
|
-
|
|
64
|
+
let els = [];
|
|
65
|
+
if (Array.isArray(raw)) {
|
|
66
|
+
els = raw;
|
|
67
|
+
}
|
|
68
|
+
else if (raw) {
|
|
69
|
+
els = [raw];
|
|
70
|
+
}
|
|
71
71
|
if (els.length) {
|
|
72
72
|
if (mult) {
|
|
73
73
|
return els.map((el) => this.wrapNewEl(el));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../../lib/commands/find.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../../lib/commands/find.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,4 +38,9 @@ export declare function fakeAddition(this: FakeDriver, num1: number, num2: numbe
|
|
|
38
38
|
export declare function getUrl(this: FakeDriver): Promise<string>;
|
|
39
39
|
/** Set current URL (used by Bidi browsingContext.navigate). */
|
|
40
40
|
export declare function bidiNavigate(this: FakeDriver, context: string, url: string): Promise<void>;
|
|
41
|
+
/** Return the last math result detected by a plugin that publishes it */
|
|
42
|
+
export declare function getLastPluginMath(this: FakeDriver): Promise<{
|
|
43
|
+
pluginName: string;
|
|
44
|
+
result: number;
|
|
45
|
+
} | null>;
|
|
41
46
|
//# sourceMappingURL=general.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../lib/commands/general.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAErF,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAI1C,mEAAmE;AACnE,wBAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7D;AAED,YAAY;AACZ,wBAAsB,IAAI,CACxB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,sBAAsB;AACtB,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,QAAQ,CAAC,CAInB;AAED,sBAAsB;AACtB,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAExE;AAED,qBAAqB;AACrB,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAErE;AAED,sBAAsB;AACtB,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtE;AAED,sBAAsB;AACtB,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,CAAC,EAAE,WAAW,GACb,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,qBAAqB;AACrB,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAErE;AAED,qBAAqB;AACrB,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED,qBAAqB;AACrB,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED,sBAAsB;AACtB,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,cAAc,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,sBAAsB;AACtB,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAG;AAExE,oFAAoF;AACpF,wBAAsB,MAAM,CAC1B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAO7B;AAED,mBAAmB;AACnB,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED,mBAAmB;AACnB,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAG;AAErE,eAAe;AACf,wBAAsB,OAAO,CAC3B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EAAE,GACV,OAAO,CAAC,GAAG,CAAC,CAEd;AAED,oBAAoB;AACpB,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,SAAI,GACP,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,+IAA+I;AAC/I,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9D;AAED,+DAA+D;AAC/D,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAEf"}
|
|
1
|
+
{"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../lib/commands/general.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ exports.execute = execute;
|
|
|
19
19
|
exports.fakeAddition = fakeAddition;
|
|
20
20
|
exports.getUrl = getUrl;
|
|
21
21
|
exports.bidiNavigate = bidiNavigate;
|
|
22
|
+
exports.getLastPluginMath = getLastPluginMath;
|
|
22
23
|
const driver_1 = require("appium/driver");
|
|
23
24
|
const ORIENTATIONS = new Set(['LANDSCAPE', 'PORTRAIT']);
|
|
24
25
|
/** Requires webview context (title comes from active document). */
|
|
@@ -107,4 +108,8 @@ async function getUrl() {
|
|
|
107
108
|
async function bidiNavigate(context, url) {
|
|
108
109
|
this.url = url;
|
|
109
110
|
}
|
|
111
|
+
/** Return the last math result detected by a plugin that publishes it */
|
|
112
|
+
async function getLastPluginMath() {
|
|
113
|
+
return this.lastPluginMath;
|
|
114
|
+
}
|
|
110
115
|
//# sourceMappingURL=general.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/commands/general.ts"],"names":[],"mappings":";;AAOA,sBAGC;AAGD,oBAQC;AAGD,wCAOC;AAGD,wCAEC;AAGD,sCAEC;AAGD,wCAEC;AAGD,wCAQC;AAGD,sCAEC;AAGD,sCAEC;AAGD,sCAEC;AAGD,wCAKC;AAGD,wCAAwE;AAGxE,wBAUC;AAGD,kCAEC;AAGD,kCAAqE;AAGrE,0BAMC;AAGD,oCAOC;AAGD,wBAEC;AAGD,oCAMC;
|
|
1
|
+
{"version":3,"file":"general.js","sourceRoot":"","sources":["../../../lib/commands/general.ts"],"names":[],"mappings":"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"}
|
package/build/lib/driver.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Express, Request, Response } from 'express';
|
|
2
2
|
import type { Server as HttpServer } from 'node:http';
|
|
3
3
|
import { BaseDriver } from 'appium/driver';
|
|
4
|
-
import type { DriverData, InitialOpts } from '@appium/types';
|
|
4
|
+
import type { DriverData, IIpcSubscription, InitialOpts, IpcData } from '@appium/types';
|
|
5
5
|
import type { FakeDriverConstraints } from './desired-caps';
|
|
6
6
|
import type { FakeDriverCaps, W3CFakeDriverCaps } from './types';
|
|
7
7
|
import { FakeApp } from './fake-app';
|
|
@@ -13,8 +13,11 @@ import * as findCommands from './commands/find';
|
|
|
13
13
|
import * as generalCommands from './commands/general';
|
|
14
14
|
export type { FakeDriverConstraints };
|
|
15
15
|
export type { Orientation } from '@appium/types';
|
|
16
|
+
export type ClockStatus = {
|
|
17
|
+
running: boolean;
|
|
18
|
+
};
|
|
16
19
|
/** Driver supporting a generic "fake thing" value (getFakeThing / setFakeThing). */
|
|
17
|
-
export declare class FakeDriver<Thing =
|
|
20
|
+
export declare class FakeDriver<Thing extends IpcData = null> extends BaseDriver<FakeDriverConstraints> {
|
|
18
21
|
static newBidiCommands: {
|
|
19
22
|
readonly 'appium:fake': {
|
|
20
23
|
readonly getFakeThing: {
|
|
@@ -89,6 +92,15 @@ export declare class FakeDriver<Thing = unknown> extends BaseDriver<FakeDriverCo
|
|
|
89
92
|
readonly 'fake: getDeprecatedCommandsCalled': {
|
|
90
93
|
readonly command: "getDeprecatedCommandsCalled";
|
|
91
94
|
};
|
|
95
|
+
readonly 'fake: getLastPluginMath': {
|
|
96
|
+
readonly command: "getLastPluginMath";
|
|
97
|
+
};
|
|
98
|
+
readonly 'fake: startClock': {
|
|
99
|
+
readonly command: "fakeStartClock";
|
|
100
|
+
};
|
|
101
|
+
readonly 'fake: stopClock': {
|
|
102
|
+
readonly command: "fakeStopClock";
|
|
103
|
+
};
|
|
92
104
|
};
|
|
93
105
|
readonly desiredCapConstraints: {
|
|
94
106
|
readonly app: {
|
|
@@ -114,6 +126,7 @@ export declare class FakeDriver<Thing = unknown> extends BaseDriver<FakeDriverCo
|
|
|
114
126
|
elMap: Record<string, FakeElement>;
|
|
115
127
|
/** Current document URL; set by bidiNavigate, returned by getUrl. */
|
|
116
128
|
url: string;
|
|
129
|
+
ipcClock?: IIpcSubscription<ClockStatus>;
|
|
117
130
|
assertNoAlert: typeof alertCommands.assertNoAlert;
|
|
118
131
|
assertAlert: typeof alertCommands.assertAlert;
|
|
119
132
|
getAlertText: typeof alertCommands.getAlertText;
|
|
@@ -172,9 +185,15 @@ export declare class FakeDriver<Thing = unknown> extends BaseDriver<FakeDriverCo
|
|
|
172
185
|
fakeAddition: typeof generalCommands.fakeAddition;
|
|
173
186
|
getUrl: typeof generalCommands.getUrl;
|
|
174
187
|
bidiNavigate: typeof generalCommands.bidiNavigate;
|
|
188
|
+
getLastPluginMath: typeof generalCommands.getLastPluginMath;
|
|
189
|
+
protected lastPluginMath: {
|
|
190
|
+
pluginName: string;
|
|
191
|
+
result: number;
|
|
192
|
+
} | null;
|
|
175
193
|
/** If set, Bidi connections are proxied to this URL instead of handling locally. */
|
|
176
194
|
private _bidiProxyUrl;
|
|
177
195
|
private _clockRunning;
|
|
196
|
+
private ipcFakeThing?;
|
|
178
197
|
constructor(opts?: InitialOpts, shouldValidateCaps?: boolean);
|
|
179
198
|
get bidiProxyUrl(): string | null;
|
|
180
199
|
get driverData(): {
|
|
@@ -182,6 +201,7 @@ export declare class FakeDriver<Thing = unknown> extends BaseDriver<FakeDriverCo
|
|
|
182
201
|
};
|
|
183
202
|
static fakeRoute(_req: Request, res: Response): void;
|
|
184
203
|
static updateServer(expressApp: Express, _httpServer: HttpServer, cliArgs: Record<string, unknown>): Promise<void>;
|
|
204
|
+
onIpcInit(): Promise<void>;
|
|
185
205
|
proxyActive(): boolean;
|
|
186
206
|
canProxy(): boolean;
|
|
187
207
|
proxyReqRes(req: Request, res: Response): void;
|
|
@@ -202,7 +222,10 @@ export declare class FakeDriver<Thing = unknown> extends BaseDriver<FakeDriverCo
|
|
|
202
222
|
callDeprecatedCommand(): Promise<void>;
|
|
203
223
|
doSomeMath(num1: number, num2: number): Promise<number>;
|
|
204
224
|
doSomeMath2(num1: number, num2: number): Promise<number>;
|
|
225
|
+
fakeStartClock(): Promise<void>;
|
|
226
|
+
fakeStopClock(): Promise<void>;
|
|
205
227
|
private startClock;
|
|
206
228
|
private stopClock;
|
|
229
|
+
private publishClockStatus;
|
|
207
230
|
}
|
|
208
231
|
//# sourceMappingURL=driver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../lib/driver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AACxD,OAAO,KAAK,EAAC,MAAM,IAAI,UAAU,EAAC,MAAM,WAAW,CAAC;AACpD,OAAO,EAAC,UAAU,EAAS,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAC,UAAU,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../lib/driver.ts"],"names":[],"mappings":"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"}
|
package/build/lib/driver.js
CHANGED
|
@@ -64,6 +64,7 @@ class FakeDriver extends driver_1.BaseDriver {
|
|
|
64
64
|
elMap;
|
|
65
65
|
/** Current document URL; set by bidiNavigate, returned by getUrl. */
|
|
66
66
|
url = '';
|
|
67
|
+
ipcClock;
|
|
67
68
|
// Alert commands
|
|
68
69
|
assertNoAlert = alertCommands.assertNoAlert;
|
|
69
70
|
assertAlert = alertCommands.assertAlert;
|
|
@@ -124,9 +125,12 @@ class FakeDriver extends driver_1.BaseDriver {
|
|
|
124
125
|
fakeAddition = generalCommands.fakeAddition;
|
|
125
126
|
getUrl = generalCommands.getUrl;
|
|
126
127
|
bidiNavigate = generalCommands.bidiNavigate;
|
|
128
|
+
getLastPluginMath = generalCommands.getLastPluginMath;
|
|
129
|
+
lastPluginMath;
|
|
127
130
|
/** If set, Bidi connections are proxied to this URL instead of handling locally. */
|
|
128
131
|
_bidiProxyUrl;
|
|
129
132
|
_clockRunning = false;
|
|
133
|
+
ipcFakeThing;
|
|
130
134
|
constructor(opts = {}, shouldValidateCaps = true) {
|
|
131
135
|
super(opts, shouldValidateCaps);
|
|
132
136
|
this.curContext = 'NATIVE_APP';
|
|
@@ -138,6 +142,7 @@ class FakeDriver extends driver_1.BaseDriver {
|
|
|
138
142
|
this.shook = false;
|
|
139
143
|
this.appModel = new fake_app_1.FakeApp();
|
|
140
144
|
this._bidiProxyUrl = null;
|
|
145
|
+
this.lastPluginMath = null;
|
|
141
146
|
}
|
|
142
147
|
get bidiProxyUrl() {
|
|
143
148
|
return this._bidiProxyUrl;
|
|
@@ -156,6 +161,16 @@ class FakeDriver extends driver_1.BaseDriver {
|
|
|
156
161
|
res.send(JSON.stringify(cliArgs));
|
|
157
162
|
});
|
|
158
163
|
}
|
|
164
|
+
async onIpcInit() {
|
|
165
|
+
const fakeMathSub = this.ipcSubscribe('pluginMath');
|
|
166
|
+
fakeMathSub.on('message', (message) => {
|
|
167
|
+
this.log.info(`A connected plugin did some math with result ${message.data}`);
|
|
168
|
+
this.lastPluginMath = { pluginName: message.publisher, result: message.data };
|
|
169
|
+
});
|
|
170
|
+
this.ipcFakeThing = this.ipcSubscribe('fakeThing');
|
|
171
|
+
this.ipcClock = this.ipcSubscribe('clockLifecycle');
|
|
172
|
+
await this.publishClockStatus();
|
|
173
|
+
}
|
|
159
174
|
proxyActive() {
|
|
160
175
|
return this._proxyActive;
|
|
161
176
|
}
|
|
@@ -195,7 +210,7 @@ class FakeDriver extends driver_1.BaseDriver {
|
|
|
195
210
|
return [sessionId, caps];
|
|
196
211
|
}
|
|
197
212
|
async deleteSession(sessionId) {
|
|
198
|
-
this.stopClock();
|
|
213
|
+
await this.stopClock();
|
|
199
214
|
return await super.deleteSession(sessionId);
|
|
200
215
|
}
|
|
201
216
|
async getWindowHandle() {
|
|
@@ -211,6 +226,10 @@ class FakeDriver extends driver_1.BaseDriver {
|
|
|
211
226
|
async setFakeThing(thing) {
|
|
212
227
|
await (0, asyncbox_1.sleep)(1);
|
|
213
228
|
this.fakeThing = thing;
|
|
229
|
+
if (this.ipcFakeThing) {
|
|
230
|
+
await this.ipcFakeThing.publish(thing);
|
|
231
|
+
}
|
|
232
|
+
;
|
|
214
233
|
return null;
|
|
215
234
|
}
|
|
216
235
|
async getFakeDriverArgs() {
|
|
@@ -233,18 +252,42 @@ class FakeDriver extends driver_1.BaseDriver {
|
|
|
233
252
|
await (0, asyncbox_1.sleep)(1);
|
|
234
253
|
return num1 + num2;
|
|
235
254
|
}
|
|
255
|
+
async fakeStartClock() {
|
|
256
|
+
void this.startClock();
|
|
257
|
+
}
|
|
258
|
+
async fakeStopClock() {
|
|
259
|
+
await this.stopClock();
|
|
260
|
+
}
|
|
236
261
|
async startClock() {
|
|
237
262
|
this._clockRunning = true;
|
|
263
|
+
try {
|
|
264
|
+
await this.publishClockStatus();
|
|
265
|
+
}
|
|
266
|
+
catch (e) {
|
|
267
|
+
this.log.error(e);
|
|
268
|
+
}
|
|
238
269
|
while (this._clockRunning) {
|
|
239
270
|
await (0, asyncbox_1.sleep)(500);
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
271
|
+
try {
|
|
272
|
+
this.eventEmitter.emit('bidiEvent', {
|
|
273
|
+
method: 'appium:clock.currentTime',
|
|
274
|
+
params: { time: Date.now() },
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
catch (e) {
|
|
278
|
+
this.log.error(e);
|
|
279
|
+
}
|
|
244
280
|
}
|
|
245
281
|
}
|
|
246
|
-
stopClock() {
|
|
282
|
+
async stopClock() {
|
|
247
283
|
this._clockRunning = false;
|
|
284
|
+
await this.publishClockStatus();
|
|
285
|
+
}
|
|
286
|
+
async publishClockStatus() {
|
|
287
|
+
if (!this.ipcClock) {
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
290
|
+
await this.ipcClock.publish({ running: this._clockRunning });
|
|
248
291
|
}
|
|
249
292
|
}
|
|
250
293
|
exports.FakeDriver = FakeDriver;
|
package/build/lib/driver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../lib/driver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAA+B;AAG/B,0CAAiD;AAEjD,iDAAqD;AAGrD,yCAAmC;AAEnC,gEAAkD;AAClD,sEAAwD;AACxD,oEAAsD;AACtD,8DAAgD;AAChD,oEAAsD;AACtD,wEAAmE;AACnE,kEAA6D;AAC7D,0EAAqE;
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../lib/driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-app.d.ts","sourceRoot":"","sources":["../../lib/fake-app.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"fake-app.d.ts","sourceRoot":"","sources":["../../lib/fake-app.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,WAAW,EAAE,KAAK,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAC,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AACzE,OAAO,KAAK,EAAC,QAAQ,IAAI,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAI7E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,qFAAqF;AACrF,qBAAa,OAAO;IAClB,GAAG,EAAE,WAAW,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC;IAClC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,WAAW,CAAC;IAChC,SAAS,EAAE,cAAc,EAAE,EAAE,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAgB;;IAiB/B,IAAI,KAAK,IAAI,MAAM,CAQlB;IAED,IAAI,kBAAkB,IAAI,QAAQ,CAKjC;IAED,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,IAAI,KAAK,IAAI,MAAM,CASlB;IAED,IAAI,MAAM,IAAI,MAAM,CASnB;IAED,IAAI,WAAW,CAAC,CAAC,EAAE,WAAW,EAE7B;IAEK,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7C,WAAW,IAAI,WAAW,EAAE;IAK5B,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAWtC,iBAAiB,IAAI,IAAI;IAKzB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAWvC,eAAe,IAAI,IAAI;IAOvB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,KAAK,CAAC,aAAa;IAQtE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,KAAK,CAAC,aAAa;IAIlE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,KAAK,CAAC,aAAa;IAI5E,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,KAAK,CAAC,aAAa;IAUpE,QAAQ,IAAI,OAAO;IAInB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOhC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQhC,sFAAsF;IACtF,SAAS,IAAI,MAAM;IAanB,WAAW,IAAI,IAAI;IAInB,aAAa,IAAI,MAAM;IAIvB,OAAO,CAAC,OAAO;CAWhB;AAED,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;gBACf,IAAI,EAAE,WAAW;CAG9B"}
|
package/build/lib/fake-app.js
CHANGED
|
@@ -43,7 +43,6 @@ const node_path_1 = __importDefault(require("node:path"));
|
|
|
43
43
|
const xmldom_1 = __importDefault(require("@xmldom/xmldom"));
|
|
44
44
|
const xpath = __importStar(require("xpath"));
|
|
45
45
|
const logger_1 = require("./logger");
|
|
46
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
47
46
|
const fake_element_1 = require("./fake-element");
|
|
48
47
|
const SCREENSHOT = node_path_1.default.join(__dirname, 'screen.png');
|
|
49
48
|
/** In-memory app model: XML DOM, webviews, alerts, geo, orientation, actions log. */
|
|
@@ -76,7 +75,7 @@ class FakeApp {
|
|
|
76
75
|
}
|
|
77
76
|
get title() {
|
|
78
77
|
const nodes = this.xpathQuery('//title');
|
|
79
|
-
if (!
|
|
78
|
+
if (!Array.isArray(nodes) || nodes.length < 1) {
|
|
80
79
|
throw new Error('No title!');
|
|
81
80
|
}
|
|
82
81
|
const node = nodes[0];
|
|
@@ -128,7 +127,7 @@ class FakeApp {
|
|
|
128
127
|
}
|
|
129
128
|
getWebviews() {
|
|
130
129
|
const nodes = this.xpathQuery('//MockWebView/*[1]');
|
|
131
|
-
return
|
|
130
|
+
return Array.isArray(nodes) ? nodes.map((n) => new FakeWebViewImpl(n)) : [];
|
|
132
131
|
}
|
|
133
132
|
activateWebview(wv) {
|
|
134
133
|
this.activeWebview = wv;
|
|
@@ -180,7 +179,7 @@ class FakeApp {
|
|
|
180
179
|
}
|
|
181
180
|
showAlert(alertId) {
|
|
182
181
|
const nodes = this.xpathQuery(`//alert[@id="${alertId}"]`);
|
|
183
|
-
if (!
|
|
182
|
+
if (!Array.isArray(nodes) || nodes.length === 0) {
|
|
184
183
|
throw new Error(`Alert ${alertId} doesn't exist!`);
|
|
185
184
|
}
|
|
186
185
|
this.activeAlert = new fake_element_1.FakeElement(nodes[0], this);
|
|
@@ -206,7 +205,7 @@ class FakeApp {
|
|
|
206
205
|
}
|
|
207
206
|
setDims() {
|
|
208
207
|
const nodes = this.xpathQuery('//app');
|
|
209
|
-
if (!
|
|
208
|
+
if (!Array.isArray(nodes)) {
|
|
210
209
|
throw new Error('Cannot fetch app dimensions because no corresponding node has been found in the source');
|
|
211
210
|
}
|
|
212
211
|
const app = new fake_element_1.FakeElement(nodes[0], this);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-app.js","sourceRoot":"","sources":["../../lib/fake-app.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAkC;AAClC,qCAAqC;AACrC,0DAA6B;AAC7B,4DAAoC;AACpC,6CAA+B;AAC/B,qCAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"fake-app.js","sourceRoot":"","sources":["../../lib/fake-app.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-element.d.ts","sourceRoot":"","sources":["../../lib/fake-element.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fake-element.d.ts","sourceRoot":"","sources":["../../lib/fake-element.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,QAAQ,IAAI,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;CAC7C;AAED,wGAAwG;AACxG,qBAAa,WAAW;IACtB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAEhB,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO;IAqB9C,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,WAAW,IAAI,WAAW,CAQ7B;IAED,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAInC,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAI1B,SAAS,IAAI,OAAO;IAIpB,SAAS,IAAI,OAAO;IAIpB,UAAU,IAAI,OAAO;IAIrB,WAAW,IAAI;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC;IAOrC,cAAc,IAAI;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IAIvE,OAAO,IAAI;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IAO1C,KAAK,IAAI,IAAI;IASb,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAInC,SAAS,IAAI,OAAO;IAIpB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOnC,OAAO,CAAC,QAAQ;CAWjB"}
|
|
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.FakeElement = void 0;
|
|
7
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
8
7
|
const xmldom_1 = __importDefault(require("@xmldom/xmldom"));
|
|
9
8
|
/** Wrapper around an XML node from the fake app DOM; supports attrs, css, visibility, click, alerts. */
|
|
10
9
|
class FakeElement {
|
|
@@ -23,7 +22,7 @@ class FakeElement {
|
|
|
23
22
|
this.css = {};
|
|
24
23
|
// Support both DOM Attr (name/value) and nodeName/nodeValue (e.g. @xmldom/xmldom).
|
|
25
24
|
const attrs = this.node.attributes;
|
|
26
|
-
for (const attr of
|
|
25
|
+
for (const attr of Object.values(attrs)) {
|
|
27
26
|
const name = attr.name ?? attr.nodeName ?? '';
|
|
28
27
|
const value = attr.value ?? attr.nodeValue ?? '';
|
|
29
28
|
if (name) {
|
|
@@ -84,7 +83,7 @@ class FakeElement {
|
|
|
84
83
|
return this.nodeAttrs.hasPrompt === 'true';
|
|
85
84
|
}
|
|
86
85
|
getCss(prop) {
|
|
87
|
-
if (
|
|
86
|
+
if (prop in this.css) {
|
|
88
87
|
return this.css[prop];
|
|
89
88
|
}
|
|
90
89
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-element.js","sourceRoot":"","sources":["../../lib/fake-element.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"fake-element.js","sourceRoot":"","sources":["../../lib/fake-element.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,4 +16,13 @@ export const EXECUTE_METHOD_MAP = {
|
|
|
16
16
|
'fake: getDeprecatedCommandsCalled': {
|
|
17
17
|
command: 'getDeprecatedCommandsCalled',
|
|
18
18
|
},
|
|
19
|
+
'fake: getLastPluginMath': {
|
|
20
|
+
command: 'getLastPluginMath',
|
|
21
|
+
},
|
|
22
|
+
'fake: startClock': {
|
|
23
|
+
command: 'fakeStartClock',
|
|
24
|
+
},
|
|
25
|
+
'fake: stopClock': {
|
|
26
|
+
command: 'fakeStopClock',
|
|
27
|
+
},
|
|
19
28
|
} as const satisfies ExecuteMethodMap<FakeDriver>;
|
package/lib/commands/contexts.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _ from 'lodash';
|
|
2
1
|
import type {Document as XMLDocument} from '@xmldom/xmldom';
|
|
3
2
|
import type {FakeDriver} from '../driver';
|
|
4
3
|
import type {FakeWebView} from '../fake-app';
|
|
@@ -28,7 +27,7 @@ export async function getCurrentContext(this: FakeDriver): Promise<string> {
|
|
|
28
27
|
|
|
29
28
|
/** getContexts. */
|
|
30
29
|
export async function getContexts(this: FakeDriver): Promise<string[]> {
|
|
31
|
-
return
|
|
30
|
+
return Object.keys(this.getRawContexts());
|
|
32
31
|
}
|
|
33
32
|
|
|
34
33
|
/** setContext. */
|
|
@@ -57,7 +56,7 @@ export async function setFrame(this: FakeDriver, frameId: number | null): Promis
|
|
|
57
56
|
this.appModel.deactivateFrame();
|
|
58
57
|
} else {
|
|
59
58
|
const nodes = this.appModel.xpathQuery(`//iframe[@id="${frameId}"]`);
|
|
60
|
-
if (!
|
|
59
|
+
if (!Array.isArray(nodes) || nodes.length === 0) {
|
|
61
60
|
throw new errors.NoSuchFrameError();
|
|
62
61
|
}
|
|
63
62
|
this.appModel.activateFrame(nodes[0] as XMLDocument);
|
package/lib/commands/element.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _ from 'lodash';
|
|
2
1
|
import {errors} from 'appium/driver';
|
|
3
2
|
import type {FakeDriver} from '../driver';
|
|
4
3
|
import type {Position, Rect, Size} from '@appium/types';
|
|
@@ -7,7 +6,7 @@ import type {FakeElement} from '../fake-element';
|
|
|
7
6
|
/** Resolve element ids to FakeElements; throws StaleElementReferenceError if any id is missing. */
|
|
8
7
|
export function getElements(this: FakeDriver, elementIds: string[]): FakeElement[] {
|
|
9
8
|
for (const elId of elementIds) {
|
|
10
|
-
if (!
|
|
9
|
+
if (!(elId in this.elMap)) {
|
|
11
10
|
throw new errors.StaleElementReferenceError();
|
|
12
11
|
}
|
|
13
12
|
}
|
|
@@ -49,7 +48,7 @@ export async function setValue(
|
|
|
49
48
|
keys: string | string[],
|
|
50
49
|
elementId: string
|
|
51
50
|
): Promise<void> {
|
|
52
|
-
const value =
|
|
51
|
+
const value = Array.isArray(keys) ? keys.join('') : keys;
|
|
53
52
|
const el = this.getElement(elementId);
|
|
54
53
|
// Only MockInputField supports value in the fake app XML.
|
|
55
54
|
if (el.type !== 'MockInputField') {
|
package/lib/commands/find.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _ from 'lodash';
|
|
2
1
|
import type {Element} from '@appium/types';
|
|
3
2
|
import {errors} from 'appium/driver';
|
|
4
3
|
import {FakeElement, type XmlNodeLike} from '../fake-element';
|
|
@@ -12,7 +11,7 @@ export function getExistingElementForNode(
|
|
|
12
11
|
this: FakeDriver,
|
|
13
12
|
node: FakeElement
|
|
14
13
|
): string | null {
|
|
15
|
-
for (const [id, el] of
|
|
14
|
+
for (const [id, el] of Object.entries(this.elMap)) {
|
|
16
15
|
if (el.node === node.node) {
|
|
17
16
|
return id;
|
|
18
17
|
}
|
|
@@ -25,18 +24,16 @@ export function wrapNewEl(
|
|
|
25
24
|
this: FakeDriver,
|
|
26
25
|
obj: FakeElement | XmlNodeLike
|
|
27
26
|
): Element {
|
|
28
|
-
const node: XmlNodeLike =
|
|
29
|
-
? (obj as FakeElement).node
|
|
30
|
-
: (obj as XmlNodeLike);
|
|
27
|
+
const node: XmlNodeLike = obj instanceof FakeElement ? obj.node : obj;
|
|
31
28
|
|
|
32
|
-
if (
|
|
33
|
-
const existingElId = this.getExistingElementForNode(obj
|
|
29
|
+
if (obj instanceof FakeElement) {
|
|
30
|
+
const existingElId = this.getExistingElementForNode(obj);
|
|
34
31
|
if (existingElId) {
|
|
35
32
|
return {ELEMENT: existingElId, [W3C_WEB_ELEMENT_IDENTIFIER]: existingElId};
|
|
36
33
|
}
|
|
37
34
|
} else {
|
|
38
35
|
// raw node: reuse id if we already have an element for this node
|
|
39
|
-
for (const [id, el] of
|
|
36
|
+
for (const [id, el] of Object.entries(this.elMap)) {
|
|
40
37
|
if (el.node === node) {
|
|
41
38
|
return {ELEMENT: id, [W3C_WEB_ELEMENT_IDENTIFIER]: id};
|
|
42
39
|
}
|
|
@@ -82,7 +79,7 @@ async function findElOrElsImpl<Ctx = unknown>(
|
|
|
82
79
|
'tag name': 'classQuery',
|
|
83
80
|
'css selector': 'cssQuery',
|
|
84
81
|
};
|
|
85
|
-
if (!
|
|
82
|
+
if (!(strategy in qMap)) {
|
|
86
83
|
throw new errors.UnknownCommandError();
|
|
87
84
|
}
|
|
88
85
|
if (selector === 'badsel') {
|
|
@@ -94,7 +91,12 @@ async function findElOrElsImpl<Ctx = unknown>(
|
|
|
94
91
|
selector,
|
|
95
92
|
context
|
|
96
93
|
);
|
|
97
|
-
|
|
94
|
+
let els: unknown[] = [];
|
|
95
|
+
if (Array.isArray(raw)) {
|
|
96
|
+
els = raw;
|
|
97
|
+
} else if (raw) {
|
|
98
|
+
els = [raw];
|
|
99
|
+
}
|
|
98
100
|
|
|
99
101
|
if (els.length) {
|
|
100
102
|
if (mult) {
|
package/lib/commands/general.ts
CHANGED
|
@@ -136,3 +136,8 @@ export async function bidiNavigate(
|
|
|
136
136
|
): Promise<void> {
|
|
137
137
|
this.url = url;
|
|
138
138
|
}
|
|
139
|
+
|
|
140
|
+
/** Return the last math result detected by a plugin that publishes it */
|
|
141
|
+
export async function getLastPluginMath(this: FakeDriver): Promise<{pluginName: string, result: number} | null> {
|
|
142
|
+
return this.lastPluginMath;
|
|
143
|
+
}
|
package/lib/driver.ts
CHANGED
|
@@ -2,7 +2,7 @@ import {sleep} from 'asyncbox';
|
|
|
2
2
|
import type {Express, Request, Response} from 'express';
|
|
3
3
|
import type {Server as HttpServer} from 'node:http';
|
|
4
4
|
import {BaseDriver, errors} from 'appium/driver';
|
|
5
|
-
import type {DriverData, InitialOpts} from '@appium/types';
|
|
5
|
+
import type {DriverData, IIpcSubscription, InitialOpts, IpcData, IpcMessage} from '@appium/types';
|
|
6
6
|
import {desiredCapConstraints} from './desired-caps';
|
|
7
7
|
import type {FakeDriverConstraints} from './desired-caps';
|
|
8
8
|
import type {FakeDriverCaps, W3CFakeDriverCaps} from './types';
|
|
@@ -19,9 +19,10 @@ import {EXECUTE_METHOD_MAP} from './command-maps/execute-method-map';
|
|
|
19
19
|
|
|
20
20
|
export type {FakeDriverConstraints};
|
|
21
21
|
export type {Orientation} from '@appium/types';
|
|
22
|
+
export type ClockStatus = {running: boolean};
|
|
22
23
|
|
|
23
24
|
/** Driver supporting a generic "fake thing" value (getFakeThing / setFakeThing). */
|
|
24
|
-
export class FakeDriver<Thing =
|
|
25
|
+
export class FakeDriver<Thing extends IpcData = null> extends BaseDriver<FakeDriverConstraints> {
|
|
25
26
|
static newBidiCommands = NEW_BIDI_COMMANDS;
|
|
26
27
|
static newMethodMap = NEW_METHOD_MAP;
|
|
27
28
|
static executeMethodMap = EXECUTE_METHOD_MAP;
|
|
@@ -41,6 +42,8 @@ export class FakeDriver<Thing = unknown> extends BaseDriver<FakeDriverConstraint
|
|
|
41
42
|
/** Current document URL; set by bidiNavigate, returned by getUrl. */
|
|
42
43
|
url: string = '';
|
|
43
44
|
|
|
45
|
+
ipcClock?: IIpcSubscription<ClockStatus>;
|
|
46
|
+
|
|
44
47
|
// Alert commands
|
|
45
48
|
assertNoAlert = alertCommands.assertNoAlert;
|
|
46
49
|
assertAlert = alertCommands.assertAlert;
|
|
@@ -105,9 +108,14 @@ export class FakeDriver<Thing = unknown> extends BaseDriver<FakeDriverConstraint
|
|
|
105
108
|
fakeAddition = generalCommands.fakeAddition;
|
|
106
109
|
getUrl = generalCommands.getUrl;
|
|
107
110
|
bidiNavigate = generalCommands.bidiNavigate;
|
|
111
|
+
getLastPluginMath = generalCommands.getLastPluginMath;
|
|
112
|
+
|
|
113
|
+
protected lastPluginMath: {pluginName: string, result: number} | null;
|
|
114
|
+
|
|
108
115
|
/** If set, Bidi connections are proxied to this URL instead of handling locally. */
|
|
109
116
|
private _bidiProxyUrl: string | null;
|
|
110
117
|
private _clockRunning = false;
|
|
118
|
+
private ipcFakeThing?: IIpcSubscription<Thing>;
|
|
111
119
|
|
|
112
120
|
constructor(opts: InitialOpts = {} as InitialOpts, shouldValidateCaps = true) {
|
|
113
121
|
super(opts, shouldValidateCaps);
|
|
@@ -120,6 +128,7 @@ export class FakeDriver<Thing = unknown> extends BaseDriver<FakeDriverConstraint
|
|
|
120
128
|
this.shook = false;
|
|
121
129
|
this.appModel = new FakeApp();
|
|
122
130
|
this._bidiProxyUrl = null;
|
|
131
|
+
this.lastPluginMath = null;
|
|
123
132
|
}
|
|
124
133
|
|
|
125
134
|
get bidiProxyUrl(): string | null {
|
|
@@ -147,6 +156,17 @@ export class FakeDriver<Thing = unknown> extends BaseDriver<FakeDriverConstraint
|
|
|
147
156
|
});
|
|
148
157
|
}
|
|
149
158
|
|
|
159
|
+
async onIpcInit(): Promise<void> {
|
|
160
|
+
const fakeMathSub = this.ipcSubscribe<number>('pluginMath');
|
|
161
|
+
fakeMathSub.on('message', (message: IpcMessage<number>) => {
|
|
162
|
+
this.log.info(`A connected plugin did some math with result ${message.data}`);
|
|
163
|
+
this.lastPluginMath = {pluginName: message.publisher, result: message.data};
|
|
164
|
+
});
|
|
165
|
+
this.ipcFakeThing = this.ipcSubscribe('fakeThing');
|
|
166
|
+
this.ipcClock = this.ipcSubscribe('clockLifecycle');
|
|
167
|
+
await this.publishClockStatus();
|
|
168
|
+
}
|
|
169
|
+
|
|
150
170
|
proxyActive(): boolean {
|
|
151
171
|
return this._proxyActive;
|
|
152
172
|
}
|
|
@@ -204,7 +224,7 @@ export class FakeDriver<Thing = unknown> extends BaseDriver<FakeDriverConstraint
|
|
|
204
224
|
}
|
|
205
225
|
|
|
206
226
|
override async deleteSession(sessionId?: string): Promise<void> {
|
|
207
|
-
this.stopClock();
|
|
227
|
+
await this.stopClock();
|
|
208
228
|
return await super.deleteSession(sessionId);
|
|
209
229
|
}
|
|
210
230
|
|
|
@@ -224,6 +244,9 @@ export class FakeDriver<Thing = unknown> extends BaseDriver<FakeDriverConstraint
|
|
|
224
244
|
async setFakeThing(thing: Thing): Promise<null> {
|
|
225
245
|
await sleep(1);
|
|
226
246
|
this.fakeThing = thing;
|
|
247
|
+
if (this.ipcFakeThing) {
|
|
248
|
+
await this.ipcFakeThing.publish(thing);
|
|
249
|
+
};
|
|
227
250
|
return null;
|
|
228
251
|
}
|
|
229
252
|
|
|
@@ -252,19 +275,43 @@ export class FakeDriver<Thing = unknown> extends BaseDriver<FakeDriverConstraint
|
|
|
252
275
|
return num1 + num2;
|
|
253
276
|
}
|
|
254
277
|
|
|
278
|
+
async fakeStartClock(): Promise<void> {
|
|
279
|
+
void this.startClock();
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
async fakeStopClock(): Promise<void> {
|
|
283
|
+
await this.stopClock();
|
|
284
|
+
}
|
|
285
|
+
|
|
255
286
|
private async startClock(): Promise<void> {
|
|
256
287
|
this._clockRunning = true;
|
|
288
|
+
try {
|
|
289
|
+
await this.publishClockStatus();
|
|
290
|
+
} catch (e) {
|
|
291
|
+
this.log.error(e);
|
|
292
|
+
}
|
|
257
293
|
while (this._clockRunning) {
|
|
258
294
|
await sleep(500);
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
295
|
+
try {
|
|
296
|
+
this.eventEmitter.emit('bidiEvent', {
|
|
297
|
+
method: 'appium:clock.currentTime',
|
|
298
|
+
params: {time: Date.now()},
|
|
299
|
+
});
|
|
300
|
+
} catch (e) {
|
|
301
|
+
this.log.error(e);
|
|
302
|
+
}
|
|
263
303
|
}
|
|
264
304
|
}
|
|
265
305
|
|
|
266
|
-
private stopClock(): void {
|
|
306
|
+
private async stopClock(): Promise<void> {
|
|
267
307
|
this._clockRunning = false;
|
|
308
|
+
await this.publishClockStatus();
|
|
268
309
|
}
|
|
269
310
|
|
|
311
|
+
private async publishClockStatus(): Promise<void> {
|
|
312
|
+
if (!this.ipcClock) {
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
await this.ipcClock.publish({running: this._clockRunning});
|
|
316
|
+
}
|
|
270
317
|
}
|
package/lib/fake-app.ts
CHANGED
|
@@ -4,7 +4,6 @@ import path from 'node:path';
|
|
|
4
4
|
import XMLDom from '@xmldom/xmldom';
|
|
5
5
|
import * as xpath from 'xpath';
|
|
6
6
|
import {log} from './logger';
|
|
7
|
-
import _ from 'lodash';
|
|
8
7
|
import {FakeElement, type XmlNodeLike} from './fake-element';
|
|
9
8
|
import type {ActionSequence, Location, Orientation} from '@appium/types';
|
|
10
9
|
import type {Document as XMLDocument, Node as XMLNode} from '@xmldom/xmldom';
|
|
@@ -47,7 +46,7 @@ export class FakeApp {
|
|
|
47
46
|
|
|
48
47
|
get title(): string {
|
|
49
48
|
const nodes = this.xpathQuery('//title');
|
|
50
|
-
if (!
|
|
49
|
+
if (!Array.isArray(nodes) || nodes.length < 1) {
|
|
51
50
|
throw new Error('No title!');
|
|
52
51
|
}
|
|
53
52
|
const node = nodes[0];
|
|
@@ -109,7 +108,7 @@ export class FakeApp {
|
|
|
109
108
|
|
|
110
109
|
getWebviews(): FakeWebView[] {
|
|
111
110
|
const nodes = this.xpathQuery('//MockWebView/*[1]');
|
|
112
|
-
return
|
|
111
|
+
return Array.isArray(nodes) ? nodes.map((n) => new FakeWebViewImpl(n as unknown as XmlNodeLike)) : [];
|
|
113
112
|
}
|
|
114
113
|
|
|
115
114
|
activateWebview(wv: FakeWebView): void {
|
|
@@ -185,7 +184,7 @@ export class FakeApp {
|
|
|
185
184
|
|
|
186
185
|
showAlert(alertId: string): void {
|
|
187
186
|
const nodes = this.xpathQuery(`//alert[@id="${alertId}"]`);
|
|
188
|
-
if (!
|
|
187
|
+
if (!Array.isArray(nodes) || nodes.length === 0) {
|
|
189
188
|
throw new Error(`Alert ${alertId} doesn't exist!`);
|
|
190
189
|
}
|
|
191
190
|
this.activeAlert = new FakeElement(nodes[0] as unknown as XmlNodeLike, this);
|
|
@@ -215,7 +214,7 @@ export class FakeApp {
|
|
|
215
214
|
|
|
216
215
|
private setDims(): void {
|
|
217
216
|
const nodes = this.xpathQuery('//app');
|
|
218
|
-
if (!
|
|
217
|
+
if (!Array.isArray(nodes)) {
|
|
219
218
|
throw new Error(
|
|
220
219
|
'Cannot fetch app dimensions because no corresponding node has been found in the source'
|
|
221
220
|
);
|
package/lib/fake-element.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _ from 'lodash';
|
|
2
1
|
import XMLDom from '@xmldom/xmldom';
|
|
3
2
|
import type {Document as XMLDocument, Node as XMLNode} from '@xmldom/xmldom';
|
|
4
3
|
import type {FakeApp} from './fake-app';
|
|
@@ -28,7 +27,7 @@ export class FakeElement {
|
|
|
28
27
|
const attrs = this.node.attributes as unknown as Array<{
|
|
29
28
|
name?: string; nodeName?: string; value?: string; nodeValue?: string
|
|
30
29
|
}>;
|
|
31
|
-
for (const attr of
|
|
30
|
+
for (const attr of Object.values(attrs)) {
|
|
32
31
|
const name = attr.name ?? attr.nodeName ?? '';
|
|
33
32
|
const value = attr.value ?? attr.nodeValue ?? '';
|
|
34
33
|
if (name) {
|
|
@@ -108,7 +107,7 @@ export class FakeElement {
|
|
|
108
107
|
}
|
|
109
108
|
|
|
110
109
|
getCss(prop: string): string | null {
|
|
111
|
-
if (
|
|
110
|
+
if (prop in this.css) {
|
|
112
111
|
return this.css[prop];
|
|
113
112
|
}
|
|
114
113
|
return null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appium/fake-driver",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.2.0",
|
|
4
4
|
"description": "Mock driver used internally by Appium for testing. Ignore",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"automation",
|
|
@@ -41,8 +41,7 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@xmldom/xmldom": "0.9.10",
|
|
44
|
-
"asyncbox": "6.
|
|
45
|
-
"lodash": "4.18.1",
|
|
44
|
+
"asyncbox": "6.3.0",
|
|
46
45
|
"xpath": "0.0.34"
|
|
47
46
|
},
|
|
48
47
|
"peerDependencies": {
|
|
@@ -78,5 +77,5 @@
|
|
|
78
77
|
},
|
|
79
78
|
"main": "./build/lib/index.js",
|
|
80
79
|
"types": "./build/lib/index.d.ts",
|
|
81
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "8018f8b70ecc975fa115e19072ef337b8473865d"
|
|
82
81
|
}
|