@appium/fake-driver 6.0.2 → 6.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/LICENSE +201 -0
  2. package/build/lib/commands/alert.d.ts +10 -13
  3. package/build/lib/commands/alert.d.ts.map +1 -1
  4. package/build/lib/commands/alert.js +39 -46
  5. package/build/lib/commands/alert.js.map +1 -1
  6. package/build/lib/commands/contexts.d.ts +9 -13
  7. package/build/lib/commands/contexts.d.ts.map +1 -1
  8. package/build/lib/commands/contexts.js +55 -62
  9. package/build/lib/commands/contexts.js.map +1 -1
  10. package/build/lib/commands/element.d.ts +23 -26
  11. package/build/lib/commands/element.d.ts.map +1 -1
  12. package/build/lib/commands/element.js +100 -89
  13. package/build/lib/commands/element.js.map +1 -1
  14. package/build/lib/commands/find.d.ts +14 -17
  15. package/build/lib/commands/find.d.ts.map +1 -1
  16. package/build/lib/commands/find.js +66 -63
  17. package/build/lib/commands/find.js.map +1 -1
  18. package/build/lib/commands/general.d.ts +25 -28
  19. package/build/lib/commands/general.d.ts.map +1 -1
  20. package/build/lib/commands/general.js +90 -75
  21. package/build/lib/commands/general.js.map +1 -1
  22. package/build/lib/desired-caps.d.ts +14 -0
  23. package/build/lib/desired-caps.d.ts.map +1 -0
  24. package/build/lib/desired-caps.js +16 -0
  25. package/build/lib/desired-caps.js.map +1 -0
  26. package/build/lib/doctor/common.d.ts +11 -0
  27. package/build/lib/doctor/common.d.ts.map +1 -0
  28. package/build/lib/doctor/common.js +25 -0
  29. package/build/lib/doctor/common.js.map +1 -0
  30. package/build/lib/doctor/fake1.d.ts +3 -0
  31. package/build/lib/doctor/fake1.d.ts.map +1 -0
  32. package/build/lib/doctor/fake1.js +6 -0
  33. package/build/lib/doctor/fake1.js.map +1 -0
  34. package/build/lib/doctor/fake2.d.ts +3 -0
  35. package/build/lib/doctor/fake2.d.ts.map +1 -0
  36. package/build/lib/doctor/fake2.js +6 -0
  37. package/build/lib/doctor/fake2.js.map +1 -0
  38. package/build/lib/driver.d.ts +128 -156
  39. package/build/lib/driver.d.ts.map +1 -1
  40. package/build/lib/driver.js +146 -154
  41. package/build/lib/driver.js.map +1 -1
  42. package/build/lib/fake-app.d.ts +37 -45
  43. package/build/lib/fake-app.d.ts.map +1 -1
  44. package/build/lib/fake-app.js +57 -34
  45. package/build/lib/fake-app.js.map +1 -1
  46. package/build/lib/fake-driver-schema.d.ts +16 -11
  47. package/build/lib/fake-driver-schema.d.ts.map +1 -1
  48. package/build/lib/fake-driver-schema.js +2 -17
  49. package/build/lib/fake-driver-schema.js.map +1 -1
  50. package/build/lib/fake-element.d.ts +27 -26
  51. package/build/lib/fake-element.d.ts.map +1 -1
  52. package/build/lib/fake-element.js +19 -19
  53. package/build/lib/fake-element.js.map +1 -1
  54. package/build/lib/index.d.ts +2 -3
  55. package/build/lib/index.d.ts.map +1 -1
  56. package/build/lib/index.js +2 -6
  57. package/build/lib/index.js.map +1 -1
  58. package/build/lib/logger.d.ts +1 -2
  59. package/build/lib/logger.d.ts.map +1 -1
  60. package/build/lib/logger.js +2 -2
  61. package/build/lib/logger.js.map +1 -1
  62. package/build/lib/scripts/fake-error.d.ts.map +1 -1
  63. package/build/lib/scripts/fake-error.js.map +1 -1
  64. package/build/lib/scripts/fake-stdin.d.ts.map +1 -1
  65. package/build/lib/scripts/fake-stdin.js.map +1 -1
  66. package/build/lib/scripts/fake-success.d.ts.map +1 -1
  67. package/build/lib/scripts/fake-success.js +3 -6
  68. package/build/lib/scripts/fake-success.js.map +1 -1
  69. package/build/lib/server.d.ts +2 -1
  70. package/build/lib/server.d.ts.map +1 -1
  71. package/build/lib/server.js +3 -5
  72. package/build/lib/server.js.map +1 -1
  73. package/build/lib/types.d.ts +1 -1
  74. package/build/lib/types.d.ts.map +1 -1
  75. package/lib/commands/alert.ts +31 -61
  76. package/lib/commands/contexts.ts +50 -73
  77. package/lib/commands/element.ts +122 -135
  78. package/lib/commands/find.ts +100 -115
  79. package/lib/commands/general.ts +122 -127
  80. package/lib/desired-caps.ts +16 -0
  81. package/lib/doctor/common.ts +26 -0
  82. package/lib/doctor/fake1.ts +3 -0
  83. package/lib/doctor/fake2.ts +3 -0
  84. package/lib/driver.ts +321 -0
  85. package/lib/fake-app.ts +234 -0
  86. package/lib/fake-driver-schema.ts +43 -0
  87. package/lib/fake-element.ts +128 -0
  88. package/lib/{index.js → index.ts} +5 -9
  89. package/lib/logger.ts +3 -0
  90. package/lib/scripts/{fake-success.js → fake-success.ts} +1 -1
  91. package/lib/{server.js → server.ts} +3 -4
  92. package/lib/types.ts +1 -1
  93. package/package.json +11 -14
  94. package/tsconfig.json +2 -1
  95. package/build/lib/commands/index.d.ts +0 -14
  96. package/build/lib/commands/index.d.ts.map +0 -1
  97. package/build/lib/commands/index.js +0 -16
  98. package/build/lib/commands/index.js.map +0 -1
  99. package/build/lib/commands/mixin.d.ts +0 -11
  100. package/build/lib/commands/mixin.d.ts.map +0 -1
  101. package/build/lib/commands/mixin.js +0 -16
  102. package/build/lib/commands/mixin.js.map +0 -1
  103. package/lib/commands/index.ts +0 -14
  104. package/lib/commands/mixin.ts +0 -13
  105. package/lib/driver.js +0 -356
  106. package/lib/fake-app.js +0 -190
  107. package/lib/fake-driver-schema.js +0 -35
  108. package/lib/fake-element.js +0 -117
  109. package/lib/logger.js +0 -5
  110. package/test/fixtures/app.xml +0 -38
  111. /package/lib/scripts/{fake-error.js → fake-error.ts} +0 -0
  112. /package/lib/scripts/{fake-stdin.js → fake-stdin.ts} +0 -0
@@ -3,96 +3,107 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getElements = getElements;
7
+ exports.getElement = getElement;
8
+ exports.getName = getName;
9
+ exports.elementDisplayed = elementDisplayed;
10
+ exports.elementEnabled = elementEnabled;
11
+ exports.elementSelected = elementSelected;
12
+ exports.setValue = setValue;
13
+ exports.getText = getText;
14
+ exports.clear = clear;
15
+ exports.click = click;
16
+ exports.getAttribute = getAttribute;
17
+ exports.getElementRect = getElementRect;
18
+ exports.getSize = getSize;
19
+ exports.equalsElement = equalsElement;
20
+ exports.getCssProperty = getCssProperty;
21
+ exports.getLocation = getLocation;
22
+ exports.getLocationInView = getLocationInView;
6
23
  const lodash_1 = __importDefault(require("lodash"));
7
24
  const driver_1 = require("appium/driver");
8
- const mixin_1 = require("./mixin");
9
- const ElementsMixin = {
10
- getElements(elementIds) {
11
- for (const elId of elementIds) {
12
- if (!lodash_1.default.has(this.elMap, elId)) {
13
- throw new driver_1.errors.StaleElementReferenceError();
14
- }
25
+ /** Resolve element ids to FakeElements; throws StaleElementReferenceError if any id is missing. */
26
+ function getElements(elementIds) {
27
+ for (const elId of elementIds) {
28
+ if (!lodash_1.default.has(this.elMap, elId)) {
29
+ throw new driver_1.errors.StaleElementReferenceError();
15
30
  }
16
- return elementIds.map((e) => this.elMap[e]);
17
- },
18
- getElement(elementId) {
19
- return this.getElements([elementId])[0];
20
- },
21
- async getName(elementId) {
22
- const el = this.getElement(elementId);
23
- return el.tagName;
24
- },
25
- async elementDisplayed(elementId) {
26
- const el = this.getElement(elementId);
27
- return el.isVisible();
28
- },
29
- async elementEnabled(elementId) {
30
- const el = this.getElement(elementId);
31
- return el.isEnabled();
32
- },
33
- async elementSelected(elementId) {
34
- const el = this.getElement(elementId);
35
- return el.isSelected();
36
- },
37
- async setValue(keys, elementId) {
38
- let value = keys;
39
- if (keys instanceof Array) {
40
- value = keys.join('');
41
- }
42
- const el = this.getElement(elementId);
43
- if (el.type !== 'MockInputField') {
44
- throw new driver_1.errors.InvalidElementStateError();
45
- }
46
- el.setAttr('value', value);
47
- },
48
- async getText(elementId) {
49
- const el = this.getElement(elementId);
50
- return el.getAttr('value');
51
- },
52
- async clear(elementId) {
53
- await this.setValue('', elementId);
54
- },
55
- /**
56
- * This comment should be displayed instead of the one from ExternalDriver
57
- */
58
- async click(elementId) {
59
- this.assertNoAlert();
60
- const el = this.getElement(elementId);
61
- if (!el.isVisible()) {
62
- throw new driver_1.errors.InvalidElementStateError();
63
- }
64
- el.click();
65
- this.focusedElId = elementId;
66
- },
67
- async getAttribute(attr, elementId) {
68
- const el = this.getElement(elementId);
69
- return el.getAttr(attr);
70
- },
71
- async getElementRect(elementId) {
72
- const el = this.getElement(elementId);
73
- return el.getElementRect();
74
- },
75
- async getSize(elementId) {
76
- const el = this.getElement(elementId);
77
- return el.getSize();
78
- },
79
- async equalsElement(elementIdA, elementIdB) {
80
- const el1 = this.getElement(elementIdA);
81
- const el2 = this.getElement(elementIdB);
82
- return el1.equals(el2);
83
- },
84
- async getCssProperty(prop, elementId) {
85
- this.assertWebviewContext();
86
- const el = this.getElement(elementId);
87
- return el.getCss(prop) ?? '';
88
- },
89
- async getLocation(elementId) {
90
- const el = this.getElement(elementId);
91
- return el.getLocation();
92
- },
93
- async getLocationInView(elementId) {
94
- return this.getLocation(elementId);
95
- },
96
- };
97
- (0, mixin_1.mixin)(ElementsMixin);
31
+ }
32
+ return elementIds.map((e) => this.elMap[e]);
33
+ }
34
+ function getElement(elementId) {
35
+ return this.getElements([elementId])[0];
36
+ }
37
+ async function getName(elementId) {
38
+ const el = this.getElement(elementId);
39
+ return el.tagName;
40
+ }
41
+ async function elementDisplayed(elementId) {
42
+ const el = this.getElement(elementId);
43
+ return el.isVisible();
44
+ }
45
+ async function elementEnabled(elementId) {
46
+ const el = this.getElement(elementId);
47
+ return el.isEnabled();
48
+ }
49
+ async function elementSelected(elementId) {
50
+ const el = this.getElement(elementId);
51
+ return el.isSelected();
52
+ }
53
+ async function setValue(keys, elementId) {
54
+ const value = lodash_1.default.isArray(keys) ? keys.join('') : keys;
55
+ const el = this.getElement(elementId);
56
+ // Only MockInputField supports value in the fake app XML.
57
+ if (el.type !== 'MockInputField') {
58
+ throw new driver_1.errors.InvalidElementStateError();
59
+ }
60
+ el.setAttr('value', value);
61
+ }
62
+ async function getText(elementId) {
63
+ const el = this.getElement(elementId);
64
+ return el.getAttr('value');
65
+ }
66
+ async function clear(elementId) {
67
+ await this.setValue('', elementId);
68
+ }
69
+ async function click(elementId) {
70
+ this.assertNoAlert();
71
+ const el = this.getElement(elementId);
72
+ if (!el.isVisible()) {
73
+ throw new driver_1.errors.InvalidElementStateError();
74
+ }
75
+ el.click();
76
+ this.focusedElId = elementId;
77
+ }
78
+ /** Protocol order: attribute name, then element id (from route /attribute/:name). */
79
+ async function getAttribute(attributeName, elementId) {
80
+ const el = this.getElement(elementId);
81
+ return el.getAttr(attributeName);
82
+ }
83
+ async function getElementRect(elementId) {
84
+ const el = this.getElement(elementId);
85
+ return el.getElementRect();
86
+ }
87
+ async function getSize(elementId) {
88
+ const el = this.getElement(elementId);
89
+ return el.getSize();
90
+ }
91
+ async function equalsElement(elementIdA, elementIdB) {
92
+ const el1 = this.getElement(elementIdA);
93
+ const el2 = this.getElement(elementIdB);
94
+ return el1.equals(el2);
95
+ }
96
+ /** Protocol order: property name, then element id. Requires webview context. */
97
+ async function getCssProperty(propertyName, elementId) {
98
+ this.assertWebviewContext();
99
+ const el = this.getElement(elementId);
100
+ return el.getCss(propertyName) ?? '';
101
+ }
102
+ async function getLocation(elementId) {
103
+ const el = this.getElement(elementId);
104
+ return el.getLocation();
105
+ }
106
+ async function getLocationInView(elementId) {
107
+ return this.getLocation(elementId);
108
+ }
98
109
  //# sourceMappingURL=element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../../../lib/commands/element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../../../lib/commands/element.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,16 @@
1
- import { Element } from '@appium/types';
2
- import { FakeElement } from '../fake-element';
3
- import { FakeDriver } from '../driver';
4
- interface FakeDriverFindMixin {
5
- getExistingElementForNode(node: FakeElement): string | null;
6
- wrapNewEl(obj: FakeElement): Element;
7
- findElOrEls(this: FakeDriver, strategy: string, selector: string, mult: true, context?: any): Promise<Element[]>;
8
- findElOrEls(this: FakeDriver, strategy: string, selector: string, mult: false, context?: any): Promise<Element>;
9
- findElement(strategy: string, selector: string): Promise<Element>;
10
- findElements(strategy: string, selector: string): Promise<Element[]>;
11
- findElementFromElement(elementId: string, strategy: string, selector: string): Promise<Element>;
12
- findElementsFromElement(elementId: string, strategy: string, selector: string): Promise<Element[]>;
13
- }
14
- declare module '../driver' {
15
- interface FakeDriver extends FakeDriverFindMixin {
16
- }
17
- }
1
+ import type { Element } from '@appium/types';
2
+ import { FakeElement, type XmlNodeLike } from '../fake-element';
3
+ import type { FakeDriver } from '../driver';
4
+ /** Find an existing element id in elMap for the same underlying node (reference equality). */
5
+ export declare function getExistingElementForNode(this: FakeDriver, node: FakeElement): string | null;
6
+ /** Accepts either a FakeElement (reuse existing id) or a raw XmlNodeLike from xpath. */
7
+ export declare function wrapNewEl(this: FakeDriver, obj: FakeElement | XmlNodeLike): Element;
8
+ declare function findElOrElsImpl<Ctx = unknown>(this: FakeDriver, strategy: string, selector: string, mult: true, context?: Ctx): Promise<Element[]>;
9
+ declare function findElOrElsImpl<Ctx = unknown>(this: FakeDriver, strategy: string, selector: string, mult: false, context?: Ctx): Promise<Element>;
10
+ export declare const findElOrEls: typeof findElOrElsImpl;
11
+ export declare function findElement(this: FakeDriver, strategy: string, selector: string): Promise<Element>;
12
+ export declare function findElements(this: FakeDriver, strategy: string, selector: string): Promise<Element[]>;
13
+ export declare function findElementFromElement(this: FakeDriver, strategy: string, selector: string, elementId: string): Promise<Element>;
14
+ export declare function findElementsFromElement(this: FakeDriver, strategy: string, selector: string, elementId: string): Promise<Element[]>;
18
15
  export {};
19
16
  //# sourceMappingURL=find.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../lib/commands/find.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AA+DrC,UAAU,mBAAmB;IAC3B,yBAAyB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5D,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC;IAErC,WAAW,CACT,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;IACtB,WAAW,CACT,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;IACpB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACrE,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAChG,uBAAuB,CACrB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;CACvB;AAED,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,UAAW,SAAQ,mBAAmB;KAAG;CACpD"}
1
+ {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../lib/commands/find.ts"],"names":[],"mappings":"AACA,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,CAuBT;AAED,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,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;AA2CpB,eAAO,MAAM,WAAW,wBAAkB,CAAC;AAE3C,wBAAsB,WAAW,CAC/B,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAID,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,EAAE,CAAC,CAEpB;AAED,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,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"}
@@ -3,13 +3,53 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.findElOrEls = void 0;
7
+ exports.getExistingElementForNode = getExistingElementForNode;
8
+ exports.wrapNewEl = wrapNewEl;
9
+ exports.findElement = findElement;
10
+ exports.findElements = findElements;
11
+ exports.findElementFromElement = findElementFromElement;
12
+ exports.findElementsFromElement = findElementsFromElement;
6
13
  const lodash_1 = __importDefault(require("lodash"));
7
14
  const driver_1 = require("appium/driver");
8
15
  const fake_element_1 = require("../fake-element");
9
16
  const support_1 = require("appium/support");
10
- const mixin_1 = require("./mixin");
11
17
  const { W3C_WEB_ELEMENT_IDENTIFIER } = support_1.util;
12
- async function findElOrEls(strategy, selector, mult, context) {
18
+ /** Find an existing element id in elMap for the same underlying node (reference equality). */
19
+ function getExistingElementForNode(node) {
20
+ for (const [id, el] of lodash_1.default.toPairs(this.elMap)) {
21
+ if (el.node === node.node) {
22
+ return id;
23
+ }
24
+ }
25
+ return null;
26
+ }
27
+ /** Accepts either a FakeElement (reuse existing id) or a raw XmlNodeLike from xpath. */
28
+ function wrapNewEl(obj) {
29
+ const node = lodash_1.default.has(obj, 'node') && obj.node
30
+ ? obj.node
31
+ : obj;
32
+ if (lodash_1.default.has(obj, 'node')) {
33
+ const existingElId = this.getExistingElementForNode(obj);
34
+ if (existingElId) {
35
+ return { ELEMENT: existingElId, [W3C_WEB_ELEMENT_IDENTIFIER]: existingElId };
36
+ }
37
+ }
38
+ else {
39
+ // raw node: reuse id if we already have an element for this node
40
+ for (const [id, el] of lodash_1.default.toPairs(this.elMap)) {
41
+ if (el.node === node) {
42
+ return { ELEMENT: id, [W3C_WEB_ELEMENT_IDENTIFIER]: id };
43
+ }
44
+ }
45
+ }
46
+ this.maxElId++;
47
+ const maxElId = this.maxElId.toString();
48
+ this.elMap[maxElId] = new fake_element_1.FakeElement(node, this.appModel);
49
+ return { ELEMENT: maxElId, [W3C_WEB_ELEMENT_IDENTIFIER]: maxElId };
50
+ }
51
+ async function findElOrElsImpl(strategy, selector, mult, context) {
52
+ // Map WebDriver locator strategy to FakeApp query method name.
13
53
  const qMap = {
14
54
  xpath: 'xpathQuery',
15
55
  id: 'idQuery',
@@ -18,77 +58,40 @@ async function findElOrEls(strategy, selector, mult, context) {
18
58
  'tag name': 'classQuery',
19
59
  'css selector': 'cssQuery',
20
60
  };
21
- // TODO this error checking should probably be part of MJSONWP?
22
61
  if (!lodash_1.default.includes(lodash_1.default.keys(qMap), strategy)) {
23
62
  throw new driver_1.errors.UnknownCommandError();
24
63
  }
25
64
  if (selector === 'badsel') {
26
65
  throw new driver_1.errors.InvalidSelectorError();
27
66
  }
28
- const els = this.appModel[qMap[strategy]](selector, context);
29
- let retval;
67
+ const methodName = qMap[strategy];
68
+ const raw = this.appModel[methodName].call(this.appModel, selector, context);
69
+ const els = lodash_1.default.isArray(raw) ? raw : raw ? [raw] : [];
30
70
  if (els.length) {
31
71
  if (mult) {
32
- const allEls = [];
33
- for (const el of els) {
34
- allEls.push(this.wrapNewEl(el));
35
- }
36
- retval = allEls;
72
+ return els.map((el) => this.wrapNewEl(el));
37
73
  }
38
- else {
39
- retval = this.wrapNewEl(els[0]);
40
- }
41
- }
42
- else if (mult) {
43
- retval = [];
74
+ return this.wrapNewEl(els[0]);
44
75
  }
45
- else {
46
- throw new driver_1.errors.NoSuchElementError();
76
+ if (mult) {
77
+ return [];
47
78
  }
48
- return retval;
79
+ throw new driver_1.errors.NoSuchElementError();
80
+ }
81
+ exports.findElOrEls = findElOrElsImpl;
82
+ async function findElement(strategy, selector) {
83
+ return this.findElOrEls(strategy, selector, false);
84
+ }
85
+ // Protocol passes (strategy, selector, elementId) for find-from-element routes.
86
+ async function findElements(strategy, selector) {
87
+ return this.findElOrEls(strategy, selector, true);
88
+ }
89
+ async function findElementFromElement(strategy, selector, elementId) {
90
+ const el = this.getElement(elementId);
91
+ return this.findElOrEls(strategy, selector, false, el.xmlFragment);
92
+ }
93
+ async function findElementsFromElement(strategy, selector, elementId) {
94
+ const el = this.getElement(elementId);
95
+ return this.findElOrEls(strategy, selector, true, el.xmlFragment);
49
96
  }
50
- const FindMixin = {
51
- getExistingElementForNode(node) {
52
- for (const [id, el] of lodash_1.default.toPairs(this.elMap)) {
53
- if (el.node === node) {
54
- return id;
55
- }
56
- }
57
- return null;
58
- },
59
- wrapNewEl(obj) {
60
- // first check and see if we already have a ref to this element
61
- const existingElId = this.getExistingElementForNode(obj);
62
- if (existingElId) {
63
- return { ELEMENT: existingElId, [W3C_WEB_ELEMENT_IDENTIFIER]: existingElId };
64
- }
65
- // otherwise add the element to the map
66
- this.maxElId++;
67
- const maxElId = this.maxElId.toString();
68
- this.elMap[maxElId] = new fake_element_1.FakeElement(obj, this.appModel);
69
- return { ELEMENT: maxElId, [W3C_WEB_ELEMENT_IDENTIFIER]: maxElId };
70
- },
71
- findElOrEls,
72
- /**
73
- * This should override whatever's in ExternalDriver
74
- * @param {string} strategy Strategy
75
- * @param {string} selector Selector
76
- * @this {FakeDriver}
77
- */
78
- async findElement(strategy, selector) {
79
- return this.findElOrEls(strategy, selector, false);
80
- },
81
- async findElements(strategy, selector) {
82
- return this.findElOrEls(strategy, selector, true);
83
- },
84
- async findElementFromElement(strategy, selector, elementId) {
85
- const el = this.getElement(elementId);
86
- return this.findElOrEls(strategy, selector, false, el.xmlFragment);
87
- },
88
- async findElementsFromElement(strategy, selector, elementId) {
89
- const el = this.getElement(elementId);
90
- return this.findElOrEls(strategy, selector, true, el.xmlFragment);
91
- },
92
- };
93
- (0, mixin_1.mixin)(FindMixin);
94
97
  //# sourceMappingURL=find.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../lib/commands/find.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../lib/commands/find.ts"],"names":[],"mappings":"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"}
@@ -1,29 +1,26 @@
1
- import { ActionSequence, Location, Rect, Size } from '@appium/types';
2
- import type { Orientation } from '../driver';
3
- interface FakeDriverGeneralMixin {
4
- title(): Promise<string>;
5
- keys(value: string | string[]): Promise<void>;
6
- setGeoLocation(location: Location): Promise<Location>;
7
- getGeoLocation(): Promise<Location>;
8
- getPageSource(): Promise<string>;
9
- getOrientation(): Promise<string>;
10
- setOrientation(orientation: Orientation): Promise<void>;
11
- getScreenshot(): Promise<string>;
12
- getWindowSize(): Promise<Size>;
13
- getWindowRect(): Promise<Rect>;
14
- performActions(actions: ActionSequence[]): Promise<void>;
15
- releaseActions(): Promise<void>;
16
- mobileShake(): Promise<void>;
17
- doubleClick(): Promise<void>;
18
- execute(script: string, args: any[]): Promise<any>;
19
- fakeAddition(a: number, b: number, c?: number): Promise<number>;
20
- getLog(type: string): Promise<any>;
21
- getUrl(): Promise<string>;
22
- bidiNavigate(context: string, url: string): Promise<void>;
23
- }
24
- declare module '../driver' {
25
- interface FakeDriver extends FakeDriverGeneralMixin {
26
- }
27
- }
28
- export {};
1
+ import type { ActionSequence, Location, Rect, Size, Orientation } from '@appium/types';
2
+ import type { FakeDriver } from '../driver';
3
+ /** Requires webview context (title comes from active document). */
4
+ export declare function title(this: FakeDriver): Promise<string>;
5
+ export declare function keys(this: FakeDriver, value: string | string[]): Promise<void>;
6
+ export declare function setGeoLocation(this: FakeDriver, location: Location): Promise<Location>;
7
+ export declare function getGeoLocation(this: FakeDriver): Promise<Location>;
8
+ export declare function getPageSource(this: FakeDriver): Promise<string>;
9
+ export declare function getOrientation(this: FakeDriver): Promise<string>;
10
+ export declare function setOrientation(this: FakeDriver, o: Orientation): Promise<void>;
11
+ export declare function getScreenshot(this: FakeDriver): Promise<string>;
12
+ export declare function getWindowSize(this: FakeDriver): Promise<Size>;
13
+ export declare function getWindowRect(this: FakeDriver): Promise<Rect>;
14
+ export declare function performActions(this: FakeDriver, actions: ActionSequence[]): Promise<void>;
15
+ export declare function releaseActions(this: FakeDriver): Promise<void>;
16
+ /** Supported log types: 'actions'. TODO: add more log types if needed for tests. */
17
+ export declare function getLog(this: FakeDriver, type: string): Promise<ActionSequence[][]>;
18
+ export declare function mobileShake(this: FakeDriver): Promise<void>;
19
+ export declare function doubleClick(this: FakeDriver): Promise<void>;
20
+ export declare function execute(this: FakeDriver, script: string, args: any[]): Promise<any>;
21
+ export declare function fakeAddition(this: FakeDriver, num1: number, num2: number, num3?: number): Promise<number>;
22
+ /** Get current URL. Returns empty string until bidiNavigate (or equivalent) sets one. @see https://w3c.github.io/webdriver/#get-current-url */
23
+ export declare function getUrl(this: FakeDriver): Promise<string>;
24
+ /** Set current URL (used by Bidi browsingContext.navigate). */
25
+ export declare function bidiNavigate(this: FakeDriver, context: string, url: string): Promise<void>;
29
26
  //# sourceMappingURL=general.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../lib/commands/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,eAAe,CAAC;AAInE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAI3C,UAAU,sBAAsB;IAC9B,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtD,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1B,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D;AAED,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,UAAW,SAAQ,sBAAsB;KAAG;CACvD"}
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,wBAAsB,IAAI,CACxB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GACvB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,QAAQ,CAAC,CAInB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAExE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAErE;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtE;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,CAAC,EAAE,WAAW,GACb,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAErE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,cAAc,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,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,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAG;AAErE,wBAAsB,OAAO,CAC3B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EAAE,GACV,OAAO,CAAC,GAAG,CAAC,CAEd;AAED,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"}