Explicitly log out after each test.

This commit is contained in:
JC Brand 2019-04-22 14:04:21 +02:00
parent cf32119c53
commit f8fcdc7eb8
5 changed files with 77 additions and 79 deletions

52
dist/converse.js vendored
View File

@ -32809,6 +32809,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
//# sourceMappingURL=pluggable.js.map //# sourceMappingURL=pluggable.js.map
/***/ }), /***/ }),
/***/ "./node_modules/process/browser.js": /***/ "./node_modules/process/browser.js":
@ -49211,6 +49212,8 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins
_converse.api.listen.on('clearSession', () => { _converse.api.listen.on('clearSession', () => {
if (!_.isUndefined(_converse.bookmarks)) { if (!_.isUndefined(_converse.bookmarks)) {
_converse.bookmarks.reset();
_converse.bookmarks.browserStorage._clear(); _converse.bookmarks.browserStorage._clear();
window.sessionStorage.removeItem(_converse.bookmarks.fetched_flag); window.sessionStorage.removeItem(_converse.bookmarks.fetched_flag);
@ -64103,6 +64106,10 @@ function addPromise(promise) {
_converse.promises[promise] = _converse_headless_utils_core__WEBPACK_IMPORTED_MODULE_11__["default"].getResolveablePromise(); _converse.promises[promise] = _converse_headless_utils_core__WEBPACK_IMPORTED_MODULE_11__["default"].getResolveablePromise();
} }
function isTestEnv() {
return _lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.get(_converse.connection, 'service') === 'jasmine tests';
}
_converse.isUniView = function () { _converse.isUniView = function () {
/* We distinguish between UniView and MultiView instances. /* We distinguish between UniView and MultiView instances.
* *
@ -64264,35 +64271,16 @@ function cleanup() {
// out or disconnecting in the previous session. // out or disconnecting in the previous session.
// This happens in tests. We therefore first clean up. // This happens in tests. We therefore first clean up.
Backbone.history.stop(); Backbone.history.stop();
if (_converse.chatboxviews) {
_converse.chatboxviews.closeAllChatBoxes();
}
unregisterGlobalEventHandlers(); unregisterGlobalEventHandlers();
window.localStorage.clear();
window.sessionStorage.clear();
if (_converse.bookmarks) {
_converse.bookmarks.reset();
}
delete _converse.controlboxtoggle; delete _converse.controlboxtoggle;
if (_converse.chatboxviews) { if (_converse.chatboxviews) {
delete _converse.chatboxviews; delete _converse.chatboxviews;
} }
_converse.connection.reset();
_converse.tearDown();
_converse.stopListening(); _converse.stopListening();
_converse.off(); _converse.off();
delete _converse.config;
initClientConfig();
} }
_converse.initialize = async function (settings, callback) { _converse.initialize = async function (settings, callback) {
@ -64514,7 +64502,7 @@ _converse.initialize = async function (settings, callback) {
'leading': true 'leading': true
}); });
this.disconnect = function () { this.finishDisconnection = function () {
_converse.log('DISCONNECTED'); _converse.log('DISCONNECTED');
delete _converse.connection.reconnecting; delete _converse.connection.reconnecting;
@ -64551,10 +64539,10 @@ _converse.initialize = async function (settings, callback) {
return _converse.reconnect(); return _converse.reconnect();
} else { } else {
return _converse.disconnect(); return _converse.finishDisconnection();
} }
} else if (_converse.disconnection_cause === _converse.LOGOUT || !_lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.isUndefined(reason) && reason === _lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.get(strophe_js__WEBPACK_IMPORTED_MODULE_0__["Strophe"], 'ErrorCondition.NO_AUTH_MECH') || reason === "host-unknown" || reason === "remote-connection-failed" || !_converse.auto_reconnect) { } else if (_converse.disconnection_cause === _converse.LOGOUT || !_lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.isUndefined(reason) && reason === _lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.get(strophe_js__WEBPACK_IMPORTED_MODULE_0__["Strophe"], 'ErrorCondition.NO_AUTH_MECH') || reason === "host-unknown" || reason === "remote-connection-failed" || !_converse.auto_reconnect) {
return _converse.disconnect(); return _converse.finishDisconnection();
} }
/** /**
* Triggered when the connection has dropped, but Converse will attempt * Triggered when the connection has dropped, but Converse will attempt
@ -64719,11 +64707,13 @@ _converse.initialize = async function (settings, callback) {
}; };
this.clearSession = function () { this.clearSession = function () {
if (!_converse.config.get('trusted')) { if (!_converse.config.get('trusted') || isTestEnv()) {
window.localStorage.clear(); window.localStorage.clear();
window.sessionStorage.clear(); window.sessionStorage.clear();
} else if (!_lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.isUndefined(this.session) && this.session.browserStorage) { } else {
this.session.browserStorage._clear(); _lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.get(_converse, 'session.browserStorage', {
'_clear': _lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.noop
})._clear();
} }
/** /**
* Triggered once the session information has been cleared, * Triggered once the session information has been cleared,
@ -65161,7 +65151,7 @@ _converse.initialize = async function (settings, callback) {
if (!password) { if (!password) {
if (this.auto_login) { if (this.auto_login) {
throw new Error("initConnection: If you use auto_login and " + "authentication='login' then you also need to provide a password."); throw new Error("autoLogin: If you use auto_login and " + "authentication='login' then you also need to provide a password.");
} }
_converse.setDisconnectionCause(strophe_js__WEBPACK_IMPORTED_MODULE_0__["Strophe"].Status.AUTHFAIL, undefined, true); _converse.setDisconnectionCause(strophe_js__WEBPACK_IMPORTED_MODULE_0__["Strophe"].Status.AUTHFAIL, undefined, true);
@ -65223,7 +65213,7 @@ _converse.initialize = async function (settings, callback) {
this.connection = settings.connection; this.connection = settings.connection;
} }
if (_lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.get(_converse.connection, 'service') === 'jasmine tests') { if (isTestEnv()) {
finishInitialization(); finishInitialization();
return _converse; return _converse;
} else if (!_lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.isUndefined(_i18n__WEBPACK_IMPORTED_MODULE_6__["default"])) { } else if (!_lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.isUndefined(_i18n__WEBPACK_IMPORTED_MODULE_6__["default"])) {
@ -65280,7 +65270,13 @@ _converse.api = {
* @memberOf _converse.api.connection * @memberOf _converse.api.connection
*/ */
'disconnect'() { 'disconnect'() {
_converse.connection.disconnect(); if (_converse.connection) {
_converse.connection.disconnect();
} else {
_converse.tearDown();
_converse.clearSession();
}
} }
}, },

View File

@ -564,6 +564,7 @@ converse.plugins.add('converse-bookmarks', {
_converse.api.listen.on('clearSession', () => { _converse.api.listen.on('clearSession', () => {
if (!_.isUndefined(_converse.bookmarks)) { if (!_.isUndefined(_converse.bookmarks)) {
_converse.bookmarks.reset();
_converse.bookmarks.browserStorage._clear(); _converse.bookmarks.browserStorage._clear();
window.sessionStorage.removeItem(_converse.bookmarks.fetched_flag); window.sessionStorage.removeItem(_converse.bookmarks.fetched_flag);
} }

View File

@ -307,6 +307,11 @@ function addPromise (promise) {
_converse.promises[promise] = u.getResolveablePromise(); _converse.promises[promise] = u.getResolveablePromise();
} }
function isTestEnv () {
return _.get(_converse.connection, 'service') === 'jasmine tests';
}
_converse.isUniView = function () { _converse.isUniView = function () {
/* We distinguish between UniView and MultiView instances. /* We distinguish between UniView and MultiView instances.
* *
@ -463,26 +468,13 @@ function cleanup () {
// out or disconnecting in the previous session. // out or disconnecting in the previous session.
// This happens in tests. We therefore first clean up. // This happens in tests. We therefore first clean up.
Backbone.history.stop(); Backbone.history.stop();
if (_converse.chatboxviews) {
_converse.chatboxviews.closeAllChatBoxes();
}
unregisterGlobalEventHandlers(); unregisterGlobalEventHandlers();
window.localStorage.clear();
window.sessionStorage.clear();
if (_converse.bookmarks) {
_converse.bookmarks.reset();
}
delete _converse.controlboxtoggle; delete _converse.controlboxtoggle;
if (_converse.chatboxviews) { if (_converse.chatboxviews) {
delete _converse.chatboxviews; delete _converse.chatboxviews;
} }
_converse.connection.reset();
_converse.tearDown();
_converse.stopListening(); _converse.stopListening();
_converse.off(); _converse.off();
delete _converse.config;
initClientConfig();
} }
@ -677,7 +669,7 @@ _converse.initialize = async function (settings, callback) {
_converse.logIn(null, true); _converse.logIn(null, true);
}, 2000, {'leading': true}); }, 2000, {'leading': true});
this.disconnect = function () { this.finishDisconnection = function () {
_converse.log('DISCONNECTED'); _converse.log('DISCONNECTED');
delete _converse.connection.reconnecting; delete _converse.connection.reconnecting;
_converse.connection.reset(); _converse.connection.reset();
@ -707,14 +699,14 @@ _converse.initialize = async function (settings, callback) {
_converse.api.trigger('will-reconnect'); _converse.api.trigger('will-reconnect');
return _converse.reconnect(); return _converse.reconnect();
} else { } else {
return _converse.disconnect(); return _converse.finishDisconnection();
} }
} else if (_converse.disconnection_cause === _converse.LOGOUT || } else if (_converse.disconnection_cause === _converse.LOGOUT ||
(!_.isUndefined(reason) && reason === _.get(Strophe, 'ErrorCondition.NO_AUTH_MECH')) || (!_.isUndefined(reason) && reason === _.get(Strophe, 'ErrorCondition.NO_AUTH_MECH')) ||
reason === "host-unknown" || reason === "host-unknown" ||
reason === "remote-connection-failed" || reason === "remote-connection-failed" ||
!_converse.auto_reconnect) { !_converse.auto_reconnect) {
return _converse.disconnect(); return _converse.finishDisconnection();
} }
/** /**
* Triggered when the connection has dropped, but Converse will attempt * Triggered when the connection has dropped, but Converse will attempt
@ -854,11 +846,11 @@ _converse.initialize = async function (settings, callback) {
}; };
this.clearSession = function () { this.clearSession = function () {
if (!_converse.config.get('trusted')) { if (!_converse.config.get('trusted') || isTestEnv()) {
window.localStorage.clear(); window.localStorage.clear();
window.sessionStorage.clear(); window.sessionStorage.clear();
} else if (!_.isUndefined(this.session) && this.session.browserStorage) { } else {
this.session.browserStorage._clear(); _.get(_converse, 'session.browserStorage', {'_clear': _.noop})._clear();
} }
/** /**
* Triggered once the session information has been cleared, * Triggered once the session information has been cleared,
@ -1267,7 +1259,7 @@ _converse.initialize = async function (settings, callback) {
const password = _.isNil(credentials) ? (_converse.connection.pass || this.password) : credentials.password; const password = _.isNil(credentials) ? (_converse.connection.pass || this.password) : credentials.password;
if (!password) { if (!password) {
if (this.auto_login) { if (this.auto_login) {
throw new Error("initConnection: If you use auto_login and "+ throw new Error("autoLogin: If you use auto_login and "+
"authentication='login' then you also need to provide a password."); "authentication='login' then you also need to provide a password.");
} }
_converse.setDisconnectionCause(Strophe.Status.AUTHFAIL, undefined, true); _converse.setDisconnectionCause(Strophe.Status.AUTHFAIL, undefined, true);
@ -1320,7 +1312,7 @@ _converse.initialize = async function (settings, callback) {
this.connection = settings.connection; this.connection = settings.connection;
} }
if (_.get(_converse.connection, 'service') === 'jasmine tests') { if (isTestEnv()) {
finishInitialization(); finishInitialization();
return _converse; return _converse;
} else if (!_.isUndefined(i18n)) { } else if (!_.isUndefined(i18n)) {
@ -1371,7 +1363,12 @@ _converse.api = {
* @memberOf _converse.api.connection * @memberOf _converse.api.connection
*/ */
'disconnect' () { 'disconnect' () {
_converse.connection.disconnect(); if (_converse.connection) {
_converse.connection.disconnect();
} else {
_converse.tearDown();
_converse.clearSession();
}
}, },
}, },

View File

@ -30205,6 +30205,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
//# sourceMappingURL=pluggable.js.map //# sourceMappingURL=pluggable.js.map
/***/ }), /***/ }),
/***/ "./node_modules/process/browser.js": /***/ "./node_modules/process/browser.js":
@ -41946,6 +41947,10 @@ function addPromise(promise) {
_converse.promises[promise] = _converse_headless_utils_core__WEBPACK_IMPORTED_MODULE_11__["default"].getResolveablePromise(); _converse.promises[promise] = _converse_headless_utils_core__WEBPACK_IMPORTED_MODULE_11__["default"].getResolveablePromise();
} }
function isTestEnv() {
return _lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.get(_converse.connection, 'service') === 'jasmine tests';
}
_converse.isUniView = function () { _converse.isUniView = function () {
/* We distinguish between UniView and MultiView instances. /* We distinguish between UniView and MultiView instances.
* *
@ -42107,35 +42112,16 @@ function cleanup() {
// out or disconnecting in the previous session. // out or disconnecting in the previous session.
// This happens in tests. We therefore first clean up. // This happens in tests. We therefore first clean up.
Backbone.history.stop(); Backbone.history.stop();
if (_converse.chatboxviews) {
_converse.chatboxviews.closeAllChatBoxes();
}
unregisterGlobalEventHandlers(); unregisterGlobalEventHandlers();
window.localStorage.clear();
window.sessionStorage.clear();
if (_converse.bookmarks) {
_converse.bookmarks.reset();
}
delete _converse.controlboxtoggle; delete _converse.controlboxtoggle;
if (_converse.chatboxviews) { if (_converse.chatboxviews) {
delete _converse.chatboxviews; delete _converse.chatboxviews;
} }
_converse.connection.reset();
_converse.tearDown();
_converse.stopListening(); _converse.stopListening();
_converse.off(); _converse.off();
delete _converse.config;
initClientConfig();
} }
_converse.initialize = async function (settings, callback) { _converse.initialize = async function (settings, callback) {
@ -42357,7 +42343,7 @@ _converse.initialize = async function (settings, callback) {
'leading': true 'leading': true
}); });
this.disconnect = function () { this.finishDisconnection = function () {
_converse.log('DISCONNECTED'); _converse.log('DISCONNECTED');
delete _converse.connection.reconnecting; delete _converse.connection.reconnecting;
@ -42394,10 +42380,10 @@ _converse.initialize = async function (settings, callback) {
return _converse.reconnect(); return _converse.reconnect();
} else { } else {
return _converse.disconnect(); return _converse.finishDisconnection();
} }
} else if (_converse.disconnection_cause === _converse.LOGOUT || !_lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.isUndefined(reason) && reason === _lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.get(strophe_js__WEBPACK_IMPORTED_MODULE_0__["Strophe"], 'ErrorCondition.NO_AUTH_MECH') || reason === "host-unknown" || reason === "remote-connection-failed" || !_converse.auto_reconnect) { } else if (_converse.disconnection_cause === _converse.LOGOUT || !_lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.isUndefined(reason) && reason === _lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.get(strophe_js__WEBPACK_IMPORTED_MODULE_0__["Strophe"], 'ErrorCondition.NO_AUTH_MECH') || reason === "host-unknown" || reason === "remote-connection-failed" || !_converse.auto_reconnect) {
return _converse.disconnect(); return _converse.finishDisconnection();
} }
/** /**
* Triggered when the connection has dropped, but Converse will attempt * Triggered when the connection has dropped, but Converse will attempt
@ -42562,11 +42548,13 @@ _converse.initialize = async function (settings, callback) {
}; };
this.clearSession = function () { this.clearSession = function () {
if (!_converse.config.get('trusted')) { if (!_converse.config.get('trusted') || isTestEnv()) {
window.localStorage.clear(); window.localStorage.clear();
window.sessionStorage.clear(); window.sessionStorage.clear();
} else if (!_lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.isUndefined(this.session) && this.session.browserStorage) { } else {
this.session.browserStorage._clear(); _lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.get(_converse, 'session.browserStorage', {
'_clear': _lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.noop
})._clear();
} }
/** /**
* Triggered once the session information has been cleared, * Triggered once the session information has been cleared,
@ -43004,7 +42992,7 @@ _converse.initialize = async function (settings, callback) {
if (!password) { if (!password) {
if (this.auto_login) { if (this.auto_login) {
throw new Error("initConnection: If you use auto_login and " + "authentication='login' then you also need to provide a password."); throw new Error("autoLogin: If you use auto_login and " + "authentication='login' then you also need to provide a password.");
} }
_converse.setDisconnectionCause(strophe_js__WEBPACK_IMPORTED_MODULE_0__["Strophe"].Status.AUTHFAIL, undefined, true); _converse.setDisconnectionCause(strophe_js__WEBPACK_IMPORTED_MODULE_0__["Strophe"].Status.AUTHFAIL, undefined, true);
@ -43066,7 +43054,7 @@ _converse.initialize = async function (settings, callback) {
this.connection = settings.connection; this.connection = settings.connection;
} }
if (_lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.get(_converse.connection, 'service') === 'jasmine tests') { if (isTestEnv()) {
finishInitialization(); finishInitialization();
return _converse; return _converse;
} else if (!_lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.isUndefined(_i18n__WEBPACK_IMPORTED_MODULE_6__["default"])) { } else if (!_lodash_noconflict__WEBPACK_IMPORTED_MODULE_4___default.a.isUndefined(_i18n__WEBPACK_IMPORTED_MODULE_6__["default"])) {
@ -43123,7 +43111,13 @@ _converse.api = {
* @memberOf _converse.api.connection * @memberOf _converse.api.connection
*/ */
'disconnect'() { 'disconnect'() {
_converse.connection.disconnect(); if (_converse.connection) {
_converse.connection.disconnect();
} else {
_converse.tearDown();
_converse.clearSession();
}
} }
}, },

View File

@ -154,6 +154,12 @@
c.jid = 'dummy@localhost/resource'; c.jid = 'dummy@localhost/resource';
c._changeConnectStatus(Strophe.Status.CONNECTED); c._changeConnectStatus(Strophe.Status.CONNECTED);
}; };
c._proto._disconnect = function () {
c._onDisconnectTimeout();
}
c._proto._onDisconnectTimeout = _.noop;
return c; return c;
}; };
}(); }();
@ -241,9 +247,13 @@
} }
return async done => { return async done => {
const _converse = await initConverse(settings, spies); const _converse = await initConverse(settings, spies);
function _done () {
_converse.api.user.logout();
done();
}
const promises = _.map(promise_names, _converse.api.waitUntil); const promises = _.map(promise_names, _converse.api.waitUntil);
await Promise.all(promises); await Promise.all(promises);
func(done, _converse); func(_done, _converse);
} }
}; };
return mock; return mock;