diff options
Diffstat (limited to 'tests/wpt/web-platform-tests/fetch/api/resources/utils.js')
-rw-r--r-- | tests/wpt/web-platform-tests/fetch/api/resources/utils.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/tests/wpt/web-platform-tests/fetch/api/resources/utils.js b/tests/wpt/web-platform-tests/fetch/api/resources/utils.js new file mode 100644 index 00000000000..a090e1eebd5 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/api/resources/utils.js @@ -0,0 +1,68 @@ +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 of 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; + } + } +} + +//check reader's text content in an asyncronous test +function readTextStream(reader, asyncTest, expectedValue, retrievedText) { + if (!retrievedText) + retrievedText = ""; + reader.read().then(function(data) { + if (!data.done) { + var decoder = new TextDecoder(); + retrievedText += decoder.decode(data.value); + readTextStream(reader, asyncTest, expectedValue, retrievedText); + return; + } + asyncTest.step(function() { + assert_equals(retrievedText, expectedValue, "Retrieve and verify stream"); + asyncTest.done(); + }); + }).catch(function(e) { + asyncTest.step(function() { + assert_unreached("Cannot read stream " + e); + asyncTest.done(); + }); + }); +} |