114 lines
2.8 KiB
JavaScript
114 lines
2.8 KiB
JavaScript
var PeerServer = require('../').PeerServer;
|
|
var expect = require('expect.js');
|
|
var sinon = require('sinon');
|
|
|
|
describe('PeerServer', function() {
|
|
describe('constructor', function() {
|
|
before(function() {
|
|
PeerServer.prototype._initializeWSS = sinon.stub();
|
|
PeerServer.prototype._initializeHTTP = sinon.stub();
|
|
});
|
|
|
|
it('should be able to be created without the `new` keyword', function() {
|
|
var p = PeerServer();
|
|
expect(p.constructor).to.be(PeerServer);
|
|
});
|
|
|
|
it('should default to port 80, key `peerjs`', function() {
|
|
var p = new PeerServer();
|
|
expect(p._options.key).to.be('peerjs');
|
|
expect(p._options.port).to.be(80);
|
|
});
|
|
|
|
it('should accept a custom port', function() {
|
|
var p = new PeerServer({ port: 8000 });
|
|
expect(p._options.port).to.be(8000);
|
|
});
|
|
});
|
|
|
|
describe('#_initializeWSS', function() {
|
|
WebSocketServer = sinon.stub();
|
|
|
|
});
|
|
|
|
describe('#_configureWS', function() {
|
|
|
|
});
|
|
|
|
describe('#_checkKey', function() {
|
|
var p;
|
|
before(function() {
|
|
PeerServer.prototype._initializeHTTP = sinon.stub();
|
|
p = new PeerServer({ port: 8000 });
|
|
p._checkKey('peerjs', 'myip', function() {});
|
|
});
|
|
|
|
it('should reject keys that are not the default', function(done) {
|
|
p._checkKey('bad key', null, function(response) {
|
|
expect(response).to.be('Invalid key provided');
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should accept valid key/ip pairs', function(done) {
|
|
p._checkKey('peerjs', 'myip', function(response) {
|
|
expect(response).to.be(null);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should reject ips that are at their limit', function(done) {
|
|
p._options.ip_limit = 0;
|
|
p._checkKey('peerjs', 'myip', function(response) {
|
|
expect(response).to.be('myip has reached its concurrent user limit');
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should reject when the server is at its limit', function(done) {
|
|
p._options.concurrent_limit = 0;
|
|
p._checkKey('peerjs', 'myip', function(response) {
|
|
expect(response).to.be('Server has reached its concurrent user limit');
|
|
done();
|
|
});
|
|
});
|
|
|
|
});
|
|
|
|
describe('#_initializeHTTP', function() {
|
|
|
|
});
|
|
|
|
describe('#_startStreaming', function() {
|
|
|
|
});
|
|
|
|
describe('#_pruneOutstanding', function() {
|
|
|
|
});
|
|
|
|
describe('#_processOutstanding', function() {
|
|
|
|
});
|
|
|
|
describe('#_removePeer', function() {
|
|
|
|
});
|
|
|
|
describe('#_handleTransmission', function() {
|
|
// TODO: this is probably the most important method to test.
|
|
});
|
|
|
|
describe('#_generateClientId', function() {
|
|
var p;
|
|
before(function() {
|
|
PeerServer.prototype._initializeHTTP = sinon.stub();
|
|
p = new PeerServer({ port: 8000 });
|
|
});
|
|
|
|
it('should generate a 16-character ID', function() {
|
|
expect(p._generateClientId('anykey').length).to.be(16);
|
|
});
|
|
});
|
|
});
|