KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > nanocontainer > webcontainer > JspTestCase


1 package org.nanocontainer.webcontainer;
2
3 import junit.framework.TestCase;
4 import org.mortbay.util.IO;
5 import org.mortbay.jetty.handler.ErrorHandler;
6
7 import org.picocontainer.alternatives.EmptyPicoContainer;
8
9 import javax.servlet.http.HttpServletRequest JavaDoc;
10 import java.io.*;
11 import java.net.URL JavaDoc;
12 import java.net.Socket JavaDoc;
13
14 public class JspTestCase extends TestCase {
15
16     PicoJettyServer server;
17
18     protected void tearDown() throws Exception JavaDoc {
19         if (server != null) {
20             server.stop();
21         }
22         Thread.sleep(1 * 1000);
23     }
24
25
26     public void testCanInstantiateWebContainerContextAndSimpleJspPage() throws InterruptedException JavaDoc, IOException {
27
28         File warFile = TestHelper.getTestWarFile();
29
30         server = new PicoJettyServer("localhost", 8080, new EmptyPicoContainer());
31
32
33         //server.addRequestLog(new NCSARequestLog("./logs/jetty-yyyy-mm-dd.log"));
34

35
36         PicoContextHandler barContext = server.createContext("/bar", true);
37         String JavaDoc absolutePath = warFile.getParentFile().getAbsolutePath();
38         String JavaDoc scratchDir = warFile.getParentFile().getParentFile().getParentFile().getAbsolutePath() + File.separator + "target" + File.separator + "work";
39         new File(scratchDir).mkdirs();
40         barContext.setDefaultHandling(absolutePath + "/", scratchDir, "*.jsp");
41
42         server.start();
43
44         Thread.sleep(2 * 1000);
45
46         URL JavaDoc url = new URL JavaDoc("http://localhost:8080/bar/test.jsp");
47         assertEquals("<HTML>\n" +
48                 " <HEAD>\n" +
49                 " <TITLE>Test JSP</TITLE>\n" +
50                 " </HEAD>\n" +
51                 " <BODY>\n" +
52                 " hello\n" +
53                 " </BODY>\n" +
54                 "</HTML>", IO.toString(url.openStream()));
55
56         Thread.sleep(1 * 1000);
57
58
59     }
60
61     public void testCanInstantiateWebContainerContextAndMissingJspPageHandled() throws InterruptedException JavaDoc, IOException {
62
63         File warFile = TestHelper.getTestWarFile();
64
65         server = new PicoJettyServer("localhost", 8080, new EmptyPicoContainer());
66
67         PicoContextHandler barContext = server.createContext("/bar", true);
68         barContext.addErrorHandler(new MyErrorHandler());
69         String JavaDoc absolutePath = warFile.getParentFile().getAbsolutePath();
70         String JavaDoc scratchDir = warFile.getParentFile().getParentFile().getParentFile().getAbsolutePath() + File.separator + "target" + File.separator + "work";
71         new File(scratchDir).mkdirs();
72         barContext.setDefaultHandling(absolutePath + "/", scratchDir, "*.jsp");
73
74         server.start();
75
76         Thread.sleep(2 * 1000);
77
78
79         Socket JavaDoc socket = new Socket JavaDoc("localhost", 8080);
80         PrintWriter writer = new PrintWriter(socket.getOutputStream());
81         writer.write("GET /bar/barfs.jsp HTTP/1.0\n\n\n");
82         writer.flush();
83         LineNumberReader lnr = new LineNumberReader(new InputStreamReader(socket.getInputStream()));
84         String JavaDoc line = lnr.readLine();
85         String JavaDoc result = "";
86         while(line != null) {
87             result = result + line + "\n";
88             line = lnr.readLine();
89         }
90
91         assertTrue(result.indexOf("Banzai") != -1);
92         assertTrue(result.indexOf("HTTP/1.1 500") != -1);
93
94         Thread.sleep(1 * 1000);
95
96
97     }
98     private static class MyErrorHandler extends ErrorHandler {
99         protected void handleErrorPage(HttpServletRequest JavaDoc request, Writer writer, int code, String JavaDoc message)
100             throws IOException
101         {
102             writer.write("<br>Banzai!<br><br>");
103             super.handleErrorPage(request, writer, code, message);
104         }
105
106     }
107
108 }
109
Popular Tags