This is an automated email from the ASF dual-hosted git repository. radcortez pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tomee.git
commit f0c4fa76c729d021931be86661325a7d33618358 Author: Roberto Cortez <[email protected]> AuthorDate: Fri Dec 28 10:56:28 2018 +0000 TOMEE-2365 - Added HtmlUnit to test authentication form. --- tomee/tomee-security/pom.xml | 11 +++++++ .../security/servlet/FormAuthServletTest.java | 37 ++++++++++++++++++---- 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/tomee/tomee-security/pom.xml b/tomee/tomee-security/pom.xml index a472bf6..d720e82 100644 --- a/tomee/tomee-security/pom.xml +++ b/tomee/tomee-security/pom.xml @@ -33,6 +33,11 @@ <name>OpenEJB :: TomEE :: Security</name> <description>Implementation of Java EE Security JSR-375</description> + <properties> + <!-- Reset Jetty Version to not clash with HtmlUnit --> + <jetty.version/> + </properties> + <dependencies> <dependency> <groupId>org.apache.tomee</groupId> @@ -58,6 +63,12 @@ <version>${project.version}</version> <scope>test</scope> </dependency> + <dependency> + <groupId>net.sourceforge.htmlunit</groupId> + <artifactId>htmlunit</artifactId> + <version>2.33</version> + <scope>test</scope> + </dependency> </dependencies> </project> diff --git a/tomee/tomee-security/src/test/java/org/apache/tomee/security/servlet/FormAuthServletTest.java b/tomee/tomee-security/src/test/java/org/apache/tomee/security/servlet/FormAuthServletTest.java index 9881c5f..f006388 100644 --- a/tomee/tomee-security/src/test/java/org/apache/tomee/security/servlet/FormAuthServletTest.java +++ b/tomee/tomee-security/src/test/java/org/apache/tomee/security/servlet/FormAuthServletTest.java @@ -16,6 +16,10 @@ */ package org.apache.tomee.security.servlet; +import com.gargoylesoftware.htmlunit.Page; +import com.gargoylesoftware.htmlunit.WebClient; +import com.gargoylesoftware.htmlunit.html.HtmlForm; +import com.gargoylesoftware.htmlunit.html.HtmlPage; import org.junit.Test; import javax.enterprise.context.ApplicationScoped; @@ -28,7 +32,6 @@ import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.client.ClientBuilder; import java.io.IOException; import static org.junit.Assert.assertEquals; @@ -36,11 +39,17 @@ import static org.junit.Assert.assertEquals; public class FormAuthServletTest extends AbstractTomEESecurityTest { @Test public void authenticate() throws Exception { - final String servlet = "http://localhost:" + container.getConfiguration().getHttpPort() + "/form"; - assertEquals(200, ClientBuilder.newBuilder().build() - .target(servlet) - .request() - .get().getStatus()); + final WebClient webClient = new WebClient(); + final HtmlPage page = + webClient.getPage("http://localhost:" + container.getConfiguration().getHttpPort() + "/form"); + assertEquals(200, page.getWebResponse().getStatusCode()); + + final HtmlForm login = page.getFormByName("login"); + login.getInputByName("j_username").setValueAttribute("tomcat"); + login.getInputByName("j_password").setValueAttribute("tomcat"); + + final HtmlPage submit = login.getInputByName("submit").click(); + System.out.println("submit.toString() = " + submit.toString()); } @ApplicationScoped @@ -56,7 +65,21 @@ public class FormAuthServletTest extends AbstractTomEESecurityTest { @Override protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException { - + final String loginPage = + "<html>" + + "<body>" + + " <h1>Login Page</h1>" + + " <form name=\"login\" method=post action=\"j_security_check\">\n" + + " <p>Username:</p>" + + " <input type=\"text\" name=\"j_username\">\n" + + " <p>Password:</p>" + + " <input type=\"password\" name=\"j_password\">\n" + + " <input type=\"submit\" name=\"submit\" value=\"Submit\">\n" + + " <input type=\"reset\" value=\"Reset\">" + + " </form>" + + "</body>" + + "</html>"; + resp.getWriter().write(loginPage); } }
