test: matrixRTCEventStream emitted events in a group call
This commit is contained in:
parent
9df13a02ea
commit
2cd5ac0e06
File diff suppressed because it is too large
Load Diff
|
|
@ -86,18 +86,49 @@ class MockEncryptionKeyProvider implements EncryptionKeyProvider {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class MockMediaDeviceInfo implements MediaDeviceInfo {
|
||||||
|
@override
|
||||||
|
final String deviceId;
|
||||||
|
@override
|
||||||
|
final String kind;
|
||||||
|
@override
|
||||||
|
final String label;
|
||||||
|
@override
|
||||||
|
final String? groupId;
|
||||||
|
|
||||||
|
MockMediaDeviceInfo({
|
||||||
|
required this.deviceId,
|
||||||
|
required this.kind,
|
||||||
|
required this.label,
|
||||||
|
this.groupId,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
class MockMediaDevices implements MediaDevices {
|
class MockMediaDevices implements MediaDevices {
|
||||||
@override
|
@override
|
||||||
Function(dynamic event)? ondevicechange;
|
Function(dynamic event)? ondevicechange;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<List<MediaDeviceInfo>> enumerateDevices() {
|
Future<List<MediaDeviceInfo>> enumerateDevices() async {
|
||||||
throw UnimplementedError();
|
return [
|
||||||
|
MockMediaDeviceInfo(
|
||||||
|
deviceId: 'default_audio_input',
|
||||||
|
kind: 'audioinput',
|
||||||
|
label: 'Default Audio Input',
|
||||||
|
),
|
||||||
|
MockMediaDeviceInfo(
|
||||||
|
deviceId: 'default_video_input',
|
||||||
|
kind: 'videoinput',
|
||||||
|
label: 'Default Video Input',
|
||||||
|
),
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<MediaStream> getDisplayMedia(Map<String, dynamic> mediaConstraints) {
|
Future<MediaStream> getDisplayMedia(
|
||||||
throw UnimplementedError();
|
Map<String, dynamic> mediaConstraints,
|
||||||
|
) async {
|
||||||
|
return MockMediaStream('', '');
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -160,6 +191,9 @@ class MockRTCPeerConnection implements RTCPeerConnection {
|
||||||
@override
|
@override
|
||||||
Function(RTCTrackEvent event)? onTrack;
|
Function(RTCTrackEvent event)? onTrack;
|
||||||
|
|
||||||
|
// Mock stats to simulate audio levels
|
||||||
|
double mockAudioLevel = 0.0;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
RTCSignalingState? get signalingState => throw UnimplementedError();
|
RTCSignalingState? get signalingState => throw UnimplementedError();
|
||||||
|
|
||||||
|
|
@ -276,8 +310,23 @@ class MockRTCPeerConnection implements RTCPeerConnection {
|
||||||
@override
|
@override
|
||||||
Future<List<StatsReport>> getStats([MediaStreamTrack? track]) async {
|
Future<List<StatsReport>> getStats([MediaStreamTrack? track]) async {
|
||||||
// Mock implementation for getting stats
|
// Mock implementation for getting stats
|
||||||
Logs().i('Mock: Getting stats');
|
Logs().i('Mock: Getting stats with audioLevel: $mockAudioLevel');
|
||||||
return [];
|
return [
|
||||||
|
MockStatsReport(
|
||||||
|
type: 'inbound-rtp',
|
||||||
|
values: {
|
||||||
|
'kind': 'audio',
|
||||||
|
'audioLevel': mockAudioLevel,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
MockStatsReport(
|
||||||
|
type: 'media-source',
|
||||||
|
values: {
|
||||||
|
'kind': 'audio',
|
||||||
|
'audioLevel': mockAudioLevel,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -850,3 +899,45 @@ class MockVideoRenderer implements VideoRenderer {
|
||||||
Logs().i('Mock: Disposing VideoRenderer');
|
Logs().i('Mock: Disposing VideoRenderer');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class MockStatsReport implements StatsReport {
|
||||||
|
@override
|
||||||
|
final String type;
|
||||||
|
|
||||||
|
@override
|
||||||
|
final Map<String, dynamic> values;
|
||||||
|
|
||||||
|
@override
|
||||||
|
final String id;
|
||||||
|
|
||||||
|
@override
|
||||||
|
final double timestamp;
|
||||||
|
|
||||||
|
MockStatsReport({
|
||||||
|
required this.type,
|
||||||
|
required this.values,
|
||||||
|
this.id = 'mock-stats-id',
|
||||||
|
this.timestamp = 0.0,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
class MockRTCTrackEvent implements RTCTrackEvent {
|
||||||
|
@override
|
||||||
|
final MediaStreamTrack track;
|
||||||
|
|
||||||
|
@override
|
||||||
|
final RTCRtpReceiver? receiver;
|
||||||
|
|
||||||
|
@override
|
||||||
|
final List<MediaStream> streams;
|
||||||
|
|
||||||
|
@override
|
||||||
|
final RTCRtpTransceiver? transceiver;
|
||||||
|
|
||||||
|
MockRTCTrackEvent({
|
||||||
|
required this.track,
|
||||||
|
this.receiver,
|
||||||
|
required this.streams,
|
||||||
|
this.transceiver,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue