You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ja...@apache.org on 2010/05/18 18:12:06 UTC
svn commit: r945729 - in /myfaces:
core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/
shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/
Author: jakobk
Date: Tue May 18 16:12:06 2010
New Revision: 945729
URL: http://svn.apache.org/viewvc?rev=945729&view=rev
Log:
MYFACES-2725 OutcomeTarget button and link do not render fragment
Modified:
myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererTest.java
myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlOutcomeTargetButtonRendererTest.java
myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java
Modified: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererTest.java?rev=945729&r1=945728&r2=945729&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererTest.java (original)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererTest.java Tue May 18 16:12:06 2010
@@ -315,6 +315,26 @@ public class HtmlLinkRendererTest extend
}
/**
+ * Tests if the fragment attribute is correctly rendered.
+ * @throws Exception
+ */
+ public void testOutcomeTargetLinkFragment() throws Exception
+ {
+ // configure the link
+ final String fragment = "end";
+ outcomeTargetLink.getAttributes().put("fragment", fragment);
+ outcomeTargetLink.getAttributes().put("outcome",
+ "test.xhtml?param1=value1");
+
+ // render the link
+ outcomeTargetLink.encodeAll(facesContext);
+ String output = ((StringWriter) writer.getWriter()).getBuffer().toString();
+
+ // make sure the fragment is rendered
+ assertTrue(output.contains("param1=value1#" + fragment));
+ }
+
+ /**
* Test for the right use of the fragment attribute.
* The value of the fragment attribute is appended to the end of target URL following a hash (#) mark.
* @throws Exception
Modified: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlOutcomeTargetButtonRendererTest.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlOutcomeTargetButtonRendererTest.java?rev=945729&r1=945728&r2=945729&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlOutcomeTargetButtonRendererTest.java (original)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/renderkit/html/HtmlOutcomeTargetButtonRendererTest.java Tue May 18 16:12:06 2010
@@ -122,4 +122,24 @@ public class HtmlOutcomeTargetButtonRend
assertTrue(output.contains("param2=value2"));
}
+ /**
+ * Tests if the fragment attribute is correctly rendered.
+ * @throws Exception
+ */
+ public void testFragment() throws Exception
+ {
+ // configure the button
+ final String fragment = "end";
+ outcomeTargetButton.getAttributes().put("fragment", fragment);
+ outcomeTargetButton.getAttributes().put("outcome",
+ "test.xhtml?param1=value1");
+
+ // render the button
+ outcomeTargetButton.encodeAll(facesContext);
+ String output = ((StringWriter) writer.getWriter()).getBuffer().toString();
+
+ // make sure the fragment is rendered
+ assertTrue(output.contains("param1=value1#" + fragment));
+ }
+
}
Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java?rev=945729&r1=945728&r2=945729&view=diff
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java Tue May 18 16:12:06 2010
@@ -1842,19 +1842,6 @@ public final class HtmlRendererUtils {
{
return null;
}
- String href = navigationCase.getToViewId(facesContext);
-
- // handle fragment (viewId#fragment)
- String fragment = (String) component.getAttributes().get ("fragment");
- if (fragment != null)
- {
- fragment = fragment.trim();
-
- if (fragment.length() > 0)
- {
- href += "#" + fragment;
- }
- }
// handle URL parameters
Map<String, List<String>> parameters = new HashMap<String,List<String>>();
@@ -1887,8 +1874,21 @@ public final class HtmlRendererUtils {
// component parameters, navigation-case parameters, view parameters
// getBookmarkableURL deal with this details.
ViewHandler viewHandler = facesContext.getApplication().getViewHandler();
- href = viewHandler.getBookmarkableURL(facesContext, href, parameters,
+ String href = viewHandler.getBookmarkableURL(facesContext,
+ navigationCase.getToViewId(facesContext), parameters,
navigationCase.isIncludeViewParams() || component.isIncludeViewParams());
+
+ // handle fragment (viewId#fragment)
+ String fragment = (String) component.getAttributes().get("fragment");
+ if (fragment != null)
+ {
+ fragment = fragment.trim();
+
+ if (fragment.length() > 0)
+ {
+ href += "#" + fragment;
+ }
+ }
return href;
}