diff --git a/src/main/java/org/thymeleaf/testing/templateengine/engine/TestExecutor.java b/src/main/java/org/thymeleaf/testing/templateengine/engine/TestExecutor.java index 1f42c336..2c240ccb 100755 --- a/src/main/java/org/thymeleaf/testing/templateengine/engine/TestExecutor.java +++ b/src/main/java/org/thymeleaf/testing/templateengine/engine/TestExecutor.java @@ -34,7 +34,9 @@ import org.thymeleaf.context.IProcessingContext; import org.thymeleaf.dialect.IDialect; import org.thymeleaf.fragment.IFragmentSpec; +import org.thymeleaf.messageresolver.IMessageResolver; import org.thymeleaf.standard.StandardDialect; +import org.thymeleaf.templatemode.ITemplateModeHandler; import org.thymeleaf.testing.templateengine.context.IProcessingContextBuilder; import org.thymeleaf.testing.templateengine.context.web.WebProcessingContextBuilder; import org.thymeleaf.testing.templateengine.engine.cache.TestCacheManager; @@ -62,6 +64,8 @@ public final class TestExecutor { private ITestableResolver testableResolver = new StandardTestableResolver(); private IProcessingContextBuilder processingContextBuilder = new WebProcessingContextBuilder(); private List dialects = Collections.singletonList((IDialect)new StandardDialect()); + private List templateModeHandlers = new ArrayList(); + private IMessageResolver messageResolver = null; protected ITestReporter reporter = new ConsoleTestReporter(); @@ -139,9 +143,26 @@ public void setDialects(final List dialects) { public List getDialects() { return this.dialects; } + + public void addTemplateModeHandler(final ITemplateModeHandler templateModeHandler) { + this.templateModeHandlers.add(templateModeHandler); + } + + public void setTemplateModeHandlers(final List templateModeHandlers) { + this.templateModeHandlers = templateModeHandlers; + } + public List getTemplateModeHandlers() { + return this.templateModeHandlers; + } + public void setMessageResolver(IMessageResolver messageResolver) { + this.messageResolver = messageResolver; + } + public IMessageResolver getMessageResolver() { + return this.messageResolver; + } @@ -193,14 +214,21 @@ private void execute(final ITestable testable, final TestExecutionContext contex Validate.notNull(context, "Test execution context cannot be null"); final TestEngineTemplateResolver templateResolver = new TestEngineTemplateResolver(); - final TestEngineMessageResolver messageResolver = new TestEngineMessageResolver(); + final TestEngineMessageResolver testMessageResolver = new TestEngineMessageResolver(); final TestCacheManager cacheManager = new TestCacheManager(); final TemplateEngine templateEngine = new TemplateEngine(); templateEngine.setTemplateResolver(templateResolver); - templateEngine.setMessageResolver(messageResolver); + if(this.messageResolver != null) { + templateEngine.setMessageResolver(this.messageResolver); + } else { + templateEngine.setMessageResolver(testMessageResolver); + } templateEngine.setDialects(new HashSet(this.dialects)); templateEngine.setCacheManager(cacheManager); + for(ITemplateModeHandler templateModeHandler: this.templateModeHandlers) { + templateEngine.addTemplateModeHandler(templateModeHandler); + } context.setTemplateEngine(templateEngine);