2013-12-16 19:00:21 +01:00
|
|
|
(function (root, factory) {
|
|
|
|
define([
|
2014-10-15 19:16:02 +02:00
|
|
|
"jquery",
|
2013-12-16 19:00:21 +01:00
|
|
|
"mock",
|
2014-08-08 22:06:01 +02:00
|
|
|
"test_utils"
|
2014-10-15 19:16:02 +02:00
|
|
|
], function ($, mock, test_utils) {
|
|
|
|
return factory($, mock, test_utils);
|
2013-12-16 19:00:21 +01:00
|
|
|
}
|
|
|
|
);
|
2014-10-15 19:16:02 +02:00
|
|
|
} (this, function ($, mock, test_utils) {
|
2015-02-01 16:15:34 +01:00
|
|
|
var b64_sha1 = converse_api.env.b64_sha1;
|
|
|
|
|
2014-08-08 22:06:01 +02:00
|
|
|
return describe("The OTR module", $.proxy(function(mock, test_utils) {
|
2013-12-18 15:30:19 +01:00
|
|
|
|
2014-02-12 01:02:45 +01:00
|
|
|
beforeEach($.proxy(function () {
|
|
|
|
window.localStorage.clear();
|
|
|
|
window.sessionStorage.clear();
|
|
|
|
}, converse));
|
|
|
|
|
|
|
|
it("can store a session passphrase in session storage", $.proxy(function () {
|
|
|
|
var pp;
|
|
|
|
// With no prebind, the user's XMPP password is used and nothing is
|
|
|
|
// stored in session storage.
|
2015-03-22 12:52:54 +01:00
|
|
|
this.authentication = "manual";
|
2014-02-12 01:02:45 +01:00
|
|
|
this.connection.pass = 's3cr3t!';
|
2014-02-12 06:12:00 +01:00
|
|
|
expect(this.otr.getSessionPassphrase()).toBe(this.connection.pass);
|
2014-04-18 17:42:11 +02:00
|
|
|
expect(window.sessionStorage.length).toBe(0);
|
|
|
|
expect(window.localStorage.length).toBe(0);
|
2014-02-12 01:02:45 +01:00
|
|
|
|
|
|
|
// With prebind, a random passphrase is generated and stored in
|
|
|
|
// session storage.
|
2015-03-22 12:52:54 +01:00
|
|
|
this.authentication = "prebind";
|
2014-02-12 06:12:00 +01:00
|
|
|
pp = this.otr.getSessionPassphrase();
|
2014-02-12 01:02:45 +01:00
|
|
|
expect(pp).not.toBe(this.connection.pass);
|
|
|
|
expect(window.sessionStorage.length).toBe(1);
|
2014-04-18 17:42:11 +02:00
|
|
|
expect(window.localStorage.length).toBe(0);
|
2014-04-19 05:12:24 +02:00
|
|
|
expect(pp).toBe(window.sessionStorage[b64_sha1(converse.connection.jid)]);
|
2014-02-12 01:02:45 +01:00
|
|
|
|
|
|
|
// Clean up
|
2015-03-22 12:52:54 +01:00
|
|
|
this.authentication = "manual";
|
2014-02-12 01:02:45 +01:00
|
|
|
}, converse));
|
2014-08-08 22:06:01 +02:00
|
|
|
}, converse, mock, test_utils));
|
2013-12-16 19:00:21 +01:00
|
|
|
}));
|