aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Michael Lumish <mlumish@google.com>2015-07-21 09:22:58 -0700
committerGravatar Michael Lumish <mlumish@google.com>2015-07-21 09:22:58 -0700
commit0ac55806d4be82b5fffed7536ac396d99da080f9 (patch)
tree5079c96bca7d0bcff6b444a8218cbb88696e4fbe /src
parent40d808ffdc00831fdb31f7ed11610a21854a18ee (diff)
parent63bb2f1de261c63df704c3a78b222b603faa0d74 (diff)
Merge pull request #2554 from murgatroid99/node_oauth_interop
Added oauth2_auth_token and per_rpc_creds Node interop tests
Diffstat (limited to 'src')
-rw-r--r--src/node/interop/interop_client.js49
1 files changed, 48 insertions, 1 deletions
diff --git a/src/node/interop/interop_client.js b/src/node/interop/interop_client.js
index b61b0b63c0..e810e68e45 100644
--- a/src/node/interop/interop_client.js
+++ b/src/node/interop/interop_client.js
@@ -318,6 +318,51 @@ function authTest(expected_user, scope, client, done) {
});
}
+function oauth2Test(expected_user, scope, per_rpc, client, done) {
+ (new GoogleAuth()).getApplicationDefault(function(err, credential) {
+ assert.ifError(err);
+ var arg = {
+ fill_username: true,
+ fill_oauth_scope: true
+ };
+ credential = credential.createScoped(scope);
+ credential.getAccessToken(function(err, token) {
+ assert.ifError(err);
+ var updateMetadata = function(authURI, metadata, callback) {
+ metadata = _.clone(metadata);
+ if (metadata.Authorization) {
+ metadata.Authorization = _.clone(metadata.Authorization);
+ } else {
+ metadata.Authorization = [];
+ }
+ metadata.Authorization.push('Bearer ' + token);
+ callback(null, metadata);
+ };
+ var makeTestCall = function(error, client_metadata) {
+ assert.ifError(error);
+ var call = client.unaryCall(arg, function(err, resp) {
+ assert.ifError(err);
+ assert.strictEqual(resp.username, expected_user);
+ assert.strictEqual(resp.oauth_scope, AUTH_SCOPE_RESPONSE);
+ });
+ call.on('status', function(status) {
+ assert.strictEqual(status.code, grpc.status.OK);
+ if (done) {
+ done();
+ }
+ });
+ };
+ if (per_rpc) {
+ updateMetadata('', {}, makeTestCall);
+ } else {
+ client.updateMetadata = updateMetadata;
+ makeTestCall(null, {});
+ }
+
+ });
+ });
+}
+
/**
* Map from test case names to test functions
*/
@@ -333,7 +378,9 @@ var test_cases = {
timeout_on_sleeping_server: timeoutOnSleepingServer,
compute_engine_creds: _.partial(authTest, COMPUTE_ENGINE_USER, null),
service_account_creds: _.partial(authTest, AUTH_USER, AUTH_SCOPE),
- jwt_token_creds: _.partial(authTest, AUTH_USER, null)
+ jwt_token_creds: _.partial(authTest, AUTH_USER, null),
+ oauth2_auth_token: _.partial(oauth2Test, AUTH_USER, AUTH_SCOPE, false),
+ per_rpc_creds: _.partial(oauth2Test, AUTH_USER, AUTH_SCOPE, true)
};
/**