Forráskód Böngészése

Improve HTTP method test

Format whitespaces, add random post data
bel 10 éve
szülő
commit
9ada200a3a
1 módosított fájl, 80 hozzáadás és 74 törlés
  1. 80 74
      test/MethodTest.xhtml

+ 80 - 74
test/MethodTest.xhtml

@@ -1,5 +1,6 @@
 <!DOCTYPE HTML>
-<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
 <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
   <title>HTTP method test</title>
   <style type="text/css" media="screen">
@@ -28,30 +29,29 @@
     }
 
     function load() {
-        var params = getParams();
-        var method = params["method"];
-        if (!method) {
-          method = "GET";
-        }
-        var path = params["path"];
-        if (!path) {
-          path = "";
-        }
+      var params = getParams();
+      var method = params["method"];
+      if (!method) {
+        method = "GET";
+      }
+      var path = params["path"];
+      if (!path) {
+        path = "";
+      }
 
-        var elem = document.getElementById('h1');
-        elem.innerHTML = "HTTP method test page";
+      var elem = document.getElementById('h1');
+      elem.innerHTML = "HTTP method test page";
 
-        document.getElementById("proto_http").checked = (window.location.protocol != "https:");
-        document.getElementById("proto_https").checked = (window.location.protocol == "https:");
-        document.getElementById("server").value = location.host;
-        document.getElementById("resource").value = path;
+      document.getElementById("proto_http").checked = (window.location.protocol != "https:");
+      document.getElementById("proto_https").checked = (window.location.protocol == "https:");
+      document.getElementById("server").value = location.host;
+      document.getElementById("resource").value = path;
 
-        setRadioValue("method", method);
-        noBody();
+      setRadioValue("method", method);
+      noBody();
     }
 
     function setRadioValue(elmname, value) {
-
       var elms = document.getElementsByName(elmname);
       var len = elms.length;
       var ret = false;
@@ -78,65 +78,70 @@
     }
 
     function sendreq() {
-        var proto = getRadioValue("protocol");
-        var host = document.getElementById("server").value;
-        var res = document.getElementById("resource").value;
-        var addr = proto + "://" + host + "/" + res;
-        var meth = getRadioValue("method");
-        var body = getRadioValue("body");
-
-        xmlhttp = new XMLHttpRequest();
-        if (!xmlhttp) {
-          alert("XMLHttpRequest not available");
-          window.history.back()
-        }
-
-        xmlhttp.open(meth,addr,true);
-
-        if (body != '*') {
-          xmlhttp.setRequestHeader("Content-Length", body.length);
-        } else {
-          body = null;
-        }
-
-        xmlhttp.onreadystatechange = function()
-        {
-            var laddr = addr
-            var lmeth = meth
-            var blen = ""
-            if (body) {
-              blen = "\nWith " + body.length + " bytes body data"
-            }
+      var proto = getRadioValue("protocol");
+      var host = document.getElementById("server").value;
+      var res = document.getElementById("resource").value;
+      var addr = proto + "://" + host + "/" + res;
+      var meth = getRadioValue("method");
+      var body = getRadioValue("body");
+
+      xmlhttp = new XMLHttpRequest();
+      if (!xmlhttp) {
+        alert("XMLHttpRequest not available");
+        window.history.back();
+      }
 
-            if (xmlhttp.readyState == 4)
-            {
-                alert(lmeth + " " + laddr + blen + "\n\nResponse: " + xmlhttp.status + "\n\n" + xmlhttp.responseText);
+      xmlhttp.open(meth,addr,true);
+
+      if (body == '*') {
+        body = null;
+      } else {
+        if (body == '**') {
+            var body_bytes = document.getElementById("body_bytes").value;
+            body_bytes = parseInt(Number(body_bytes) || 0) || 0;
+            body = "";
+            for (var i=0; i<body_bytes; i++) {
+              var ascii = Math.floor((Math.random() * 94) + 32);
+              body = body + String.fromCharCode(ascii);
             }
         }
+        xmlhttp.setRequestHeader("Content-Length", body.length);
+      }
+
+      xmlhttp.onreadystatechange = function()
+      {
+          var laddr = addr;
+          var lmeth = meth;
+          var blen = "";
+          if (body) {
+            blen = "\nWith " + body.length + " bytes body data";
+          }
+
+          if (xmlhttp.readyState == 4)
+          {
+              alert(lmeth + " " + laddr + blen + "\n\nResponse: " + xmlhttp.status + "\n\n" + xmlhttp.responseText);
+          }
+      }
 
-        xmlhttp.send(body);
+      xmlhttp.send(body);
 
     }
 
   ]]></script>
 
-</head><body onload="load()">
+</head>
+<body onload="load()">
 
 <h1 id='h1'>Fatal error: Javascript not available!</h1>
-<h2>Usage</h2>
-
-<p>
-TODO: Description how to use this page.
-</p>
 
 <h2>Test parameters</h2>
 <form lass="cform">
 
 <h3>Protocol</h3>
-<input id="proto_http" type="radio" name="protocol" value="http" />http <br />
-<input id="proto_https" type="radio" name="protocol" value="https" />https
+<input id="proto_http" type="radio" name="protocol" value="http" /> http <br />
+<input id="proto_https" type="radio" name="protocol" value="https" /> https
 
-<h3>Server</h3>
+<h3>Server/Host</h3>
 <input id="server" type="text" name="server" value="" />
 
 <h3>Resource</h3>
@@ -144,21 +149,22 @@ TODO: Description how to use this page.
 
 <h3>Method</h3>
 <!-- http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html -->
-<input id="method_opt" type="radio" name="method" value="OPTIONS" />OPTIONS <br />
-<input id="method_get" type="radio" name="method" value="GET" />GET <br />
-<input id="method_hea" type="radio" name="method" value="HEAD" />HEAD <br />
-<input id="method_pos" type="radio" name="method" value="POST" />POST <br />
-<input id="method_put" type="radio" name="method" value="PUT" />PUT <br />
-<input id="method_del" type="radio" name="method" value="DELETE" />DELETE <br />
-<input id="method_tra" type="radio" name="method" value="TRACE" />TRACE <br />
-<input id="method_con" type="radio" name="method" value="CONNECT" />CONNECT <br />
-<input id="method_mkc" type="radio" name="method" value="MKCOL" />MKCOL <br />
-<input id="method_pro" type="radio" name="method" value="PROPFIND" />PROPFIND <br />
-<input id="method_inv" type="radio" name="method" value="INVALID" />*INVALID*
+<input id="method_opt" type="radio" name="method" value="OPTIONS" onclick="noBody()" /> OPTIONS <br />
+<input id="method_get" type="radio" name="method" value="GET" onclick="noBody()" /> GET <br />
+<input id="method_hea" type="radio" name="method" value="HEAD" onclick="noBody()" /> HEAD <br />
+<input id="method_pos" type="radio" name="method" value="POST" /> POST <br />
+<input id="method_put" type="radio" name="method" value="PUT" /> PUT <br />
+<input id="method_del" type="radio" name="method" value="DELETE" /> DELETE <br />
+<input id="method_tra" type="radio" name="method" value="TRACE" /> TRACE <br />
+<input id="method_con" type="radio" name="method" value="CONNECT" /> CONNECT <br />
+<input id="method_mkc" type="radio" name="method" value="MKCOL" /> MKCOL <br />
+<input id="method_pro" type="radio" name="method" value="PROPFIND" /> PROPFIND <br />
+<input id="method_inv" type="radio" name="method" value="INVALID" /> *INVALID*
 
 <h3>Body data</h3>
-<input id="body_none" type="radio" name="body" value="*" />0 Bytes <br />
-<input id="body_10" type="radio" name="body" value="1234567890" />10 Bytes ("1234567890") <br />
+<input id="body_none" type="radio" name="body" value="*" /> No body data <br />
+<input id="body_10" type="radio" name="body" value="1234567890" /> 10 Bytes ("1234567890") <br />
+<input id="body_rnd" type="radio" name="body" value="**" /> <input id="body_bytes" type="number" name="body_bytes" value="100" min="0" step="0" max="999999999" oninput="document.getElementById('body_rnd').checked = true" /> Bytes random data <br />
 
 <h3>Submit</h3>
 <input id="send" type="button" onclick="sendreq()" value="Send request" />