test.html 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4. <title>Test</title>
  5. <script type='text/javascript' language="javascript" src='jquery.js'></script>
  6. <script type='text/javascript' language="javascript">
  7. <!--
  8. function mbox() {
  9. alert('Javascript OK');
  10. }
  11. var totalCount = 10;
  12. var pendingCount = 0;
  13. var errorCount = 0;
  14. var pushCount = 0;
  15. var allErrorCount = 0;
  16. var autoTest = false;
  17. var testType = "cgi";
  18. function runTest(method, isAsync) {
  19. ++pushCount;
  20. document.getElementById('start').innerHTML = 'Test: ' + pushCount;
  21. document.getElementById('resTotal').innerHTML = 'running';
  22. for (var i = 1; i <= totalCount; ++i) {
  23. document.getElementById('res'+i).innerHTML = "ready";
  24. }
  25. errorCount = 0;
  26. pendingCount = totalCount;
  27. for (var i = 1; i <= totalCount; ++i) {
  28. fetch(i, method, isAsync);
  29. }
  30. }
  31. function runAutoTest() {
  32. if (autoTest) {
  33. runTest("POST", true)
  34. setTimeout("runAutoTest()", 250)
  35. }
  36. }
  37. function fetch(id, method, isAsync) {
  38. document.getElementById('res'+id).innerHTML = "pending";
  39. $.ajax({
  40. async: isAsync,
  41. url: 'echo.' + testType + '?id=' + id,
  42. type: method,
  43. timeout: 2000,
  44. data: { 'id' : id ,
  45. 'longText1' : "adfsdfasdklkjlgasfdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  46. 'longText2' : "bsdfsdfasdklkjlgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  47. 'longText3' : "sdfsadagsdklkjlgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  48. 'longText4' : "q34sdfas3fhbkjlgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  49. 'longText5' : "askj2kjcvxychklgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  50. 'longText6' : "asdfjklhlkjhv8öajsdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  51. 'async' : isAsync
  52. },
  53. dataType: 'json',
  54. succes: function(data) {
  55. },
  56. error: function() {
  57. ++errorCount;
  58. },
  59. complete: function(jqXHR, textStatus) {
  60. --pendingCount;
  61. document.getElementById('res'+id).innerHTML = textStatus;
  62. console.log('id: ' + id + ' (' + pendingCount + '/' + totalCount + '), status: ' + textStatus);
  63. if (pendingCount == 0) {
  64. document.getElementById('resTotal').innerHTML = 'done';
  65. console.log('complete, error count: ' + errorCount);
  66. allErrorCount = allErrorCount + errorCount;
  67. document.getElementById('resSAll').innerHTML = 'total errors: ' + allErrorCount + "/" + (pushCount*totalCount);
  68. }
  69. }
  70. });
  71. }
  72. //-->
  73. </script>
  74. </head>
  75. <body>
  76. <p>
  77. <div id="start">Test not started.</div>
  78. </p>
  79. <p>
  80. <table>
  81. <tr>
  82. <td>
  83. <input id="testButton1" type="button" onclick="javascript:runTest('GET', false)" value="sync GET"></input>
  84. </td>
  85. <td>
  86. <input id="testButton2" type="button" onclick="javascript:runTest('POST', false)" value="sync POST"></input>
  87. </td>
  88. </tr>
  89. <tr>
  90. <td>
  91. <input id="testButton3" type="button" onclick="javascript:runTest('GET', true)" value="async GET"></input>
  92. </td>
  93. <td>
  94. <input id="testButton4" type="button" onclick="javascript:runTest('POST', true)" value="async POST"></input>
  95. </td>
  96. </tr>
  97. <tr>
  98. <td>
  99. <input id="testButton5" type="button" onclick="autoTest=!autoTest; javascript:runAutoTest()" value="automatic test"></input>
  100. </td>
  101. <td>
  102. <input id="testButton6" type="button" onclick="testType = (testType=='cgi') ? 'lp' : 'cgi'; this.value=testType" value='cgi'></input>
  103. </td>
  104. </tr>
  105. <tr>
  106. <td>
  107. <input id="testButtonReset" type="button" onclick="autoTest=false; javascript:location.reload(true)" value="reset"></input>
  108. </td>
  109. <td>
  110. </td>
  111. </tr>
  112. <tr>
  113. <td>
  114. <input id="testButtonBox" type="button" onclick="javascript:mbox()" value="MsgBox"></input>
  115. </td>
  116. <td>
  117. </td>
  118. </tr>
  119. </table>
  120. </p>
  121. <p>
  122. <table border="1">
  123. <tr><th>Test</th><th>Result</th></tr>
  124. <tr><td>1</td><td><div id="res1">not started</div></td></tr>
  125. <tr><td>2</td><td><div id="res2">not started</div></td></tr>
  126. <tr><td>3</td><td><div id="res3">not started</div></td></tr>
  127. <tr><td>4</td><td><div id="res4">not started</div></td></tr>
  128. <tr><td>5</td><td><div id="res5">not started</div></td></tr>
  129. <tr><td>6</td><td><div id="res6">not started</div></td></tr>
  130. <tr><td>7</td><td><div id="res7">not started</div></td></tr>
  131. <tr><td>8</td><td><div id="res8">not started</div></td></tr>
  132. <tr><td>9</td><td><div id="res9">not started</div></td></tr>
  133. <tr><td>10</td><td><div id="res10">not started</div></td></tr>
  134. </table>
  135. <div id="resTotal">Push [Test] to start.</div>
  136. <div id="resSAll"></div>
  137. </p>
  138. </body>
  139. </html>