/*
 * vim: ts=4:sw=4:expandtab
 */

'use strict';

describe('Protocol Wrapper', function() {
    var store = textsecure.storage.protocol;
    var identifier = '+5558675309';
    var another_identifier = '+5555590210';
    var prekeys, identityKey, testKey;
    this.timeout(5000);
    before(function(done) {
        localStorage.clear();
        libsignal.KeyHelper.generateIdentityKeyPair().then(function(identityKey) {
            return textsecure.storage.protocol.saveIdentity(identifier, identityKey);
        }).then(done);
    });
    describe('processPreKey', function() {
        it('rejects if the identity key changes', function(done) {
            var address = new libsignal.SignalProtocolAddress(identifier, 1);
            var builder = new libsignal.SessionBuilder(store, address);
            return builder.processPreKey({
                identityKey: textsecure.crypto.getRandomBytes(33),
                encodedNumber: address.toString()
            }).then(function() {
                done(new Error('Allowed to overwrite identity key'));
            }).catch(function(e) {
                assert.strictEqual(e.message, 'Identity key changed');
                done();
            });
        });
    });
});
