diff --git a/.travis.yml b/.travis.yml index 16b30799d..3174f77c0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,4 @@ -sudo: false +sudo: required language: node_js @@ -8,4 +8,16 @@ node_js: - '5' - '6' +before_install: + - sudo apt-get update + - sudo apt-get install prosody # luarocks + - sudo service prosody stop + # - sudo luarocks install luabitop + - sudo cp test/resources/prosody.cfg.lua /etc/prosody/prosody.cfg.lua + - sudo cp test/resources/mod_websocket.lua /usr/lib/prosody/modules/ + +script: + - npm run test + - npm run integration + after_script: npm run coveralls diff --git a/package.json b/package.json index c5c23fadd..53bd12f45 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,8 @@ "lint": "standard", "unit": "mocha --recursive packages/*/test/ -t 5000", "bootstrap": "lerna bootstrap", - "test": "npm run unit && npm run lint && lerna run test && npm run coverage", + "integration": "mocha --recursive test/integration -t 5000", + "test": "npm run coverage && npm run lint && lerna run test", "coverage": "istanbul cover _mocha --report lcovonly -- -R spec --recursive packages/*/test/ -t 5000", "coveralls": "cat ./coverage/lcov.info | coveralls && rm -rf ./coverage" } diff --git a/packages/node-xmpp-client/.travis.yml b/packages/node-xmpp-client/.travis.yml deleted file mode 100644 index bbb3ad86e..000000000 --- a/packages/node-xmpp-client/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -sudo: required - -language: node_js - -node_js: - - '0.10' - - '0.12' - - '4' - - '5' - - '6' - -before_install: - - sudo apt-get update - - sudo apt-get install prosody # luarocks - - sudo service prosody stop - # - sudo luarocks install luabitop - - sudo cp test/resources/prosody.cfg.lua /etc/prosody/prosody.cfg.lua - - sudo cp test/resources/mod_websocket.lua /usr/lib/prosody/modules/ - -before_script: npm install -g grunt-cli - -script: npm run full-test diff --git a/packages/node-xmpp-client/Gruntfile.js b/packages/node-xmpp-client/Gruntfile.js index 17f9df7d1..6a97da0c2 100644 --- a/packages/node-xmpp-client/Gruntfile.js +++ b/packages/node-xmpp-client/Gruntfile.js @@ -5,19 +5,6 @@ var helper = require('./test/helper') module.exports = function (grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), - mochacli: { - unit: { - options: { files: [ './test/unit/**/*.js' ] } - }, - integration: { - options: { files: [ './test/integration/**/*.js' ] } - }, - options: { - reporter: 'spec', - ui: 'tdd', - timeout: 10000 - } - }, mocha_phantomjs: { all: ['test/browser/**/*.html'] }, @@ -37,14 +24,12 @@ module.exports = function (grunt) { }) // Load the plugins - grunt.loadNpmTasks('grunt-mocha-cli') grunt.loadNpmTasks('grunt-mocha-phantomjs') grunt.loadNpmTasks('grunt-contrib-connect') // Configure tasks grunt.registerTask('default', ['test']) - grunt.registerTask('test', ['mochacli:unit']) - grunt.registerTask('integration-test', ['mochacli:integration', 'test']) + grunt.registerTask('integration-test', ['test']) grunt.registerTask('browser-test', ['connect', 'prosody-start', 'mocha_phantomjs', 'prosody-stop']) grunt.registerTask('full-test', ['test', 'integration-test', 'browser-test']) grunt.registerTask('dev', ['connect']) diff --git a/packages/node-xmpp-client/lib/Client.js b/packages/node-xmpp-client/lib/Client.js index 78bf8348b..19f46927d 100644 --- a/packages/node-xmpp-client/lib/Client.js +++ b/packages/node-xmpp-client/lib/Client.js @@ -179,9 +179,7 @@ Client.prototype._connectViaBosh = function () { debug('load bosh prebind') var cb = this.options.bosh.prebind delete this.options.bosh.prebind - var cmd = 'node ' + path.join(__dirname, 'prebind.js') - delete this.options.bosh.prebind - cmd += encodeURI(JSON.stringify(this.options)) + var cmd = 'node ' + path.join(__dirname, 'prebind.js') + ' ' + encodeURI(JSON.stringify(this.options)) exec( cmd, function (error, stdout, stderr) { diff --git a/packages/node-xmpp-client/package.json b/packages/node-xmpp-client/package.json index 74fd0e132..f0d703300 100644 --- a/packages/node-xmpp-client/package.json +++ b/packages/node-xmpp-client/package.json @@ -32,7 +32,6 @@ "grunt": "^0.4.5", "grunt-cli": "^1.2.0", "grunt-contrib-connect": "0.11.2", - "grunt-mocha-cli": "^2.0.0", "grunt-mocha-phantomjs": "^2.0.0", "node-xmpp-server": "^2.1.3" }, diff --git a/packages/node-xmpp-client/test/unit/lib/authentication/anonymous.js b/packages/node-xmpp-client/test/authentication/anonymous.js similarity index 82% rename from packages/node-xmpp-client/test/unit/lib/authentication/anonymous.js rename to packages/node-xmpp-client/test/authentication/anonymous.js index bf0833c21..d6c77274e 100644 --- a/packages/node-xmpp-client/test/unit/lib/authentication/anonymous.js +++ b/packages/node-xmpp-client/test/authentication/anonymous.js @@ -2,7 +2,7 @@ 'use strict' -var Anonymous = require('../../../../lib/authentication/anonymous') +var Anonymous = require('../../lib/authentication/anonymous') var mech = new Anonymous() diff --git a/packages/node-xmpp-client/test/unit/lib/authentication/digestmd5.js b/packages/node-xmpp-client/test/authentication/digestmd5.js similarity index 88% rename from packages/node-xmpp-client/test/unit/lib/authentication/digestmd5.js rename to packages/node-xmpp-client/test/authentication/digestmd5.js index 985c9c512..14b20b20b 100644 --- a/packages/node-xmpp-client/test/unit/lib/authentication/digestmd5.js +++ b/packages/node-xmpp-client/test/authentication/digestmd5.js @@ -2,7 +2,7 @@ 'use strict' -var DigestMD5 = require('../../../../lib/authentication/digestmd5') +var DigestMD5 = require('../../lib/authentication/digestmd5') var mech = new DigestMD5() diff --git a/packages/node-xmpp-client/test/unit/lib/authentication/external.js b/packages/node-xmpp-client/test/authentication/external.js similarity index 89% rename from packages/node-xmpp-client/test/unit/lib/authentication/external.js rename to packages/node-xmpp-client/test/authentication/external.js index 6fe0f7924..3de72c009 100644 --- a/packages/node-xmpp-client/test/unit/lib/authentication/external.js +++ b/packages/node-xmpp-client/test/authentication/external.js @@ -2,7 +2,7 @@ 'use strict' -var External = require('../../../../lib/authentication/external') +var External = require('../../lib/authentication/external') var mech = new External() diff --git a/packages/node-xmpp-client/test/unit/lib/authentication/plain.js b/packages/node-xmpp-client/test/authentication/plain.js similarity index 89% rename from packages/node-xmpp-client/test/unit/lib/authentication/plain.js rename to packages/node-xmpp-client/test/authentication/plain.js index 0844827fe..d6e7e3aa8 100644 --- a/packages/node-xmpp-client/test/unit/lib/authentication/plain.js +++ b/packages/node-xmpp-client/test/authentication/plain.js @@ -2,7 +2,7 @@ 'use strict' -var Plain = require('../../../../lib/authentication/plain') +var Plain = require('../../lib/authentication/plain') var mech = new Plain() diff --git a/packages/node-xmpp-client/test/unit/lib/authentication/xoauth2.js b/packages/node-xmpp-client/test/authentication/xoauth2.js similarity index 92% rename from packages/node-xmpp-client/test/unit/lib/authentication/xoauth2.js rename to packages/node-xmpp-client/test/authentication/xoauth2.js index 0ee07d756..428fede58 100644 --- a/packages/node-xmpp-client/test/unit/lib/authentication/xoauth2.js +++ b/packages/node-xmpp-client/test/authentication/xoauth2.js @@ -2,7 +2,7 @@ 'use strict' -var XOAuth2 = require('../../../../lib/authentication/xoauth2') +var XOAuth2 = require('../../lib/authentication/xoauth2') var mech = new XOAuth2() diff --git a/packages/node-xmpp-client/test/unit/reconnect.js b/packages/node-xmpp-client/test/reconnect.js similarity index 99% rename from packages/node-xmpp-client/test/unit/reconnect.js rename to packages/node-xmpp-client/test/reconnect.js index 14488c417..557e9c5ba 100644 --- a/packages/node-xmpp-client/test/unit/reconnect.js +++ b/packages/node-xmpp-client/test/reconnect.js @@ -2,7 +2,7 @@ 'use strict' -var Client = require('../../index') +var Client = require('../index') var assert = require('assert') var C2SServer = require('node-xmpp-server').C2SServer diff --git a/packages/node-xmpp-client/test/unit/sasl.js b/packages/node-xmpp-client/test/sasl.js similarity index 99% rename from packages/node-xmpp-client/test/unit/sasl.js rename to packages/node-xmpp-client/test/sasl.js index 8874aa25a..c869463e3 100644 --- a/packages/node-xmpp-client/test/unit/sasl.js +++ b/packages/node-xmpp-client/test/sasl.js @@ -7,7 +7,7 @@ var C2SServer = nodexmppserver.C2SServer var Stanza = require('node-xmpp-core').Stanza var net = require('net') var util = require('util') -var Client = require('../../index') +var Client = require('../index') var Plain = nodexmppserver.auth.Plain var XOAuth2 = nodexmppserver.auth.XOAuth2 var DigestMD5 = nodexmppserver.auth.DigestMD5 diff --git a/packages/node-xmpp-client/test/unit/stream.js b/packages/node-xmpp-client/test/stream.js similarity index 97% rename from packages/node-xmpp-client/test/unit/stream.js rename to packages/node-xmpp-client/test/stream.js index 41f153083..5d309fc63 100644 --- a/packages/node-xmpp-client/test/unit/stream.js +++ b/packages/node-xmpp-client/test/stream.js @@ -2,7 +2,7 @@ 'use strict' -var Client = require('../../index') +var Client = require('../index') var net = require('net') var ltx = Client.ltx require('should') diff --git a/packages/node-xmpp-client/test/unit/websocket.js b/packages/node-xmpp-client/test/websocket.js similarity index 96% rename from packages/node-xmpp-client/test/unit/websocket.js rename to packages/node-xmpp-client/test/websocket.js index 48ea44e5b..0ca1315fb 100644 --- a/packages/node-xmpp-client/test/unit/websocket.js +++ b/packages/node-xmpp-client/test/websocket.js @@ -3,7 +3,7 @@ /* global describe, it, beforeEach, afterEach */ var Server = require('node-xmpp-server').C2S.WebSocketServer -var Client = require('../../index') +var Client = require('../index') var PORT = 5290 var server diff --git a/packages/node-xmpp-server/lib/serverStop.js b/packages/node-xmpp-server/lib/serverStop.js index c9a7692c1..a050ea8a8 100644 --- a/packages/node-xmpp-server/lib/serverStop.js +++ b/packages/node-xmpp-server/lib/serverStop.js @@ -10,7 +10,7 @@ module.exports = function (server) { } connections.add(connection) - connection.on('close', function () { + connection.once('close', function () { connections.delete(connection) }) }) diff --git a/packages/node-xmpp-server/test/integration/C2S/WebSocket.js b/packages/node-xmpp-server/test/integration/C2S/WebSocket.js index ae4a2f18d..5bd0c195c 100644 --- a/packages/node-xmpp-server/test/integration/C2S/WebSocket.js +++ b/packages/node-xmpp-server/test/integration/C2S/WebSocket.js @@ -21,7 +21,7 @@ server.on('connection', function (connection) { }) }) -describe.skip('C2S WebSocket server client', function () { +describe('C2S WebSocket server client', function () { describe('server', function () { it('should listen', function (done) { server.listen(done) diff --git a/packages/node-xmpp/test/tcp-test.js b/packages/node-xmpp/test/tcp-test.js index f3d724b41..4fe1e1db1 100644 --- a/packages/node-xmpp/test/tcp-test.js +++ b/packages/node-xmpp/test/tcp-test.js @@ -12,7 +12,7 @@ describe('TCP client/server', function () { var svcl = null beforeEach(function (done) { - sv = new xmpp.server.C2S.TCPServer({port: C2S_PORT}) + sv = new xmpp.server.C2S.TCPServer({port: C2S_PORT, autostart: false}) sv.on('connection', function (conn) { svcl = conn // Always authenticate @@ -25,7 +25,7 @@ describe('TCP client/server', function () { cl = new xmpp.Client({ jid: 'test@localhost', password: 'test', - host: '::1', + host: 'localhost', port: C2S_PORT }) cl.on('online', function () { @@ -56,6 +56,7 @@ describe('TCP client/server', function () { }) cl.send(message) }) + it('should receive a stanza', function (done) { cl.once('stanza', function (stanza) { assert.ok(stanza.is('message'), 'Message stanza') diff --git a/packages/node-xmpp-client/test/browser/bosh/bosh.js b/test/browser/bosh/bosh.js similarity index 99% rename from packages/node-xmpp-client/test/browser/bosh/bosh.js rename to test/browser/bosh/bosh.js index 2e4598931..7a14faf0c 100644 --- a/packages/node-xmpp-client/test/browser/bosh/bosh.js +++ b/test/browser/bosh/bosh.js @@ -2,7 +2,7 @@ 'use strict' -describe.skip('BOSH Browser tests', function () { +describe('BOSH Browser tests', function () { var jid = Math.random().toString(36).substring(7) + '@localhost' var url = 'http://localhost:5280/http-bind' var password = 'password' diff --git a/packages/node-xmpp-client/test/browser/bosh/index.html b/test/browser/bosh/index.html similarity index 100% rename from packages/node-xmpp-client/test/browser/bosh/index.html rename to test/browser/bosh/index.html diff --git a/packages/node-xmpp-client/test/helper.js b/test/helper.js similarity index 100% rename from packages/node-xmpp-client/test/helper.js rename to test/helper.js diff --git a/packages/node-xmpp-client/test/integration/bosh.js b/test/integration/client-bosh.js similarity index 98% rename from packages/node-xmpp-client/test/integration/bosh.js rename to test/integration/client-bosh.js index c24743b61..b06df82bd 100644 --- a/packages/node-xmpp-client/test/integration/bosh.js +++ b/test/integration/client-bosh.js @@ -2,13 +2,13 @@ 'use strict' -var Client = require('../../index') +var Client = require('../../packages/node-xmpp-client') var helper = require('../helper') -var Element = require('node-xmpp-core').Element +var Element = Client.Element require('should') -describe.skip('BOSH connections', function () { +describe('BOSH connections', function () { var jid = Math.random().toString(36).substring(7) + '@localhost' var password = 'password' var client = null diff --git a/packages/node-xmpp-client/test/integration/socket.js b/test/integration/client-tcp.js similarity index 97% rename from packages/node-xmpp-client/test/integration/socket.js rename to test/integration/client-tcp.js index 5308a2702..d8f61d8cc 100644 --- a/packages/node-xmpp-client/test/integration/socket.js +++ b/test/integration/client-tcp.js @@ -2,13 +2,13 @@ 'use strict' -var Client = require('../../index') +var Client = require('../../packages/node-xmpp-client') var helper = require('../helper') -var Stanza = require('node-xmpp-core').Stanza +var Stanza = Client.Stanza require('should') -describe.skip('Socket connections', function () { +describe('Socket connections', function () { var jid = Math.random().toString(36).substring(7) + '@localhost' var password = 'password' var client = null diff --git a/packages/node-xmpp-client/test/integration/websocket.js b/test/integration/client-websocket.js similarity index 98% rename from packages/node-xmpp-client/test/integration/websocket.js rename to test/integration/client-websocket.js index 515818f01..56bcd9395 100644 --- a/packages/node-xmpp-client/test/integration/websocket.js +++ b/test/integration/client-websocket.js @@ -2,9 +2,9 @@ 'use strict' -var Client = require('../../index') +var Client = require('../../packages/node-xmpp-client') var helper = require('../helper') -var Stanza = require('node-xmpp-core').Stanza +var Stanza = Client.Stanza require('should') diff --git a/packages/node-xmpp-client/test/resources/mod_websocket.lua b/test/resources/mod_websocket.lua similarity index 100% rename from packages/node-xmpp-client/test/resources/mod_websocket.lua rename to test/resources/mod_websocket.lua diff --git a/packages/node-xmpp-client/test/resources/prosody.cfg.lua b/test/resources/prosody.cfg.lua similarity index 100% rename from packages/node-xmpp-client/test/resources/prosody.cfg.lua rename to test/resources/prosody.cfg.lua