[jboss-cvs] jboss-seam/src/test/misc/org/jboss/seam/test ...
Gavin King
gavin.king at jboss.com
Fri Oct 27 10:03:58 EDT 2006
User: gavin
Date: 06/10/27 10:03:58
Modified: src/test/misc/org/jboss/seam/test CoreTest.java
InitializationTest.java PhaseListenerTest.java
Log:
improve phaselistenertest
Revision Changes Path
1.5 +2 -2 jboss-seam/src/test/misc/org/jboss/seam/test/CoreTest.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: CoreTest.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/test/misc/org/jboss/seam/test/CoreTest.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- CoreTest.java 13 Sep 2005 07:42:15 -0000 1.4
+++ CoreTest.java 27 Oct 2006 14:03:58 -0000 1.5
@@ -1,4 +1,4 @@
-//$Id: CoreTest.java,v 1.4 2005/09/13 07:42:15 gavin Exp $
+//$Id: CoreTest.java,v 1.5 2006/10/27 14:03:58 gavin Exp $
package org.jboss.seam.test;
1.33 +2 -2 jboss-seam/src/test/misc/org/jboss/seam/test/InitializationTest.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: InitializationTest.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/test/misc/org/jboss/seam/test/InitializationTest.java,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- InitializationTest.java 26 Oct 2006 13:55:36 -0000 1.32
+++ InitializationTest.java 27 Oct 2006 14:03:58 -0000 1.33
@@ -1,4 +1,4 @@
-//$Id: InitializationTest.java,v 1.32 2006/10/26 13:55:36 gavin Exp $
+//$Id: InitializationTest.java,v 1.33 2006/10/27 14:03:58 gavin Exp $
package org.jboss.seam.test;
import org.jboss.seam.contexts.Contexts;
@@ -13,7 +13,7 @@
{
MockServletContext servletContext = new MockServletContext();
new Initialization(servletContext).setScannerEnabled(false).init();
- assert servletContext.getAttributes().size()==52;
+ assert servletContext.getAttributes().size()==54;
assert !Contexts.isApplicationContextActive();
}
1.24 +120 -85 jboss-seam/src/test/misc/org/jboss/seam/test/PhaseListenerTest.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: PhaseListenerTest.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/test/misc/org/jboss/seam/test/PhaseListenerTest.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- PhaseListenerTest.java 26 Oct 2006 13:55:36 -0000 1.23
+++ PhaseListenerTest.java 27 Oct 2006 14:03:58 -0000 1.24
@@ -1,4 +1,4 @@
-//$Id: PhaseListenerTest.java,v 1.23 2006/10/26 13:55:36 gavin Exp $
+//$Id: PhaseListenerTest.java,v 1.24 2006/10/27 14:03:58 gavin Exp $
package org.jboss.seam.test;
import java.util.ArrayList;
@@ -19,6 +19,7 @@
import org.jboss.seam.core.Conversation;
import org.jboss.seam.core.ConversationEntries;
import org.jboss.seam.core.FacesMessages;
+import org.jboss.seam.core.FacesPage;
import org.jboss.seam.core.Init;
import org.jboss.seam.core.Manager;
import org.jboss.seam.core.Pages;
@@ -33,36 +34,38 @@
public class PhaseListenerTest
{
- @Test
- public void testSeamPhaseListener()
+ private void installComponents(Context appContext)
+ {
+ appContext.set( Seam.getComponentName(Init.class), new Init() );
+ installComponent(appContext, Manager.class);
+ installComponent(appContext, ConversationEntries.class);
+ installComponent(appContext, FacesPage.class);
+ installComponent(appContext, Conversation.class);
+ installComponent(appContext, FacesMessages.class);
+ installComponent(appContext, Pages.class);
+ }
+
+ private void installComponent(Context appContext, Class clazz)
+ {
+ appContext.set( Seam.getComponentName(clazz) + ".component", new Component(clazz) );
+ }
+
+ private MockFacesContext createFacesContext()
{
ExternalContext externalContext = new MockExternalContext();
MockFacesContext facesContext = new MockFacesContext( externalContext, new MockApplication() );
facesContext.setCurrent().createViewRoot();
+ facesContext.getApplication().setStateManager( new SeamStateManager( facesContext.getApplication().getStateManager() ) );
Context appContext = new FacesApplicationContext(externalContext);
- appContext.set( Seam.getComponentName(Init.class), new Init() );
- appContext.set(
- Seam.getComponentName(ConversationEntries.class) + ".component",
- new Component(ConversationEntries.class, appContext)
- );
- appContext.set(
- Seam.getComponentName(Manager.class) + ".component",
- new Component(Manager.class)
- );
- appContext.set(
- Seam.getComponentName(Conversation.class) + ".component",
- new Component(Conversation.class)
- );
- appContext.set(
- Seam.getComponentName(FacesMessages.class) + ".component",
- new Component(FacesMessages.class)
- );
- appContext.set(
- Seam.getComponentName(Pages.class) + ".component",
- new Component(Pages.class)
- );
+ installComponents(appContext);
+ return facesContext;
+ }
+ @Test
+ public void testSeamPhaseListener()
+ {
+ MockFacesContext facesContext = createFacesContext();
SeamPhaseListener phases = new SeamPhaseListener();
assert !Contexts.isEventContextActive();
@@ -97,7 +100,8 @@
phases.beforePhase( new PhaseEvent(facesContext, PhaseId.RENDER_RESPONSE, MockLifecycle.INSTANCE ) );
- assert facesContext.getViewRoot().getAttributes().size()==0;
+ assert facesContext.getViewRoot().getAttributes().size()==1;
+ assert ( (FacesPage) getPageMap(facesContext).get( Seam.getComponentName(FacesPage.class) ) ).getConversationId()==null;
assert Contexts.isEventContextActive();
assert Contexts.isSessionContextActive();
assert Contexts.isApplicationContextActive();
@@ -116,41 +120,15 @@
@Test
public void testSeamPhaseListenerLongRunning()
{
- ExternalContext externalContext = new MockExternalContext();
- MockFacesContext facesContext = new MockFacesContext( externalContext, new MockApplication() );
- facesContext.getApplication().setStateManager( new SeamStateManager( facesContext.getApplication().getStateManager() ) );
- facesContext.setCurrent().createViewRoot();
+ MockFacesContext facesContext = createFacesContext();
- Context appContext = new FacesApplicationContext(externalContext);
- appContext.set( Seam.getComponentName(Init.class), new Init() );
- appContext.set(
- Seam.getComponentName(ConversationEntries.class) + ".component",
- new Component(ConversationEntries.class)
- );
- appContext.set(
- Seam.getComponentName(Manager.class) + ".component",
- new Component(Manager.class)
- );
- appContext.set(
- Seam.getComponentName(Conversation.class) + ".component",
- new Component(Conversation.class)
- );
- appContext.set(
- Seam.getComponentName(FacesMessages.class) + ".component",
- new Component(FacesMessages.class)
- );
- appContext.set(
- Seam.getComponentName(Pages.class) + ".component",
- new Component(Pages.class)
- );
-
- getPageMap(facesContext).put(Manager.CONVERSATION_ID, "2");
+ getPageMap(facesContext).put( Seam.getComponentName(FacesPage.class), new FacesPage() { public String getConversationId() { return "2"; } });
List<String> conversationIdStack = new ArrayList<String>();
conversationIdStack.add("2");
ConversationEntries entries = new ConversationEntries();
entries.createConversationEntry("2", conversationIdStack);
- WebSessionContext sessionContext = new WebSessionContext( new ServletSessionImpl( (HttpSession) externalContext.getSession(true) ) );
+ WebSessionContext sessionContext = new WebSessionContext( new ServletSessionImpl( (HttpSession) facesContext.getExternalContext().getSession(true) ) );
sessionContext.set( Seam.getComponentName(ConversationEntries.class), entries );
SeamPhaseListener phases = new SeamPhaseListener();
@@ -198,7 +176,7 @@
phases.afterPhase( new PhaseEvent(facesContext, PhaseId.RENDER_RESPONSE, MockLifecycle.INSTANCE ) );
- assert getPageMap(facesContext).get(Manager.CONVERSATION_ID).equals("2");
+ assert ( (FacesPage) getPageMap(facesContext).get( Seam.getComponentName(FacesPage.class) ) ).getConversationId().equals("2");
assert !Contexts.isEventContextActive();
assert !Contexts.isSessionContextActive();
@@ -214,34 +192,7 @@
@Test
public void testSeamPhaseListenerNewLongRunning()
{
- ExternalContext externalContext = new MockExternalContext();
-
- MockFacesContext facesContext = new MockFacesContext( externalContext, new MockApplication() );
- facesContext.getApplication().setStateManager( new SeamStateManager( facesContext.getApplication().getStateManager() ) );
- facesContext.setCurrent().createViewRoot();
-
- Context appContext = new FacesApplicationContext(externalContext);
- appContext.set( Seam.getComponentName(Init.class), new Init() );
- appContext.set(
- Seam.getComponentName(ConversationEntries.class) + ".component",
- new Component(ConversationEntries.class, appContext)
- );
- appContext.set(
- Seam.getComponentName(Manager.class) + ".component",
- new Component(Manager.class)
- );
- appContext.set(
- Seam.getComponentName(Conversation.class) + ".component",
- new Component(Conversation.class)
- );
- appContext.set(
- Seam.getComponentName(FacesMessages.class) + ".component",
- new Component(FacesMessages.class)
- );
- appContext.set(
- Seam.getComponentName(Pages.class) + ".component",
- new Component(Pages.class)
- );
+ MockFacesContext facesContext = createFacesContext();
SeamPhaseListener phases = new SeamPhaseListener();
@@ -286,7 +237,91 @@
facesContext.getApplication().getStateManager().saveSerializedView(facesContext);
- assert facesContext.getViewRoot().getAttributes().size()==2;
+ assert facesContext.getViewRoot().getAttributes().size()==1;
+
+ phases.afterPhase( new PhaseEvent(facesContext, PhaseId.RENDER_RESPONSE, MockLifecycle.INSTANCE ) );
+
+ assert !Contexts.isEventContextActive();
+ assert !Contexts.isSessionContextActive();
+ assert !Contexts.isApplicationContextActive();
+ assert !Contexts.isConversationContextActive();
+ }
+
+ @Test
+ public void testSeamPhaseListenerRedirect()
+ {
+ MockFacesContext facesContext = createFacesContext();
+ SeamPhaseListener phases = new SeamPhaseListener();
+
+ assert !Contexts.isEventContextActive();
+ assert !Contexts.isSessionContextActive();
+ assert !Contexts.isApplicationContextActive();
+ assert !Contexts.isConversationContextActive();
+
+ phases.beforePhase( new PhaseEvent(facesContext, PhaseId.RESTORE_VIEW, MockLifecycle.INSTANCE ) );
+
+ assert Contexts.isEventContextActive();
+ assert Contexts.isSessionContextActive();
+ assert Contexts.isApplicationContextActive();
+ assert !Contexts.isConversationContextActive();
+
+ phases.afterPhase( new PhaseEvent(facesContext, PhaseId.RESTORE_VIEW, MockLifecycle.INSTANCE ) );
+
+ assert Contexts.isConversationContextActive();
+ assert !Manager.instance().isLongRunningConversation();
+
+ phases.beforePhase( new PhaseEvent(facesContext, PhaseId.APPLY_REQUEST_VALUES, MockLifecycle.INSTANCE ) );
+ phases.afterPhase( new PhaseEvent(facesContext, PhaseId.APPLY_REQUEST_VALUES, MockLifecycle.INSTANCE ) );
+ phases.beforePhase( new PhaseEvent(facesContext, PhaseId.PROCESS_VALIDATIONS, MockLifecycle.INSTANCE ) );
+ phases.afterPhase( new PhaseEvent(facesContext, PhaseId.PROCESS_VALIDATIONS, MockLifecycle.INSTANCE ) );
+ phases.beforePhase( new PhaseEvent(facesContext, PhaseId.UPDATE_MODEL_VALUES, MockLifecycle.INSTANCE ) );
+ phases.afterPhase( new PhaseEvent(facesContext, PhaseId.UPDATE_MODEL_VALUES, MockLifecycle.INSTANCE ) );
+
+ phases.beforePhase( new PhaseEvent(facesContext, PhaseId.INVOKE_APPLICATION, MockLifecycle.INSTANCE ) );
+
+ facesContext.responseComplete();
+
+ phases.afterPhase( new PhaseEvent(facesContext, PhaseId.INVOKE_APPLICATION, MockLifecycle.INSTANCE ) );
+
+ assert !Contexts.isEventContextActive();
+ assert !Contexts.isSessionContextActive();
+ assert !Contexts.isApplicationContextActive();
+ assert !Contexts.isConversationContextActive();
+ }
+
+ @Test
+ public void testSeamPhaseListenerNonFacesRequest()
+ {
+ MockFacesContext facesContext = createFacesContext();
+ SeamPhaseListener phases = new SeamPhaseListener();
+
+ assert !Contexts.isEventContextActive();
+ assert !Contexts.isSessionContextActive();
+ assert !Contexts.isApplicationContextActive();
+ assert !Contexts.isConversationContextActive();
+
+ phases.beforePhase( new PhaseEvent(facesContext, PhaseId.RESTORE_VIEW, MockLifecycle.INSTANCE ) );
+
+ assert Contexts.isEventContextActive();
+ assert Contexts.isSessionContextActive();
+ assert Contexts.isApplicationContextActive();
+ assert !Contexts.isConversationContextActive();
+
+ phases.afterPhase( new PhaseEvent(facesContext, PhaseId.RESTORE_VIEW, MockLifecycle.INSTANCE ) );
+
+ assert Contexts.isConversationContextActive();
+ assert !Manager.instance().isLongRunningConversation();
+
+ phases.beforePhase( new PhaseEvent(facesContext, PhaseId.RENDER_RESPONSE, MockLifecycle.INSTANCE ) );
+
+ assert facesContext.getViewRoot().getAttributes().size()==1;
+ assert ( (FacesPage) getPageMap(facesContext).get( Seam.getComponentName(FacesPage.class) ) ).getConversationId()==null;
+ assert Contexts.isEventContextActive();
+ assert Contexts.isSessionContextActive();
+ assert Contexts.isApplicationContextActive();
+ assert Contexts.isConversationContextActive();
+
+ facesContext.getApplication().getStateManager().saveSerializedView(facesContext);
phases.afterPhase( new PhaseEvent(facesContext, PhaseId.RENDER_RESPONSE, MockLifecycle.INSTANCE ) );
More information about the jboss-cvs-commits
mailing list