diff --git a/test/javaee7/cdi/beanValidatorCdi/src/main/java/com/sun/faces/test/javaee7/cdi/beanValidatorCdi/Bug26048517Bean.java b/test/javaee7/cdi/beanValidatorCdi/src/main/java/com/sun/faces/test/javaee7/cdi/beanValidatorCdi/Bug26048517Bean.java new file mode 100644 index 0000000000..1c9d0978a3 --- /dev/null +++ b/test/javaee7/cdi/beanValidatorCdi/src/main/java/com/sun/faces/test/javaee7/cdi/beanValidatorCdi/Bug26048517Bean.java @@ -0,0 +1,64 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 1997-2014 Oracle and/or its affiliates. All rights reserved. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common Development + * and Distribution License("CDDL") (collectively, the "License"). You + * may not use this file except in compliance with the License. You can + * obtain a copy of the License at + * https://glassfish.java.net/public/CDDLGPL_1_1.html + * or packager/legal/LICENSE.txt. See the License for the specific + * language governing permissions and limitations under the License. + * + * When distributing the software, include this License Header Notice in each + * file and include the License file at packager/legal/LICENSE.txt. + * + * GPL Classpath Exception: + * Oracle designates this particular file as subject to the "Classpath" + * exception as provided by Oracle in the GPL Version 2 section of the License + * file that accompanied this code. + * + * Modifications: + * If applicable, add the following below the License Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyright [year] [name of copyright owner]" + * + * Contributor(s): + * If you wish your version of this file to be governed by only the CDDL or + * only the GPL Version 2, indicate your decision by adding "[Contributor] + * elects to include this software in this distribution under the [CDDL or GPL + * Version 2] license." If you don't indicate a single choice of license, a + * recipient has the option to distribute your version of this file under + * either the CDDL, the GPL Version 2 or to extend the choice of license to + * its licensees as provided above. However, if you add GPL Version 2 code + * and therefore, elected the GPL Version 2 license, then the option applies + * only if the new code is made subject to such option by the copyright + * holder. + */ +package com.sun.faces.test.javaee7.cdi.beanValidatorCdi; + +import javax.inject.Named; +import javax.validation.constraints.NotNull; +import javax.faces.view.ViewScoped; +import java.io.Serializable; + +@ViewScoped +@Named +public class Bug26048517Bean implements Serializable { + + @NotNull + private String testId=""; + + public String getTestId() { + return testId; + } + + public void setTestId(String testId) { + this.testId = testId; + } + + public void login() { + } +} diff --git a/test/javaee7/cdi/beanValidatorCdi/src/main/webapp/WEB-INF/web.xml b/test/javaee7/cdi/beanValidatorCdi/src/main/webapp/WEB-INF/web.xml index 8722f9662e..302c56263d 100644 --- a/test/javaee7/cdi/beanValidatorCdi/src/main/webapp/WEB-INF/web.xml +++ b/test/javaee7/cdi/beanValidatorCdi/src/main/webapp/WEB-INF/web.xml @@ -63,6 +63,10 @@ Faces Servlet /faces/* + + javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL + TRUE + faces/index.xhtml diff --git a/test/javaee7/cdi/beanValidatorCdi/src/main/webapp/bug26048517.xhtml b/test/javaee7/cdi/beanValidatorCdi/src/main/webapp/bug26048517.xhtml new file mode 100644 index 0000000000..f6323b537a --- /dev/null +++ b/test/javaee7/cdi/beanValidatorCdi/src/main/webapp/bug26048517.xhtml @@ -0,0 +1,64 @@ + + + + + + + + +title for bug26048517 + + + + + + + +
+
+ +
+ \ No newline at end of file diff --git a/test/javaee7/cdi/beanValidatorCdi/src/test/java/com/sun/faces/test/javaee7/cdi/beanValidatorCdi/Bug26048517IT.java b/test/javaee7/cdi/beanValidatorCdi/src/test/java/com/sun/faces/test/javaee7/cdi/beanValidatorCdi/Bug26048517IT.java new file mode 100644 index 0000000000..ccd9761b48 --- /dev/null +++ b/test/javaee7/cdi/beanValidatorCdi/src/test/java/com/sun/faces/test/javaee7/cdi/beanValidatorCdi/Bug26048517IT.java @@ -0,0 +1,89 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 1997-2016 Oracle and/or its affiliates. All rights reserved. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common Development + * and Distribution License("CDDL") (collectively, the "License"). You + * may not use this file except in compliance with the License. You can + * obtain a copy of the License at + * https://glassfish.java.net/public/CDDLGPL_1_1.html + * or packager/legal/LICENSE.txt. See the License for the specific + * language governing permissions and limitations under the License. + * + * When distributing the software, include this License Header Notice in each + * file and include the License file at packager/legal/LICENSE.txt. + * + * GPL Classpath Exception: + * Oracle designates this particular file as subject to the "Classpath" + * exception as provided by Oracle in the GPL Version 2 section of the License + * file that accompanied this code. + * + * Modifications: + * If applicable, add the following below the License Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyright [year] [name of copyright owner]" + * + * Contributor(s): + * If you wish your version of this file to be governed by only the CDDL or + * only the GPL Version 2, indicate your decision by adding "[Contributor] + * elects to include this software in this distribution under the [CDDL or GPL + * Version 2] license." If you don't indicate a single choice of license, a + * recipient has the option to distribute your version of this file under + * either the CDDL, the GPL Version 2 or to extend the choice of license to + * its licensees as provided above. However, if you add GPL Version 2 code + * and therefore, elected the GPL Version 2 license, then the option applies + * only if the new code is made subject to such option by the copyright + * holder. + */ +package com.sun.faces.test.javaee7.cdi.beanValidatorCdi; + +import com.gargoylesoftware.htmlunit.WebClient; +import com.gargoylesoftware.htmlunit.html.HtmlTextInput; +import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; +import com.gargoylesoftware.htmlunit.html.HtmlPage; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.assertTrue; + + +public class Bug26048517IT { + + private String webUrl; + private WebClient webClient; + + @Before + public void setUp() { + webUrl = System.getProperty("integration.url"); + webClient = new WebClient(); + webClient.getOptions().setJavaScriptEnabled(true); + webClient.setJavaScriptTimeout(120000); + } + + @Test + public void testBug26048517() throws Exception { + + HtmlPage page = webClient.getPage(webUrl + "faces/bug26048517.xhtml"); + HtmlTextInput testid = (HtmlTextInput)page.getHtmlElementById("testid"); + testid.setText("originalString"); + HtmlSubmitInput login = (HtmlSubmitInput)page.getHtmlElementById("Login"); + page = login.click(); + + assertTrue(page.asXml().indexOf("originalString") >= 0); + + testid = (HtmlTextInput)page.getHtmlElementById("testid"); + testid.setText(""); + login = (HtmlSubmitInput)page.getHtmlElementById("Login"); + page = login.click(); + + assertTrue(page.asXml().indexOf("originalString") < 0); + } + + @After + public void tearDown() { + webClient.closeAllWindows(); + } +}