diff --git a/spec/test-utils/webrtc.ts b/spec/test-utils/webrtc.ts index e2118efa4..80ccbef26 100644 --- a/spec/test-utils/webrtc.ts +++ b/spec/test-utils/webrtc.ts @@ -56,9 +56,6 @@ export const DUMMY_SDP = ( "a=ssrc:3619738545 cname:2RWtmqhXLdoF4sOi\r\n" ); -export const USERMEDIA_STREAM_ID = "mock_stream_from_media_handler"; -export const SCREENSHARE_STREAM_ID = "mock_screen_stream_from_media_handler"; - class MockMediaStreamAudioSourceNode { connect() {} } @@ -131,10 +128,6 @@ export class MockRTCPeerConnection { return new MockRTCRtpSender(track); } - removeTrack() { - this.needsNegotiation = true; - } - doNegotiation() { if (this.needsNegotiation && this.negotiationNeededListener) { this.needsNegotiation = false; @@ -229,7 +222,7 @@ export class MockMediaHandler { if (audio) tracks.push(new MockMediaStreamTrack("audio_track", "audio")); if (video) tracks.push(new MockMediaStreamTrack("video_track", "video")); - const stream = new MockMediaStream(USERMEDIA_STREAM_ID, tracks); + const stream = new MockMediaStream("mock_stream_from_media_handler", tracks); this.userMediaStreams.push(stream); return stream; } @@ -240,7 +233,7 @@ export class MockMediaHandler { const tracks = [new MockMediaStreamTrack("video_track", "video")]; if (opts?.audio) tracks.push(new MockMediaStreamTrack("audio_track", "audio")); - const stream = new MockMediaStream(SCREENSHARE_STREAM_ID, tracks); + const stream = new MockMediaStream("mock_screen_stream_from_media_handler", tracks); this.screensharingStreams.push(stream); return stream; } diff --git a/spec/unit/webrtc/call.spec.ts b/spec/unit/webrtc/call.spec.ts index 88213821d..f7c51d10c 100644 --- a/spec/unit/webrtc/call.spec.ts +++ b/spec/unit/webrtc/call.spec.ts @@ -30,8 +30,6 @@ import { MockMediaStream, MockMediaStreamTrack, installWebRTCMocks, - MockRTCPeerConnection, - SCREENSHARE_STREAM_ID, } from "../../test-utils/webrtc"; import { CallFeed } from "../../../src/webrtc/callFeed"; import { EventType, MatrixEvent } from "../../../src"; @@ -943,84 +941,4 @@ describe('Call', function() { expect(call.state).toEqual(CallState.Ended); }); - - describe("Screen sharing", () => { - beforeEach(async () => { - await startVoiceCall(client, call); - - await call.onAnswerReceived({ - getContent: () => { - return { - "version": 1, - "call_id": call.callId, - "party_id": 'party_id', - "answer": { - sdp: DUMMY_SDP, - }, - "org.matrix.msc3077.sdp_stream_metadata": { - "foo": { - "purpose": "m.usermedia", - "audio_muted": false, - "video_muted": false, - }, - }, - }; - }, - getSender: () => "@test:foo", - }); - }); - - afterEach(() => { - // Hangup to stop timers - call.hangup(CallErrorCode.UserHangup, true); - }); - - it("enables screensharing", async () => { - await call.setScreensharingEnabled(true); - - expect(call.feeds.filter(f => f.purpose == SDPStreamMetadataPurpose.Screenshare).length).toEqual(1); - - client.client.sendEvent.mockReset(); - const sendNegotiatePromise = new Promise(resolve => { - client.client.sendEvent.mockImplementation(() => { - resolve(); - }); - }); - - MockRTCPeerConnection.triggerAllNegotiations(); - await sendNegotiatePromise; - - expect(client.client.sendEvent).toHaveBeenCalledWith( - FAKE_ROOM_ID, - EventType.CallNegotiate, - expect.objectContaining({ - "version": "1", - "call_id": call.callId, - "org.matrix.msc3077.sdp_stream_metadata": expect.objectContaining({ - [SCREENSHARE_STREAM_ID]: expect.objectContaining({ - purpose: SDPStreamMetadataPurpose.Screenshare, - }), - }), - }), - ); - }); - - it("disables screensharing", async () => { - await call.setScreensharingEnabled(true); - - client.client.sendEvent.mockReset(); - const sendNegotiatePromise = new Promise(resolve => { - client.client.sendEvent.mockImplementation(() => { - resolve(); - }); - }); - - MockRTCPeerConnection.triggerAllNegotiations(); - await sendNegotiatePromise; - - await call.setScreensharingEnabled(false); - - expect(call.feeds.filter(f => f.purpose == SDPStreamMetadataPurpose.Screenshare).length).toEqual(0); - }); - }); });