summaryrefslogtreecommitdiffstats
path: root/test/wpt/tests/xhr/send-entity-body-none.htm
diff options
context:
space:
mode:
Diffstat (limited to 'test/wpt/tests/xhr/send-entity-body-none.htm')
-rw-r--r--test/wpt/tests/xhr/send-entity-body-none.htm40
1 files changed, 40 insertions, 0 deletions
diff --git a/test/wpt/tests/xhr/send-entity-body-none.htm b/test/wpt/tests/xhr/send-entity-body-none.htm
new file mode 100644
index 0000000..d757cb3
--- /dev/null
+++ b/test/wpt/tests/xhr/send-entity-body-none.htm
@@ -0,0 +1,40 @@
+<!doctype html>
+<html>
+ <head>
+ <title>XMLHttpRequest: send(null) - no entity body</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <link rel="help" href="https://xhr.spec.whatwg.org/#the-send()-method" data-tested-assertations="following::ol[1]/li[4] following::ol[1]/li[7]" />
+ </head>
+ <body>
+ <div id="log"></div>
+ <script>
+ function noContentTypeTest(method) {
+ var client = new XMLHttpRequest()
+ client.open(method, "resources/content.py", false)
+ client.upload.onloadstart = function(){assert_unreached('this event should not fire for null')}
+ client.send(null)
+ var expectedLength = method == "HEAD" ? "NO" : "0";
+ assert_equals(client.getResponseHeader("x-request-content-length"), expectedLength)
+ assert_equals(client.getResponseHeader("x-request-content-type"), "NO")
+ }
+ test(function() { noContentTypeTest("POST"); }, "No content type (POST)");
+ test(function() { noContentTypeTest("PUT"); }, "No content type (PUT)");
+ test(function() { noContentTypeTest("HEAD"); }, "No content type (HEAD)");
+
+ function explicitContentTypeTest(method) {
+ var client = new XMLHttpRequest()
+ client.open(method, "resources/content.py", false)
+ var content_type = 'application/x-foo'
+ client.setRequestHeader('Content-Type', content_type)
+ client.send(null)
+ var expectedLength = method == "HEAD" ? "NO" : "0";
+ assert_equals(client.getResponseHeader("x-request-content-length"), expectedLength)
+ assert_equals(client.getResponseHeader("x-request-content-type"), content_type)
+ }
+ test(function() { explicitContentTypeTest("POST"); }, "Explicit content type (POST)");
+ test(function() { explicitContentTypeTest("PUT"); }, "Explicit content type (PUT)");
+ test(function() { explicitContentTypeTest("HEAD"); }, "Explicit content type (HEAD)");
+ </script>
+ </body>
+</html>