[jboss-cvs] JBossAS SVN: r102961 - in trunk/testsuite: src/main/org/jboss/test/web and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Mar 25 11:24:58 EDT 2010


Author: wolfc
Date: 2010-03-25 11:24:58 -0400 (Thu, 25 Mar 2010)
New Revision: 102961

Added:
   trunk/testsuite/src/main/org/jboss/test/web/naming/
   trunk/testsuite/src/main/org/jboss/test/web/naming/NamingServlet.java
   trunk/testsuite/src/main/org/jboss/test/web/test/NamingServletUnitTestCase.java
Modified:
   trunk/testsuite/imports/sections/web.xml
Log:
JBAS-7862: unit test

Modified: trunk/testsuite/imports/sections/web.xml
===================================================================
--- trunk/testsuite/imports/sections/web.xml	2010-03-25 15:20:04 UTC (rev 102960)
+++ trunk/testsuite/imports/sections/web.xml	2010-03-25 15:24:58 UTC (rev 102961)
@@ -1,6 +1,14 @@
 <project name="tests-web-jars">
+   <target name="naming.war" depends="compile">
+      <jar destfile="${build.lib}/naming.war">
+         <zipfileset dir="${build.classes}" prefix="WEB-INF/classes" includes="org/jboss/test/web/naming/**.class"/>
+      </jar>
+   </target>
+
 <!-- web test -->
-   <target name="_jars-web">
+   <target name="_jars-web" depends="
+      naming.war
+      ">
       <mkdir dir="${build.lib}"/>
 
       <!-- The mcaware.war -->

Added: trunk/testsuite/src/main/org/jboss/test/web/naming/NamingServlet.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/web/naming/NamingServlet.java	                        (rev 0)
+++ trunk/testsuite/src/main/org/jboss/test/web/naming/NamingServlet.java	2010-03-25 15:24:58 UTC (rev 102961)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright (c) 2010, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.web.naming;
+
+import org.jboss.logging.Logger;
+
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+/**
+ * @author <a href="cdewolf at redhat.com">Carlo de Wolf</a>
+ */
+ at WebServlet("/servlet")
+public class NamingServlet extends HttpServlet
+{
+   private static final Logger log = Logger.getLogger(NamingServlet.class);
+   
+   private InitialContext ctx;
+   
+   @Override
+   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
+   {
+      String name = req.getParameter("name");
+      if(name == null)
+      {
+         resp.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+         print(resp, "name is unspecified");
+         return;
+      }
+
+      try
+      {
+         String value = String.valueOf(ctx.lookup(name));
+         print(resp, value);
+      }
+      catch(NamingException e)
+      {
+         log.warn("Failed to lookup " + name, e);
+         resp.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+         print(resp, e.getMessage());
+      }
+   }
+
+   @Override
+   public void init() throws ServletException
+   {
+      super.init();
+
+      try
+      {
+         this.ctx = new InitialContext();
+      }
+      catch(NamingException e)
+      {
+         throw new ServletException(e);
+      }
+   }
+
+   protected static void print(HttpServletResponse resp, String s) throws IOException
+   {
+      resp.setContentType("text/plain");
+      PrintWriter out = resp.getWriter();
+      out.print(s);
+   }
+}


Property changes on: trunk/testsuite/src/main/org/jboss/test/web/naming/NamingServlet.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Added: trunk/testsuite/src/main/org/jboss/test/web/test/NamingServletUnitTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/web/test/NamingServletUnitTestCase.java	                        (rev 0)
+++ trunk/testsuite/src/main/org/jboss/test/web/test/NamingServletUnitTestCase.java	2010-03-25 15:24:58 UTC (rev 102961)
@@ -0,0 +1,99 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright (c) 2010, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.web.test;
+
+import junit.framework.Test;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpMethodBase;
+import org.apache.commons.httpclient.methods.GetMethod;
+import org.jboss.test.JBossTestCase;
+import org.jboss.test.util.web.HttpUtils;
+
+import java.io.IOException;
+
+/**
+ * @author <a href="cdewolf at redhat.com">Carlo de Wolf</a>
+ */
+public class NamingServletUnitTestCase extends JBossTestCase
+{
+   private final HttpClient client = new HttpClient();
+   
+   public NamingServletUnitTestCase(String name)
+   {
+      super(name);
+   }
+
+   protected String get(String spec) throws IOException
+   {
+      HttpMethodBase request = new GetMethod(HttpUtils.getBaseURL() + spec);
+      client.executeMethod(request);
+
+      String responseBody = request.getResponseBodyAsString();
+      request.releaseConnection();
+      return responseBody;
+   }
+
+   public static Test suite() throws Exception
+   {
+      return getDeploySetup(NamingServletUnitTestCase.class, "naming.war");
+   }
+
+   /**
+    * Servlet 3.0 15.2.3
+    */
+   public void testAppContextRoot() throws Exception
+   {
+      // since this is a standalone deployment, the module functions as an app (EE.5.2.2)
+      String result = get("/naming/servlet?name=java:app/naming!ROOT");
+      fail("FIXME: don't know what to expect " + result);
+   }
+
+   /**
+    * Servlet 3.0 15.2.3
+    */
+   public void testGlobalContextRoot() throws Exception
+   {
+      // since this is a standalone deployment, no app-name is needed
+      String result = get("/naming/servlet?name=java:global/naming!ROOT");
+      fail("FIXME: don't know what to expect " + result);
+   }
+
+   /**
+    * JavaEE 6 EE.5.15
+    */
+   public void testModuleName() throws Exception
+   {
+      String result = get("/naming/servlet?name=java:module/ModuleName");
+      assertEquals("naming", result);
+   }
+
+   /**
+    * JavaEE 6 EE.5.2.2
+    * In a web module, java:comp refers to the same namespace as java:module.
+    */
+   public void testModuleNameViaComp() throws Exception
+   {
+      // given the above knowledge we could also do this
+      String result = get("/naming/servlet?name=java:comp/ModuleName");
+      assertEquals("naming", result);
+   }
+}


Property changes on: trunk/testsuite/src/main/org/jboss/test/web/test/NamingServletUnitTestCase.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native




More information about the jboss-cvs-commits mailing list