2013-12-30 20:27:57 +01:00
|
|
|
// Extra test dependencies
|
|
|
|
config.paths.mock = "tests/mock";
|
2014-08-08 22:06:01 +02:00
|
|
|
config.paths.test_utils = "tests/utils";
|
2016-03-28 12:49:52 +02:00
|
|
|
config.paths.sinon = "components/sinon/lib/sinon";
|
2013-12-30 20:27:57 +01:00
|
|
|
config.paths.jasmine = "components/jasmine/lib/jasmine-core/jasmine";
|
|
|
|
config.paths["jasmine-html"] = "components/jasmine/lib/jasmine-core/jasmine-html";
|
2014-04-18 17:39:45 +02:00
|
|
|
config.paths["console-runner"] = "node_modules/phantom-jasmine/lib/console-runner";
|
2013-12-30 20:27:57 +01:00
|
|
|
config.shim['jasmine-html'] = {
|
|
|
|
deps: ['jasmine'],
|
|
|
|
exports: 'jasmine'
|
|
|
|
};
|
|
|
|
require.config(config);
|
2013-07-28 21:20:36 +02:00
|
|
|
|
2013-10-03 12:35:54 +02:00
|
|
|
// Polyfill 'bind' which is not available in phantomjs < 2.0
|
|
|
|
if (!Function.prototype.bind) {
|
|
|
|
Function.prototype.bind = function (oThis) {
|
|
|
|
if (typeof this !== "function") {
|
|
|
|
// closest thing possible to the ECMAScript 5 internal IsCallable function
|
|
|
|
throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
|
|
|
|
}
|
2014-04-18 17:39:45 +02:00
|
|
|
var aArgs = Array.prototype.slice.call(arguments, 1),
|
|
|
|
fToBind = this,
|
2013-10-03 12:35:54 +02:00
|
|
|
fNOP = function () {},
|
|
|
|
fBound = function () {
|
|
|
|
return fToBind.apply(this instanceof fNOP && oThis ? this : oThis,
|
|
|
|
aArgs.concat(Array.prototype.slice.call(arguments)));
|
|
|
|
};
|
|
|
|
fNOP.prototype = this.prototype;
|
|
|
|
fBound.prototype = new fNOP();
|
|
|
|
return fBound;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2013-07-28 21:20:36 +02:00
|
|
|
require([
|
|
|
|
"jquery",
|
|
|
|
"converse",
|
|
|
|
"mock",
|
2016-03-28 12:49:52 +02:00
|
|
|
"jasmine-html",
|
|
|
|
"sinon"
|
|
|
|
], function($, converse, mock, jasmine, sinon) {
|
2013-08-05 09:25:29 +02:00
|
|
|
// Set up converse.js
|
2016-03-28 12:49:52 +02:00
|
|
|
window.sinon = sinon;
|
2014-02-12 11:19:12 +01:00
|
|
|
window.converse_api = converse;
|
2013-08-05 09:25:29 +02:00
|
|
|
window.localStorage.clear();
|
2014-06-30 19:55:26 +02:00
|
|
|
window.sessionStorage.clear();
|
2014-09-06 12:25:37 +02:00
|
|
|
|
2013-08-05 09:25:29 +02:00
|
|
|
converse.initialize({
|
2015-10-12 16:40:49 +02:00
|
|
|
i18n: window.locales.en,
|
2013-08-05 09:25:29 +02:00
|
|
|
auto_subscribe: false,
|
2016-04-13 17:11:04 +02:00
|
|
|
bosh_service_url: 'localhost',
|
2013-11-02 09:56:20 +01:00
|
|
|
connection: mock.mock_connection,
|
2016-04-13 17:11:04 +02:00
|
|
|
animate: false,
|
2014-10-24 18:58:42 +02:00
|
|
|
no_trimming: true,
|
2016-04-13 17:11:04 +02:00
|
|
|
auto_login: true,
|
|
|
|
jid: 'dummy@localhost',
|
|
|
|
password: 'secret',
|
2015-10-27 10:02:19 +01:00
|
|
|
debug: false
|
2013-08-24 03:10:06 +02:00
|
|
|
}, function (converse) {
|
|
|
|
window.converse = converse;
|
2014-02-12 06:12:00 +01:00
|
|
|
window.crypto = {
|
|
|
|
getRandomValues: function (buf) {
|
|
|
|
var i;
|
|
|
|
for (i=0, len=buf.length; i<len; i++) {
|
|
|
|
buf[i] = Math.floor(Math.random()*256);
|
2014-04-18 17:39:45 +02:00
|
|
|
}
|
2014-02-12 06:12:00 +01:00
|
|
|
}
|
|
|
|
};
|
2013-08-24 03:10:06 +02:00
|
|
|
require([
|
2014-04-18 17:39:45 +02:00
|
|
|
"console-runner",
|
2013-12-16 18:42:46 +01:00
|
|
|
"spec/converse",
|
2016-04-13 17:11:04 +02:00
|
|
|
"spec/headline",
|
2015-07-17 20:33:31 +02:00
|
|
|
"spec/disco",
|
2015-04-08 10:35:14 +02:00
|
|
|
"spec/protocol",
|
2015-07-10 15:07:53 +02:00
|
|
|
"spec/mam",
|
2014-02-12 06:12:00 +01:00
|
|
|
"spec/otr",
|
2014-02-12 01:02:25 +01:00
|
|
|
"spec/eventemitter",
|
2013-12-16 18:42:46 +01:00
|
|
|
"spec/controlbox",
|
|
|
|
"spec/chatbox",
|
2014-06-21 23:01:56 +02:00
|
|
|
"spec/chatroom",
|
2014-10-24 18:58:42 +02:00
|
|
|
"spec/minchats",
|
2016-03-08 11:42:52 +01:00
|
|
|
"spec/notification",
|
2014-11-27 10:42:27 +01:00
|
|
|
"spec/profiling",
|
2016-02-19 14:02:42 +01:00
|
|
|
"spec/ping",
|
2015-01-23 16:06:10 +01:00
|
|
|
"spec/register",
|
2016-04-13 17:11:04 +02:00
|
|
|
"spec/xmppstatus",
|
2013-08-24 03:10:06 +02:00
|
|
|
], function () {
|
2013-11-03 10:38:48 +01:00
|
|
|
// Make sure this callback is only called once.
|
|
|
|
delete converse.callback;
|
2014-05-06 09:56:04 +02:00
|
|
|
// Stub the trimChat method. It causes havoc when running with
|
|
|
|
// phantomJS.
|
2014-06-14 22:03:04 +02:00
|
|
|
converse.ChatBoxViews.prototype.trimChat = function () {};
|
2013-11-03 10:38:48 +01:00
|
|
|
|
2013-08-24 03:10:06 +02:00
|
|
|
// Jasmine stuff
|
|
|
|
var jasmineEnv = jasmine.getEnv();
|
2014-04-18 17:39:45 +02:00
|
|
|
var reporter;
|
2013-08-24 03:10:06 +02:00
|
|
|
if (/PhantomJS/.test(navigator.userAgent)) {
|
2014-04-18 17:39:45 +02:00
|
|
|
reporter = new jasmine.ConsoleReporter();
|
|
|
|
window.console_reporter = reporter;
|
|
|
|
jasmineEnv.addReporter(reporter);
|
2013-08-24 03:10:06 +02:00
|
|
|
jasmineEnv.updateInterval = 0;
|
|
|
|
} else {
|
2014-04-18 17:39:45 +02:00
|
|
|
reporter = new jasmine.HtmlReporter();
|
|
|
|
jasmineEnv.addReporter(reporter);
|
2013-08-24 03:10:06 +02:00
|
|
|
jasmineEnv.specFilter = function(spec) {
|
2014-04-18 17:39:45 +02:00
|
|
|
return reporter.specFilter(spec);
|
2013-08-24 03:10:06 +02:00
|
|
|
};
|
2014-04-18 17:39:45 +02:00
|
|
|
jasmineEnv.updateInterval = 0;
|
2013-08-24 03:10:06 +02:00
|
|
|
}
|
|
|
|
jasmineEnv.execute();
|
|
|
|
});
|
2013-08-05 09:25:29 +02:00
|
|
|
});
|
2013-07-27 10:51:55 +02:00
|
|
|
}
|
2013-08-05 09:25:29 +02:00
|
|
|
);
|