You've already forked matrix-react-sdk
mirror of
https://github.com/matrix-org/matrix-react-sdk.git
synced 2025-07-28 15:22:05 +03:00
Fix external guest access url for unencrypted rooms (#12345)
* use unencrypted calls in unencrypted rooms (make external call links compatible with unencrypted embedded calls) Signed-off-by: Timo K <toger5@hotmail.de> * use same logic in Call.ts Signed-off-by: Timo K <toger5@hotmail.de> * fix tests Signed-off-by: Timo K <toger5@hotmail.de> * fix test Signed-off-by: Timo K <toger5@hotmail.de> --------- Signed-off-by: Timo K <toger5@hotmail.de>
This commit is contained in:
@ -563,9 +563,10 @@ describe("RoomHeader", () => {
|
||||
const { container } = render(<RoomHeader room={room} />, getWrapper());
|
||||
expect(getByLabelText(container, _t("voip|get_call_link"))).toBeInTheDocument();
|
||||
});
|
||||
it("opens the share dialog with the correct share link", () => {
|
||||
it("opens the share dialog with the correct share link in an encrypted room", () => {
|
||||
jest.spyOn(room, "getJoinRule").mockReturnValue(JoinRule.Public);
|
||||
jest.spyOn(SdkContextClass.instance.roomViewStore, "isViewingCall").mockReturnValue(true);
|
||||
jest.spyOn(room, "hasEncryptionStateEvent").mockReturnValue(true);
|
||||
|
||||
const { container } = render(<RoomHeader room={room} />, getWrapper());
|
||||
const modalSpy = jest.spyOn(Modal, "createDialog");
|
||||
@ -583,6 +584,20 @@ describe("RoomHeader", () => {
|
||||
});
|
||||
expect(arg1.target.toString()).toEqual(target);
|
||||
});
|
||||
|
||||
it("share dialog has correct link in an unencrypted room", () => {
|
||||
jest.spyOn(room, "getJoinRule").mockReturnValue(JoinRule.Public);
|
||||
jest.spyOn(room, "hasEncryptionStateEvent").mockReturnValue(false);
|
||||
jest.spyOn(SdkContextClass.instance.roomViewStore, "isViewingCall").mockReturnValue(true);
|
||||
|
||||
const { container } = render(<RoomHeader room={room} />, getWrapper());
|
||||
const modalSpy = jest.spyOn(Modal, "createDialog");
|
||||
fireEvent.click(getByLabelText(container, _t("voip|get_call_link")));
|
||||
const target =
|
||||
"https://guest_spa_url.com/room/#/!1:example.org?roomId=%211%3Aexample.org&viaServers=example.org";
|
||||
const arg1 = modalSpy.mock.calls[0][1] as any;
|
||||
expect(arg1.target.toString()).toEqual(target);
|
||||
});
|
||||
});
|
||||
|
||||
describe("public room", () => {
|
||||
|
@ -1039,7 +1039,7 @@ describe("ElementCall", () => {
|
||||
call.destroy();
|
||||
const addWidgetSpy = jest.spyOn(WidgetStore.instance, "addVirtualWidget");
|
||||
// If a room is not encrypted we will never add the perParticipantE2EE flag.
|
||||
client.isRoomEncrypted.mockReturnValue(true);
|
||||
const roomSpy = jest.spyOn(room, "hasEncryptionStateEvent").mockReturnValue(true);
|
||||
|
||||
// should create call with perParticipantE2EE flag
|
||||
ElementCall.create(room);
|
||||
@ -1049,8 +1049,7 @@ describe("ElementCall", () => {
|
||||
enabledSettings.add("feature_disable_call_per_sender_encryption");
|
||||
expect(Call.get(room)?.widget?.data?.perParticipantE2EE).toBe(false);
|
||||
enabledSettings.delete("feature_disable_call_per_sender_encryption");
|
||||
|
||||
client.isRoomEncrypted.mockClear();
|
||||
roomSpy.mockRestore();
|
||||
addWidgetSpy.mockRestore();
|
||||
});
|
||||
|
||||
|
@ -624,6 +624,7 @@ export function mkStubRoom(
|
||||
isElementVideoRoom: jest.fn().mockReturnValue(false),
|
||||
isSpaceRoom: jest.fn().mockReturnValue(false),
|
||||
isCallRoom: jest.fn().mockReturnValue(false),
|
||||
hasEncryptionStateEvent: jest.fn().mockReturnValue(false),
|
||||
loadMembersIfNeeded: jest.fn(),
|
||||
maySendMessage: jest.fn().mockReturnValue(true),
|
||||
myUserId: client?.getUserId(),
|
||||
|
Reference in New Issue
Block a user