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 2014/03/12 15:14:15 UTC

[2/9] git commit: WICKET-5531 Create new placeholder tag to indicate where header contributions should appear

WICKET-5531 Create new placeholder tag to indicate where header contributions should appear


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

Branch: refs/heads/wicket-6.x
Commit: 8ac36a6c9c1d958b1a7846792e0e7604e0fcd962
Parents: 0123767
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Wed Mar 12 10:59:07 2014 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Wed Mar 12 10:59:07 2014 +0200

----------------------------------------------------------------------
 .../html/internal/HtmlHeaderItemsContainer.java |   2 +
 .../src/main/resources/META-INF/wicket-1.5.xsd  |  10 +-
 .../internal/HtmlHeaderItemsContainerTest.java  | 140 +++++++++++++++++++
 .../html/internal/headeritems/BasePage.java     |  44 ++++++
 .../headeritems/PageWithHeaderItems.html        |  21 +++
 .../headeritems/PageWithHeaderItems.java        |  27 ++++
 .../headeritems/PageWithoutHeaderItems.html     |  20 +++
 .../headeritems/PageWithoutHeaderItems.java     |  27 ++++
 .../html/internal/headeritems/PanelA.html       |  11 ++
 .../html/internal/headeritems/PanelA.java       |  41 ++++++
 .../SubPageWithHeaderItemsAndWicketHead.html    |   9 ++
 .../SubPageWithHeaderItemsAndWicketHead.java    |  27 ++++
 .../SubPageWithoutHeaderItemsAndWicketHead.html |   9 ++
 .../SubPageWithoutHeaderItemsAndWicketHead.java |  27 ++++
 14 files changed, 414 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/8ac36a6c/wicket-core/src/main/java/org/apache/wicket/markup/html/internal/HtmlHeaderItemsContainer.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/internal/HtmlHeaderItemsContainer.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/internal/HtmlHeaderItemsContainer.java
index 55490eb..e7914d0 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/internal/HtmlHeaderItemsContainer.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/internal/HtmlHeaderItemsContainer.java
@@ -17,6 +17,8 @@
 package org.apache.wicket.markup.html.internal;
 
 /**
+ * A specialization of HtmlHeaderContainer that doesn't render
+ * &lt;head&gt; and &l;/head&gt; around the header contributions
  */
 public class HtmlHeaderItemsContainer extends HtmlHeaderContainer
 {

http://git-wip-us.apache.org/repos/asf/wicket/blob/8ac36a6c/wicket-core/src/main/resources/META-INF/wicket-1.5.xsd
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/resources/META-INF/wicket-1.5.xsd b/wicket-core/src/main/resources/META-INF/wicket-1.5.xsd
index 419df57..9c5c1c0 100644
--- a/wicket-core/src/main/resources/META-INF/wicket-1.5.xsd
+++ b/wicket-core/src/main/resources/META-INF/wicket-1.5.xsd
@@ -146,6 +146,14 @@
 		<complexType />
 	</element>
 
+    <element name="header-items">
+        <annotation>
+            <documentation><![CDATA[A special element that is used as a placeholder inside the HTML <head>
+            element. Wicket will replace it with all header contributions.]]></documentation>
+        </annotation>
+        <complexType />
+    </element>
+
 	<element name="container">
 		<annotation>
 			<documentation>A tag to which you can attach a wicket component but
@@ -294,4 +302,4 @@
 			</documentation>
 		</annotation>
 	</element>
-</schema>
\ No newline at end of file
+</schema>

http://git-wip-us.apache.org/repos/asf/wicket/blob/8ac36a6c/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/HtmlHeaderItemsContainerTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/HtmlHeaderItemsContainerTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/HtmlHeaderItemsContainerTest.java
new file mode 100644
index 0000000..37ae40c
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/HtmlHeaderItemsContainerTest.java
@@ -0,0 +1,140 @@
+/*
+ * 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;
+
+import static org.hamcrest.number.OrderingComparison.lessThan;
+
+import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.markup.html.internal.headeritems.PageWithHeaderItems;
+import org.apache.wicket.markup.html.internal.headeritems.PageWithoutHeaderItems;
+import org.apache.wicket.markup.html.internal.headeritems.SubPageWithHeaderItemsAndWicketHead;
+import org.apache.wicket.markup.html.internal.headeritems.SubPageWithoutHeaderItemsAndWicketHead;
+import org.junit.Test;
+
+/**
+ * Tests for <wicket:header-items/> element
+ */
+public class HtmlHeaderItemsContainerTest extends WicketTestCase
+{
+	@Test
+	public void withHeaderItems()
+	{
+		tester.startPage(PageWithHeaderItems.class);
+		String responseAsString = tester.getLastResponseAsString();
+//		System.err.println("RES:\n" + responseAsString);
+		int idxMetaCharset = responseAsString.indexOf("<meta charset=\"utf-8\"");
+		int idxMetaPanelWicketHead = responseAsString.indexOf("meta name=\"panel-wicket-head\"");
+		int idxWicketAjaxJs = responseAsString.indexOf("wicket-ajax-jquery.js");
+		int idxTitleElement = responseAsString.indexOf("<title>Apache Wicket Quickstart</title>");
+		int idxMetaFromBasePage = responseAsString.indexOf("<meta name='fromBasePage' content='1'");
+
+		assertThat("<meta charset> should be rendered before <meta name=\"panel-wicket-head\"",
+				idxMetaCharset, lessThan(idxMetaPanelWicketHead));
+
+		assertThat("<meta  name=\"panel-wicket-head\"> should be rendered before <script src=wicket-ajax-jquery.js>",
+				idxMetaPanelWicketHead, lessThan(idxWicketAjaxJs));
+
+		assertThat("<script src=wicket-ajax-jquery.js> should be rendered before the <title> element",
+				idxWicketAjaxJs, lessThan(idxTitleElement));
+
+		assertThat("<meta name='fromBasePage'> should be rendered before the <title> element",
+				idxMetaFromBasePage, lessThan(idxTitleElement));
+	}
+
+	@Test
+	public void withoutHeaderItems()
+	{
+		tester.startPage(PageWithoutHeaderItems.class);
+		String responseAsString = tester.getLastResponseAsString();
+//		System.err.println("RES:\n" + responseAsString);
+		int idxMetaCharset = responseAsString.indexOf("<meta charset=\"utf-8\"");
+		int idxMetaPanelWicketHead = responseAsString.indexOf("meta name=\"panel-wicket-head\"");
+		int idxWicketAjaxJs = responseAsString.indexOf("wicket-ajax-jquery.js");
+		int idxTitleElement = responseAsString.indexOf("<title>Apache Wicket Quickstart</title>");
+		int idxMetaFromBasePage = responseAsString.indexOf("<meta name='fromBasePage' content='1'");
+
+		assertThat("<meta name=\"panel-wicket-head\"> should be rendered before <script src=wicket-ajax-jquery.js>",
+				idxMetaPanelWicketHead, lessThan(idxWicketAjaxJs));
+
+		assertThat("<script src=wicket-ajax-jquery.js> should be rendered before <meta charset>",
+				idxWicketAjaxJs, lessThan(idxMetaCharset));
+
+		assertThat("<meta charset> should be rendered before the <title> element",
+				idxMetaCharset, lessThan(idxTitleElement));
+
+		assertThat("<title> should be rendered before the <meta name='fromBasePage'> element",
+				idxTitleElement, lessThan(idxMetaFromBasePage));
+	}
+
+	@Test
+	public void withoutHeaderItemsWithWicketHead()
+	{
+		tester.startPage(SubPageWithoutHeaderItemsAndWicketHead.class);
+		String responseAsString = tester.getLastResponseAsString();
+//		System.err.println("RES:\n" + responseAsString);
+		int idxMetaCharset = responseAsString.indexOf("<meta charset=\"utf-8\"");
+		int idxMetaPanelWicketHead = responseAsString.indexOf("meta name=\"panel-wicket-head\"");
+		int idxWicketAjaxJs = responseAsString.indexOf("wicket-ajax-jquery.js");
+		int idxTitleElement = responseAsString.indexOf("<title>Apache Wicket Quickstart</title>");
+		int idxMetaFromBasePage = responseAsString.indexOf("<meta name='fromBasePage' content='1'");
+		int idxMetaFromSubPage = responseAsString.indexOf("<meta name=\"SubPageWithoutHeaderItemsAndWicketHead\"");
+
+		assertThat("<meta name=\"panel-wicket-head\"> should be rendered before <script src=wicket-ajax-jquery.js>",
+				idxMetaPanelWicketHead, lessThan(idxWicketAjaxJs));
+
+		assertThat("<script src=wicket-ajax-jquery.js> should be rendered before <meta charset>",
+				idxWicketAjaxJs, lessThan(idxMetaCharset));
+
+		assertThat("<meta charset> should be rendered before the <title> element",
+				idxMetaCharset, lessThan(idxTitleElement));
+
+		assertThat("<title> should be rendered before the <meta name=\"SubPageWithoutHeaderItemsAndWicketHead\" element",
+				idxTitleElement, lessThan(idxMetaFromSubPage));
+
+		assertThat("<meta name='fromBasePage'> should be rendered before the <meta name=\"SubPageWithoutHeaderItemsAndWicketHead\" element",
+				idxMetaFromSubPage, lessThan(idxMetaFromBasePage));
+	}
+
+	@Test
+	public void withHeaderItemsWithWicketHead()
+	{
+		tester.startPage(SubPageWithHeaderItemsAndWicketHead.class);
+		String responseAsString = tester.getLastResponseAsString();
+//		System.err.println("RES:\n" + responseAsString);
+		int idxMetaCharset = responseAsString.indexOf("<meta charset=\"utf-8\"");
+		int idxMetaPanelWicketHead = responseAsString.indexOf("meta name=\"panel-wicket-head\"");
+		int idxWicketAjaxJs = responseAsString.indexOf("wicket-ajax-jquery.js");
+		int idxTitleElement = responseAsString.indexOf("<title>Apache Wicket Quickstart</title>");
+		int idxMetaFromBasePage = responseAsString.indexOf("<meta name='fromBasePage' content='1'");
+		int idxMetaFromSubPage = responseAsString.indexOf("<meta name=\"SubPageWithHeaderItemsAndWicketHead\"");
+
+		assertThat("<meta charset> should be rendered before <meta name=\"panel-wicket-head\"",
+				idxMetaCharset, lessThan(idxMetaPanelWicketHead));
+
+		assertThat("<meta  name=\"panel-wicket-head\"> should be rendered before <script src=wicket-ajax-jquery.js>",
+				idxMetaPanelWicketHead, lessThan(idxWicketAjaxJs));
+
+		assertThat("<script src=wicket-ajax-jquery.js> should be rendered before the <title> element",
+				idxWicketAjaxJs, lessThan(idxTitleElement));
+
+		assertThat("<meta name=\"SubPageWithoutHeaderItemsAndWicketHead\"> should be rendered before the <meta name='fromBasePage'> element",
+				idxMetaFromSubPage, lessThan(idxMetaFromBasePage));
+
+		assertThat("<meta name='fromBasePage'> should be rendered before the <title> element",
+				idxMetaFromBasePage, lessThan(idxTitleElement));
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/8ac36a6c/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/BasePage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/BasePage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/BasePage.java
new file mode 100644
index 0000000..192bc77
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/BasePage.java
@@ -0,0 +1,44 @@
+/*
+ * 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.head.IHeaderResponse;
+import org.apache.wicket.markup.head.StringHeaderItem;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+
+/**
+ * A base page that contributes a StringHeaderItem
+ * and adds a Panel with its own contributions
+ */
+public class BasePage extends WebPage {
+	private static final long serialVersionUID = 1L;
+
+	public BasePage(final PageParameters parameters) {
+		super(parameters);
+
+		add(new PanelA("panel"));
+    }
+
+	@Override
+	public void renderHead(IHeaderResponse response)
+	{
+		super.renderHead(response);
+
+		response.render(StringHeaderItem.forString("<meta name='fromBasePage' content='1'/>"));
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/8ac36a6c/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithHeaderItems.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithHeaderItems.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithHeaderItems.html
new file mode 100644
index 0000000..ffa04a1
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithHeaderItems.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html xmlns:wicket="http://wicket.apache.org">
+	<head>
+		<meta charset="utf-8" />
+        <wicket:header-items/>
+		<title>Apache Wicket Quickstart</title>
+	</head>
+	<body>
+		<div id="hd">
+			<div id="logo">
+				<h1>Apache Wicket</h1>
+			</div>
+		</div>
+		<div id="bd">
+            <div wicket:id="panel"></div>
+            <wicket:child/>
+		</div>
+		<div id="ft">
+		</div>
+	</body>
+</html>

http://git-wip-us.apache.org/repos/asf/wicket/blob/8ac36a6c/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithHeaderItems.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithHeaderItems.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithHeaderItems.java
new file mode 100644
index 0000000..0dd1f11
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithHeaderItems.java
@@ -0,0 +1,27 @@
+/*
+ * 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;
+
+public class PageWithHeaderItems extends BasePage {
+	private static final long serialVersionUID = 1L;
+
+	public PageWithHeaderItems(final PageParameters parameters) {
+		super(parameters);
+    }
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/8ac36a6c/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithoutHeaderItems.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithoutHeaderItems.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithoutHeaderItems.html
new file mode 100644
index 0000000..568a435
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithoutHeaderItems.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html xmlns:wicket="http://wicket.apache.org">
+	<head>
+		<meta charset="utf-8" />
+		<title>Apache Wicket Quickstart</title>
+	</head>
+	<body>
+		<div id="hd">
+			<div id="logo">
+				<h1>Apache Wicket</h1>
+			</div>
+		</div>
+		<div id="bd">
+            <div wicket:id="panel"></div>
+            <wicket:child/>
+		</div>
+		<div id="ft">
+		</div>
+	</body>
+</html>

http://git-wip-us.apache.org/repos/asf/wicket/blob/8ac36a6c/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithoutHeaderItems.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithoutHeaderItems.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithoutHeaderItems.java
new file mode 100644
index 0000000..6ab3a97
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PageWithoutHeaderItems.java
@@ -0,0 +1,27 @@
+/*
+ * 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;
+
+public class PageWithoutHeaderItems extends BasePage {
+	private static final long serialVersionUID = 1L;
+
+	public PageWithoutHeaderItems(final PageParameters parameters) {
+		super(parameters);
+    }
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/8ac36a6c/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PanelA.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PanelA.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PanelA.html
new file mode 100644
index 0000000..434f244
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PanelA.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html xmlns:wicket="http://wicket.apache.org">
+<body>
+    <wicket:head>
+        <meta name="panel-wicket-head" content="done!"/>
+    </wicket:head>
+    <wicket:panel>
+        The panel content
+    </wicket:panel>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/wicket/blob/8ac36a6c/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PanelA.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PanelA.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PanelA.java
new file mode 100644
index 0000000..d0ccdb1
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/PanelA.java
@@ -0,0 +1,41 @@
+/*
+ * 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.head.IHeaderResponse;
+import org.apache.wicket.markup.html.panel.Panel;
+import org.apache.wicket.resource.CoreLibrariesContributor;
+
+/**
+ * A panel that contributes all Ajax header items
+ * and uses <wicket:head> to contribute a <meta> element
+ */
+public class PanelA extends Panel
+{
+	public PanelA(String id)
+	{
+		super(id);
+	}
+
+	@Override
+	public void renderHead(IHeaderResponse response)
+	{
+		super.renderHead(response);
+
+		CoreLibrariesContributor.contributeAjax(getApplication(), response);
+	}
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/8ac36a6c/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithHeaderItemsAndWicketHead.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithHeaderItemsAndWicketHead.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithHeaderItemsAndWicketHead.html
new file mode 100644
index 0000000..54b4b00
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithHeaderItemsAndWicketHead.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html xmlns:wicket="http://wicket.apache.org">
+    <wicket:head>
+        <meta name="SubPageWithHeaderItemsAndWicketHead" content="1"/>
+    </wicket:head>
+    <wicket:extend>
+        SubPageWithHeaderItemsAndWicketHead content
+    </wicket:extend>
+</html>

http://git-wip-us.apache.org/repos/asf/wicket/blob/8ac36a6c/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithHeaderItemsAndWicketHead.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithHeaderItemsAndWicketHead.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithHeaderItemsAndWicketHead.java
new file mode 100644
index 0000000..01df0f0
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithHeaderItemsAndWicketHead.java
@@ -0,0 +1,27 @@
+/*
+ * 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;
+
+public class SubPageWithHeaderItemsAndWicketHead extends PageWithHeaderItems {
+	private static final long serialVersionUID = 1L;
+
+	public SubPageWithHeaderItemsAndWicketHead(final PageParameters parameters) {
+		super(parameters);
+    }
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/8ac36a6c/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithoutHeaderItemsAndWicketHead.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithoutHeaderItemsAndWicketHead.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithoutHeaderItemsAndWicketHead.html
new file mode 100644
index 0000000..3f2dbd2
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithoutHeaderItemsAndWicketHead.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:head>
+    <meta name="SubPageWithoutHeaderItemsAndWicketHead" content="1"/>
+</wicket:head>
+<wicket:extend>
+    SubPageWithoutHeaderItemsAndWicketHead content
+</wicket:extend>
+</html>

http://git-wip-us.apache.org/repos/asf/wicket/blob/8ac36a6c/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithoutHeaderItemsAndWicketHead.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithoutHeaderItemsAndWicketHead.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithoutHeaderItemsAndWicketHead.java
new file mode 100644
index 0000000..fa57dbf
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/headeritems/SubPageWithoutHeaderItemsAndWicketHead.java
@@ -0,0 +1,27 @@
+/*
+ * 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;
+
+public class SubPageWithoutHeaderItemsAndWicketHead extends PageWithoutHeaderItems {
+	private static final long serialVersionUID = 1L;
+
+	public SubPageWithoutHeaderItemsAndWicketHead(final PageParameters parameters) {
+		super(parameters);
+    }
+}