package me.chanjar.tomcat.valves; import me.chanjar.tomcat.util.FakeServlet; import org.apache.catalina.Context; import org.apache.catalina.deploy.FilterDef; import org.apache.catalina.deploy.FilterMap; import org.apache.catalina.startup.Tomcat; import org.apache.catalina.startup.TomcatBaseTest; public abstract class AbstractValveTest extends TomcatBaseTest { protected StringBuilder sb; @Override public void setUp() throws Exception { super.setUp(); Tomcat tomcat = getTomcatInstance(); tomcat.getConnector().setURIEncoding("UTF-8"); Context ctx = tomcat.addContext("", getTemporaryDirectory().getAbsolutePath()); Tomcat.addServlet(ctx, "servlet", new FakeServlet()); ctx.addServletMapping("/", "servlet"); FilterDef filterDef = new FilterDef(); filterDef.setFilterClass("org.apache.catalina.filters.SetCharacterEncodingFilter"); filterDef.setFilterName("setCharacterEncodingFilter"); filterDef.addInitParameter("encoding", "UTF-8"); filterDef.setAsyncSupported("true"); ctx.addFilterDef(filterDef); FilterMap filterMap = new FilterMap(); filterMap.setFilterName("setCharacterEncodingFilter"); filterMap.addURLPattern("/*"); ctx.addFilterMap(filterMap); this.sb = new StringBuilder(); setUpValve(tomcat); } protected abstract void setUpValve(Tomcat tomcat) throws Exception; @Override public void tearDown() throws Exception { super.tearDown(); System.out.println(sb.toString()); sb = null; } }