This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat-tck.git


The following commit(s) were added to refs/heads/main by this push:
     new c1abb58  Add some configuration required for tests to pass
c1abb58 is described below

commit c1abb58917de0890d12a47e86ab4c361f2a5d44f
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Mon Mar 18 15:38:16 2024 +0000

    Add some configuration required for tests to pass
---
 .../tck/servlet/TomcatServletTckConfiguration.java | 47 ++++++++++++++++++++--
 1 file changed, 44 insertions(+), 3 deletions(-)

diff --git 
a/servlet-tck/src/test/java/org/apache/tomcat/tck/servlet/TomcatServletTckConfiguration.java
 
b/servlet-tck/src/test/java/org/apache/tomcat/tck/servlet/TomcatServletTckConfiguration.java
index 4cbe69a..afd9bfb 100644
--- 
a/servlet-tck/src/test/java/org/apache/tomcat/tck/servlet/TomcatServletTckConfiguration.java
+++ 
b/servlet-tck/src/test/java/org/apache/tomcat/tck/servlet/TomcatServletTckConfiguration.java
@@ -18,7 +18,12 @@ package org.apache.tomcat.tck.servlet;
 
 import java.lang.reflect.Field;
 
+import org.apache.catalina.Container;
+import org.apache.catalina.Context;
+import org.apache.catalina.connector.Connector;
+import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.startup.Tomcat;
+import org.jboss.arquillian.container.spi.event.container.AfterDeploy;
 import org.jboss.arquillian.container.spi.event.container.BeforeDeploy;
 import org.jboss.arquillian.core.api.annotation.Observes;
 import org.jboss.arquillian.core.spi.LoadableExtension;
@@ -33,22 +38,58 @@ public class TomcatServletTckConfiguration implements 
LoadableExtension {
 
     public static class ServletObserver {
 
-        public void configurePorts(@Observes final BeforeDeploy beforeDeploy) {
+        public void configureTomcat(@Observes final BeforeDeploy beforeDeploy) 
{
             Tomcat10EmbeddedContainer container = (Tomcat10EmbeddedContainer) 
beforeDeploy.getDeployableContainer();
             try {
+               // Obtain reference to Tomcat instance
                 Field tomcatField = 
Tomcat10EmbeddedContainer.class.getDeclaredField("tomcat");
                 tomcatField.setAccessible(true);
                 Tomcat tomcat = (Tomcat) tomcatField.get(container);
-                int localPort = tomcat.getConnector().getLocalPort();
 
+                // Update Arquillian configuration with port being used by 
Tomcat
+                Connector connector = tomcat.getConnector();
+                int localPort = connector.getLocalPort();
                 Field configurationField = 
Tomcat10EmbeddedContainer.class.getDeclaredField("configuration");
                 configurationField.setAccessible(true);
                 Object configuration = configurationField.get(container);
-
                 Field portField = 
container.getConfigurationClass().getDeclaredField("bindHttpPort");
                 portField.setAccessible(true);
                 portField.set(configuration, Integer.valueOf(localPort));
 
+                // Add trailer headers used in TCK to allow list
+                connector.setProperty("allowedTrailerHeaders", 
"myTrailer,myTrailer2");
+
+                // Add expected users
+                tomcat.addUser("j2ee", "j2ee");
+                tomcat.addRole("j2ee", "Administrator");
+                tomcat.addRole("j2ee", "Employee");
+                tomcat.addUser("javajoe", "javajoe");
+                tomcat.addRole("javajoe", "VP");
+                tomcat.addRole("javajoe", "Manager");
+            } catch (ReflectiveOperationException e) {
+                throw new RuntimeException(e);
+            }
+        }
+
+        public void configureContext(@Observes final AfterDeploy afterDeploy) {
+            Tomcat10EmbeddedContainer container = (Tomcat10EmbeddedContainer) 
afterDeploy.getDeployableContainer();
+            try {
+               // Obtain reference to Tomcat instance
+                Field tomcatField = 
Tomcat10EmbeddedContainer.class.getDeclaredField("tomcat");
+                tomcatField.setAccessible(true);
+                Tomcat tomcat = (Tomcat) tomcatField.get(container);
+
+                // Obtain reference to web application(s)
+                Container contexts[] = tomcat.getHost().findChildren();
+                for (Container context : contexts) {
+
+                       // Configure expected encoding mapping
+                       StandardContext stdContext = (StandardContext) context;
+                       stdContext.addLocaleEncodingMappingParameter("ja", 
"Shift_JIS");
+
+                       // Enable cross-context dispatches
+                       stdContext.setCrossContext(true);
+                }
             } catch (ReflectiveOperationException e) {
                 throw new RuntimeException(e);
             }


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to