Skip to content

Commit d4ff876

Browse files
committed
refactored. connect returns feature and tests added
1 parent f51b33e commit d4ff876

File tree

3 files changed

+24
-15
lines changed

3 files changed

+24
-15
lines changed

lib/Messenger/src/peers/jswebrtcpeer.dart

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class JsWebRtcPeer extends Peer{
4444
/**
4545
* connect to WebrtcPeer
4646
*/
47-
connect(JsWebRtcPeer o){
47+
Future connect(JsWebRtcPeer o){
4848

4949
/// add ice candidates
5050
rtcPeerConnection.onicecandidate = (event) {
@@ -71,7 +71,7 @@ class JsWebRtcPeer extends Peer{
7171
}
7272
};
7373

74-
/// add Datachannel
74+
/// create datachannel
7575
7676
try {
7777
dc = rtcPeerConnection.createDataChannel("sendDataChannel", js.map(dataChannelOptions));
@@ -94,13 +94,17 @@ class JsWebRtcPeer extends Peer{
9494

9595
//test datachannel
9696
//dataChannel.send("test");
97+
connection_completer.complete("wuhuu");
9798
});
98-
}, (e)=>print(e), {});
99-
100-
99+
}, (e){
100+
connection_completer.completeError(e, e.stackTrace);
101+
}, {});
102+
101103
} catch (e) {
102-
log.warning("could not create DataChannel: " + e.toString());
104+
connection_completer.completeError(e, e.stackTrace);
103105
}
106+
107+
return connection_completer.future;
104108
}
105109

106110

lib/Messenger/src/peers/peer.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ abstract class Peer{
2929
///todo: generalize and add to connections to support multiple states
3030
StreamController<String> readyStateEvent;
3131

32+
///completer for connection
33+
///TODO: use another generic type
34+
var connection_completer = new Completer<String>();
35+
3236
/**
3337
* constuctor
3438
*/
@@ -69,7 +73,7 @@ abstract class Peer{
6973
*
7074
* @param Peer other
7175
*/
72-
connect(Peer other);
76+
Future connect(Peer other);
7377

7478
/**
7579
* send Message to other peer

tests/jsrtcpeer.dart

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,26 +35,27 @@ void main() {
3535
});
3636

3737
/**
38-
* Test Connection
38+
* Test connection
3939
*/
4040
test('Webrtc connect',(){
4141
JsWebRtcPeer alice = new JsWebRtcPeer("alice");
4242
JsWebRtcPeer bob = new JsWebRtcPeer("bob");
4343

44-
alice.connect(bob);
44+
expect(alice.connect(bob), completes);
4545
});
4646

47+
48+
4749
/**
48-
* test status opens
50+
* test DataChannel's readyState opens
4951
*/
50-
test('webrtc datachannel open', (){
52+
test('webrtc datachannel', (){
5153
JsWebRtcPeer alice = new JsWebRtcPeer("alice");
5254
JsWebRtcPeer bob = new JsWebRtcPeer("bob");
5355

54-
alice.readyStateEvent.stream.listen((String status){
55-
if(status == "open")
56-
expectAsync0((){});
57-
});
56+
_callback(String status) => expect(status, "open");
57+
58+
alice.readyStateEvent.stream.listen(expectAsync1(_callback));
5859

5960
alice.connect(bob);
6061

0 commit comments

Comments
 (0)