aboutsummaryrefslogtreecommitdiff
path: root/e2e/ambassador/src/content
diff options
context:
space:
mode:
Diffstat (limited to 'e2e/ambassador/src/content')
-rw-r--r--e2e/ambassador/src/content/events.js31
-rw-r--r--e2e/ambassador/src/content/index.js29
-rw-r--r--e2e/ambassador/src/content/scrolls.js20
3 files changed, 62 insertions, 18 deletions
diff --git a/e2e/ambassador/src/content/events.js b/e2e/ambassador/src/content/events.js
new file mode 100644
index 0000000..1e45909
--- /dev/null
+++ b/e2e/ambassador/src/content/events.js
@@ -0,0 +1,31 @@
+const keypress = (opts) => {
+ let event = new KeyboardEvent('keypress', {
+ key: opts.key,
+ altKey: opts.altKey,
+ shiftKey: opts.shiftKey,
+ ctrlKey: opts.ctrlKey
+ });
+ document.body.dispatchEvent(event);
+};
+
+const keydown = (opts) => {
+ let event = new KeyboardEvent('keydown', {
+ key: opts.key,
+ altKey: opts.altKey,
+ shiftKey: opts.shiftKey,
+ ctrlKey: opts.ctrlKey
+ });
+ document.body.dispatchEvent(event);
+};
+
+const keyup = (opts) => {
+ let event = new KeyboardEvent('keyup', {
+ key: opts.key,
+ altKey: opts.altKey,
+ shiftKey: opts.shiftKey,
+ ctrlKey: opts.ctrlKey
+ });
+ document.body.dispatchEvent(event);
+};
+
+export { keypress, keydown, keyup };
diff --git a/e2e/ambassador/src/content/index.js b/e2e/ambassador/src/content/index.js
index 8573d66..fd19136 100644
--- a/e2e/ambassador/src/content/index.js
+++ b/e2e/ambassador/src/content/index.js
@@ -1,37 +1,30 @@
import {
- WINDOWS_CREATE, WINDOWS_REMOVE, WINDOWS_GET,
- TABS_CREATE,
EVENT_KEYPRESS, EVENT_KEYDOWN, EVENT_KEYUP,
+ SCROLL_GET, SCROLL_SET,
} from '../shared/messages';
import * as ipc from './ipc';
+import * as events from './events';
+import * as scrolls from './scrolls';
ipc.receivePageMessage((message) => {
- switch (message.type) {
- case WINDOWS_CREATE:
- case WINDOWS_REMOVE:
- case WINDOWS_GET:
- case TABS_CREATE:
- case EVENT_KEYPRESS:
- case EVENT_KEYDOWN:
- case EVENT_KEYUP:
- return ipc.sendToBackground(message);
- }
+ return ipc.sendToBackground(message);
});
ipc.receiveBackgroundMesssage((message) => {
switch (message.type) {
case EVENT_KEYPRESS:
- document.body.dispatchEvent(
- new KeyboardEvent('keypress', { 'key': message.key }));
+ events.keypress(message);
break;
case EVENT_KEYDOWN:
- document.body.dispatchEvent(
- new KeyboardEvent('keydown', { 'key': message.key }));
+ events.keydown(message);
break;
case EVENT_KEYUP:
- document.body.dispatchEvent(
- new KeyboardEvent('keyup', { 'key': message.key }));
+ events.keyup(message);
break;
+ case SCROLL_GET:
+ return Promise.resolve(scrolls.get());
+ case SCROLL_SET:
+ return Promise.resolve(scrolls.set(message.x, message.y));
}
return Promise.resolve({});
});
diff --git a/e2e/ambassador/src/content/scrolls.js b/e2e/ambassador/src/content/scrolls.js
new file mode 100644
index 0000000..4227cf7
--- /dev/null
+++ b/e2e/ambassador/src/content/scrolls.js
@@ -0,0 +1,20 @@
+const get = () => {
+ let element = document.documentElement;
+ return {
+ xMax: element.scrollWidth - element.clientWidth,
+ yMax: element.scrollHeight - element.clientHeight,
+ x: element.scrollLeft,
+ y: element.scrollTop,
+ frameWidth: element.clientWidth,
+ frameHeight: element.clientHeight,
+ };
+};
+
+const set = (x, y) => {
+ let element = document.documentElement;
+ element.scrollLeft = x;
+ element.scrollTop = y;
+ return get();
+};
+
+export { get, set };