From 4bc2b7227ff5902cb1427f0c2c7d1f2820e01f3e Mon Sep 17 00:00:00 2001 From: JC Brand Date: Sat, 24 Aug 2013 03:10:06 +0200 Subject: [PATCH] Fixed tests initialization (broken during recent refactor) --- converse.js | 46 +++++++++++++++++++++------------------ tests_main.js | 59 +++++++++++++++++++++++++-------------------------- 2 files changed, 54 insertions(+), 51 deletions(-) diff --git a/converse.js b/converse.js index e3beac1be..ce1e29e29 100644 --- a/converse.js +++ b/converse.js @@ -41,7 +41,7 @@ } }(this, function ($, _, console) { var converse = {}; - converse.initialize = function (settings) { + converse.initialize = function (settings, callback) { // Default values var converse = this; this.animate = true; @@ -54,6 +54,8 @@ this.prebind = false; this.show_controlbox_by_default = false; this.xhr_user_search = false; + this.testing = false; // Exposes sensitive data for testing. Never set to true in production systems! + this.callback = callback || function () {}; // Allow only the whitelisted settings attributes to be overwritten, // nothing else. @@ -68,7 +70,9 @@ 'i18n', 'prebind', 'show_controlbox_by_default', - 'xhr_user_search' + 'xhr_user_search', + 'connection', + 'testing' ]; _.extend(this, _.pick(settings, whitelist)); @@ -216,10 +220,10 @@ .t('1'); converse.connection.sendIQ(iq, - callback, - function () { - converse.log('Error while retrieving collections'); - }); + callback, + function () { + converse.log('Error while retrieving collections'); + }); }; this.collections.getLastMessages = function (jid, callback) { @@ -2635,7 +2639,7 @@ this.rosterview = new this.RosterView({'model':this.roster}); } - this.onConnected = function (callback) { + this.onConnected = function () { if (this.debug) { this.connection.xmlInput = function (body) { console.log(body); }; this.connection.xmlOutput = function (body) { console.log(body); }; @@ -2674,8 +2678,10 @@ this.windowState = e.type; },this)); this.giveFeedback(__('Online Contacts')); - if (callback) { - callback(this); + if (this.testing) { + this.callback(this); + } else { + this.callback(); } }, this)); }; @@ -2689,23 +2695,21 @@ e.preventDefault(); this.toggleControlBox(); }, this) ); - if (this.prebind) { - if (!this.connection) { - if ((!this.jid) || (!this.sid) || (!this.rid) || (!this.bosh_service_url)) { - this.log('If you set prebind=true, you MUST supply JID, RID and SID values'); - return; - } - this.connection = new Strophe.Connection(this.bosh_service_url); - this.connection.attach(this.jid, this.sid, this.rid, this.onConnect); - } else { - this.onConnected(); + if ((this.prebind) && (!this.connection)) { + if ((!this.jid) || (!this.sid) || (!this.rid) || (!this.bosh_service_url)) { + this.log('If you set prebind=true, you MUST supply JID, RID and SID values'); + return; } + this.connection = new Strophe.Connection(this.bosh_service_url); + this.connection.attach(this.jid, this.sid, this.rid, this.onConnect); + } else if (this.connection) { + this.onConnected(); } if (this.show_controlbox_by_default) { this.showControlBox(); } }; return { - 'initialize': function (settings) { - converse.initialize(settings); + 'initialize': function (settings, callback) { + converse.initialize(settings, callback); } }; })); diff --git a/tests_main.js b/tests_main.js index a8cbac541..211193a87 100644 --- a/tests_main.js +++ b/tests_main.js @@ -68,36 +68,35 @@ require([ prebind: false, xhr_user_search: false, auto_subscribe: false, - animate: false + animate: false, + connection: mock_connection, + testing: true + }, function (converse) { + window.converse = converse; + require([ + "jasmine-console-reporter", + "jasmine-junit-reporter", + "spec/MainSpec", + "spec/ChatRoomSpec" + ], function () { + // Jasmine stuff + var jasmineEnv = jasmine.getEnv(); + if (/PhantomJS/.test(navigator.userAgent)) { + jasmineEnv.addReporter(new jasmine.TrivialReporter()); + jasmineEnv.addReporter(new jasmine.JUnitXmlReporter('./test-reports/')); + jasmineEnv.addReporter(new jasmine.ConsoleReporter()); + jasmineEnv.updateInterval = 0; + } else { + var htmlReporter = new jasmine.HtmlReporter(); + jasmineEnv.addReporter(htmlReporter); + jasmineEnv.addReporter(new jasmine.ConsoleReporter()); + jasmineEnv.specFilter = function(spec) { + return htmlReporter.specFilter(spec); + }; + jasmineEnv.updateInterval = 200; + } + jasmineEnv.execute(); + }); }); - converse.onConnected( - function (converse) { - window.converse = converse; - require([ - "jasmine-console-reporter", - "jasmine-junit-reporter", - "spec/MainSpec", - "spec/ChatRoomSpec" - ], function () { - // Jasmine stuff - var jasmineEnv = jasmine.getEnv(); - if (/PhantomJS/.test(navigator.userAgent)) { - jasmineEnv.addReporter(new jasmine.TrivialReporter()); - jasmineEnv.addReporter(new jasmine.JUnitXmlReporter('./test-reports/')); - jasmineEnv.addReporter(new jasmine.ConsoleReporter()); - jasmineEnv.updateInterval = 0; - } else { - var htmlReporter = new jasmine.HtmlReporter(); - jasmineEnv.addReporter(htmlReporter); - jasmineEnv.addReporter(new jasmine.ConsoleReporter()); - jasmineEnv.specFilter = function(spec) { - return htmlReporter.specFilter(spec); - }; - jasmineEnv.updateInterval = 200; - } - jasmineEnv.execute(); - }); - } - ); } );