// Extra test dependencies config.paths.mock = "tests/mock"; config.paths.test_utils = "tests/utils"; config.paths.sinon = "components/sinon/lib/sinon"; config.paths.jasmine = "components/jasmine/lib/jasmine-core/jasmine"; config.paths["jasmine-html"] = "components/jasmine/lib/jasmine-core/jasmine-html"; config.paths["console-runner"] = "node_modules/phantom-jasmine/lib/console-runner"; config.shim['jasmine-html'] = { deps: ['jasmine'], exports: 'jasmine' }; require.config(config); // 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"); } var aArgs = Array.prototype.slice.call(arguments, 1), fToBind = this, 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; }; } require([ "jquery", "converse", "mock", "jasmine-html", "sinon" ], function($, converse, mock, jasmine, sinon) { // Set up converse.js window.sinon = sinon; window.converse_api = converse; window.localStorage.clear(); window.sessionStorage.clear(); converse.initialize({ i18n: window.locales.en, auto_subscribe: false, bosh_service_url: 'localhost', connection: mock.mock_connection, animate: false, no_trimming: true, auto_login: true, jid: 'dummy@localhost', password: 'secret', debug: false }, function (converse) { window.converse = converse; window.crypto = { getRandomValues: function (buf) { var i; for (i=0, len=buf.length; i