@ariyana/appauth
Version:
A general purpose OAuth client.
86 lines • 12.9 kB
JavaScript
;
/*
* Copyright 2017 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the
* License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
var authorization_request_1 = require("./authorization_request");
describe('AuthorizationRequest Tests', function () {
var clientId = 'client_id';
var redirectUri = 'http://my/redirect_uri';
var scope = 'scope';
var state = 'state';
var extras = { key: 'value' };
var jsonRequest = {
client_id: clientId,
redirect_uri: redirectUri,
response_type: authorization_request_1.AuthorizationRequest.RESPONSE_TYPE_CODE,
scope: scope,
state: state,
extras: extras
};
var jsonRequest2 = {
client_id: clientId,
redirect_uri: redirectUri,
response_type: authorization_request_1.AuthorizationRequest.RESPONSE_TYPE_CODE,
scope: scope,
state: undefined,
extras: extras
};
var jsonRequest3 = {
client_id: clientId,
redirect_uri: redirectUri,
response_type: authorization_request_1.AuthorizationRequest.RESPONSE_TYPE_TOKEN,
scope: scope,
state: undefined,
extras: extras
};
var request = new authorization_request_1.AuthorizationRequest(jsonRequest);
var request2 = new authorization_request_1.AuthorizationRequest(jsonRequest2);
it('Basic Authorization Request Tests', function () {
expect(request).not.toBeNull();
expect(request.responseType).toBe(authorization_request_1.AuthorizationRequest.RESPONSE_TYPE_CODE);
expect(request.clientId).toBe(clientId);
expect(request.redirectUri).toBe(redirectUri);
expect(request.scope).toBe(scope);
expect(request.state).toBe(state);
expect(request.extras).toBeTruthy();
expect(request.extras['key']).toBe('value');
expect(request.extras).toEqual(extras);
});
it('To Json() and from Json() should work', function (done) {
request.toJson().then(function (result) {
var json = JSON.parse(JSON.stringify(result));
expect(json).not.toBeNull();
var newRequest = new authorization_request_1.AuthorizationRequest(json);
expect(newRequest).not.toBeNull();
expect(newRequest.responseType).toBe(authorization_request_1.AuthorizationRequest.RESPONSE_TYPE_CODE);
expect(newRequest.clientId).toBe(clientId);
expect(newRequest.redirectUri).toBe(redirectUri);
expect(newRequest.scope).toBe(scope);
expect(newRequest.state).toBe(state);
expect(newRequest.extras).toBeTruthy();
expect(newRequest.extras['key']).toBe('value');
expect(newRequest.extras).toEqual(request.extras);
expect(newRequest.internal).toEqual(request.internal);
done();
});
});
it('Expect cryptographic newState() to populate state', function () {
expect(request2.state).not.toBeNull();
});
it('Support response_type TOKEN', function () {
var request3 = new authorization_request_1.AuthorizationRequest(jsonRequest3);
expect(request3.responseType).toBe(authorization_request_1.AuthorizationRequest.RESPONSE_TYPE_TOKEN);
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbl9yZXF1ZXN0X3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXV0aG9yaXphdGlvbl9yZXF1ZXN0X3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7R0FZRzs7QUFFSCxpRUFBdUY7QUFHdkYsUUFBUSxDQUFDLDRCQUE0QixFQUFFO0lBQ3JDLElBQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQztJQUM3QixJQUFNLFdBQVcsR0FBRyx3QkFBd0IsQ0FBQztJQUM3QyxJQUFNLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDdEIsSUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ3RCLElBQU0sTUFBTSxHQUFjLEVBQUMsR0FBRyxFQUFFLE9BQU8sRUFBQyxDQUFDO0lBRXpDLElBQUksV0FBVyxHQUE2QjtRQUMxQyxTQUFTLEVBQUUsUUFBUTtRQUNuQixZQUFZLEVBQUUsV0FBVztRQUN6QixhQUFhLEVBQUUsNENBQW9CLENBQUMsa0JBQWtCO1FBQ3RELEtBQUssRUFBRSxLQUFLO1FBQ1osS0FBSyxFQUFFLEtBQUs7UUFDWixNQUFNLEVBQUUsTUFBTTtLQUNmLENBQUM7SUFFRixJQUFJLFlBQVksR0FBNkI7UUFDM0MsU0FBUyxFQUFFLFFBQVE7UUFDbkIsWUFBWSxFQUFFLFdBQVc7UUFDekIsYUFBYSxFQUFFLDRDQUFvQixDQUFDLGtCQUFrQjtRQUN0RCxLQUFLLEVBQUUsS0FBSztRQUNaLEtBQUssRUFBRSxTQUFTO1FBQ2hCLE1BQU0sRUFBRSxNQUFNO0tBQ2YsQ0FBQztJQUVGLElBQUksWUFBWSxHQUE2QjtRQUMzQyxTQUFTLEVBQUUsUUFBUTtRQUNuQixZQUFZLEVBQUUsV0FBVztRQUN6QixhQUFhLEVBQUUsNENBQW9CLENBQUMsbUJBQW1CO1FBQ3ZELEtBQUssRUFBRSxLQUFLO1FBQ1osS0FBSyxFQUFFLFNBQVM7UUFDaEIsTUFBTSxFQUFFLE1BQU07S0FDZixDQUFDO0lBRUYsSUFB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LEVBQUU7UUFDdEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNkJBQTZCLEVBQUU7UUFDaEMsSUFBSSxRQUFRLEdBQXlCLElBQUksNENBQW9CLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsNENBQW9CLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMvRSxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQ29weXJpZ2h0IDIwMTcgR29vZ2xlIEluYy5cclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHRcclxuICogaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqXHJcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlXHJcbiAqIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyXHJcbiAqIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICovXHJcblxyXG5pbXBvcnQge0F1dGhvcml6YXRpb25SZXF1ZXN0LCBBdXRob3JpemF0aW9uUmVxdWVzdEpzb259IGZyb20gJy4vYXV0aG9yaXphdGlvbl9yZXF1ZXN0JztcclxuaW1wb3J0IHtTdHJpbmdNYXB9IGZyb20gJy4vdHlwZXMnO1xyXG5cclxuZGVzY3JpYmUoJ0F1dGhvcml6YXRpb25SZXF1ZXN0IFRlc3RzJywgKCkgPT4ge1xyXG4gIGNvbnN0IGNsaWVudElkID0gJ2NsaWVudF9pZCc7XHJcbiAgY29uc3QgcmVkaXJlY3RVcmkgPSAnaHR0cDovL215L3JlZGlyZWN0X3VyaSc7XHJcbiAgY29uc3Qgc2NvcGUgPSAnc2NvcGUnO1xyXG4gIGNvbnN0IHN0YXRlID0gJ3N0YXRlJztcclxuICBjb25zdCBleHRyYXM6IFN0cmluZ01hcCA9IHtrZXk6ICd2YWx1ZSd9O1xyXG5cclxuICBsZXQganNvblJlcXVlc3Q6IEF1dGhvcml6YXRpb25SZXF1ZXN0SnNvbiA9IHtcclxuICAgIGNsaWVudF9pZDogY2xpZW50SWQsXHJcbiAgICByZWRpcmVjdF91cmk6IHJlZGlyZWN0VXJpLFxyXG4gICAgcmVzcG9uc2VfdHlwZTogQXV0aG9yaXphdGlvblJlcXVlc3QuUkVTUE9OU0VfVFlQRV9DT0RFLFxyXG4gICAgc2NvcGU6IHNjb3BlLFxyXG4gICAgc3RhdGU6IHN0YXRlLFxyXG4gICAgZXh0cmFzOiBleHRyYXNcclxuICB9O1xyXG5cclxuICBsZXQganNvblJlcXVlc3QyOiBBdXRob3JpemF0aW9uUmVxdWVzdEpzb24gPSB7XHJcbiAgICBjbGllbnRfaWQ6IGNsaWVudElkLFxyXG4gICAgcmVkaXJlY3RfdXJpOiByZWRpcmVjdFVyaSxcclxuICAgIHJlc3BvbnNlX3R5cGU6IEF1dGhvcml6YXRpb25SZXF1ZXN0LlJFU1BPTlNFX1RZUEVfQ09ERSxcclxuICAgIHNjb3BlOiBzY29wZSxcclxuICAgIHN0YXRlOiB1bmRlZmluZWQsXHJcbiAgICBleHRyYXM6IGV4dHJhc1xyXG4gIH07XHJcblxyXG4gIGxldCBqc29uUmVxdWVzdDM6IEF1dGhvcml6YXRpb25SZXF1ZXN0SnNvbiA9IHtcclxuICAgIGNsaWVudF9pZDogY2xpZW50SWQsXHJcbiAgICByZWRpcmVjdF91cmk6IHJlZGlyZWN0VXJpLFxyXG4gICAgcmVzcG9uc2VfdHlwZTogQXV0aG9yaXphdGlvblJlcXVlc3QuUkVTUE9OU0VfVFlQRV9UT0tFTixcclxuICAgIHNjb3BlOiBzY29wZSxcclxuICAgIHN0YXRlOiB1bmRlZmluZWQsXHJcbiAgICBleHRyYXM6IGV4dHJhc1xyXG4gIH07XHJcblxyXG4gIGxldCByZXF1ZXN0OiBBdXRob3JpemF0aW9uUmVxdWVzdCA9IG5ldyBBdXRob3JpemF0aW9uUmVxdWVzdChqc29uUmVxdWVzdCk7XHJcbiAgbGV0IHJlcXVlc3QyOiBBdXRob3JpemF0aW9uUmVxdWVzdCA9IG5ldyBBdXRob3JpemF0aW9uUmVxdWVzdChqc29uUmVxdWVzdDIpO1xyXG5cclxuICBpdCgnQmFzaWMgQXV0aG9yaXphdGlvbiBSZXF1ZXN0IFRlc3RzJywgKCkgPT4ge1xyXG4gICAgZXhwZWN0KHJlcXVlc3QpLm5vdC50b0JlTnVsbCgpO1xyXG4gICAgZXhwZWN0KHJlcXVlc3QucmVzcG9uc2VUeXBlKS50b0JlKEF1dGhvcml6YXRpb25SZXF1ZXN0LlJFU1BPTlNFX1RZUEVfQ09ERSk7XHJcbiAgICBleHBlY3QocmVxdWVzdC5jbGllbnRJZCkudG9CZShjbGllbnRJZCk7XHJcbiAgICBleHBlY3QocmVxdWVzdC5yZWRpcmVjdFVyaSkudG9CZShyZWRpcmVjdFVyaSk7XHJcbiAgICBleHBlY3QocmVxdWVzdC5zY29wZSkudG9CZShzY29wZSk7XHJcbiAgICBleHBlY3QocmVxdWVzdC5zdGF0ZSkudG9CZShzdGF0ZSk7XHJcbiAgICBleHBlY3QocmVxdWVzdC5leHRyYXMpLnRvQmVUcnV0aHkoKTtcclxuICAgIGV4cGVjdChyZXF1ZXN0LmV4dHJhcyFbJ2tleSddKS50b0JlKCd2YWx1ZScpO1xyXG4gICAgZXhwZWN0KHJlcXVlc3QuZXh0cmFzKS50b0VxdWFsKGV4dHJhcyk7XHJcbiAgfSk7XHJcblxyXG4gIGl0KCdUbyBKc29uKCkgYW5kIGZyb20gSnNvbigpIHNob3VsZCB3b3JrJywgKGRvbmU6IERvbmVGbikgPT4ge1xyXG4gICAgcmVxdWVzdC50b0pzb24oKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgIGxldCBqc29uID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyZXN1bHQpKTtcclxuICAgICAgZXhwZWN0KGpzb24pLm5vdC50b0JlTnVsbCgpO1xyXG4gICAgICBsZXQgbmV3UmVxdWVzdCA9IG5ldyBBdXRob3JpemF0aW9uUmVxdWVzdChqc29uKTtcclxuICAgICAgZXhwZWN0KG5ld1JlcXVlc3QpLm5vdC50b0JlTnVsbCgpO1xyXG4gICAgICBleHBlY3QobmV3UmVxdWVzdC5yZXNwb25zZVR5cGUpLnRvQmUoQXV0aG9yaXphdGlvblJlcXVlc3QuUkVTUE9OU0VfVFlQRV9DT0RFKTtcclxuICAgICAgZXhwZWN0KG5ld1JlcXVlc3QuY2xpZW50SWQpLnRvQmUoY2xpZW50SWQpO1xyXG4gICAgICBleHBlY3QobmV3UmVxdWVzdC5yZWRpcmVjdFVyaSkudG9CZShyZWRpcmVjdFVyaSk7XHJcbiAgICAgIGV4cGVjdChuZXdSZXF1ZXN0LnNjb3BlKS50b0JlKHNjb3BlKTtcclxuICAgICAgZXhwZWN0KG5ld1JlcXVlc3Quc3RhdGUpLnRvQmUoc3RhdGUpO1xyXG4gICAgICBleHBlY3QobmV3UmVxdWVzdC5leHRyYXMpLnRvQmVUcnV0aHkoKTtcclxuICAgICAgZXhwZWN0KG5ld1JlcXVlc3QuZXh0cmFzIVsna2V5J10pLnRvQmUoJ3ZhbHVlJyk7XHJcbiAgICAgIGV4cGVjdChuZXdSZXF1ZXN0LmV4dHJhcykudG9FcXVhbChyZXF1ZXN0LmV4dHJhcyk7XHJcbiAgICAgIGV4cGVjdChuZXdSZXF1ZXN0LmludGVybmFsKS50b0VxdWFsKHJlcXVlc3QuaW50ZXJuYWwpO1xyXG4gICAgICBkb25lKCk7XHJcbiAgICB9KTtcclxuICB9KTtcclxuXHJcbiAgaXQoJ0V4cGVjdCBjcnlwdG9ncmFwaGljIG5ld1N0YXRlKCkgdG8gcG9wdWxhdGUgc3RhdGUnLCAoKSA9PiB7XHJcbiAgICBleHBlY3QocmVxdWVzdDIuc3RhdGUpLm5vdC50b0JlTnVsbCgpO1xyXG4gIH0pO1xyXG5cclxuICBpdCgnU3VwcG9ydCByZXNwb25zZV90eXBlIFRPS0VOJywgKCkgPT4ge1xyXG4gICAgbGV0IHJlcXVlc3QzOiBBdXRob3JpemF0aW9uUmVxdWVzdCA9IG5ldyBBdXRob3JpemF0aW9uUmVxdWVzdChqc29uUmVxdWVzdDMpO1xyXG4gICAgZXhwZWN0KHJlcXVlc3QzLnJlc3BvbnNlVHlwZSkudG9CZShBdXRob3JpemF0aW9uUmVxdWVzdC5SRVNQT05TRV9UWVBFX1RPS0VOKTtcclxuICB9KTtcclxufSk7XHJcbiJdfQ==