forked from webtorrent/bittorrent-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbasic.js
More file actions
77 lines (62 loc) · 2 KB
/
basic.js
File metadata and controls
77 lines (62 loc) · 2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
var Peer = require('../')
var test = require('tape')
var wrtc = typeof window === 'undefined' && require('wrtc')
test('detect WebRTC support', function (t) {
t.equal(Peer.WEBRTC_SUPPORT, typeof window !== 'undefined', 'builtin webrtc support')
t.end()
})
test('signal event gets emitted', function (t) {
var peer = new Peer({ initiator: true, wrtc: wrtc })
peer.once('signal', function () {
t.pass('got signal event')
peer.destroy()
t.end()
})
})
test('data send/receive text', function (t) {
var peer1 = new Peer({ initiator: true, wrtc: wrtc })
var peer2 = new Peer({ wrtc: wrtc })
var numSignal1 = 0
peer1.on('signal', function (data) {
numSignal1 += 1
peer2.signal(data)
})
var numSignal2 = 0
peer2.on('signal', function (data) {
numSignal2 += 1
peer1.signal(data)
})
peer1.on('connect', tryTest)
peer2.on('connect', tryTest)
function tryTest () {
if (!peer1.connected || !peer2.connected) return
t.ok(numSignal1 >= 1)
t.ok(numSignal2 >= 1)
t.equal(peer1.initiator, true, 'peer1 is initiator')
t.equal(peer2.initiator, false, 'peer2 is not initiator')
t.equal(peer1.localAddress, peer2.remoteAddress)
t.equal(peer1.localPort, peer2.remotePort)
t.equal(peer2.localAddress, peer1.remoteAddress)
t.equal(peer2.localPort, peer1.remotePort)
t.ok(typeof peer1.remoteFamily === 'string')
t.ok(peer1.remoteFamily.indexOf('IPv') === 0)
t.ok(typeof peer2.remoteFamily === 'string')
t.ok(peer2.remoteFamily.indexOf('IPv') === 0)
peer1.send('sup peer2')
peer2.on('data', function (data) {
t.equal(data, 'sup peer2', 'got correct message')
peer2.send('sup peer1')
peer1.on('data', function (data) {
t.equal(data, 'sup peer1', 'got correct message')
function tryDone () {
if (!peer1.connected && !peer2.connected) {
t.pass('both peers closed')
t.end()
}
}
peer1.destroy(tryDone)
peer2.destroy(tryDone)
})
})
}
})