Bumping to 0.9.14 (Treat 20x OAuth2 responses as successes)
This commit is contained in:
parent
d547f00915
commit
eefd821ea9
2
Makefile
2
Makefile
|
@ -2,6 +2,6 @@
|
||||||
# Run all tests
|
# Run all tests
|
||||||
#
|
#
|
||||||
test:
|
test:
|
||||||
@@node_modules/.bin/vows tests/* --spec
|
@@node_modules/.bin/vows tests/*tests.js --spec
|
||||||
|
|
||||||
.PHONY: test install
|
.PHONY: test install
|
||||||
|
|
|
@ -78,7 +78,8 @@ describe('OAuth2',function(){
|
||||||
|
|
||||||
Change History
|
Change History
|
||||||
==============
|
==============
|
||||||
|
* 0.9.14
|
||||||
|
- OAuth2: Extend 'successful' token responses to include anything in the 2xx range.
|
||||||
* 0.9.13
|
* 0.9.13
|
||||||
- OAuth2: Fixes the "createCredentials() is deprecated, use tls.createSecureContext instead" message. (thank you AJ ONeal)
|
- OAuth2: Fixes the "createCredentials() is deprecated, use tls.createSecureContext instead" message. (thank you AJ ONeal)
|
||||||
* 0.9.12
|
* 0.9.12
|
||||||
|
|
|
@ -119,7 +119,7 @@ exports.OAuth2.prototype._executeRequest= function( http_library, options, post_
|
||||||
function passBackControl( response, result ) {
|
function passBackControl( response, result ) {
|
||||||
if(!callbackCalled) {
|
if(!callbackCalled) {
|
||||||
callbackCalled=true;
|
callbackCalled=true;
|
||||||
if( response.statusCode != 200 && (response.statusCode != 301) && (response.statusCode != 302) ) {
|
if( !(response.statusCode >= 200 && response.statusCode <= 299) && (response.statusCode != 301) && (response.statusCode != 302) ) {
|
||||||
callback({ statusCode: response.statusCode, data: result });
|
callback({ statusCode: response.statusCode, data: result });
|
||||||
} else {
|
} else {
|
||||||
callback(null, result, response);
|
callback(null, result, response);
|
||||||
|
@ -129,7 +129,8 @@ exports.OAuth2.prototype._executeRequest= function( http_library, options, post_
|
||||||
|
|
||||||
var result= "";
|
var result= "";
|
||||||
|
|
||||||
var request = http_library.request(options, function (response) {
|
var request = http_library.request(options);
|
||||||
|
request.on('response', function (response) {
|
||||||
response.on("data", function (chunk) {
|
response.on("data", function (chunk) {
|
||||||
result+= chunk
|
result+= chunk
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ "name" : "oauth"
|
{ "name" : "oauth"
|
||||||
, "description" : "Library for interacting with OAuth 1.0, 1.0A, 2 and Echo. Provides simplified client access and allows for construction of more complex apis and OAuth providers."
|
, "description" : "Library for interacting with OAuth 1.0, 1.0A, 2 and Echo. Provides simplified client access and allows for construction of more complex apis and OAuth providers."
|
||||||
, "version" : "0.9.13"
|
, "version" : "0.9.14"
|
||||||
, "directories" : { "lib" : "./lib" }
|
, "directories" : { "lib" : "./lib" }
|
||||||
, "main" : "index.js"
|
, "main" : "index.js"
|
||||||
, "author" : "Ciaran Jessup <ciaranj@gmail.com>"
|
, "author" : "Ciaran Jessup <ciaranj@gmail.com>"
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
var vows = require('vows'),
|
var vows = require('vows'),
|
||||||
assert = require('assert'),
|
assert = require('assert'),
|
||||||
|
DummyResponse= require('./shared').DummyResponse,
|
||||||
|
DummyRequest= require('./shared').DummyRequest,
|
||||||
https = require('https'),
|
https = require('https'),
|
||||||
OAuth2= require('../lib/oauth2').OAuth2,
|
OAuth2= require('../lib/oauth2').OAuth2,
|
||||||
url = require('url');
|
url = require('url');
|
||||||
|
@ -7,6 +9,34 @@ var vows = require('vows'),
|
||||||
vows.describe('OAuth2').addBatch({
|
vows.describe('OAuth2').addBatch({
|
||||||
'Given an OAuth2 instance with clientId and clientSecret, ': {
|
'Given an OAuth2 instance with clientId and clientSecret, ': {
|
||||||
topic: new OAuth2("clientId", "clientSecret"),
|
topic: new OAuth2("clientId", "clientSecret"),
|
||||||
|
'When dealing with the response from the OP': {
|
||||||
|
'we should treat a 201 response as a success': function(oa) {
|
||||||
|
var callbackCalled= false;
|
||||||
|
var http_library= {
|
||||||
|
request: function() {
|
||||||
|
return new DummyRequest(new DummyResponse(201));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
oa._executeRequest( http_library, {}, null, function(err, result, response) {
|
||||||
|
callbackCalled= true;
|
||||||
|
assert.equal(err, null);
|
||||||
|
});
|
||||||
|
assert.ok(callbackCalled);
|
||||||
|
},
|
||||||
|
'we should treat a 200 response as a success': function(oa) {
|
||||||
|
var callbackCalled= false;
|
||||||
|
var http_library= {
|
||||||
|
request: function() {
|
||||||
|
return new DummyRequest(new DummyResponse(200));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
oa._executeRequest( http_library, {}, null, function(err, result, response) {
|
||||||
|
callbackCalled= true;
|
||||||
|
assert.equal(err, null);
|
||||||
|
});
|
||||||
|
assert.ok(callbackCalled);
|
||||||
|
}
|
||||||
|
},
|
||||||
'When handling the access token response': {
|
'When handling the access token response': {
|
||||||
'we should correctly extract the token if received as form-data': function (oa) {
|
'we should correctly extract the token if received as form-data': function (oa) {
|
||||||
oa._request= function( method, url, fo, bar, bleh, callback) {
|
oa._request= function( method, url, fo, bar, bleh, callback) {
|
|
@ -1,29 +1,12 @@
|
||||||
var vows = require('vows'),
|
var vows = require('vows'),
|
||||||
assert = require('assert'),
|
assert = require('assert'),
|
||||||
|
DummyResponse= require('./shared').DummyResponse,
|
||||||
|
DummyRequest= require('./shared').DummyRequest,
|
||||||
events = require('events'),
|
events = require('events'),
|
||||||
OAuth= require('../lib/oauth').OAuth,
|
OAuth= require('../lib/oauth').OAuth,
|
||||||
OAuthEcho= require('../lib/oauth').OAuthEcho,
|
OAuthEcho= require('../lib/oauth').OAuthEcho,
|
||||||
crypto = require('crypto');
|
crypto = require('crypto');
|
||||||
|
|
||||||
var DummyResponse =function( statusCode ) {
|
|
||||||
this.statusCode= statusCode;
|
|
||||||
this.headers= {};
|
|
||||||
}
|
|
||||||
DummyResponse.prototype= events.EventEmitter.prototype;
|
|
||||||
DummyResponse.prototype.setEncoding= function() {}
|
|
||||||
|
|
||||||
var DummyRequest =function( response ) {
|
|
||||||
this.response= response;
|
|
||||||
}
|
|
||||||
DummyRequest.prototype= events.EventEmitter.prototype;
|
|
||||||
DummyRequest.prototype.write= function(post_body){}
|
|
||||||
DummyRequest.prototype.write= function(post_body){
|
|
||||||
this.emit('response',this.response);
|
|
||||||
}
|
|
||||||
DummyRequest.prototype.end= function(){
|
|
||||||
this.response.emit('end');
|
|
||||||
}
|
|
||||||
|
|
||||||
//Valid RSA keypair used to test RSA-SHA1 signature method
|
//Valid RSA keypair used to test RSA-SHA1 signature method
|
||||||
var RsaPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\n" +
|
var RsaPrivateKey = "-----BEGIN RSA PRIVATE KEY-----\n" +
|
||||||
"MIICXQIBAAKBgQDizE4gQP5nPQhzof/Vp2U2DDY3UY/Gxha2CwKW0URe7McxtnmE\n" +
|
"MIICXQIBAAKBgQDizE4gQP5nPQhzof/Vp2U2DDY3UY/Gxha2CwKW0URe7McxtnmE\n" +
|
|
@ -0,0 +1,26 @@
|
||||||
|
var events = require('events');
|
||||||
|
|
||||||
|
exports.DummyResponse = function( statusCode ) {
|
||||||
|
this.statusCode= statusCode;
|
||||||
|
this.headers= {};
|
||||||
|
}
|
||||||
|
exports.DummyResponse.prototype= events.EventEmitter.prototype;
|
||||||
|
exports.DummyResponse.prototype.setEncoding= function() {}
|
||||||
|
|
||||||
|
exports.DummyRequest =function( response ) {
|
||||||
|
this.response= response;
|
||||||
|
this.responseSent= false;
|
||||||
|
}
|
||||||
|
exports.DummyRequest.prototype= events.EventEmitter.prototype;
|
||||||
|
exports.DummyRequest.prototype.write= function(post_body){}
|
||||||
|
exports.DummyRequest.prototype.write= function(post_body){
|
||||||
|
this.responseSent= true;
|
||||||
|
this.emit('response',this.response);
|
||||||
|
}
|
||||||
|
exports.DummyRequest.prototype.end= function(){
|
||||||
|
if(!this.responseSent) {
|
||||||
|
this.responseSent= true;
|
||||||
|
this.emit('response',this.response);
|
||||||
|
}
|
||||||
|
this.response.emit('end');
|
||||||
|
}
|
Loading…
Reference in New Issue