Enable URLParser by default
[WebKit-https.git] / LayoutTests / security / block-test.html
1 <html>
2 <script>
3     // Note that port "1" is tested by the initial load.
4     var blockedPorts = [7, 9, 11, 13, 15, 17, 19, 20,
5       21, 22, 23, 25, 37, 42, 43, 53, 77, 79, 87, 95, 101, 102,
6       103, 104, 109, 110, 111, 113, 115, 117, 119, 123, 135, 139,
7       143, 179, 389, 465, 512, 513, 514, 515, 526, 530, 531, 532,
8       540, 556, 563, 587, 601, 636, 993, 995, 2049, 3659, 4045,
9       4190, 6000, 6665, 6666, 6667, 6668, 6669,
10
11       // Port numbers that we consider to be invalid due to being out of range.
12       Math.pow(2, 16) - 1, Math.pow(2, 16), Math.pow(2, 32) - 1, Math.pow(2, 32)];
13
14     var allowedPorts = [0, 80, ""];
15
16     var baseURL = "255.255.255.255";
17     var currentPort = 0;
18
19     if (window.testRunner) {
20         testRunner.waitUntilDone();
21         testRunner.dumpResourceLoadCallbacks();
22     }
23
24     function nextBlockedPortTest() {
25         if (!(currentPort in blockedPorts)) {
26             currentPort = 0;
27             nextAllowedPortTest();
28             return;
29         }
30         var newURL = "http://" + baseURL + ":" + blockedPorts[currentPort] + "/test.jpg";
31         currentPort++;
32         testIMG.src = newURL;
33     }
34
35     function nextAllowedPortTest() {
36         if (!(currentPort in allowedPorts)) {
37             ftpTest();
38             return;
39         }
40         var newURL = "http://" + baseURL + ":" + allowedPorts[currentPort] + "/test.jpg";
41         currentPort++;
42         testIMG.setAttribute("onError", "nextAllowedPortTest();");
43         testIMG.src = newURL;
44     }
45
46     function ftpTest() {
47         testIMG.setAttribute("onError", "ftp21Test();");
48         var newURL = "ftp://" + baseURL + "/test.jpg";
49         testIMG.src = newURL;
50     }
51
52     function ftp21Test() {
53         testIMG.setAttribute("onError", "ftp22Test();");
54         var newURL = "ftp://" + baseURL + ":21/test.jpg";
55         testIMG.src = newURL;
56     }
57
58     function ftp22Test() {
59         testIMG.setAttribute("onError", "finishTesting();");
60         var newURL = "ftp://" + baseURL + ":22/test.jpg";
61         testIMG.src = newURL;
62     }
63
64     function finishTesting() {
65         if (window.testRunner) {
66             testRunner.dumpAsText();
67             setTimeout("testRunner.notifyDone()", 0); 
68         }
69     }
70 </script>
71 <body>
72 <p>This test attempts to change the src of an IMG tag to all black listed ports to confirm that WebKit returns the
73 correct error for them - blocked instead of cannot find.  It also tries the FTP ports for exemptions.  Due to the 
74 nature of this test, the results can only be processed automatically via DumpRenderTree
75 </p>
76 <img id="testIMG" src="http://255.255.255.255:1/test.jpg" onError="nextBlockedPortTest();"></img>
77 </body>
78 </html>