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);
         }
     }
 

Reply via email to