[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