You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2014/03/28 15:26:41 UTC

svn commit: r1582760 - in /myfaces/core/trunk/impl/src/test: java/org/apache/myfaces/config/ java/org/apache/myfaces/lifecycle/ java/org/apache/myfaces/mc/test/core/runner/ resources/org/apache/myfaces/config/ resources/org/apache/myfaces/lifecycle/

Author: lu4242
Date: Fri Mar 28 14:26:41 2014
New Revision: 1582760

URL: http://svn.apache.org/r1582760
Log:
commit tests used to check ordering algorithm and fix small bug found in myfaces runner for test classes internally

Added:
    myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/lifecycle/DummyPhaseListenerA.java
    myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/lifecycle/DummyPhaseListenerB.java
    myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/lifecycle/PhaseListenerOrderingTest.java
    myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/config/after-others-config.xml
    myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/config/before-others-config.xml
    myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/config/no-name-config.xml
    myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/a-faces-config.xml
    myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/b-faces-config.xml
    myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/dummy.xhtml
      - copied, changed from r1582218, myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/redirect1.xhtml
Modified:
    myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/OrderingFacesConfigTest.java
    myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/mc/test/core/runner/AbstractJsfTestContainer.java

Modified: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/OrderingFacesConfigTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/OrderingFacesConfigTest.java?rev=1582760&r1=1582759&r2=1582760&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/OrderingFacesConfigTest.java (original)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/config/OrderingFacesConfigTest.java Fri Mar 28 14:26:41 2014
@@ -417,6 +417,171 @@ public class OrderingFacesConfigTest ext
         //printFacesConfigList("Sorted List", sortedList);
     }
 
+    public void testBeforeOthers1() throws Exception
+    {
+        FacesConfig cfgA = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "no-name-config.xml"), "no-name-config.xml");
+        FacesConfig cfgB = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "no-name-config.xml"), "no-name-config.xml");
+        FacesConfig cfgC = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "before-others-config.xml"), "before-others-config.xml");
+        FacesConfig cfgD = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "no-name-config.xml"), "no-name-config.xml");        
+        FacesConfig cfgE = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "no-name-config.xml"), "no-name-config.xml");        
+        
+        List<FacesConfig> appConfigResources = new ArrayList<FacesConfig>();
+        appConfigResources.add(cfgA);
+        appConfigResources.add(cfgB);
+        appConfigResources.add(cfgC);
+        appConfigResources.add(cfgD);
+        appConfigResources.add(cfgE);
+        
+        //Brute force       
+        for (int i = 0; i < 30; i++)
+        {
+            Collections.shuffle(appConfigResources);
+            List<FacesConfig> sortedList = applyFullAlgorithm(appConfigResources);
+            
+            assertEquals(cfgC, sortedList.get(0));
+        }
+    }
+
+    public void testAfterOthers1() throws Exception
+    {
+        FacesConfig cfgA = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "no-name-config.xml"), "no-name-config.xml");
+        FacesConfig cfgB = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "no-name-config.xml"), "no-name-config.xml");
+        FacesConfig cfgC = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "after-others-config.xml"), "after-others-config.xml");
+        FacesConfig cfgD = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "no-name-config.xml"), "no-name-config.xml");        
+        FacesConfig cfgE = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "no-name-config.xml"), "no-name-config.xml");        
+        
+        List<FacesConfig> appConfigResources = new ArrayList<FacesConfig>();
+        appConfigResources.add(cfgA);
+        appConfigResources.add(cfgB);
+        appConfigResources.add(cfgC);
+        appConfigResources.add(cfgD);
+        appConfigResources.add(cfgE);
+        
+        //Brute force       
+        for (int i = 0; i < 30; i++)
+        {
+            Collections.shuffle(appConfigResources);
+            List<FacesConfig> sortedList = applyFullAlgorithm(appConfigResources);
+            
+            assertEquals(cfgC, sortedList.get(sortedList.size()-1));
+        }
+    }
+    
+    public void testBeforeOthers2() throws Exception
+    {
+        FacesConfig cfg1 = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "no-name-config.xml"), "no-name-config.xml");
+        FacesConfig cfg2 = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "no-name-config.xml"), "no-name-config.xml");
+        FacesConfig cfg3 = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "before-others-config.xml"), "before-others-config.xml");
+        FacesConfig cfg4 = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "no-name-config.xml"), "no-name-config.xml");        
+        FacesConfig cfg5 = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "no-name-config.xml"), "no-name-config.xml");     
+        FacesConfig cfgA = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "transitive-a-config.xml"), "transitive-a-config.xml");
+        FacesConfig cfgB = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "transitive-b-config.xml"), "transitive-b-config.xml");
+        FacesConfig cfgC = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "transitive-c-config.xml"), "transitive-c-config.xml");
+        FacesConfig cfg6 = _impl.getFacesConfig(getClass().getResourceAsStream(
+            "after-others-config.xml"), "after-others-config.xml");
+        
+        
+        List<FacesConfig> appConfigResources = new ArrayList<FacesConfig>();
+        appConfigResources.add(cfgA);
+        appConfigResources.add(cfgB);
+        appConfigResources.add(cfgC);
+        appConfigResources.add(cfg1);
+        appConfigResources.add(cfg2);
+        appConfigResources.add(cfg3);
+        appConfigResources.add(cfg4);
+        appConfigResources.add(cfg5);
+        appConfigResources.add(cfg6);
+        
+        //Brute force       
+        for (int i = 0; i < 30; i++)
+        {
+            Collections.shuffle(appConfigResources);
+            List<FacesConfig> sortedList = applyFullAlgorithm(appConfigResources);
+            
+            assertEquals(cfg3, sortedList.get(0));
+            
+            assertEquals(cfg6, sortedList.get(sortedList.size()-1));
+        }
+    }
+    
+    public List<FacesConfig> applyFullAlgorithm(List<FacesConfig> appConfigResources) throws FacesException
+    {    
+        DefaultFacesConfigurationMerger merger = new DefaultFacesConfigurationMerger();
+        
+        System.out.println("");
+        System.out.print("Start List: [");
+        for (int i = 0; i < appConfigResources.size();i++)
+        {
+            if (appConfigResources.get(i).getName() == null)
+            {
+                System.out.print("No id,");
+            }
+            else
+            {
+                System.out.print(appConfigResources.get(i).getName()+",");
+            }
+        }
+        System.out.println("]");
+        
+        List<FacesConfig> postOrderedList = merger.getPostOrderedList(appConfigResources);
+        
+        System.out.print("Pre-Ordered-List: [");
+        for (int i = 0; i < postOrderedList.size();i++)
+        {
+            if (postOrderedList.get(i).getName() == null)
+            {
+                System.out.print("No id,");
+            }
+            else
+            {
+                System.out.print(postOrderedList.get(i).getName()+",");
+            }
+        }
+        System.out.println("]");
+        
+        List<FacesConfig> sortedList = merger.sortRelativeOrderingList(postOrderedList);
+
+        if (sortedList == null)
+        {
+            System.out.print("After Fix ");
+            //The previous algorithm can't sort correctly, try this one
+            sortedList = merger.applySortingAlgorithm(appConfigResources);
+        }
+        
+        System.out.print("Sorted-List: [");
+        for (int i = 0; i < sortedList.size();i++)
+        {
+            if (sortedList.get(i).getName() == null)
+            {
+                System.out.print("No id,");
+            }
+            else
+            {
+                System.out.print(sortedList.get(i).getName()+",");
+            }
+        }
+        System.out.println("]");
+        
+        return sortedList;
+    }
     /*
     public void applyAlgorithm(List<FacesConfig> appConfigResources) throws FacesException
     {

Added: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/lifecycle/DummyPhaseListenerA.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/lifecycle/DummyPhaseListenerA.java?rev=1582760&view=auto
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/lifecycle/DummyPhaseListenerA.java (added)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/lifecycle/DummyPhaseListenerA.java Fri Mar 28 14:26:41 2014
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.myfaces.lifecycle;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.faces.context.FacesContext;
+import javax.faces.event.PhaseEvent;
+import javax.faces.event.PhaseId;
+import javax.faces.event.PhaseListener;
+
+/**
+ *
+ * @author lu4242
+ */
+public class DummyPhaseListenerA implements PhaseListener
+{
+
+    @Override
+    public void afterPhase(PhaseEvent event)
+    {
+        getMsgList(event.getFacesContext()).add("DummyPhaseListenerA afterPhase");
+    }
+
+    @Override
+    public void beforePhase(PhaseEvent event)
+    {
+        getMsgList(event.getFacesContext()).add("DummyPhaseListenerA beforePhase");
+    }
+
+    @Override
+    public PhaseId getPhaseId()
+    {
+        return PhaseId.RENDER_RESPONSE;
+    }
+
+    public static List<String> getMsgList(FacesContext facesContext)
+    {
+        List<String> list = (List<String>) facesContext.getAttributes().get("msgList");
+        if (list == null)
+        {
+            list = new ArrayList<String>();
+            facesContext.getAttributes().put("msgList", list);
+        }
+        return list;
+    }
+}

Added: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/lifecycle/DummyPhaseListenerB.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/lifecycle/DummyPhaseListenerB.java?rev=1582760&view=auto
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/lifecycle/DummyPhaseListenerB.java (added)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/lifecycle/DummyPhaseListenerB.java Fri Mar 28 14:26:41 2014
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.myfaces.lifecycle;
+
+import javax.faces.event.PhaseEvent;
+import javax.faces.event.PhaseId;
+import javax.faces.event.PhaseListener;
+import static org.apache.myfaces.lifecycle.DummyPhaseListenerA.getMsgList;
+
+/**
+ *
+ * @author lu4242
+ */
+public class DummyPhaseListenerB implements PhaseListener
+{
+
+    @Override
+    public void afterPhase(PhaseEvent event)
+    {
+        getMsgList(event.getFacesContext()).add("DummyPhaseListenerB afterPhase");
+    }
+
+    @Override
+    public void beforePhase(PhaseEvent event)
+    {
+        getMsgList(event.getFacesContext()).add("DummyPhaseListenerB beforePhase");
+    }
+
+    @Override
+    public PhaseId getPhaseId()
+    {
+        return PhaseId.RENDER_RESPONSE;
+    }
+    
+}

Added: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/lifecycle/PhaseListenerOrderingTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/lifecycle/PhaseListenerOrderingTest.java?rev=1582760&view=auto
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/lifecycle/PhaseListenerOrderingTest.java (added)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/lifecycle/PhaseListenerOrderingTest.java Fri Mar 28 14:26:41 2014
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.myfaces.lifecycle;
+
+import java.util.List;
+import org.apache.myfaces.mc.test.core.annotation.DeclareFacesConfig;
+import org.apache.myfaces.mc.test.core.annotation.TestContainer;
+import org.apache.myfaces.mc.test.core.runner.MyFacesContainer;
+import org.apache.myfaces.mc.test.core.runner.MyFacesTestRunner;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ *
+ * @author lu4242
+ */
+@RunWith(MyFacesTestRunner.class)
+@DeclareFacesConfig({"/a-faces-config.xml","/b-faces-config.xml"})
+public class PhaseListenerOrderingTest 
+{
+    @TestContainer
+    MyFacesContainer container;
+    
+    @Test
+    public void testPhaseOrdering()
+    {
+        container.startViewRequest("/dummy.xhtml");
+        
+        container.processLifecycleExecute();
+        container.processLifecycleRender();
+        
+        List<String> msgList = DummyPhaseListenerA.getMsgList(container.getFacesContext());
+        
+        Assert.assertEquals("DummyPhaseListenerB beforePhase", msgList.get(0));
+        Assert.assertEquals("DummyPhaseListenerA beforePhase", msgList.get(1));
+        Assert.assertEquals("DummyPhaseListenerA afterPhase", msgList.get(2));
+        Assert.assertEquals("DummyPhaseListenerB afterPhase", msgList.get(3));
+        
+        container.endRequest();
+    }
+}

Modified: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/mc/test/core/runner/AbstractJsfTestContainer.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/mc/test/core/runner/AbstractJsfTestContainer.java?rev=1582760&r1=1582759&r2=1582760&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/mc/test/core/runner/AbstractJsfTestContainer.java (original)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/mc/test/core/runner/AbstractJsfTestContainer.java Fri Mar 28 14:26:41 2014
@@ -302,8 +302,8 @@ public class AbstractJsfTestContainer
         {
             return testConfig.webappResourcePath();
         }
-        return this.getClass().getName().substring(0,
-                this.getClass().getName().lastIndexOf('.')).replace('.', '/')
+        return getTestJavaClass().getName().substring(0,
+                getTestJavaClass().getName().lastIndexOf('.')).replace('.', '/')
                 + "/";
     }
     

Added: myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/config/after-others-config.xml
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/config/after-others-config.xml?rev=1582760&view=auto
==============================================================================
--- myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/config/after-others-config.xml (added)
+++ myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/config/after-others-config.xml Fri Mar 28 14:26:41 2014
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+    -->
+
+<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
+  version="2.0">
+    <ordering>
+        <after>
+            <others/>
+        </after>
+    </ordering>
+</faces-config>

Added: myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/config/before-others-config.xml
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/config/before-others-config.xml?rev=1582760&view=auto
==============================================================================
--- myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/config/before-others-config.xml (added)
+++ myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/config/before-others-config.xml Fri Mar 28 14:26:41 2014
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+    -->
+
+<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
+  version="2.0">
+    <ordering>
+        <before>
+            <others/>
+        </before>
+    </ordering>
+</faces-config>

Added: myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/config/no-name-config.xml
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/config/no-name-config.xml?rev=1582760&view=auto
==============================================================================
--- myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/config/no-name-config.xml (added)
+++ myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/config/no-name-config.xml Fri Mar 28 14:26:41 2014
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+    -->
+
+<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
+  version="2.0">
+    
+</faces-config>

Added: myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/a-faces-config.xml
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/a-faces-config.xml?rev=1582760&view=auto
==============================================================================
--- myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/a-faces-config.xml (added)
+++ myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/a-faces-config.xml Fri Mar 28 14:26:41 2014
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+    -->
+
+<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
+  version="2.0">    
+    <lifecycle>
+        <phase-listener>org.apache.myfaces.lifecycle.DummyPhaseListenerA</phase-listener>
+    </lifecycle>
+</faces-config>

Added: myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/b-faces-config.xml
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/b-faces-config.xml?rev=1582760&view=auto
==============================================================================
--- myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/b-faces-config.xml (added)
+++ myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/b-faces-config.xml Fri Mar 28 14:26:41 2014
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements.  See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to you under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+    -->
+
+<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
+  version="2.0">
+    <ordering>
+        <before>
+            <others/>
+        </before>
+    </ordering>
+    <lifecycle>
+        <phase-listener>org.apache.myfaces.lifecycle.DummyPhaseListenerB</phase-listener>
+    </lifecycle>
+</faces-config>

Copied: myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/dummy.xhtml (from r1582218, myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/redirect1.xhtml)
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/dummy.xhtml?p2=myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/dummy.xhtml&p1=myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/redirect1.xhtml&r1=1582218&r2=1582760&rev=1582760&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/redirect1.xhtml (original)
+++ myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/lifecycle/dummy.xhtml Fri Mar 28 14:26:41 2014
@@ -23,7 +23,7 @@
 </head>
 <body>
 <form jsf:id="mainForm">
-    <h:commandButton id="submit" value="Submit" action="redirect1_1?faces-redirect=true"/>
+    <h:commandButton id="submit" value="Submit"/>
 </form>
 </body>
 </html>