dl
Version:
DreamLab Libs
122 lines (109 loc) • 6.34 kB
JavaScript
var core = require('core'),
Types = core.common.Types,
BinaryData = core.data.BinaryData,
Response = core.http.Response;
/**
* @constructor
*/
var MockTests = function () {};
MockTests.addExtraMatchers = function(jasmine) {
jasmine.addMatchers({
toContainMatch: function(matechRegexp) {
var actual = this.actual;
var notText = this.isNot ? " not" : "";
this.message = function () {
return "Expected " + actual + notText + " to contain match " + matechRegexp;
};
if (Types.isArray(actual)) {
for (key in actual) {
if (new RegExp(matechRegexp).test(actual[key])) {
return true;
}
}
} else {
return new RegExp(matechRegexp).test(actual);
}
return false;
}
});
};
MockTests.httpResponse401 = function() {
var bodyResponse = '401';
var preparedResponse = new Response({
"headers": {
'Content-Type' : 'text/html; charset=UTF-8',
},
"httpVersion": '1.1'
});
preparedResponse.setStatusCode(401);
preparedResponse.setBody(new BinaryData(bodyResponse, BinaryData.Encoding.TEXT, BinaryData.CharacterEncoding.UTF8));
return preparedResponse;
};
MockTests.fetchUserProfile200 = function() {
var bodyResponse = '{"profile": {"status": 16415, "otherInformation": 16415, "userId": 66801973, "secondaryId": 54030768, "nick": "jankowalski", "loginDate": 1351519988.25, "flags": 16415, "appId": "167", "onetuser_id": 66801973, "login": "jan.kowalski@poczta.onet.pl", "pseudonym": "jankowalski", "applicationId": "167", "email": "jan.kowalski@poczta.onet.pl", "identity": "jan.kowalski@poczta.onet.pl", "kid": 54030768}, "type": 4, "mus": {"1": {"4": [54030768]}}, "refresh": 1351519854}';
var preparedResponse = new Response({
"headers": {
'Content-Type' : 'application/json; charset=utf-8',
},
"httpVersion": '1.1'
});
preparedResponse.setStatusCode(200);
preparedResponse.setBody(new BinaryData(bodyResponse, BinaryData.Encoding.TEXT, BinaryData.CharacterEncoding.UTF8));
return preparedResponse;
};
MockTests.getTokenFromCode200 = function() {
var bodyResponse = '{"access_token": "9b30e3cd17231349054615a41964261e1de63cbb358505cdaa1dcd11540bc50d", "token_type": "bearer"}';
var preparedResponse = new Response({
"headers": {
'Content-Type' : 'application/json; charset=utf-8',
},
"httpVersion": '1.1'
});
preparedResponse.setStatusCode(200);
preparedResponse.setBody(new BinaryData(bodyResponse, BinaryData.Encoding.TEXT, BinaryData.CharacterEncoding.UTF8));
return preparedResponse;
};
MockTests.nauthManagerSetCookie = function(nauthManagerRequest, nauthManagerResponse) {
expect(nauthManagerRequest.setHeader).toHaveBeenCalledWith('cookie', nauthManagerRequest.setHeader.mostRecentCall.args[1], true);
expect(nauthManagerResponse.headers.setHeader).toHaveBeenCalledWith('set-cookie', nauthManagerResponse.headers.setHeader.mostRecentCall.args[1], true);
expect(nauthManagerRequest.getHeader('cookie')).toMatch('(^|;\\s*)onet_token=');
expect(nauthManagerResponse.headers.getHeader('set-cookie')).toContainMatch('(^|;\\s*)onet_token=');
};
MockTests.nauthManagerRemoveCookie = function(nauthManagerRequest, nauthManagerResponse) {
if (nauthManagerRequest.getHeader('cookie') !== null) {
expect(nauthManagerRequest.setHeader).toHaveBeenCalledWith('cookie', nauthManagerRequest.setHeader.mostRecentCall.args[1], true);
expect(nauthManagerRequest.getHeader('cookie')).not.toMatch('(^|;\\s*)onet_token=');
}
expect(nauthManagerResponse.headers.setHeader).toHaveBeenCalledWith('set-cookie', nauthManagerResponse.headers.setHeader.mostRecentCall.args[1], true);
expect(nauthManagerResponse.headers.getHeader('set-cookie')).toContainMatch('(^|;\\s*)onet_token=invalidate; expires=');
};
MockTests.nauthManagerBasicHeaderTest = function(requestData, xOnetApp, gateway) {
var host = gateway ? gateway.split(':', 3) : null;
expect(requestData.getHeader('accept')).toEqual('*/*');
expect(requestData.getHeader('x-onet-app')).toEqual(xOnetApp);
expect(requestData.getHeader('x-caller-host')).toEqual('http://test.authorisation.grupaonet.pl');
expect(requestData.getHeader('x-caller-cmd')).toEqual('http://test.authorisation.grupaonet.pl/test?test=test');
expect(requestData.getHeader('referer')).toEqual('http://test.authorisation.grupaonet.pl/testreferer');
expect(requestData.getConnectionHost()).toEqual(host ? host[0] : requestData.getHost());
expect(requestData.getPort()).toEqual(host ? (host.length > 1 ? host[1] : 80) : requestData.getPort());
};
MockTests.nauthManagerFetchUserProfileHeaderTest = function(requestData, xOnetApp, cookieName, gateway, openHost) {
MockTests.nauthManagerBasicHeaderTest(requestData, xOnetApp, gateway);
expect(requestData.getHeader('authorization')).toEqual('Bearer ' + cookieName);
expect(requestData.getHeader('host')).toEqual(openHost);
expect(requestData.getPath()).toEqual('/profile');
expect(requestData.getMethod()).toEqual('GET');
expect(requestData.getBody().toString()).toEqual('');
expect(requestData.getHeader('content-length')).toEqual(0);
};
MockTests.nauthManagerGetTokenFromCodeHeaderTest = function(requestData, xOnetApp, gateway, openHost) {
MockTests.nauthManagerBasicHeaderTest(requestData, xOnetApp, gateway);
expect(requestData.getHeader('host')).toEqual(openHost);
expect(requestData.getPath()).toEqual('/token');
expect(requestData.getMethod()).toEqual('POST');
expect(requestData.getHeader('content-type')).toEqual('application/x-www-form-urlencoded');
expect(requestData.getHeader('content-length')).toEqual(requestData.getBody().toString().length);
expect(requestData.getBody().toString()).toEqual('grant_type=authorization_code&code=7092873276c1ab2269af5c6ba88b1a1b58f203cab0f957e5fea016182b304992');
};
MockTests.ApplicationCodeToAuth = '7092873276c1ab2269af5c6ba88b1a1b58f203cab0f957e5fea016182b304992';
exports.MockTests = MockTests;