aboutsummaryrefslogtreecommitdiffstats
path: root/signaling-server/node_modules/socket.io/node_modules/policyfile/tests
diff options
context:
space:
mode:
Diffstat (limited to 'signaling-server/node_modules/socket.io/node_modules/policyfile/tests')
-rw-r--r--signaling-server/node_modules/socket.io/node_modules/policyfile/tests/ssl/ssl.crt21
-rw-r--r--signaling-server/node_modules/socket.io/node_modules/policyfile/tests/ssl/ssl.private.key27
-rw-r--r--signaling-server/node_modules/socket.io/node_modules/policyfile/tests/unit.test.js231
3 files changed, 279 insertions, 0 deletions
diff --git a/signaling-server/node_modules/socket.io/node_modules/policyfile/tests/ssl/ssl.crt b/signaling-server/node_modules/socket.io/node_modules/policyfile/tests/ssl/ssl.crt
new file mode 100644
index 0000000..5883cd4
--- /dev/null
+++ b/signaling-server/node_modules/socket.io/node_modules/policyfile/tests/ssl/ssl.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDXTCCAkWgAwIBAgIJAMUSOvlaeyQHMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
+BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
+aWRnaXRzIFB0eSBMdGQwHhcNMTAxMTE2MDkzMjQ5WhcNMTMxMTE1MDkzMjQ5WjBF
+MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50
+ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAz+LXZOjcQCJq3+ZKUFabj71oo/ex/XsBcFqtBThjjTw9CVEVwfPQQp4X
+wtPiB204vnYXwQ1/R2NdTQqCZu47l79LssL/u2a5Y9+0NEU3nQA5qdt+1FAE0c5o
+exPimXOrR3GWfKz7PmZ2O0117IeCUUXPG5U8umhDe/4mDF4ZNJiKc404WthquTqg
+S7rLQZHhZ6D0EnGnOkzlmxJMYPNHSOY1/6ivdNUUcC87awNEA3lgfhy25IyBK3QJ
+c+aYKNTbt70Lery3bu2wWLFGtmNiGlQTS4JsxImRsECTI727ObS7/FWAQsqW+COL
+0Sa5BuMFrFIpjPrEe0ih7vRRbdmXRwIDAQABo1AwTjAdBgNVHQ4EFgQUDnV4d6mD
+tOnluLoCjkUHTX/n4agwHwYDVR0jBBgwFoAUDnV4d6mDtOnluLoCjkUHTX/n4agw
+DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAFwV4MQfTo+qMv9JMiyno
+IEiqfOz4RgtmBqRnXUffcjS2dhc7/z+FPZnM79Kej8eLHoVfxCyWRHFlzm93vEdv
+wxOCrD13EDOi08OOZfxWyIlCa6Bg8cMAKqQzd2OvQOWqlRWBTThBJIhWflU33izX
+Qn5GdmYqhfpc+9ZHHGhvXNydtRQkdxVK2dZNzLBvBlLlRmtoClU7xm3A+/5dddeP
+AQHEPtyFlUw49VYtZ3ru6KqPms7MKvcRhYLsy9rwSfuuniMlx4d0bDR7TOkw0QQS
+A0N8MGQRQpzl4mw4jLzyM5d5QtuGBh2P6hPGa0YQxtI3RPT/p6ENzzBiAKXiSfzo
+xw==
+-----END CERTIFICATE-----
diff --git a/signaling-server/node_modules/socket.io/node_modules/policyfile/tests/ssl/ssl.private.key b/signaling-server/node_modules/socket.io/node_modules/policyfile/tests/ssl/ssl.private.key
new file mode 100644
index 0000000..f31ff3d
--- /dev/null
+++ b/signaling-server/node_modules/socket.io/node_modules/policyfile/tests/ssl/ssl.private.key
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAz+LXZOjcQCJq3+ZKUFabj71oo/ex/XsBcFqtBThjjTw9CVEV
+wfPQQp4XwtPiB204vnYXwQ1/R2NdTQqCZu47l79LssL/u2a5Y9+0NEU3nQA5qdt+
+1FAE0c5oexPimXOrR3GWfKz7PmZ2O0117IeCUUXPG5U8umhDe/4mDF4ZNJiKc404
+WthquTqgS7rLQZHhZ6D0EnGnOkzlmxJMYPNHSOY1/6ivdNUUcC87awNEA3lgfhy2
+5IyBK3QJc+aYKNTbt70Lery3bu2wWLFGtmNiGlQTS4JsxImRsECTI727ObS7/FWA
+QsqW+COL0Sa5BuMFrFIpjPrEe0ih7vRRbdmXRwIDAQABAoIBAGe4+9VqZfJN+dsq
+8Osyuz01uQ8OmC0sAWTIqUlQgENIyf9rCJsUBlYmwR5BT6Z69XP6QhHdpSK+TiAR
+XUz0EqG9HYzcxHIBaACP7j6iRoQ8R4kbbiWKo0z3WqQGIOqFjvD/mKEuQdE5mEYw
+eOUCG6BnX1WY2Yr8WKd2AA/tp0/Y4d8z04u9eodMpSTbHTzYMJb5SbBN1vo6FY7q
+8zSuO0BMzXlAxUsCwHsk1GQHFr8Oh3zIR7bQGtMBouI+6Lhh7sjFYsfxJboqMTBV
+IKaA216M6ggHG7MU1/jeKcMGDmEfqQLQoyWp29rMK6TklUgipME2L3UD7vTyAVzz
+xbVOpZkCgYEA8CXW4sZBBrSSrLR5SB+Ubu9qNTggLowOsC/kVKB2WJ4+xooc5HQo
+mFhq1v/WxPQoWIxdYsfg2odlL+JclK5Qcy6vXmRSdAQ5lK9gBDKxZSYc3NwAw2HA
+zyHCTK+I0n8PBYQ+yGcrxu0WqTGnlLW+Otk4CejO34WlgHwbH9bbY5UCgYEA3ZvT
+C4+OoMHXlmICSt29zUrYiL33IWsR3/MaONxTEDuvgkOSXXQOl/8Ebd6Nu+3WbsSN
+bjiPC/JyL1YCVmijdvFpl4gjtgvfJifs4G+QHvO6YfsYoVANk4u6g6rUuBIOwNK4
+RwYxwDc0oysp+g7tPxoSgDHReEVKJNzGBe9NGGsCgYEA4O4QP4gCEA3B9BF2J5+s
+n9uPVxmiyvZUK6Iv8zP4pThTBBMIzNIf09G9AHPQ7djikU2nioY8jXKTzC3xGTHM
+GJZ5m6fLsu7iH+nDvSreDSeNkTBfZqGAvoGYQ8uGE+L+ZuRfCcXYsxIOT5s6o4c3
+Dle2rVFpsuKzCY00urW796ECgYBn3go75+xEwrYGQSer6WR1nTgCV29GVYXKPooy
+zmmMOT1Yw80NSkEw0pFD4cTyqVYREsTrPU0mn1sPfrOXxnGfZSVFpcR/Je9QVfQ7
+eW7GYxwfom335aqHVj10SxRqteP+UoWWnHujCPz94VRKZMakBddYCIGSan+G6YdS
+7sdmwwKBgBc2qj0wvGXDF2kCLwSGfWoMf8CS1+5fIiUIdT1e/+7MfDdbmLMIFVjF
+QKS3zVViXCbrG5SY6wS9hxoc57f6E2A8vcaX6zy2xkZlGHQCpWRtEM5R01OWJQaH
+HsHMmQZGUQVoDm1oRkDhrTFK4K3ukc3rAxzeTZ96utOQN8/KJsTv
+-----END RSA PRIVATE KEY-----
diff --git a/signaling-server/node_modules/socket.io/node_modules/policyfile/tests/unit.test.js b/signaling-server/node_modules/socket.io/node_modules/policyfile/tests/unit.test.js
new file mode 100644
index 0000000..932b3c1
--- /dev/null
+++ b/signaling-server/node_modules/socket.io/node_modules/policyfile/tests/unit.test.js
@@ -0,0 +1,231 @@
+var fspfs = require('../')
+ , fs = require('fs')
+ , http = require('http')
+ , https = require('https')
+ , net = require('net')
+ , should = require('should')
+ , assert = require('assert');
+
+module.exports = {
+ // Library version should be Semver compatible
+ 'Library version': function(){
+ fspfs.version.should.match(/^\d+\.\d+\.\d+$/);
+ }
+
+ // Creating a server instace should not cause any problems
+ // either using the new Server or createServer method.
+, 'Create Server instance': function(){
+ var server = fspfs.createServer()
+ , server2 = new fspfs.Server({log:false}, ['blog.3rd-Eden.com:1337']);
+
+ // server 2 options test
+ server2.log.should.be.false;
+ server2.origins.length.should.equal(1);
+ server2.origins[0].should.equal('blog.3rd-Eden.com:1337');
+
+ // server defaults
+ (typeof server.log).should.be.equal('function');
+ server.origins.length.should.equal(1);
+ server.origins[0].should.equal('*:*');
+
+ // instance checking, sanity check
+ assert.ok(server instanceof fspfs.Server);
+ assert.ok(!!server.buffer);
+
+ // more options testing
+ server = fspfs.createServer(['blog.3rd-Eden.com:80']);
+ server.origins.length.should.equal(1);
+ server.origins[0].should.equal('blog.3rd-Eden.com:80');
+
+ server = fspfs.createServer({log:false},['blog.3rd-Eden.com:80']);
+ server.log.should.be.false;
+ server.origins.length.should.equal(1);
+ server.origins[0].should.equal('blog.3rd-Eden.com:80');
+
+ }
+
+, 'Add origin': function(){
+ var server = fspfs.createServer();
+ server.add('google.com:80', 'blog.3rd-Eden.com:1337');
+
+ server.origins.length.should.equal(3);
+ server.origins.indexOf('google.com:80').should.be.above(0);
+
+ // don't allow duplicates
+ server.add('google.com:80', 'google.com:80');
+
+ var i = server.origins.length
+ , count = 0;
+
+ while(i--){
+ if (server.origins[i] === 'google.com:80'){
+ count++;
+ }
+ }
+
+ count.should.equal(1);
+ }
+
+, 'Remove origin': function(){
+ var server = fspfs.createServer();
+ server.add('google.com:80', 'blog.3rd-Eden.com:1337');
+ server.origins.length.should.equal(3);
+
+ server.remove('google.com:80');
+ server.origins.length.should.equal(2);
+ server.origins.indexOf('google.com:80').should.equal(-1);
+ }
+
+, 'Buffer': function(){
+ var server = fspfs.createServer();
+
+ Buffer.isBuffer(server.buffer).should.be.true;
+ server.buffer.toString().indexOf('to-ports="*"').should.be.above(0);
+ server.buffer.toString().indexOf('domain="*"').should.be.above(0);
+ server.buffer.toString().indexOf('domain="google.com"').should.equal(-1);
+
+ // The buffers should be rebuild when new origins are added
+ server.add('google.com:80');
+ server.buffer.toString().indexOf('to-ports="80"').should.be.above(0);
+ server.buffer.toString().indexOf('domain="google.com"').should.be.above(0);
+
+ server.remove('google.com:80');
+ server.buffer.toString().indexOf('to-ports="80"').should.equal(-1);
+ server.buffer.toString().indexOf('domain="google.com"').should.equal(-1);
+ }
+
+, 'Responder': function(){
+ var server = fspfs.createServer()
+ , calls = 0
+ // dummy socket to emulate a `real` socket
+ , dummySocket = {
+ readyState: 'open'
+ , end: function(buffer){
+ calls++;
+ Buffer.isBuffer(buffer).should.be.true;
+ buffer.toString().should.equal(server.buffer.toString());
+ }
+ };
+
+ server.responder(dummySocket);
+ calls.should.equal(1);
+ }
+
+, 'Event proxy': function(){
+ var server = fspfs.createServer()
+ , calls = 0;
+
+ Object.keys(process.EventEmitter.prototype).forEach(function proxy(key){
+ assert.ok(!!server[key] && typeof server[key] === 'function');
+ });
+
+ // test if it works by calling a none default event
+ server.on('pew', function(){
+ calls++;
+ });
+
+ server.emit('pew');
+ calls.should.equal(1);
+ }
+
+, 'inline response http': function(){
+ var port = 1335
+ , httpserver = http.createServer(function(q,r){r.writeHead(200);r.end(':3')})
+ , server = fspfs.createServer();
+
+ httpserver.listen(port, function(){
+ server.listen(port + 1, httpserver, function(){
+ var client = net.createConnection(port);
+ client.write('<policy-file-request/>\0');
+ client.on('error', function(err){
+ assert.ok(!err, err)
+ });
+ client.on('data', function(data){
+
+ var response = data.toString();
+ console.log(response);
+
+ response.indexOf('to-ports="*"').should.be.above(0);
+ response.indexOf('domain="*"').should.be.above(0);
+ response.indexOf('domain="google.com"').should.equal(-1);
+
+ // clean up
+ client.destroy();
+ server.close();
+ httpserver.close();
+ });
+ });
+ });
+ }
+
+, 'server response': function(){
+ var port = 1340
+ , server = fspfs.createServer();
+
+ server.listen(port, function(){
+ var client = net.createConnection(port);
+ client.write('<policy-file-request/>\0');
+ client.on('error', function(err){
+ assert.ok(!err, err)
+ });
+ client.on('data', function(data){
+
+ var response = data.toString();
+
+ response.indexOf('to-ports="*"').should.be.above(0);
+ response.indexOf('domain="*"').should.be.above(0);
+ response.indexOf('domain="google.com"').should.equal(-1);
+
+ // clean up
+ client.destroy();
+ server.close();
+ });
+ });
+ }
+
+, 'inline response https': function(){
+ var port = 1345
+ , ssl = {
+ key: fs.readFileSync(__dirname + '/ssl/ssl.private.key').toString()
+ , cert: fs.readFileSync(__dirname + '/ssl/ssl.crt').toString()
+ }
+ , httpserver = https.createServer(ssl, function(q,r){r.writeHead(200);r.end(':3')})
+ , server = fspfs.createServer();
+
+ httpserver.listen(port, function(){
+ server.listen(port + 1, httpserver, function(){
+ var client = net.createConnection(port);
+ client.write('<policy-file-request/>\0');
+ client.on('error', function(err){
+ assert.ok(!err, err)
+ });
+ client.on('data', function(data){
+
+ var response = data.toString();
+
+ response.indexOf('to-ports="*"').should.be.above(0);
+ response.indexOf('domain="*"').should.be.above(0);
+ response.indexOf('domain="google.com"').should.equal(-1);
+
+ // clean up
+ client.destroy();
+ server.close();
+ httpserver.close();
+ });
+ });
+ });
+ }
+
+, 'connect_failed': function(){
+ var server = fspfs.createServer();
+
+ server.on('connect_failed', function(){
+ assert.ok(true);
+ });
+
+ server.listen(function(){
+ assert.ok(false, 'Run this test without root access');
+ server.close();
+ });
+ }
+}; \ No newline at end of file