Update Jsf2FlowFacesContext.isValidationFailed()
Previously isValidationFailed() merely delegated to the wrapped FacesContext ignoring any errors that may have been added to Web Flow's MessageContext. After the change isValidationFailed() checks and returns true if the MessageContext contains errors or otherwise it delegates. Issues: SWF-1490
This commit is contained in:
@@ -4,6 +4,8 @@ http://www.springframework.org/webflow
|
||||
|
||||
Changes in version 2.3.1.RELEASE
|
||||
-----------------------------------------------
|
||||
Upgrade JSF Mojarra version to 2.1.7
|
||||
Improve Jsf2FlowFacesContext.isValidationFailed() to check Web Flow's MessageContext for errors
|
||||
|
||||
|
||||
Changes in version 2.3.0.RELEASE (Feb 28, 2011)
|
||||
|
||||
@@ -61,6 +61,13 @@ public class FlowFacesContextMessageDelegate {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether Web Flow's MessageContext contains any errors.
|
||||
*/
|
||||
public boolean hasErrorMessages() {
|
||||
return context.getMessageContext().hasErrorMessages();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see FlowFacesContext#addMessage(String, FacesMessage)
|
||||
*/
|
||||
|
||||
@@ -112,7 +112,11 @@ public class Jsf2FlowFacesContext extends FlowFacesContext {
|
||||
}
|
||||
|
||||
public boolean isValidationFailed() {
|
||||
return getDelegate().isValidationFailed();
|
||||
if (getMessageDelegate().hasErrorMessages()) {
|
||||
return true;
|
||||
} else {
|
||||
return getDelegate().isValidationFailed();
|
||||
}
|
||||
}
|
||||
|
||||
public void setExceptionHandler(ExceptionHandler exceptionHandler) {
|
||||
|
||||
@@ -27,15 +27,17 @@ public class FlowFacesContextTests extends TestCase {
|
||||
|
||||
FacesContext facesContext;
|
||||
|
||||
RequestContext requestContext = (RequestContext) EasyMock.createMock(RequestContext.class);
|
||||
RequestContext requestContext;
|
||||
|
||||
MessageContext messageContext;
|
||||
|
||||
MessageContext prepopulatedMessageContext;
|
||||
|
||||
@SuppressWarnings("cast")
|
||||
protected void setUp() throws Exception {
|
||||
jsf.setUp();
|
||||
facesContext = new FlowFacesContext(requestContext, jsf.facesContext());
|
||||
requestContext = (RequestContext) EasyMock.createMock(RequestContext.class);
|
||||
facesContext = new Jsf2FlowFacesContext(requestContext, jsf.facesContext());
|
||||
|
||||
setupMessageContext();
|
||||
}
|
||||
@@ -60,7 +62,6 @@ public class FlowFacesContextTests extends TestCase {
|
||||
assertEquals("foo", summaryMessage.getText());
|
||||
Message detailMessage = messageContext.getMessagesBySource("foo_detail")[0];
|
||||
assertEquals("bar", detailMessage.getText());
|
||||
|
||||
}
|
||||
|
||||
public final void testGetGlobalMessagesOnly() {
|
||||
@@ -262,6 +263,16 @@ public class FlowFacesContextTests extends TestCase {
|
||||
assertSame(facesContext, facesContext.getELContext().getContext(FacesContext.class));
|
||||
}
|
||||
|
||||
public final void testValidationFailed() {
|
||||
messageContext = new DefaultMessageContext();
|
||||
EasyMock.expect(requestContext.getMessageContext()).andStubReturn(messageContext);
|
||||
EasyMock.replay(new Object[] { requestContext });
|
||||
|
||||
facesContext.addMessage("foo", new FacesMessage(FacesMessage.SEVERITY_ERROR, "foo", "bar"));
|
||||
|
||||
assertEquals(true, facesContext.isValidationFailed());
|
||||
}
|
||||
|
||||
private void setupMessageContext() {
|
||||
prepopulatedMessageContext = new DefaultMessageContext();
|
||||
prepopulatedMessageContext.addMessage(new MessageBuilder().source("null_summary").defaultText("foo").info()
|
||||
|
||||
Reference in New Issue
Block a user