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 2015/10/03 13:06:35 UTC

wicket git commit: WICKET-5989 BaseWicketTester#startComponentInPage fails for pages with placeholder

Repository: wicket
Updated Branches:
  refs/heads/wicket-6.x ecf29185e -> d50e18c73


WICKET-5989 BaseWicketTester#startComponentInPage fails for pages with <wicket:header-items></wicket:header> placeholder

Ignore closing tags when checking for 'foundHeaderItemsTag'


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

Branch: refs/heads/wicket-6.x
Commit: d50e18c7334dbc26ce5180fa3bbdba4e16cec463
Parents: ecf2918
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Sat Oct 3 12:58:57 2015 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Sat Oct 3 12:58:57 2015 +0200

----------------------------------------------------------------------
 .../parser/filter/HtmlHeaderSectionHandler.java |  2 +-
 .../wicket/util/tester/BaseWicketTester.java    |  4 ++-
 .../headeritems/BasePageWithHeaderItems.html    | 13 ++++++++
 .../headeritems/BasePageWithHeaderItems.java    | 33 ++++++++++++++++++
 .../HtmlHeaderItemsContainerTest.java           | 35 ++++++++++++++++++++
 .../PageExtendingBasePageWithHeaderItems.html   |  5 +++
 .../PageExtendingBasePageWithHeaderItems.java   | 30 +++++++++++++++++
 7 files changed, 120 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/d50e18c7/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHeaderSectionHandler.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHeaderSectionHandler.java b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHeaderSectionHandler.java
index 0f85964..057f0e9 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHeaderSectionHandler.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHeaderSectionHandler.java
@@ -135,7 +135,7 @@ public final class HtmlHeaderSectionHandler extends AbstractMarkupFilter
 		else if (HtmlHeaderResolver.HEADER_ITEMS.equalsIgnoreCase(tag.getName()) &&
 				tag.getNamespace().equalsIgnoreCase(getWicketNamespace()))
 		{
-			if (foundHeaderItemsTag)
+			if ((tag.isOpen() || tag.isOpenClose()) && foundHeaderItemsTag)
 			{
 				throw new MarkupException(new MarkupStream(markup),
 						"More than one <wicket:header-items/> detected in the <head> element. Only one is allowed.");

http://git-wip-us.apache.org/repos/asf/wicket/blob/d50e18c7/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
index 2661c87..b050829 100644
--- a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
+++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
@@ -1430,7 +1430,9 @@ public class BaseWicketTester
 			}
 			catch (Exception e)
 			{
-				fail("Error while parsing the markup for the autogenerated page: " + e.getMessage());
+				String errorMessage = "Error while parsing the markup for the autogenerated page: " + e.getMessage();
+				log.error(errorMessage, e);
+				fail(errorMessage);
 			}
 		}
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/d50e18c7/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/BasePageWithHeaderItems.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/BasePageWithHeaderItems.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/BasePageWithHeaderItems.html
new file mode 100644
index 0000000..4ae92c5
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/BasePageWithHeaderItems.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html xmlns:wicket="http://wicket.apache.org">
+<head>
+    <meta charset="utf-8" />
+    <title>Apache Wicket Quickstart</title>
+    <wicket:header-items/>
+    <link href='http://fonts.googleapis.com/css?family=Yanone+Kaffeesatz:regular,bold' rel='stylesheet' type='text/css' />
+    <link rel="stylesheet" href="style.css" type="text/css" media="screen" title="Stylesheet" />
+</head>
+<body>
+    <wicket:child/>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/wicket/blob/d50e18c7/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/BasePageWithHeaderItems.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/BasePageWithHeaderItems.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/BasePageWithHeaderItems.java
new file mode 100644
index 0000000..5b26b3b
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/BasePageWithHeaderItems.java
@@ -0,0 +1,33 @@
+/*
+ * 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.wicket.markup.html.internal.headeritems;
+
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+
+/**
+ * https://issues.apache.org/jira/browse/WICKET-5989
+ */
+public class BasePageWithHeaderItems extends WebPage
+{
+	private static final long serialVersionUID = 1L;
+
+	public BasePageWithHeaderItems(final PageParameters parameters) {
+		super(parameters);
+	}
+}
+

http://git-wip-us.apache.org/repos/asf/wicket/blob/d50e18c7/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/HtmlHeaderItemsContainerTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/HtmlHeaderItemsContainerTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/HtmlHeaderItemsContainerTest.java
index 03f2da6..90cee78 100644
--- a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/HtmlHeaderItemsContainerTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/HtmlHeaderItemsContainerTest.java
@@ -18,8 +18,12 @@ package org.apache.wicket.markup.html.internal.headeritems;
 
 import static org.hamcrest.number.OrderingComparison.lessThan;
 
+import org.apache.wicket.Page;
 import org.apache.wicket.WicketTestCase;
 import org.apache.wicket.markup.MarkupException;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.util.tester.DummyPanelPage;
+import org.apache.wicket.util.tester.WicketTester;
 import org.junit.Test;
 
 /**
@@ -197,4 +201,35 @@ public class HtmlHeaderItemsContainerTest extends WicketTestCase
 			assertEquals(idxMetaFromSubPage, lastIdxMetaFromSubPage);
 		}
 	}
+
+	/**
+	 * https://issues.apache.org/jira/browse/WICKET-5989
+	 */
+	@Test
+	public void pageWithBasePageWithHeaderItems() {
+		WicketTesterForBasePageWithHeaderItems tester = new WicketTesterForBasePageWithHeaderItems();
+		try
+		{
+			tester.startComponentInPage(new PanelA(DummyPanelPage.TEST_PANEL_ID));
+		}
+		finally
+		{
+			tester.destroy();
+		}
+	}
+
+	private static class WicketTesterForBasePageWithHeaderItems extends WicketTester
+	{
+		@Override
+		protected Page createPage() {
+			return new PageExtendingBasePageWithHeaderItems(new PageParameters());
+		}
+
+
+		@Override
+		protected String createPageMarkup(final String componentId) {
+			return new PageExtendingBasePageWithHeaderItems(new PageParameters()).getMarkup().toString(true);
+		}
+
+	}
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/d50e18c7/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageExtendingBasePageWithHeaderItems.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageExtendingBasePageWithHeaderItems.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageExtendingBasePageWithHeaderItems.html
new file mode 100644
index 0000000..32e8b21
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageExtendingBasePageWithHeaderItems.html
@@ -0,0 +1,5 @@
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:extend>
+    <span wicket:id="panel"> [... replace by testing panel ...] </span>
+</wicket:extend>
+</html>

http://git-wip-us.apache.org/repos/asf/wicket/blob/d50e18c7/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageExtendingBasePageWithHeaderItems.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageExtendingBasePageWithHeaderItems.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageExtendingBasePageWithHeaderItems.java
new file mode 100644
index 0000000..54df07f
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageExtendingBasePageWithHeaderItems.java
@@ -0,0 +1,30 @@
+/*
+ * 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.wicket.markup.html.internal.headeritems;
+
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+
+/**
+ * https://issues.apache.org/jira/browse/WICKET-5989
+ */
+public class PageExtendingBasePageWithHeaderItems extends BasePageWithHeaderItems
+{
+	public PageExtendingBasePageWithHeaderItems(PageParameters parameters) {
+		super(parameters);
+	}
+}
+