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