[weld-commits] Weld SVN: r5400 - in core/trunk/tests/src/test: java/org/jboss/weld/tests/contexts/errorpage and 3 other directories.

weld-commits at lists.jboss.org weld-commits at lists.jboss.org
Fri Jan 8 09:23:49 EST 2010


Author: dallen6
Date: 2010-01-08 09:23:49 -0500 (Fri, 08 Jan 2010)
New Revision: 5400

Added:
   core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/
   core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/ErrorPageTest.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/Rain.java
   core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/Storm.java
   core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/
   core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/
   core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/.faces-config.xml.jsfdia
   core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/error.jsf
   core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/faces-config.xml
   core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/storm.jsf
   core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/web.xml
Log:
WELD-29 test case

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/ErrorPageTest.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/ErrorPageTest.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/ErrorPageTest.java	2010-01-08 14:23:49 UTC (rev 5400)
@@ -0,0 +1,104 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat, Inc. and/or its affiliates, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.weld.tests.contexts.errorpage;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.testharness.impl.packaging.Classes;
+import org.jboss.testharness.impl.packaging.IntegrationTest;
+import org.jboss.testharness.impl.packaging.Resource;
+import org.jboss.testharness.impl.packaging.Resources;
+import org.jboss.testharness.impl.packaging.war.WarArtifactDescriptor;
+import org.jboss.weld.test.AbstractWeldTest;
+import org.testng.annotations.Test;
+
+import com.gargoylesoftware.htmlunit.WebClient;
+import com.gargoylesoftware.htmlunit.html.HtmlDivision;
+import com.gargoylesoftware.htmlunit.html.HtmlElement;
+import com.gargoylesoftware.htmlunit.html.HtmlPage;
+import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
+
+/**
+ * <p>This test was mostly developed to test the scenario related to WELD-29.  Essentially
+ * a JSF action throws an exception, and the error page is then rendered during which
+ * all relevant scopes for CDI are tested.</p>
+ * 
+ * @author David Allen
+ *
+ */
+ at Artifact(addCurrentPackage=false)
+ at Classes({Storm.class})
+ at IntegrationTest(runLocally=true)
+ at Resources({
+  @Resource(destination=WarArtifactDescriptor.WEB_XML_DESTINATION, source="web.xml"),
+  @Resource(destination="storm.jspx", source="storm.jsf"),
+  @Resource(destination="error.jspx", source="error.jsf"),
+  @Resource(destination="/WEB-INF/faces-config.xml", source="faces-config.xml")
+})
+public class ErrorPageTest extends AbstractWeldTest
+{
+   @Test(description = "WELD-29", groups = { "broken" })
+   public void testActionMethodExceptionDoesNotDestroyContext() throws Exception
+   {
+      WebClient client = new WebClient();
+      client.setThrowExceptionOnFailingStatusCode(false);
+      
+      HtmlPage page = client.getPage(getPath("/storm.jsf"));
+      HtmlSubmitInput disasterButton = getFirstMatchingElement(page, HtmlSubmitInput.class, "disasterButton");
+      page = disasterButton.click();
+      assert "Application Error".equals(page.getTitleText());
+      HtmlDivision conversationValue = getFirstMatchingElement(page, HtmlDivision.class, "conversation");
+      assert conversationValue.asText().equals("0");
+      HtmlDivision requestValue = getFirstMatchingElement(page, HtmlDivision.class, "request");
+      assert requestValue.asText().equals("medium");
+   }
+
+   protected <T> Set<T> getElements(HtmlElement rootElement, Class<T> elementClass)
+   {
+     Set<T> result = new HashSet<T>();
+     
+     for (HtmlElement element : rootElement.getAllHtmlChildElements())
+     {
+        result.addAll(getElements(element, elementClass));
+     }
+     
+     if (elementClass.isInstance(rootElement))
+     {
+        result.add(elementClass.cast(rootElement));
+     }
+     return result;
+     
+   }
+ 
+   protected <T extends HtmlElement> T getFirstMatchingElement(HtmlPage page, Class<T> elementClass, String id)
+   {
+     
+     Set<T> inputs = getElements(page.getBody(), elementClass);
+     for (T input : inputs)
+     {
+         if (input.getId().contains(id))
+         {
+            return input;
+         }
+     }
+     return null;
+   }
+   
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/ErrorPageTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/Rain.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/Rain.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/Rain.java	2010-01-08 14:23:49 UTC (rev 5400)
@@ -0,0 +1,12 @@
+package org.jboss.weld.tests.contexts.errorpage;
+
+import javax.enterprise.context.RequestScoped;
+
+ at RequestScoped
+public class Rain
+{
+   public String getSeverityLevel()
+   {
+      return "medium";
+   }
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/Rain.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/Storm.java
===================================================================
--- core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/Storm.java	                        (rev 0)
+++ core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/Storm.java	2010-01-08 14:23:49 UTC (rev 5400)
@@ -0,0 +1,44 @@
+package org.jboss.weld.tests.contexts.errorpage;
+
+import java.io.Serializable;
+
+import javax.enterprise.context.Conversation;
+import javax.enterprise.context.ConversationScoped;
+import javax.inject.Inject;
+import javax.inject.Named;
+
+ at Named
+ at ConversationScoped
+public class Storm implements Serializable
+{
+   
+   /**
+	 * 
+	 */
+	private static final long serialVersionUID = -1513633490356967202L;
+
+	@Inject Conversation conversation;
+   
+   private String strength = "0";
+   
+   public void beginConversation()
+   {
+      conversation.begin();
+   }
+   
+   public void disaster()
+   {
+      throw new RuntimeException("Storm is a disaster");
+   }
+
+   public String getStrength()
+   {
+      return strength;
+   }
+   
+   public void setStrength(String strength)
+   {
+      this.strength = strength;
+   }
+   
+}


Property changes on: core/trunk/tests/src/test/java/org/jboss/weld/tests/contexts/errorpage/Storm.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/.faces-config.xml.jsfdia
===================================================================
--- core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/.faces-config.xml.jsfdia	                        (rev 0)
+++ core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/.faces-config.xml.jsfdia	2010-01-08 14:23:49 UTC (rev 5400)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<PROCESS model-entity="JSFProcess"/>

Added: core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/error.jsf
===================================================================
--- core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/error.jsf	                        (rev 0)
+++ core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/error.jsf	2010-01-08 14:23:49 UTC (rev 5400)
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" 
+          xmlns:h="http://java.sun.com/jsf/html"
+          xmlns:f="http://java.sun.com/jsf/core"
+          xmlns="http://www.w3.org/1999/xhtml"
+          version="2.0">
+  <jsp:output doctype-root-element="html" 
+              doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+              doctype-system="http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+  <jsp:directive.page contentType="text/html"/>
+  <html>
+  <head>
+  	<title>Application Error</title>
+  </head>
+  <body>
+  <h1>Application Error</h1>
+  <p>The following error occurred while processing the request:</p>
+  
+  <div id="request">${rain.serverityLevel}</div>
+  <div id="conversation">${storm.strength}</div>
+  
+  </body>
+  </html>
+</jsp:root>
+


Property changes on: core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/error.jsf
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/faces-config.xml
===================================================================
--- core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/faces-config.xml	                        (rev 0)
+++ core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/faces-config.xml	2010-01-08 14:23:49 UTC (rev 5400)
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<faces-config version="1.2" 
+              xmlns="http://java.sun.com/xml/ns/javaee"
+              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+              xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
+  
+</faces-config>


Property changes on: core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/faces-config.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/storm.jsf
===================================================================
--- core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/storm.jsf	                        (rev 0)
+++ core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/storm.jsf	2010-01-08 14:23:49 UTC (rev 5400)
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" 
+          xmlns:h="http://java.sun.com/jsf/html"
+          xmlns:f="http://java.sun.com/jsf/core"
+          xmlns:s="http://jboss.com/products/seam/taglib"
+          xmlns="http://www.w3.org/1999/xhtml"
+          version="2.0">
+  <jsp:output doctype-root-element="html" 
+              doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+              doctype-system="http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
+  <jsp:directive.page contentType="text/html"/>
+  <html>
+  <head>
+  </head>
+  <body>
+   <f:view>
+      <h:form id="form">
+         <h:inputText value="#{storm.strength}" id="stormStrength" />
+         <h:commandButton action="#{storm.beginConversation}" value="Begin" id="beginConversationButton"/>
+         <h:commandButton action="#{storm.disaster}" value="Disaster" id="disasterButton"/>
+      </h:form>
+   </f:view>
+  </body>
+  </html>
+</jsp:root>
\ No newline at end of file


Property changes on: core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/storm.jsf
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/web.xml
===================================================================
--- core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/web.xml	                        (rev 0)
+++ core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/web.xml	2010-01-08 14:23:49 UTC (rev 5400)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+ <display-name>JSR-299 RI Core Tests</display-name>
+ <context-param>
+  <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
+  <param-value>.jspx</param-value>
+ </context-param>
+ <!-- JSF -->
+ <servlet>
+  <servlet-name>Faces Servlet</servlet-name>
+  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+  <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet>
+  <servlet-name>Conversation Status Servlet</servlet-name>
+  <servlet-class>org.jboss.jsr299.tck.tests.context.conversation.client.ConversationStatusServlet</servlet-class>
+ </servlet>
+ <servlet-mapping>
+  <servlet-name>Faces Servlet</servlet-name>
+  <url-pattern>*.jsf</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+  <servlet-name>Conversation Status Servlet</servlet-name>
+  <url-pattern>/conversation-status</url-pattern>
+ </servlet-mapping>
+ <session-config>
+  <session-timeout>10</session-timeout>
+ </session-config>
+ <error-page>
+  <exception-type>java.lang.Exception</exception-type>
+  <location>/error.jspx</location>
+ </error-page>
+ <login-config>
+  <auth-method>BASIC</auth-method>
+ </login-config>
+</web-app>


Property changes on: core/trunk/tests/src/test/resources/org/jboss/weld/tests/contexts/errorpage/web.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain



More information about the weld-commits mailing list