8000 Merge pull request #344 from flutter-webrtc/test · next-coder/flutter-webrtc@dce7e97 · GitHub
[go: up one dir, main page]

Skip to content

Commit dce7e97

Browse files
authored
Merge pull request flutter-webrtc#344 from flutter-webrtc/test
Let's add a first test
2 parents 80fd976 + 7d1b85f commit dce7e97

File tree

2 files changed

+70
-1
lines changed

2 files changed

+70
-1
lines changed

pubspec.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@ dependencies:
1212

1313
dev_dependencies:
1414
pedantic: ^1.9.0
15-
15+
flutter_test:
16+
sdk: flutter
17+
test:
18+
1619
flutter:
1720
plugin:
1821
platforms:
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import 'package:flutter/services.dart';
2+
import 'package:flutter_test/flutter_test.dart';
3+
import 'package:flutter_webrtc/flutter_webrtc.dart';
4+
import 'package:flutter_webrtc/src/rtc_peerconnection.dart';
5+
6+
void main() {
7+
TestWidgetsFlutterBinding.ensureInitialized();
8+
final channel = WebRTC.methodChannel();
9+
setUp(() {
10+
channel.setMockMethodCallHandler((MethodCall methodCall) async {
11+
await ServicesBinding.instance.defaultBinaryMessenger
12+
.handlePlatformMessage(
13+
'FlutterWebRTC/peerConnectoinEvent', null, (ByteData data) {});
14+
await ServicesBinding.instance.defaultBinaryMessenger
15+
.handlePlatformMessage(
16+
'FlutterWebRTC/dataChannelEvent', null, (ByteData data) {});
17+
});
18+
});
19+
20+
tearDown(() {
21+
channel.setMockMethodCallHandler(null);
22+
});
23+
24+
test(
25+
'Validate that not setting any public delegate this will not break the implementation by throwing NPE',
26+
() {
27+
final rct = RTCPeerConnection('', {});
28+
final events = [
29+
'signalingState',
30+
'iceGatheringState',
31+
'iceConnectionState',
32+
'onCandidate',
33+
'onAddStream',
34+
'onRemoveStream',
35+
'onAddTrack',
36+
'onRemoveTrack',
37+
'didOpenDataChannel',
38+
'onRenegotiationNeeded'
39+
];
40+
41+
events.forEach((event) {
42+
rct.eventListener(<String, dynamic>{
43+
'event': event,
44+
45+
//Minimum values for signalingState, iceGatheringState, iceConnectionState
46+
'state': 'stable', // just picking one valid value from the list
47+
48+
//Minimum values for onCandidate
49+
'candidate': {'candidate': '', 'sdpMid': '', 'sdpMLineIndex': 1},
50+
51+
//Minimum values for onAddStream
52+
'streamId': '',
53+
'audioTracks': [],
54+
'videoTracks': [],
55+
56+
//Minimum values for onAddTrack
57+
'track': {
58+
'trackId': '',
59+
'label': '',
60+
'kind': '',
61+
'enabled': false,
62+
}
63+
});
64+
});
65+
});
66+
}

0 commit comments

Comments
 (0)
0