2008-12-11 Cameron Zwarich <zwarich@apple.com>
[WebKit-https.git] / LayoutTests / security / block-test.html
1 <html>
2 <script>
3     var blockedPorts = new Array(1, 7, 9, 11, 13, 15, 17, 19, 20, 
4       21, 22, 23, 25, 37, 42, 43, 53, 77, 79, 87, 95, 101, 102, 
5       103, 104, 109, 110, 111, 113, 115, 117, 119, 123, 135, 139,
6       143, 179, 389, 465, 512, 513, 514, 515, 526, 530, 531, 532,
7       540, 556, 563, 587, 601, 636, 993, 995, 2049, 4045, 6000, 0);
8     
9     var baseURL = "255.255.255.255";
10     var currentPort = 0;
11     
12     if (window.layoutTestController) {
13         layoutTestController.waitUntilDone();
14         layoutTestController.dumpResourceLoadCallbacks();
15     }
16         
17     function nextTest() {
18         if (!blockedPorts[currentPort]) {
19             ftpTest();
20             return;
21         }
22         var newURL = "http://" + baseURL + ":" + blockedPorts[currentPort] + "/test.jpg";
23         currentPort++;
24         testIMG.src = newURL;
25     }
26     
27     function ftpTest() {
28         testIMG.setAttribute("onError", "ftp21Test();");
29         var newURL = "ftp://" + baseURL + "/test.jpg";
30         testIMG.src = newURL;
31     }
32     
33     function ftp21Test() {
34         testIMG.setAttribute("onError", "ftp22Test();");
35         var newURL = "ftp://" + baseURL + ":21/test.jpg";
36         testIMG.src = newURL;
37     }
38     
39     function ftp22Test() {
40         testIMG.setAttribute("onError", "finishTesting();");
41         var newURL = "ftp://" + baseURL + ":22/test.jpg";
42         testIMG.src = newURL;
43     }
44     
45     function finishTesting() {
46         if (window.layoutTestController) {
47             layoutTestController.dumpAsText();
48             setTimeout("layoutTestController.notifyDone()", 0); 
49         }
50     }
51 </script>
52 <body>
53 <p>This test attempts to change the src of an IMG tag to all black listed ports to confirm that WebKit returns the
54 correct error for them - blocked instead of cannot find.  It also tries the FTP ports for exemptions.  Due to the 
55 nature of this test, the results can only be processed automatically via DumpRenderTree
56 </p>
57 <img id="testIMG" src="http://255.255.255.255/test.jpg" onError="nextTest();"></img>
58 </body>
59 </html>