Show context menu in Calls popout (#3085)

This commit is contained in:
Claudio Costa 2024-07-15 16:44:21 +02:00 committed by GitHub
parent 6c673bd42c
commit 6305153711
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 22 additions and 0 deletions

View file

@ -74,6 +74,17 @@ jest.mock('../utils', () => ({
composeUserAgent: jest.fn(), composeUserAgent: jest.fn(),
})); }));
const mockContextMenuReload = jest.fn();
const mockContextMenuDispose = jest.fn();
jest.mock('../contextMenu', () => {
return jest.fn().mockImplementation(() => {
return {
reload: mockContextMenuReload,
dispose: mockContextMenuDispose,
};
});
});
describe('main/windows/callsWidgetWindow', () => { describe('main/windows/callsWidgetWindow', () => {
describe('onShow', () => { describe('onShow', () => {
const callsWidgetWindow = new CallsWidgetWindow(); const callsWidgetWindow = new CallsWidgetWindow();
@ -385,8 +396,11 @@ describe('main/windows/callsWidgetWindow', () => {
}, },
id: 'webContentsId', id: 'webContentsId',
getURL: () => ('http://myurl.com'), getURL: () => ('http://myurl.com'),
removeListener: jest.fn(),
}, },
off: jest.fn(),
loadURL: jest.fn(), loadURL: jest.fn(),
isDestroyed: jest.fn(() => false),
}; };
const callsWidgetWindow = new CallsWidgetWindow(); const callsWidgetWindow = new CallsWidgetWindow();
@ -395,6 +409,7 @@ describe('main/windows/callsWidgetWindow', () => {
expect(WebContentsEventManager.addWebContentsEventListeners).toHaveBeenCalledWith(popOut.webContents); expect(WebContentsEventManager.addWebContentsEventListeners).toHaveBeenCalledWith(popOut.webContents);
expect(redirectListener).toBeDefined(); expect(redirectListener).toBeDefined();
expect(frameFinishedLoadListener).toBeDefined(); expect(frameFinishedLoadListener).toBeDefined();
expect(mockContextMenuReload).toHaveBeenCalledTimes(1);
const event = {preventDefault: jest.fn()}; const event = {preventDefault: jest.fn()};
redirectListener(event); redirectListener(event);
@ -405,6 +420,7 @@ describe('main/windows/callsWidgetWindow', () => {
closedListener(); closedListener();
expect(callsWidgetWindow.popOut).not.toBeDefined(); expect(callsWidgetWindow.popOut).not.toBeDefined();
expect(mockContextMenuDispose).toHaveBeenCalled();
}); });
it('getViewURL', () => { it('getViewURL', () => {

View file

@ -43,6 +43,8 @@ import type {
CallsWidgetWindowConfig, CallsWidgetWindowConfig,
} from 'types/calls'; } from 'types/calls';
import ContextMenu from '../contextMenu';
const log = new Logger('CallsWidgetWindow'); const log = new Logger('CallsWidgetWindow');
export class CallsWidgetWindow { export class CallsWidgetWindow {
@ -294,8 +296,12 @@ export class CallsWidgetWindow {
event.preventDefault(); event.preventDefault();
}); });
const contextMenu = new ContextMenu({}, this.popOut);
contextMenu.reload();
this.popOut.on('closed', () => { this.popOut.on('closed', () => {
delete this.popOut; delete this.popOut;
contextMenu.dispose();
}); });
// Set the userAgent so that the widget's popout is considered a desktop window in the webapp code. // Set the userAgent so that the widget's popout is considered a desktop window in the webapp code.