blob: 0f55cea13f11ac66ad15fd4638f293acc884a6bc [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
var test = require('prova');
var vanadium = require('../../');
var config = require('./default-config');
var security = vanadium.security;
test('Test union of blessings (promise case)', function(t) {
vanadium.init(config, function(err, runtime) {
if (err) {
t.end(err);
}
runtime.principal.blessSelf(runtime.getContext(), 'blessedname1')
.then(function(blessings1) {
return runtime.principal.blessSelf(runtime.getContext(), 'blessedname2')
.then(function(blessings2) {
return security.unionOfBlessings(
runtime.getContext(), blessings1, blessings2);
});
})
.then(function(unionedBlessings) {
return unionedBlessings._debugString(runtime.getContext());
})
.then(function(debugStr) {
t.ok(debugStr.indexOf('blessedname1') >= 0, 'first blessing in union');
t.ok(debugStr.indexOf('blessedname2') >= 0, 'second blessing in union');
runtime.close(t.end);
}).catch(function(err) {
runtime.close();
t.end(err);
});
});
});
test('Test union of blessings (callback case)', function(t) {
vanadium.init(config, function(err, runtime) {
if (err) {
t.end(err);
}
runtime.principal.blessSelf(runtime.getContext(), 'blessedname1',
function(err, blessings1) {
if (err) {
t.error(err);
runtime.close(t.end);
return;
}
runtime.principal.blessSelf(runtime.getContext(), 'blessedname2',
function(err, blessings2) {
if (err) {
t.error(err);
runtime.close(t.end);
return;
}
security.unionOfBlessings(runtime.getContext(), blessings1,
blessings2, function(err, unionedBlessings) {
if (err) {
t.error(err);
runtime.close(t.end);
return;
}
unionedBlessings._debugString(runtime.getContext())
.then(function(debugStr) {
t.ok(debugStr.indexOf('blessedname1') >= 0,
'first blessing in union');
t.ok(debugStr.indexOf('blessedname2') >= 0,
'second blessing in union');
runtime.close(t.end);
}).catch(function(err) {
t.error(err);
runtime.close(t.end);
});
});
});
});
});
});