diff options
Diffstat (limited to 'devtools/client/netmonitor/test/html_post-data-test-page.html')
-rw-r--r-- | devtools/client/netmonitor/test/html_post-data-test-page.html | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/devtools/client/netmonitor/test/html_post-data-test-page.html b/devtools/client/netmonitor/test/html_post-data-test-page.html new file mode 100644 index 0000000000..b53e8b60e7 --- /dev/null +++ b/devtools/client/netmonitor/test/html_post-data-test-page.html @@ -0,0 +1,82 @@ +<!-- Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ --> +<!doctype html> + +<html> + <head> + <meta charset="utf-8"/> + <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> + <meta http-equiv="Pragma" content="no-cache" /> + <meta http-equiv="Expires" content="0" /> + <title>Network Monitor test page</title> + <style> + input { + display: block; + margin: 12px; + } + </style> + </head> + + <body> + <p>POST data test</p> + <form enctype="multipart/form-data" method="post" name="form-name"> + <input type="text" name="text" placeholder="text" value="Some text..."/> + <input type="email" name="email" placeholder="email"/> + <input type="range" name="range" value="42"/> + <input type="button" value="Post me!" onclick="window.form()"> + </form> + + <script type="text/javascript"> + /* exported performRequests */ + "use strict"; + + function post(address, message) { + return new Promise(resolve => { + const xhr = new XMLHttpRequest(); + xhr.open("POST", address, true); + xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + + let data = ""; + for (const i in message) { + data += "&" + i + "=" + encodeURIComponent(message[i]); + } + + xhr.onreadystatechange = function() { + if (this.readyState == this.DONE) { + resolve(); + } + }; + xhr.send(data); + }); + } + + function form(address, formName) { + return new Promise(resolve => { + const formData = new FormData(document.forms.namedItem(formName)); + formData.append("Custom field", "Extra data"); + + const xhr = new XMLHttpRequest(); + xhr.open("POST", address, true); + xhr.setRequestHeader("custom-header-xxx", "custom-value-xxx"); + + xhr.onreadystatechange = function() { + if (this.readyState == this.DONE) { + resolve(); + } + }; + xhr.send(formData); + }); + } + + async function performRequests() { + const url = "sjs_simple-test-server.sjs"; + const url1 = url + "?foo=bar&baz=42&valueWithEqualSign=hijk=123=mnop&type=urlencoded"; + const url2 = url + "?foo=bar&baz=42&type=multipart"; + + await post(url1, { foo: "bar", baz: 123, valueWithEqualSign: "xyz=abc=123", valueWithAmpersand: "abcd&1234" }); + await form(url2, "form-name"); + } + </script> + </body> + +</html> |