Skip to content

Commit bdde01f

Browse files
authored
feat(base-window): preload.keyboard-shortcuts.js reusable in all WebViews (#683)
1 parent c9891b0 commit bdde01f

File tree

5 files changed

+58
-3
lines changed

5 files changed

+58
-3
lines changed

src/service-manager/__tests__/preload.keyboard-shortcuts.test.js renamed to src/base-window/__tests__/preload.keyboard-shortcuts.test.js

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,51 @@ describe('Browser Keyboard Shortcuts test suite', () => {
4444
});
4545
});
4646
describe('Control modified events', () => {
47+
test('ctrl+R, should send reload app event', () => {
48+
// Given
49+
browserKeyboardShortcuts.initKeyboardShortcuts();
50+
// When
51+
globalThis.dispatchEvent(new KeyboardEvent('keyup', {key: 'R', ctrlKey: true}));
52+
// Then
53+
expect(electron.ipcRenderer.send).toHaveBeenCalledTimes(1);
54+
expect(electron.ipcRenderer.send).toHaveBeenCalledWith('reload');
55+
});
56+
test('ctrl+r (lowercase), should send reload app event', () => {
57+
// Given
58+
browserKeyboardShortcuts.initKeyboardShortcuts();
59+
// When
60+
globalThis.dispatchEvent(new KeyboardEvent('keyup', {key: 'r', ctrlKey: true}));
61+
// Then
62+
expect(electron.ipcRenderer.send).toHaveBeenCalledTimes(1);
63+
expect(electron.ipcRenderer.send).toHaveBeenCalledWith('reload');
64+
});
65+
test('ctrl++ (zoom in), should send zoomIn event', () => {
66+
// Given
67+
browserKeyboardShortcuts.initKeyboardShortcuts();
68+
// When
69+
globalThis.dispatchEvent(new KeyboardEvent('keyup', {key: '+', ctrlKey: true}));
70+
// Then
71+
expect(electron.ipcRenderer.send).toHaveBeenCalledTimes(1);
72+
expect(electron.ipcRenderer.send).toHaveBeenCalledWith('zoomIn');
73+
});
74+
test('ctrl+- (zoom out), should send zoomOut event', () => {
75+
// Given
76+
browserKeyboardShortcuts.initKeyboardShortcuts();
77+
// When
78+
globalThis.dispatchEvent(new KeyboardEvent('keyup', {key: '-', ctrlKey: true}));
79+
// Then
80+
expect(electron.ipcRenderer.send).toHaveBeenCalledTimes(1);
81+
expect(electron.ipcRenderer.send).toHaveBeenCalledWith('zoomOut');
82+
});
83+
test('ctrl+0 (zoom reset), should send zoomReset event', () => {
84+
// Given
85+
browserKeyboardShortcuts.initKeyboardShortcuts();
86+
// When
87+
globalThis.dispatchEvent(new KeyboardEvent('keyup', {key: '0', ctrlKey: true}));
88+
// Then
89+
expect(electron.ipcRenderer.send).toHaveBeenCalledTimes(1);
90+
expect(electron.ipcRenderer.send).toHaveBeenCalledWith('zoomReset');
91+
});
4792
test('ctrl+unrecognized_key, should NOT send any app event', () => {
4893
// Given
4994
browserKeyboardShortcuts.initKeyboardShortcuts();
@@ -63,6 +108,15 @@ describe('Browser Keyboard Shortcuts test suite', () => {
63108
expect(electron.ipcRenderer.send).toHaveBeenCalledTimes(1);
64109
expect(electron.ipcRenderer.send).toHaveBeenCalledWith('reload');
65110
});
111+
test('cmd+r (lowercase), should send reload app event', () => {
112+
// Given
113+
browserKeyboardShortcuts.initKeyboardShortcuts();
114+
// When
115+
globalThis.dispatchEvent(new KeyboardEvent('keyup', {key: 'r', metaKey: true}));
116+
// Then
117+
expect(electron.ipcRenderer.send).toHaveBeenCalledTimes(1);
118+
expect(electron.ipcRenderer.send).toHaveBeenCalledWith('reload');
119+
});
66120
});
67121
describe('Mouse wheel events', () => {
68122
test('ctrl+scrollUp, should send zoomIn event', () => {
File renamed without changes.

src/chrome-extensions/preload.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@
1414
limitations under the License.
1515
*/
1616
require('./preload.webstore-private');
17+
require('../base-window/preload.keyboard-shortcuts').initKeyboardShortcuts();

src/service-manager/__tests__/preload.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ describe('Service Manager Module preload test suite', () => {
3030
});
3131
describe('preload', () => {
3232
beforeEach(() => {
33-
jest.spyOn(require('../preload.keyboard-shortcuts'), 'initKeyboardShortcuts');
33+
jest.spyOn(require('../../base-window/preload.keyboard-shortcuts'), 'initKeyboardShortcuts');
3434
jest.spyOn(require('../preload.spell-check'), 'initSpellChecker');
3535
});
3636
test('adds required libraries', async () => {
@@ -39,7 +39,7 @@ describe('Service Manager Module preload test suite', () => {
3939
// Then
4040
expect(globalThis.Notification).toEqual(expect.any(Function));
4141
expect(globalThis.navigator.mediaDevices.getDisplayMedia).toEqual(expect.any(Function));
42-
expect(require('../preload.keyboard-shortcuts').initKeyboardShortcuts).toHaveBeenCalledTimes(1);
42+
expect(require('../../base-window/preload.keyboard-shortcuts').initKeyboardShortcuts).toHaveBeenCalledTimes(1);
4343
await waitFor(() => expect(mockElectron.webFrame.setSpellCheckProvider).toHaveBeenCalledTimes(1));
4444
expect(require('../preload.spell-check').initSpellChecker).toHaveBeenCalledTimes(1);
4545
});

src/service-manager/preload.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
require('./preload.notification-shim');
1717
require('./preload.mediadevices-shim');
18-
require('./preload.keyboard-shortcuts').initKeyboardShortcuts();
18+
require('../base-window/preload.keyboard-shortcuts').initKeyboardShortcuts();
1919
require('./preload.spell-check').initSpellChecker()
2020
.catch(err => console.error('Error initializing spell check', err));
2121

0 commit comments

Comments
 (0)