package org.springmodules.xt.ajax.validation.support;
import java.util.Locale;
import org.springframework.context.support.DelegatingMessageSource;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.validation.BindException;
import org.springmodules.xt.ajax.AjaxAction;
import org.springmodules.xt.ajax.AjaxSubmitEventImpl;
import org.springmodules.xt.ajax.component.Component;
import org.springframework.context.MessageSource;
import org.springframework.validation.ObjectError;
import org.springmodules.xt.test.domain.Employee;
import org.springmodules.xt.test.domain.IEmployee;
import org.springmodules.xt.test.xml.XMLEnhancedTestCase;
/**
* @author Sergio Bossa
*/
public class DefaultErrorRenderingCallbackTest extends XMLEnhancedTestCase {
private DefaultErrorRenderingCallback callback;
private BindException errors;
private MessageSource messageSource;
public DefaultErrorRenderingCallbackTest(String testName) {
super(testName);
}
protected void setUp() throws Exception {
IEmployee target = new Employee();
this.callback = new DefaultErrorRenderingCallback();
this.errors = new BindException(target, "command");
this.errors.addError(new ObjectError("command", new String[]{"ErrorCode1"}, null, "Default Message 1"));
this.messageSource = new DelegatingMessageSource();
}
public void testGetRenderingComponent() throws Exception {
Component component = this.callback.getRenderingComponent(this.errors.getGlobalError(), this.messageSource, new Locale("it"));
assertXpathEvaluatesTo("Default Message 1", "//div", component.render());
}
public void testGetRenderingAction() throws Exception {
AjaxAction action = this.callback.getRenderingAction(this.errors.getGlobalError());
String rendering = action.render();
assertXpathExists("//script", rendering);
assertTrue(rendering.indexOf("new Effect.Highlight(\"ErrorCode1\",{\"startcolor\":\"#FF0A0A\"});") != -1);
}
public void testGetErrorComponent() throws Exception {
Component component = this.callback.getErrorComponent(new AjaxSubmitEventImpl("submit", new MockHttpServletRequest()), this.errors.getGlobalError(), this.messageSource, new Locale("it"));
assertXpathEvaluatesTo("Default Message 1", "//div", component.render());
}
public void testGetErrosActions() throws Exception {
AjaxAction[] actions = this.callback.getErrorActions(new AjaxSubmitEventImpl("submit", new MockHttpServletRequest()), this.errors.getGlobalError());
assertEquals(1, actions.length);
String rendering = actions[0].render();
assertXpathExists("//script", rendering);
assertTrue(rendering.indexOf("new Effect.Highlight(\"ErrorCode1\",{\"startcolor\":\"#FF0A0A\"});") != -1);
}
}