You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shale.apache.org by sc...@apache.org on 2006/09/05 01:52:56 UTC
svn commit: r440205 - in /shale/sandbox/shale-dialog2: ./
src/main/java/org/apache/shale/dialog2/faces/ src/test/java/org/
src/test/java/org/apache/ src/test/java/org/apache/shale/
src/test/java/org/apache/shale/dialog2/ src/test/java/org/apache/shale/...
Author: schof
Date: Mon Sep 4 16:52:55 2006
New Revision: 440205
URL: http://svn.apache.org/viewvc?view=rev&rev=440205
Log:
Fixed a bug where navigation outcomes that were unrelated to the current dialog were being ignored. They're now delegated to the wrapped NavigationHandler. SHALE-275
Added:
shale/sandbox/shale-dialog2/src/test/java/org/
shale/sandbox/shale-dialog2/src/test/java/org/apache/
shale/sandbox/shale-dialog2/src/test/java/org/apache/shale/
shale/sandbox/shale-dialog2/src/test/java/org/apache/shale/dialog2/
shale/sandbox/shale-dialog2/src/test/java/org/apache/shale/dialog2/faces/
shale/sandbox/shale-dialog2/src/test/java/org/apache/shale/dialog2/faces/Dialog2NavigationHandlerTest.java (with props)
Modified:
shale/sandbox/shale-dialog2/pom.xml
shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/faces/Dialog2NavigationHandler.java
Modified: shale/sandbox/shale-dialog2/pom.xml
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-dialog2/pom.xml?view=diff&rev=440205&r1=440204&r2=440205
==============================================================================
--- shale/sandbox/shale-dialog2/pom.xml (original)
+++ shale/sandbox/shale-dialog2/pom.xml Mon Sep 4 16:52:55 2006
@@ -53,6 +53,19 @@
</dependency>
-->
+ <dependency>
+ <groupId>org.apache.shale</groupId>
+ <artifactId>shale-test</artifactId>
+ <version>1.0.4-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>jmock</groupId>
+ <artifactId>jmock-cglib</artifactId>
+ <version>1.0.1</version>
+ <scope>test</scope>
+ </dependency>
+
</dependencies>
</project>
Modified: shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/faces/Dialog2NavigationHandler.java
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/faces/Dialog2NavigationHandler.java?view=diff&rev=440205&r1=440204&r2=440205
==============================================================================
--- shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/faces/Dialog2NavigationHandler.java (original)
+++ shale/sandbox/shale-dialog2/src/main/java/org/apache/shale/dialog2/faces/Dialog2NavigationHandler.java Mon Sep 4 16:52:55 2006
@@ -135,6 +135,9 @@
+ context + "' with navigation to viewId '"
+ viewId + "'");
}
+ if (viewId == null) {
+ original.handleNavigation(context, fromAction, outcome);
+ }
}
navigate(context, viewId);
Added: shale/sandbox/shale-dialog2/src/test/java/org/apache/shale/dialog2/faces/Dialog2NavigationHandlerTest.java
URL: http://svn.apache.org/viewvc/shale/sandbox/shale-dialog2/src/test/java/org/apache/shale/dialog2/faces/Dialog2NavigationHandlerTest.java?view=auto&rev=440205
==============================================================================
--- shale/sandbox/shale-dialog2/src/test/java/org/apache/shale/dialog2/faces/Dialog2NavigationHandlerTest.java (added)
+++ shale/sandbox/shale-dialog2/src/test/java/org/apache/shale/dialog2/faces/Dialog2NavigationHandlerTest.java Mon Sep 4 16:52:55 2006
@@ -0,0 +1,74 @@
+/*
+ * Licensed 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.shale.dialog2.faces;
+
+import org.apache.shale.test.jmock.AbstractJmockJsfTestCase;
+import org.apache.shale.dialog2.DialogContext;
+import org.apache.shale.dialog2.Constants;
+import org.jmock.Mock;
+
+import javax.faces.application.NavigationHandler;
+import java.util.Map;
+
+
+/**
+ * @author Sean Schofield
+ */
+public class Dialog2NavigationHandlerTest extends AbstractJmockJsfTestCase {
+
+ private Mock mockNavigationHandler;
+ private Mock mockDialogContext;
+ private Dialog2NavigationHandler navigationHandler;
+
+ /** {@inheritDoc} */
+ public Dialog2NavigationHandlerTest(String s) {
+ super(s);
+ }
+
+ /** {@inheritDoc} */
+ public void setUp() throws Exception {
+ super.setUp();
+ mockNavigationHandler = mock(NavigationHandler.class);
+ mockDialogContext = mock(DialogContext.class);
+ }
+
+ /**
+ * Dialog2NavigationHandler should ignore navigation outcomes that do not correspond to a valid
+ * dialog transition. These outcomes should be delegated to the wrapped NavigationHandler instead.
+ */
+ public void testHandleNavigationNullViewId() {
+
+ // the mock DialogContext will return null for its advance method
+ mockDialogContext.expects(once()).method("getName").will(returnValue("foo dialog"));
+ mockDialogContext.expects(once()).method("advance").will(returnValue(null));
+ Map requestMap = facesContext.getExternalContext().getRequestMap();
+ requestMap.put(Constants.CONTEXT_BEAN, mockDialogContext.proxy());
+
+ /**
+ * We expect our mock handler to be asked to deal with the outcome since the advance method indicates
+ * that no transition is to be performed.
+ */
+ mockNavigationHandler.expects(once()).method("handleNavigation");
+ navigationHandler = new Dialog2NavigationHandler((NavigationHandler)mockNavigationHandler.proxy());
+ navigationHandler.handleNavigation(facesContext, "foo action", "foo outcome");
+ }
+
+ /**
+ * If a dialog is in progress, periodic navigation outcomes that do not correspond to transitions should
+ * not alter the ability of the dialog to handle a transition outcome when it does finally encounter one.
+ */
+// public void testHandleNavigationNullThenValidViewId() {
+// TODO - add test
+// }
+}
Propchange: shale/sandbox/shale-dialog2/src/test/java/org/apache/shale/dialog2/faces/Dialog2NavigationHandlerTest.java
------------------------------------------------------------------------------
svn:eol-style = native