control-freak-ide/Code/client/build/dgrid/dstore/tests/mockRequest.js.consoleStripped.js
plastic-hub-dev-node-saturn 538369cff7 latest
2021-05-12 18:35:18 +02:00

80 lines
2.0 KiB
JavaScript

define("dstore/tests/mockRequest", [
'dojo/_base/lang',
'dojo/Deferred',
'dojo/io-query',
'intern/chai!assert'
], function (lang, Deferred, ioQuery, assert) {
// A mock request handler for testing.
var latestUrl,
latestQuery,
latestRequestHeaders,
responseHeaders,
latestOptions,
responseText;
function mockRequest(url, options) {
latestUrl = url;
latestQuery = ioQuery.queryToObject(url.match(/[^?]*(?:\?([^#]*))?/)[1] || '');
latestOptions = options;
latestRequestHeaders = {};
var headers = options.headers;
for (var name in headers) {
latestRequestHeaders[name.toLowerCase()] = headers[name];
}
var dfd = new Deferred();
dfd.resolve(responseText);
var responseDfd = new Deferred();
responseDfd.resolve({
getHeader: function (name) {
return responseHeaders[name.toLowerCase()];
},
data: responseText
});
return lang.delegate(dfd.promise, {
response: responseDfd
});
}
mockRequest.setResponseText = function (text) {
responseText = text;
};
mockRequest.setResponseHeaders = function (headers) {
responseHeaders = {};
for (var name in headers) {
responseHeaders[name.toLowerCase()] = headers[name];
}
};
mockRequest.assertHttpMethod = function (expectedMethod) {
assert.strictEqual(latestOptions.method || 'GET', expectedMethod);
};
mockRequest.assertRequestHeaders = function (expectedHeaders) {
for (var name in expectedHeaders) {
var lowerCaseName = name.toLowerCase(),
value = expectedHeaders[name];
if (value === null) {
assert.isTrue(
!(lowerCaseName in latestRequestHeaders)
|| latestRequestHeaders[lowerCaseName] === null
);
} else {
assert.isTrue(lowerCaseName in latestRequestHeaders);
assert.strictEqual(latestRequestHeaders[lowerCaseName], expectedHeaders[name]);
}
}
};
mockRequest.assertQueryParams = function (expectedParams) {
for (var name in expectedParams) {
assert.isTrue(name in latestQuery);
assert.equal(expectedParams[name].toString(), latestQuery[name]);
}
};
return mockRequest;
});