UNPKG

dl

Version:

DreamLab Libs

122 lines (109 loc) 6.34 kB
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;