core.js: Using the vanadium module's public API rather than
requiring files directly in integration tests where possible.
Change-Id: I40e7a4ce6ea661906f4113c11bae1168f9e8ce60
diff --git a/src/security/caveats.js b/src/security/caveats.js
index df780e0..cfd1822 100644
--- a/src/security/caveats.js
+++ b/src/security/caveats.js
@@ -30,6 +30,13 @@
});
}
+/**
+ * createConstCaveat returns a [Caveat]{@link module:vanadium.security.Caveat}
+ * that validates iff value is true.
+ * @param {boolean} value
+ * @returns module:vanadium.security.Caveat
+ * @memberof module:vanadium.security
+ */
function createConstCaveat(value) {
return createCaveat(vdlSecurity.ConstCaveat, value);
}
diff --git a/src/security/index.js b/src/security/index.js
index f8645f6..5e2dff6 100644
--- a/src/security/index.js
+++ b/src/security/index.js
@@ -42,6 +42,7 @@
access: require('./access'),
createExpiryCaveat: require('./caveats').createExpiryCaveat,
createMethodCaveat: require('./caveats').createMethodCaveat,
+ createConstCaveat: require('./caveats').createConstCaveat,
unconstrainedUse: require('./caveats').unconstrainedUse,
createCaveat: require('./caveats').createCaveat,
unionOfBlessings: require('./blessings-util').unionOfBlessings
diff --git a/src/vdl/kind.js b/src/vdl/kind.js
index 30d01ff..2277f2b 100644
--- a/src/vdl/kind.js
+++ b/src/vdl/kind.js
@@ -16,97 +16,120 @@
var kind = {
// Nullable kinds
/**
+ * @type {string}
* @const
*/
ANY: 'any',
/**
+ * @type {string}
* @const
*/
OPTIONAL: 'optional',
// Scalar kinds
/**
+ * @type {string}
* @const
*/
BOOL: 'bool',
/**
+ * @type {string}
* @const
*/
BYTE: 'byte',
/**
+ * @type {string}
* @const
*/
UINT16: 'uint16',
/**
+ * @type {string}
* @const
*/
UINT32: 'uint32',
/**
+ * @type {string}
* @const
*/
UINT64: 'uint64',
/**
+ * @type {string}
* @const
*/
INT16: 'int16',
/**
+ * @type {string}
* @const
*/
INT32: 'int32',
/**
+ * @type {string}
* @const
*/
INT64: 'int64',
/**
+ * @type {string}
* @const
*/
FLOAT32: 'float32',
/**
+ * @type {string}
* @const
*/
FLOAT64: 'float64',
/**
+ * @type {string}
* @const
*/
COMPLEX64: 'complex64',
/**
+ * @type {string}
* @const
*/
COMPLEX128: 'complex128',
/**
+ * @type {string}
* @const
*/
STRING: 'string',
/**
+ * @type {string}
* @const
*/
ENUM: 'enum',
/**
+ * @type {string}
* @const
*/
TYPEOBJECT: 'typeobject',
// Composite kinds
/**
+ * @type {string}
* @const
*/
ARRAY: 'array',
/**
+ * @type {string}
* @const
*/
LIST: 'list',
/**
+ * @type {string}
* @const
*/
SET: 'set',
/**
+ * @type {string}
* @const
*/
MAP: 'map',
/**
+ * @type {string}
* @const
*/
STRUCT: 'struct',
/**
* Union is like struct, but with only 1 field filled in.
+ * @type {string}
* @const
*/
UNION: 'union',
diff --git a/src/vdl/types.js b/src/vdl/types.js
index 23f216e..25eb07b 100644
--- a/src/vdl/types.js
+++ b/src/vdl/types.js
@@ -21,73 +21,89 @@
*/
var types = {
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
ANY: primitiveType(kind.ANY),
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
BOOL: primitiveType(kind.BOOL),
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
BYTE: primitiveType(kind.BYTE),
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
UINT16: primitiveType(kind.UINT16),
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
UINT32: primitiveType(kind.UINT32),
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
UINT64: primitiveType(kind.UINT64),
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
INT16: primitiveType(kind.INT16),
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
INT32: primitiveType(kind.INT32),
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
INT64: primitiveType(kind.INT64),
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
FLOAT32: primitiveType(kind.FLOAT32),
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
FLOAT64: primitiveType(kind.FLOAT64),
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
COMPLEX64: primitiveType(kind.COMPLEX64),
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
COMPLEX128: primitiveType(kind.COMPLEX128),
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
STRING: primitiveType(kind.STRING),
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
TYPEOBJECT: Type.prototype._type // So that === works for types.TypeObject
};
/**
- * Defines the wire error format
+ * @type {module:vanadium.vdl.Type}
* @const
*/
types.ERROR = defineOptionalErrorType();
/**
+ * @type {module:vanadium.vdl.Type}
* @const
*/
types.JSVALUE = defineJSValueType();
diff --git a/test/integration/test-authorizer.js b/test/integration/test-authorizer.js
index ef9da8e..895ead4 100644
--- a/test/integration/test-authorizer.js
+++ b/test/integration/test-authorizer.js
@@ -2,15 +2,13 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
+var vanadium = require('../..');
var test = require('prova');
-var access = require('../../src/gen-vdl/v.io/v23/security/access');
var Deferred = require('../../src/lib/deferred');
-var permissionsAuthorizer =
- require('../../src/security/access/permissions-authorizer');
-var allowEveryoneAuthorizer =
- require('../../src/security/access/allow-everyone-authorizer');
var serve = require('./serve');
-
+var access = vanadium.security.access;
+var permissionsAuthorizer = vanadium.security.access.permissionsAuthorizer;
+var allowEveryoneAuthorizer = vanadium.security.access.allowEveryoneAuthorizer;
var service = {
call: function(ctx, serverCall, arg) {
@@ -18,7 +16,6 @@
}
};
-
function createPromiseDispatcher(authorizer, tags) {
function auth(ctx, call) {
if (call.method === '__Signature') {
diff --git a/test/integration/test-bless.js b/test/integration/test-bless.js
index 6880bda..1c03b5b 100644
--- a/test/integration/test-bless.js
+++ b/test/integration/test-bless.js
@@ -5,11 +5,10 @@
var test = require('prova');
var vanadium = require('../../');
var config = require('./default-config');
-var caveats = require('../../src/security/caveats');
var leafDispatcher = require('../../src/rpc/leaf-dispatcher');
-var serve = require('./serve');
var Blessings = require('../../src/security/blessings');
-var SharedContextKeys = require('../../src/runtime/shared-context-keys');
+var serve = require('./serve');
+var security = vanadium.security;
function validateBlessings(t, blessings) {
t.ok(blessings instanceof Blessings, 'Blessings have correct type');
@@ -50,7 +49,7 @@
rt = runtime;
runtime.principal.blessSelf(runtime.getContext(), 'blessedname',
- caveats.createExpiryCaveat(new Date()),
+ security.createExpiryCaveat(new Date()),
function(err, blessings) {
t.error(err);
validateBlessings(t, blessings);
@@ -63,11 +62,11 @@
var service = {
method: function(ctx, serverCall, cb) {
var secCall = serverCall.securityCall;
- var rt = ctx.value(SharedContextKeys.RUNTIME);
+ var rt = vanadium.runtimeForContext(ctx);
var remoteKey = secCall.remoteBlessings.publicKey;
rt.principal.bless(ctx, remoteKey, secCall.localBlessings,
'ext', function(err) {
- t.ok(err, 'Expected at least one caveat must be specfied error');
+ t.ok(err, 'Expected at least one caveat must be specified error');
cb(null, null);
});
}
@@ -90,12 +89,12 @@
test('Test bless with Caveat from server', function(t) {
var service = {
method: function(ctx, serverCall, cb) {
- var rt = ctx.value(SharedContextKeys.RUNTIME);
+ var rt = vanadium.runtimeForContext(ctx);
var secCall = serverCall.securityCall;
var remoteKey = secCall.remoteBlessings.publicKey;
rt.principal.bless(ctx, remoteKey, secCall.localBlessings,
- 'ext', caveats.createExpiryCaveat(new Date(Date.now() - 1000)),
- caveats.createConstCaveat(true), function(err, blessings) {
+ 'ext', security.createExpiryCaveat(new Date(Date.now() - 1000)),
+ security.createConstCaveat(true), function(err, blessings) {
t.notOk(err, 'No error expected during bless');
validateBlessings(t, blessings);
cb(null, null);
@@ -146,7 +145,7 @@
call.remoteBlessings.publicKey,
call.localBlessings,
'ext',
- caveats.createExpiryCaveat(fiveSecondsInFuture),
+ security.createExpiryCaveat(fiveSecondsInFuture),
function(err, blessing) {
expectedBlessing = blessing;
cb(err, blessing);
diff --git a/test/integration/test-blessings-util.js b/test/integration/test-blessings-util.js
index 52f907b..0f55cea 100644
--- a/test/integration/test-blessings-util.js
+++ b/test/integration/test-blessings-util.js
@@ -5,7 +5,7 @@
var test = require('prova');
var vanadium = require('../../');
var config = require('./default-config');
-var security = require('../../src/security');
+var security = vanadium.security;
test('Test union of blessings (promise case)', function(t) {
vanadium.init(config, function(err, runtime) {
diff --git a/test/integration/test-cancellation.js b/test/integration/test-cancellation.js
index a4f40f2..ec9b9c1 100644
--- a/test/integration/test-cancellation.js
+++ b/test/integration/test-cancellation.js
@@ -3,11 +3,12 @@
// license that can be found in the LICENSE file.
var test = require('prova');
+var vanadium = require('../../');
var service = require('./get-service');
var serve = require('./serve');
var leafDispatcher = require('../../src/rpc/leaf-dispatcher');
var NO_TIMEOUT = require('../../src/rpc/constants').NO_TIMEOUT;
-var CanceledError = require('../../src/gen-vdl/v.io/v23/verror').CanceledError;
+var CanceledError = vanadium.verror.CanceledError;
var errorId = new CanceledError(null).id;
diff --git a/test/integration/test-caveat-validation.js b/test/integration/test-caveat-validation.js
index ba379a7..72feb3d 100644
--- a/test/integration/test-caveat-validation.js
+++ b/test/integration/test-caveat-validation.js
@@ -3,11 +3,11 @@
// license that can be found in the LICENSE file.
var test = require('prova');
+var vanadium = require('../../');
var serve = require('./serve');
-var vdl = require('../../src/vdl');
var leafDispatcher = require('../../src/rpc/leaf-dispatcher');
-
var testService = require('../vdl-out/v.io/x/js.core/test_service');
+var vdl = vanadium.vdl;
// Service to be invoked
function aServiceDef() {
diff --git a/test/integration/test-client-call-opts.js b/test/integration/test-client-call-opts.js
index 41c7467..3f83f05 100644
--- a/test/integration/test-client-call-opts.js
+++ b/test/integration/test-client-call-opts.js
@@ -3,9 +3,8 @@
// license that can be found in the LICENSE file.
var test = require('prova');
-
-var config = require('./default-config');
var vanadium = require('../../');
+var config = require('./default-config');
var verror = vanadium.verror;
function end(t, rt, err) {
diff --git a/test/integration/test-js-client-server.js b/test/integration/test-js-client-server.js
index 3a14b2c..e7f175a 100644
--- a/test/integration/test-js-client-server.js
+++ b/test/integration/test-js-client-server.js
@@ -3,10 +3,11 @@
// license that can be found in the LICENSE file.
var test = require('prova');
+var vanadium = require('../../');
var serve = require('./serve');
var leafDispatcher = require('../../src/rpc/leaf-dispatcher');
var Deferred = require('../../src/lib/deferred');
-var vdl = require('../../src/vdl');
+
var builtins = require('../../src/vdl/builtins');
var stringify = require('../../src/vdl/stringify');
var TypeUtil = require('../../src/vdl/type-util');
@@ -15,6 +16,8 @@
var typedStreamingServiceVdl =
require('../vdl-out/javascript-test/services/typed-streaming-service');
+var vdl = vanadium.vdl;
+
// TODO(bprosnitz) Combine CacheService and CacheServicePromises so there
// isn't as much duplicated code.
diff --git a/test/integration/test-namespace.js b/test/integration/test-namespace.js
index e7d6f73..a2cbccb 100644
--- a/test/integration/test-namespace.js
+++ b/test/integration/test-namespace.js
@@ -5,18 +5,18 @@
var test = require('prova');
var Promise = require('../../src/lib/promise');
-var access = require('../../src/gen-vdl/v.io/v23/security/access');
-var reserved = require('../../src/gen-vdl/v.io/v23/rpc/reserved');
var config = require('./default-config');
-var MINUTE = 60 * 1000; // a minute
var Promise = require('../../src/lib/promise');
var random = require('../../src/lib/random');
var timeouts = require('./timeouts');
var vanadium = require('../../');
var verror = vanadium.verror;
+var access = vanadium.security.access;
+var reserved = vanadium.rpc.reserved;
var namespaceRoot = process.env.V23_NAMESPACE;
var PREFIX = 'namespace-testing/';
+var MINUTE = 60 * 1000; // a minute
test('Test globbing children - glob(' + PREFIX + '*)', function(assert) {
var runtime;
diff --git a/test/integration/test-sending-blessings.js b/test/integration/test-sending-blessings.js
index 9388767..6a62c88 100644
--- a/test/integration/test-sending-blessings.js
+++ b/test/integration/test-sending-blessings.js
@@ -3,24 +3,22 @@
// license that can be found in the LICENSE file.
var test = require('prova');
+var vanadium = require('../../');
var serve = require('./serve');
var leafDispatcher = require('../../src/rpc/leaf-dispatcher');
-var runtimeFromContext = require('../../src/runtime/runtime-from-context');
-var types = require('../../src/vdl/types');
-var WireBlessings =
- require('../../src/gen-vdl/v.io/v23/security').WireBlessings;
-var caveats = require('../../src/security/caveats');
+var WireBlessings = vanadium.security.WireBlessings;
var Blessings = require('../../src/security/blessings');
-
+var security = vanadium.security;
+var types = vanadium.vdl.types;
var blessingsService = {
createBlessings: function(ctx, serverCall, publicKey) {
- var principal = runtimeFromContext(ctx).principal;
+ var principal = vanadium.runtimeForContext(ctx).principal;
var expiryDate = new Date((new Date()).getTime() + 6000000);
return principal.blessingStore.getDefault(ctx).then(function(defaultBless) {
return principal.bless(ctx, publicKey, defaultBless, 'friend',
- caveats.createExpiryCaveat(expiryDate));
+ security.createExpiryCaveat(expiryDate));
});
},
verifyBlessings: function(ctx, serverCall) {
diff --git a/test/integration/test-server-glob.js b/test/integration/test-server-glob.js
index c7273a1..cca52c5 100644
--- a/test/integration/test-server-glob.js
+++ b/test/integration/test-server-glob.js
@@ -5,10 +5,9 @@
var test = require('prova');
var serve = require('./serve');
var Promise = require('../../src/lib/promise');
-var naming = require('../../src/gen-vdl/v.io/v23/naming');
-var namespaceUtil = require('../../src/naming/util');
-var verror = require('../../src/gen-vdl/v.io/v23/verror');
-
+var vanadium = require('../../');
+var naming = vanadium.naming;
+var verror = vanadium.verror;
var ALBUMS = [
'public',
@@ -250,7 +249,7 @@
FullGlobber.prototype.__glob = function(ctx, serverCall, glob, $stream) {
var mountEntry = new naming.MountEntry({
- name: namespaceUtil.join(serverCall.securityCall.suffix, glob),
+ name: naming.join(serverCall.securityCall.suffix, glob),
});
$stream.write(new naming.GlobReply({
entry: mountEntry
diff --git a/test/integration/test-service-errors.js b/test/integration/test-service-errors.js
index 061a78f..1e6f31e 100644
--- a/test/integration/test-service-errors.js
+++ b/test/integration/test-service-errors.js
@@ -3,9 +3,10 @@
// license that can be found in the LICENSE file.
var test = require('prova');
+var vanadium = require('../../');
var service = require('./get-service');
-var verror = require('../../src/gen-vdl/v.io/v23/verror');
-var VanadiumError = require('../../src/verror/vanadium-error');
+var verror = vanadium.verror;
+var VanadiumError = verror.VanadiumError;
test('Test Go service returning Aborted error - ' +
'errorThrower.method(callback)', function(assert) {
diff --git a/test/integration/test-service-native.js b/test/integration/test-service-native.js
index 4a7b9a9..242ee53 100644
--- a/test/integration/test-service-native.js
+++ b/test/integration/test-service-native.js
@@ -3,9 +3,10 @@
// license that can be found in the LICENSE file.
var test = require('prova');
+var vanadium = require('../../');
var service = require('./get-service');
-var makeError = require('../../src/verror/make-errors');
-var actions = require('../../src/verror/actions');
+var makeError = vanadium.verror.makeError;
+var actions = vanadium.verror.actions;
var E = makeError('randomPrefix.verror', actions.NO_RETRY,
'{1} {2}: RandomError: {_}');
diff --git a/test/integration/test-vtrace.js b/test/integration/test-vtrace.js
index ce9bafd..6da7720 100644
--- a/test/integration/test-vtrace.js
+++ b/test/integration/test-vtrace.js
@@ -4,9 +4,10 @@
var test = require('prova');
var service = require('./get-service');
-var vtrace = require('../../src/vtrace');
+var vanadium = require('../../');
var serve = require('./serve');
var leafDispatcher = require('../../src/rpc/leaf-dispatcher');
+var vtrace = vanadium.vtrace;
function findSpan(name, trace) {
for (var i = 0; i < trace.spans.length; i++) {