Skip to content

Commit 3183b91

Browse files
committed
Moved screen related methods from Native to VisionAdapter, added saveImage method
1 parent f3639c2 commit 3183b91

File tree

4 files changed

+166
-174
lines changed

4 files changed

+166
-174
lines changed

lib/adapter/native.adapter.class.spec.ts

Lines changed: 15 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -4,55 +4,19 @@ import { Point } from "../point.class";
44
import { ClipboardAction } from "../provider/native/clipboardy-clipboard-action.class";
55
import { KeyboardAction } from "../provider/native/robotjs-keyboard-action.class";
66
import { MouseAction } from "../provider/native/robotjs-mouse-action.class";
7-
import { ScreenAction } from "../provider/native/robotjs-screen-action.class";
8-
import { Region } from "../region.class";
97
import { NativeAdapter } from "./native.adapter.class";
108

119
jest.mock("../provider/native/clipboardy-clipboard-action.class");
1210
jest.mock("../provider/native/robotjs-mouse-action.class");
1311
jest.mock("../provider/native/robotjs-keyboard-action.class");
14-
jest.mock("../provider/native/robotjs-screen-action.class");
15-
16-
describe("Native adapter class", () => {
17-
it("should delegate calls to grabScreen", () => {
18-
// GIVEN
19-
const clipboardMock = new ClipboardAction();
20-
const keyboardMock = new KeyboardAction();
21-
const mouseMock = new MouseAction();
22-
const screenMock = new ScreenAction();
23-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
24-
25-
// WHEN
26-
SUT.grabScreen();
27-
28-
// THEN
29-
expect(screenMock.grabScreen).toBeCalledTimes(1);
30-
});
31-
32-
it("should delegate calls to grabScreenRegion", () => {
33-
// GIVEN
34-
const clipboardMock = new ClipboardAction();
35-
const keyboardMock = new KeyboardAction();
36-
const mouseMock = new MouseAction();
37-
const screenMock = new ScreenAction();
38-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
39-
const screenRegion = new Region(0, 0, 100, 100);
40-
41-
// WHEN
42-
SUT.grabScreenRegion(screenRegion);
43-
44-
// THEN
45-
expect(screenMock.grabScreenRegion).toBeCalledTimes(1);
46-
expect(screenMock.grabScreenRegion).toBeCalledWith(screenRegion);
47-
});
4812

13+
describe("NativeAdapter class", () => {
4914
it("should delegate calls to setMouseDelay", () => {
5015
// GIVEN
5116
const clipboardMock = new ClipboardAction();
5217
const keyboardMock = new KeyboardAction();
5318
const mouseMock = new MouseAction();
54-
const screenMock = new ScreenAction();
55-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
19+
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock);
5620
const delay = 5;
5721

5822
// WHEN
@@ -68,8 +32,7 @@ describe("Native adapter class", () => {
6832
const clipboardMock = new ClipboardAction();
6933
const keyboardMock = new KeyboardAction();
7034
const mouseMock = new MouseAction();
71-
const screenMock = new ScreenAction();
72-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
35+
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock);
7336
const newPosition = new Point(10, 10);
7437

7538
// WHEN
@@ -85,8 +48,7 @@ describe("Native adapter class", () => {
8548
const clipboardMock = new ClipboardAction();
8649
const keyboardMock = new KeyboardAction();
8750
const mouseMock = new MouseAction();
88-
const screenMock = new ScreenAction();
89-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
51+
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock);
9052

9153
// WHEN
9254
SUT.currentMousePosition();
@@ -95,58 +57,12 @@ describe("Native adapter class", () => {
9557
expect(mouseMock.currentMousePosition).toBeCalledTimes(1);
9658
});
9759

98-
it("should delegate calls to screenWidth", () => {
99-
// GIVEN
100-
const clipboardMock = new ClipboardAction();
101-
const keyboardMock = new KeyboardAction();
102-
const mouseMock = new MouseAction();
103-
const screenMock = new ScreenAction();
104-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
105-
106-
// WHEN
107-
SUT.screenWidth();
108-
109-
// THEN
110-
expect(screenMock.screenWidth).toBeCalledTimes(1);
111-
});
112-
113-
it("should delegate calls to screenHeight", () => {
114-
// GIVEN
115-
const clipboardMock = new ClipboardAction();
116-
const keyboardMock = new KeyboardAction();
117-
const mouseMock = new MouseAction();
118-
const screenMock = new ScreenAction();
119-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
120-
121-
// WHEN
122-
SUT.screenHeight();
123-
124-
// THEN
125-
expect(screenMock.screenHeight).toBeCalledTimes(1);
126-
});
127-
128-
it("should delegate calls to screenSize", () => {
129-
// GIVEN
130-
const clipboardMock = new ClipboardAction();
131-
const keyboardMock = new KeyboardAction();
132-
const mouseMock = new MouseAction();
133-
const screenMock = new ScreenAction();
134-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
135-
136-
// WHEN
137-
SUT.screenSize();
138-
139-
// THEN
140-
expect(screenMock.screenSize).toBeCalledTimes(1);
141-
});
142-
14360
it("should delegate calls to leftClick", () => {
14461
// GIVEN
14562
const clipboardMock = new ClipboardAction();
14663
const keyboardMock = new KeyboardAction();
14764
const mouseMock = new MouseAction();
148-
const screenMock = new ScreenAction();
149-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
65+
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock);
15066

15167
// WHEN
15268
SUT.leftClick();
@@ -160,8 +76,7 @@ describe("Native adapter class", () => {
16076
const clipboardMock = new ClipboardAction();
16177
const keyboardMock = new KeyboardAction();
16278
const mouseMock = new MouseAction();
163-
const screenMock = new ScreenAction();
164-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
79+
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock);
16580

16681
// WHEN
16782
SUT.rightClick();
@@ -175,8 +90,7 @@ describe("Native adapter class", () => {
17590
const clipboardMock = new ClipboardAction();
17691
const keyboardMock = new KeyboardAction();
17792
const mouseMock = new MouseAction();
178-
const screenMock = new ScreenAction();
179-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
93+
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock);
18094

18195
// WHEN
18296
SUT.middleClick();
@@ -190,8 +104,7 @@ describe("Native adapter class", () => {
190104
const clipboardMock = new ClipboardAction();
191105
const keyboardMock = new KeyboardAction();
192106
const mouseMock = new MouseAction();
193-
const screenMock = new ScreenAction();
194-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
107+
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock);
195108
const buttonToPress = Button.LEFT;
196109

197110
// WHEN
@@ -207,8 +120,7 @@ describe("Native adapter class", () => {
207120
const clipboardMock = new ClipboardAction();
208121
const keyboardMock = new KeyboardAction();
209122
const mouseMock = new MouseAction();
210-
const screenMock = new ScreenAction();
211-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
123+
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock);
212124
const buttonToRelease = Button.LEFT;
213125

214126
// WHEN
@@ -224,8 +136,7 @@ describe("Native adapter class", () => {
224136
const clipboardMock = new ClipboardAction();
225137
const keyboardMock = new KeyboardAction();
226138
const mouseMock = new MouseAction();
227-
const screenMock = new ScreenAction();
228-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
139+
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock);
229140
const keyToPress = Key.A;
230141

231142
// WHEN
@@ -241,8 +152,7 @@ describe("Native adapter class", () => {
241152
const clipboardMock = new ClipboardAction();
242153
const keyboardMock = new KeyboardAction();
243154
const mouseMock = new MouseAction();
244-
const screenMock = new ScreenAction();
245-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
155+
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock);
246156
const keyToRelease = Key.A;
247157

248158
// WHEN
@@ -258,8 +168,7 @@ describe("Native adapter class", () => {
258168
const clipboardMock = new ClipboardAction();
259169
const keyboardMock = new KeyboardAction();
260170
const mouseMock = new MouseAction();
261-
const screenMock = new ScreenAction();
262-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
171+
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock);
263172
const keyToClick = Key.A;
264173

265174
// WHEN
@@ -275,8 +184,7 @@ describe("Native adapter class", () => {
275184
const clipboardMock = new ClipboardAction();
276185
const keyboardMock = new KeyboardAction();
277186
const mouseMock = new MouseAction();
278-
const screenMock = new ScreenAction();
279-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
187+
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock);
280188
const stringToType = "testString";
281189

282190
// WHEN
@@ -292,8 +200,7 @@ describe("Native adapter class", () => {
292200
const clipboardMock = new ClipboardAction();
293201
const keyboardMock = new KeyboardAction();
294202
const mouseMock = new MouseAction();
295-
const screenMock = new ScreenAction();
296-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
203+
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock);
297204
const stringToCopy = "testString";
298205

299206
// WHEN
@@ -309,8 +216,7 @@ describe("Native adapter class", () => {
309216
const clipboardMock = new ClipboardAction();
310217
const keyboardMock = new KeyboardAction();
311218
const mouseMock = new MouseAction();
312-
const screenMock = new ScreenAction();
313-
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock, screenMock);
219+
const SUT = new NativeAdapter(clipboardMock, keyboardMock, mouseMock);
314220

315221
// WHEN
316222
SUT.paste();

lib/adapter/native.adapter.class.ts

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Button } from "../button.enum";
2-
import { Image } from "../image.class";
32
import { Key } from "../key.enum";
43
import { Point } from "../point.class";
54
import { ClipboardActionProvider } from "../provider/native/clipboard-action-provider.interface";
@@ -8,9 +7,6 @@ import { KeyboardActionProvider } from "../provider/native/keyboard-action-provi
87
import { MouseActionInterface } from "../provider/native/mouse-action-provider.interface";
98
import { KeyboardAction } from "../provider/native/robotjs-keyboard-action.class";
109
import { MouseAction } from "../provider/native/robotjs-mouse-action.class";
11-
import { ScreenAction } from "../provider/native/robotjs-screen-action.class";
12-
import { ScreenActionProvider } from "../provider/native/screen-action-provider.interface";
13-
import { Region } from "../region.class";
1410

1511
/**
1612
* NativeAdapter serves as an abstraction layer for all OS level interactions.
@@ -24,30 +20,8 @@ export class NativeAdapter {
2420
private clipboard: ClipboardActionProvider = new ClipboardAction(),
2521
private keyboard: KeyboardActionProvider = new KeyboardAction(),
2622
private mouse: MouseActionInterface = new MouseAction(),
27-
private screen: ScreenActionProvider = new ScreenAction(),
2823
) {}
2924

30-
/**
31-
* grabScreen will return an Image containing the current screen image
32-
*
33-
* @returns {Promise<Image>} Image will contain screenshot data as well as dimensions
34-
* @memberof NativeAdapter
35-
*/
36-
public grabScreen(): Promise<Image> {
37-
return this.screen.grabScreen();
38-
}
39-
40-
/**
41-
* grabScreenRegion essentially does the same as grabScreen, but only returns a specified Region
42-
*
43-
* @param {Region} region The screen region we want to grab
44-
* @returns {Promise<Image>} Image will contain screenshot data of the specified region as well as dimensions
45-
* @memberof NativeAdapter
46-
*/
47-
public grabScreenRegion(region: Region): Promise<Image> {
48-
return this.screen.grabScreenRegion(region);
49-
}
50-
5125
/**
5226
* setMouseDelay configures mouse speed for movement
5327
*
@@ -88,42 +62,6 @@ export class NativeAdapter {
8862
return this.mouse.currentMousePosition();
8963
}
9064

91-
/**
92-
* screenWidth returns the main screen's width as reported by the OS.
93-
* Please notice that on e.g. Apples Retina display the reported width
94-
* and the actual pixel size may differ
95-
*
96-
* @returns {Promise<number>} The main screen's width as reported by the OS
97-
* @memberof NativeAdapter
98-
*/
99-
public screenWidth(): Promise<number> {
100-
return this.screen.screenWidth();
101-
}
102-
103-
/**
104-
* screenHeight returns the main screen's height as reported by the OS.
105-
* Please notice that on e.g. Apples Retina display the reported width
106-
* and the actual pixel size may differ
107-
*
108-
* @returns {Promise<number>} The main screen's height as reported by the OS
109-
* @memberof NativeAdapter
110-
*/
111-
public screenHeight(): Promise<number> {
112-
return this.screen.screenHeight();
113-
}
114-
115-
/**
116-
* screenSize returns a Region object with the main screen's size.
117-
* Please notice that on e.g. Apples Retina display the reported width
118-
* and the actual pixel size may differ
119-
*
120-
* @returns {Promise<Region>} The Region object the size of your main screen
121-
* @memberof NativeAdapter
122-
*/
123-
public screenSize(): Promise<Region> {
124-
return this.screen.screenSize();
125-
}
126-
12765
/**
12866
* leftClick triggers a native left-click event via OS API
12967
*

0 commit comments

Comments
 (0)