| Index: third_party/WebKit/LayoutTests/external/wpt/fetch/api/resources/utils.js
|
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/fetch/api/resources/utils.js b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/resources/utils.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f290c22ee7f6ce3113b328d782f938f7ec514a79
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/external/wpt/fetch/api/resources/utils.js
|
| @@ -0,0 +1,90 @@
|
| +var inWorker = false;
|
| +var RESOURCES_DIR = "../resources/";
|
| +
|
| +try {
|
| + inWorker = !(self instanceof Window);
|
| +} catch (e) {
|
| + inWorker = true;
|
| +}
|
| +
|
| +function dirname(path) {
|
| + return path.replace(/\/[^\/]*$/, '/')
|
| +}
|
| +
|
| +function checkRequest(request, ExpectedValuesDict) {
|
| + for (var attribute in ExpectedValuesDict) {
|
| + switch(attribute) {
|
| + case "headers":
|
| + for (var key in ExpectedValuesDict["headers"].keys()) {
|
| + assert_equals(request["headers"].get(key), ExpectedValuesDict["headers"].get(key),
|
| + "Check headers attribute has " + key + ":" + ExpectedValuesDict["headers"].get(key));
|
| + }
|
| + break;
|
| +
|
| + case "body":
|
| + //for checking body's content, a dedicated asyncronous/promise test should be used
|
| + assert_true(request["headers"].has("Content-Type") , "Check request has body using Content-Type header")
|
| + break;
|
| +
|
| + case "method":
|
| + case "referrer":
|
| + case "referrerPolicy":
|
| + case "credentials":
|
| + case "cache":
|
| + case "redirect":
|
| + case "integrity":
|
| + case "url":
|
| + case "destination":
|
| + assert_equals(request[attribute], ExpectedValuesDict[attribute], "Check " + attribute + " attribute")
|
| + break;
|
| +
|
| + default:
|
| + break;
|
| + }
|
| + }
|
| +}
|
| +
|
| +function stringToArray(str) {
|
| + var array = new Uint8Array(str.length);
|
| + for (var i=0, strLen = str.length; i < strLen; i++)
|
| + array[i] = str.charCodeAt(i);
|
| + return array;
|
| +}
|
| +
|
| +function encode_utf8(str)
|
| +{
|
| + if (self.TextEncoder)
|
| + return (new TextEncoder).encode(str);
|
| + return stringToArray(unescape(encodeURIComponent(str)));
|
| +}
|
| +
|
| +function validateBufferFromString(buffer, expectedValue, message)
|
| +{
|
| + return assert_array_equals(new Uint8Array(buffer !== undefined ? buffer : []), stringToArray(expectedValue), message);
|
| +}
|
| +
|
| +function validateStreamFromString(reader, expectedValue, retrievedArrayBuffer) {
|
| + return reader.read().then(function(data) {
|
| + if (!data.done) {
|
| + assert_true(data.value instanceof Uint8Array, "Fetch ReadableStream chunks should be Uint8Array");
|
| + var newBuffer;
|
| + if (retrievedArrayBuffer) {
|
| + newBuffer = new ArrayBuffer(data.value.length + retrievedArrayBuffer.length);
|
| + newBuffer.set(retrievedArrayBuffer, 0);
|
| + newBuffer.set(data.value, retrievedArrayBuffer.length);
|
| + } else {
|
| + newBuffer = data.value;
|
| + }
|
| + return validateStreamFromString(reader, expectedValue, newBuffer);
|
| + }
|
| + validateBufferFromString(retrievedArrayBuffer, expectedValue, "Retrieve and verify stream");
|
| + });
|
| +}
|
| +
|
| +// From streams tests
|
| +function delay(milliseconds)
|
| +{
|
| + return new Promise(function(resolve) {
|
| + step_timeout(resolve, milliseconds);
|
| + });
|
| +}
|
|
|