You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/02/27 14:35:40 UTC

[3/3] git commit: WICKET-5057 FilteringHeaderResponse requires a usage of FilteringHeaderResponse.IHeaderResponseFilter for no reason when FilteredHeaderItem is used

Updated Branches:
  refs/heads/master 25294f4d9 -> 57ee84925


WICKET-5057 FilteringHeaderResponse requires a usage of FilteringHeaderResponse.IHeaderResponseFilter for no reason when FilteredHeaderItem is used


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/57ee8492
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/57ee8492
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/57ee8492

Branch: refs/heads/master
Commit: 57ee8492570da600176d10d1f9d15c3e0a466934
Parents: a5dbd6e
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Wed Feb 27 15:34:42 2013 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Wed Feb 27 15:34:42 2013 +0200

----------------------------------------------------------------------
 .../head/filter/FilteringHeaderResponse.java       |    6 +++
 .../head/filter/FilteringHeaderResponseTest.java   |   30 +++++++++++++++
 2 files changed, 36 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/57ee8492/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponse.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponse.java b/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponse.java
index b3ec1d8..546eb5e 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponse.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponse.java
@@ -152,6 +152,12 @@ public class FilteringHeaderResponse extends DecoratingHeaderResponse
 		if (item instanceof FilteredHeaderItem)
 		{
 			String filterName = ((FilteredHeaderItem)item).getFilterName();
+
+			if (responseFilterMap.containsKey(filterName) == false)
+			{
+				responseFilterMap.put(filterName, new ArrayList<HeaderItem>());
+			}
+
 			render(item, filterName);
 		}
 		else

http://git-wip-us.apache.org/repos/asf/wicket/blob/57ee8492/wicket-core/src/test/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponseTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponseTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponseTest.java
index 8cc5d91..5e695a5 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponseTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/head/filter/FilteringHeaderResponseTest.java
@@ -16,9 +16,15 @@
  */
 package org.apache.wicket.markup.head.filter;
 
+import java.util.Collections;
+
 import org.apache.wicket.WicketTestCase;
 import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.StringHeaderItem;
+import org.apache.wicket.markup.head.internal.HeaderResponse;
 import org.apache.wicket.markup.html.IHeaderResponseDecorator;
+import org.apache.wicket.request.Response;
+import org.apache.wicket.response.StringResponse;
 import org.junit.Test;
 
 /**
@@ -44,4 +50,28 @@ public class FilteringHeaderResponseTest extends WicketTestCase
 		});
 		executeTest(FilteredHeaderPage.class, "FilteredHeaderPageExpected.html");
 	}
+
+	/**
+	 * https://issues.apache.org/jira/browse/WICKET-5057
+	 * @throws Exception
+	 */
+	@Test
+	public void createBucketOnTheFlyForFilteredHeaderItem() throws Exception
+	{
+		FilteringHeaderResponse headerResponse = new FilteringHeaderResponse(new HeaderResponse()
+		{
+			@Override
+			protected Response getRealResponse()
+			{
+				return new StringResponse();
+			}
+		}, "headerBucketName", Collections.EMPTY_LIST);
+
+		String filterName = "filterName";
+		String headerContent = "content";
+		FilteredHeaderItem item = new FilteredHeaderItem(StringHeaderItem.forString(headerContent), filterName);
+		headerResponse.render(item);
+		CharSequence realContent = headerResponse.getContent(filterName);
+		assertEquals(headerContent, realContent.toString());
+	}
 }