| <html> |
| <script> |
| // Note that port "1" is tested by the initial load. |
| var blockedPorts = [7, 9, 11, 13, 15, 17, 19, 20, |
| 21, 22, 23, 25, 37, 42, 43, 53, 77, 79, 87, 95, 101, 102, |
| 103, 104, 109, 110, 111, 113, 115, 117, 119, 123, 135, 139, |
| 143, 179, 389, 465, 512, 513, 514, 515, 526, 530, 531, 532, |
| 540, 548, 556, 563, 587, 601, 636, 993, 995, 2049, 3659, 4045, |
| 4190, 6000, 6665, 6666, 6667, 6668, 6669, 6679, 6697, |
| |
| // Port numbers that we consider to be invalid due to being out of range. |
| Math.pow(2, 16) - 1, Math.pow(2, 16), Math.pow(2, 32) - 1, Math.pow(2, 32)]; |
| |
| var allowedPorts = [0, 80, ""]; |
| |
| var baseURL = "255.255.255.255"; |
| var currentPort = 0; |
| |
| if (window.testRunner) { |
| testRunner.waitUntilDone(); |
| testRunner.dumpResourceLoadCallbacks(); |
| } |
| |
| function nextBlockedPortTest() { |
| if (!(currentPort in blockedPorts)) { |
| currentPort = 0; |
| nextAllowedPortTest(); |
| return; |
| } |
| var newURL = "http://" + baseURL + ":" + blockedPorts[currentPort] + "/test.jpg"; |
| currentPort++; |
| testIMG.src = newURL; |
| } |
| |
| function nextAllowedPortTest() { |
| if (!(currentPort in allowedPorts)) { |
| ftpTest(); |
| return; |
| } |
| var newURL = "http://" + baseURL + ":" + allowedPorts[currentPort] + "/test.jpg"; |
| currentPort++; |
| testIMG.setAttribute("onError", "nextAllowedPortTest();"); |
| testIMG.src = newURL; |
| } |
| |
| function ftpTest() { |
| testIMG.setAttribute("onError", "ftp21Test();"); |
| var newURL = "ftp://" + baseURL + "/test.jpg"; |
| testIMG.src = newURL; |
| } |
| |
| function ftp21Test() { |
| testIMG.setAttribute("onError", "ftp22Test();"); |
| var newURL = "ftp://" + baseURL + ":21/test.jpg"; |
| testIMG.src = newURL; |
| } |
| |
| function ftp22Test() { |
| testIMG.setAttribute("onError", "finishTesting();"); |
| var newURL = "ftp://" + baseURL + ":22/test.jpg"; |
| testIMG.src = newURL; |
| } |
| |
| function finishTesting() { |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| setTimeout("testRunner.notifyDone()", 0); |
| } |
| } |
| |
| function makeImage() { |
| var image = document.createElement("img"); |
| image.onerror=nextBlockedPortTest; |
| image.src="http://255.255.255.255:1/test.jpg"; |
| image.id="testIMG"; |
| document.body.appendChild(image); |
| } |
| </script> |
| <body onload="makeImage()"> |
| <p>This test attempts to change the src of an IMG tag to all black listed ports to confirm that WebKit returns the |
| correct error for them - blocked instead of cannot find. It also tries the FTP ports for exemptions. Due to the |
| nature of this test, the results can only be processed automatically via DumpRenderTree |
| </p> |
| </body> |
| </html> |