Skip to content
This repository has been archived by the owner on Apr 11, 2018. It is now read-only.

Commit

Permalink
Merge pull request #157 from richfaces/RF-14140-integration-tests-on-…
Browse files Browse the repository at this point in the history
…tomcat

RF-14140: integration tests on tomcat
  • Loading branch information
michpetrov committed Sep 23, 2015
2 parents 93d7d09 + 3e3ae6d commit a6f147f
Show file tree
Hide file tree
Showing 10 changed files with 60 additions and 46 deletions.
Expand Up @@ -247,9 +247,6 @@ private BaseDeployment withServletContainerSetup() {

addMavenDependency("org.jboss.weld.servlet:weld-servlet");

addMavenDependency("org.jboss.el:jboss-el");
excludeMavenDependency("el-api");

addMavenDependency("javax.annotation:jsr250-api:1.0");
addMavenDependency("javax.servlet:jstl:1.2");

Expand All @@ -261,30 +258,23 @@ public WebAppDescriptor apply(WebAppDescriptor webXml) {
.createListener()
.listenerClass("org.jboss.weld.environment.servlet.Listener");

// setup ExpressionFactory of JBoss EL (supports unified EL)
switch (configuration.getJsfProvider()) {
case MOJARRA:
webXml
.getOrCreateContextParam()
.paramName("com.sun.faces.expressionFactory")
.paramValue("org.jboss.el.ExpressionFactoryImpl");
break;

case MYFACES:
webXml
.getOrCreateContextParam()
.paramName("org.apache.myfaces.EXPRESSION_FACTORY")
.paramValue("org.jboss.el.ExpressionFactoryImpl");
break;
}

return webXml;
}
});

return this;
}

/**
* Adds Hibernate validator dependency, but only when using Servlet container (Tomcat, Jetty).
*/
public BaseDeployment addHibernateValidatorWhenUsingServletContainer() {
if (configuration.servletContainerSetup()) {
return addMavenDependency("org.hibernate:hibernate-validator");
}
return this;
}

/**
* <p>
* Add basic dependencies which RichFaces depends on.</p>
Expand Down
Expand Up @@ -10,7 +10,6 @@
import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Test;
import org.junit.runner.RunWith;
Expand Down Expand Up @@ -48,6 +47,8 @@ public static WebArchive createDeployment() {

addIndexPage(deployment);

deployment.addHibernateValidatorWhenUsingServletContainer();

return deployment.getFinalArchive();
}

Expand Down
Expand Up @@ -19,7 +19,6 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/

package org.richfaces.component.validation;

import static org.hamcrest.CoreMatchers.containsString;
Expand Down Expand Up @@ -75,6 +74,9 @@ protected static void addIndexPage(org.richfaces.deployment.BaseDeployment deplo
p.body(" <h:outputText id='out' value='#{graphBean.value}'></h:outputText>");
p.body(" <h:commandButton id='submit' value='Submit'/>");
p.body("</h:form>");
p.body("<br />");
p.body("<input id='blurButton' value='blur' type='button' />");
p.body("<br />");
p.body("<rich:message id='textMessage' for='text' />");
p.body("<rich:message id='graphMessage' for='validator' />");
p.body("<rich:messages id='uiMessage' />");
Expand Down
Expand Up @@ -19,7 +19,6 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/

package org.richfaces.component.validation;

import static org.hamcrest.CoreMatchers.equalTo;
Expand Down Expand Up @@ -52,6 +51,8 @@ public static WebArchive deployment() {

addIndexPage(deployment);

deployment.addHibernateValidatorWhenUsingServletContainer();

return deployment.getFinalArchive();
}

Expand All @@ -73,19 +74,22 @@ public void testSubmitProperValue() throws Exception {

@Override
protected void submitValue() {
guardAjax(body).click();
guardAjax(blurButton).click();
}

private static void addIndexPage(org.richfaces.deployment.BaseDeployment deployment) {
FaceletAsset p = new FaceletAsset();

p.body("<h:form id='form'>");
p.body("<h:inputText id='text' value='#{test.value}'>");
p.body(" <h:inputText id='text' value='#{test.value}'>");
p.body(" <f:validator validatorId='custom' />");
p.body(" <rich:validator event='blur' />");
p.body("</h:inputText>");
p.body("<h:outputText id='out' value='#{test.value}'></h:outputText>");
p.body(" </h:inputText>");
p.body(" <h:outputText id='out' value='#{test.value}'></h:outputText>");
p.body("</h:form>");
p.body("<br />");
p.body("<input id='blurButton' value='blur' type='button' />");
p.body("<br />");
p.body("<rich:message id='uiMessage' for='text' />");

deployment.archive().addAsWebResource(p, "index.xhtml");
Expand Down
Expand Up @@ -19,7 +19,6 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/

package org.richfaces.component.validation;

import static org.hamcrest.CoreMatchers.equalTo;
Expand Down Expand Up @@ -50,6 +49,8 @@ public static WebArchive deployment() {

addIndexPage(deployment);

deployment.addHibernateValidatorWhenUsingServletContainer();

return deployment.getFinalArchive();
}

Expand Down Expand Up @@ -79,7 +80,9 @@ private static void addIndexPage(org.richfaces.deployment.BaseDeployment deploym
p.body(" </h:inputText>");
p.body(" <h:outputText id='out' value='#{test.value}'></h:outputText>");
p.body("</h:form>");

p.body("<br />");
p.body("<input id='blurButton' value='blur' type='button' />");
p.body("<br />");
p.body("<rich:message id='uiMessage' for='text' />");

deployment.archive().addAsWebResource(p, "index.xhtml");
Expand Down
Expand Up @@ -19,7 +19,6 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/

package org.richfaces.component.validation;

import org.jboss.arquillian.container.test.api.Deployment;
Expand All @@ -46,15 +45,17 @@ public static WebArchive deployment() {

deployment.webXml(new Function<WebAppDescriptor, WebAppDescriptor>() {
public WebAppDescriptor apply(WebAppDescriptor webXml) {
webXml.createContextParam()
.paramName("javax.faces.validator.DISABLE_DEFAULT_BEAN_VALIDATOR")
.paramValue("true");
return webXml;
webXml.createContextParam()
.paramName("javax.faces.validator.DISABLE_DEFAULT_BEAN_VALIDATOR")
.paramValue("true");
return webXml;
}
});

ITGraphValidation.addIndexPage(deployment);

deployment.addHibernateValidatorWhenUsingServletContainer();

return deployment.getFinalArchive();
}
}
Expand Up @@ -19,7 +19,6 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/

package org.richfaces.component.validation;

import org.jboss.arquillian.container.test.api.Deployment;
Expand All @@ -43,6 +42,8 @@ public static WebArchive deployment() {

addIndexPage(deployment);

deployment.addHibernateValidatorWhenUsingServletContainer();

return deployment.getFinalArchive();
}
}
Expand Up @@ -47,6 +47,8 @@ public static WebArchive createDeployment() {
deployment.archive().addClass(GraphValidatorBean.class);
addIndexPage(deployment);

deployment.addHibernateValidatorWhenUsingServletContainer();

return deployment.getFinalArchive();
}

Expand Down
Expand Up @@ -31,22 +31,20 @@
import org.jboss.arquillian.graphene.Graphene;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.shrinkwrap.descriptor.api.facesconfig20.WebFacesConfigDescriptor;
import org.junit.Assert;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.runner.RunWith;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.richfaces.integration.RichDeployment;
import org.richfaces.shrinkwrap.descriptor.FaceletAsset;

import category.Failing;

import com.google.common.base.Function;

@RunAsClient
Expand All @@ -59,6 +57,9 @@ public class ITValidatorMessageWithLabel {
@ArquillianResource
private URL contextPath;

@FindBy(id = "blurButton")
private WebElement blurButton;

@Deployment(testable = false)
public static WebArchive createDeployment() {
RichDeployment deployment = new RichDeployment(ITValidatorMessageWithLabel.class);
Expand All @@ -79,15 +80,21 @@ public WebFacesConfigDescriptor apply(@Nullable WebFacesConfigDescriptor input)
}
});

deployment.addHibernateValidatorWhenUsingServletContainer();

return deployment.getFinalArchive();
}

/**
* <p>Tests that validation message contains a label, i.e. content of "label" attribute of h:inputText component. This
* is not default behavior, there is following setting in file MessagesWithLabels.properties:
* javax.faces.validator.BeanValidator.MESSAGE={1}: {0}</p>
* <p>
* Tests that validation message contains a label, i.e. content of "label" attribute of h:inputText component. This is not
* default behavior, there is following setting in file MessagesWithLabels.properties:
* javax.faces.validator.BeanValidator.MESSAGE={1}: {0}
* </p>
*
* <p>{@link https://issues.jboss.org/browse/RF-12754}</p>
* <p>
* {@link https://issues.jboss.org/browse/RF-12754}
* </p>
*/
@Test
@Category(Failing.class)
Expand All @@ -97,7 +104,7 @@ public void client_side_validation_msg() {
WebElement input = browser.findElement(By.id("myForm:input1"));

input.sendKeys("RichFaces");
Graphene.guardNoRequest(input).sendKeys(Keys.TAB);
Graphene.guardNoRequest(blurButton).click();

WebElement message = browser.findElement(By.id("myForm:msg1"));
Assert.assertEquals("Validation message", "Input 1: max 4 characters", message.getText());
Expand Down Expand Up @@ -146,7 +153,10 @@ private static void addIndexPage(RichDeployment deployment) {
p.body(" <rich:message id='msg2' for='input2' />");
p.body(" </h:panelGrid>");
p.body(" <br />");
p.body(" <input id='blurButton' value='blur' type='button' />");
p.body(" <br />");
p.body(" <h:commandButton id='hButton' value='h:commandButton' style='margin-right: 10px;' />");
p.body(" <br />");
p.body(" <a4j:commandButton id='rButton' value='a4j:commandButton' />");
p.body("</h:form>");

Expand Down
Expand Up @@ -45,8 +45,8 @@ public abstract class ValidationTestBase {
@FindBy(name = "form:text")
protected WebElement inputText;

@FindBy(css = "body")
protected WebElement body;
@FindBy(id = "blurButton")
protected WebElement blurButton;

protected void submitValueAndCheckMessage(String value, Matcher<String> matcher) throws Exception {
browser.get(contextPath.toString());
Expand All @@ -57,7 +57,7 @@ protected void submitValueAndCheckMessage(String value, Matcher<String> matcher)
}

protected void submitValue() {
browser.findElement(By.id("form:out")).click(); //blur
blurButton.click();// blur
}

protected void checkMessage(String messageId, Matcher<String> matcher) {
Expand Down

0 comments on commit a6f147f

Please sign in to comment.