Repository: wicket Updated Branches: refs/heads/master 6dfe99f17 -> 0a1024b1a
WICKET-5908 A new HtmlHeaderContainer is added each time a page instance is rendered Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/0a1024b1 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/0a1024b1 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/0a1024b1 Branch: refs/heads/master Commit: 0a1024b1ac8ae220d19ced0ee255a766f2eae5f4 Parents: 6dfe99f Author: Andrea Del Bene <â[email protected]â> Authored: Mon May 18 13:40:19 2015 +0200 Committer: Andrea Del Bene <â[email protected]â> Committed: Mon May 18 13:40:19 2015 +0200 ---------------------------------------------------------------------- .../parser/filter/HtmlHeaderSectionHandler.java | 147 +++++++++++-------- .../markup/resolver/HtmlHeaderResolver.java | 7 +- .../html/autocomponent/AutoComponentsPage.html | 15 ++ .../html/autocomponent/AutoComponentsPage.java | 36 +++++ .../AutocomponetsGenerationTest.java | 49 +++++++ .../CheckGroupDisabledTestPage_expected.html | 4 +- .../html/form/CheckGroupTestPage1_expected.html | 4 +- .../html/form/CheckGroupTestPage2_expected.html | 4 +- .../html/form/CheckGroupTestPage3_expected.html | 4 +- .../html/form/CheckGroupTestPage4_expected.html | 4 +- .../RadioGroupDisabledTestPage_expected.html | 4 +- .../html/form/RadioGroupTestPage1_expected.html | 4 +- .../html/form/RadioGroupTestPage3_expected.html | 4 +- .../markup/parser/filter/DoubleHeadTagPage.html | 13 ++ .../markup/parser/filter/DoubleHeadTagPage.java | 24 +++ .../markup/parser/filter/HeaderSectionTest.java | 10 ++ 16 files changed, 255 insertions(+), 78 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/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 6d08c95..da416eb 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 @@ -55,12 +55,15 @@ public final class HtmlHeaderSectionHandler extends AbstractMarkupFilter /** The automatically assigned wicket:id to >head< tag */ public static final String HEADER_ID = "_header_"; + public static final String HEADER_ID_ITEM = "_header_item_"; + /** True if <head> has been found already */ private boolean foundHead = false; /** True if </head> has been found already */ private boolean foundClosingHead = false; - + + /** True if </wicket:header-items> has been found already */ private boolean foundHeaderItemsTag = false; /** True if all the rest of the markup file can be ignored */ @@ -95,35 +98,7 @@ public final class HtmlHeaderSectionHandler extends AbstractMarkupFilter { if (tag.getNamespace() == null) { - // we found <head> - if (tag.isOpen()) - { - foundHead = true; - - if (tag.getId() == null) - { - tag.setId(HEADER_ID); - tag.setAutoComponentTag(true); - tag.setModified(true); - } - } - else if (tag.isClose()) - { - if (foundHeaderItemsTag) - { - // revert the settings from above - ComponentTag headOpenTag = tag.getOpenTag(); - // change the id because it is special. See HtmlHeaderResolver - headOpenTag.setId(HEADER_ID + "-Ignored"); - headOpenTag.setAutoComponentTag(false); - headOpenTag.setModified(false); - headOpenTag.setFlag(ComponentTag.RENDER_RAW, true); - } - - foundClosingHead = true; - } - - return tag; + handleHeadTag(tag); } else { @@ -135,49 +110,105 @@ public final class HtmlHeaderSectionHandler extends AbstractMarkupFilter else if (HtmlHeaderResolver.HEADER_ITEMS.equalsIgnoreCase(tag.getName()) && tag.getNamespace().equalsIgnoreCase(getWicketNamespace())) { - if (foundHeaderItemsTag) - { - throw new MarkupException(new MarkupStream(markup), - "More than one <wicket:header-items/> detected in the <head> element. Only one is allowed."); - } - else if (foundClosingHead) - { - throw new MarkupException(new MarkupStream(markup), - "Detected <wicket:header-items/> after the closing </head> element."); - } + handleHeaderItemsTag(tag); + } + else if (BODY.equalsIgnoreCase(tag.getName()) && (tag.getNamespace() == null)) + { + handleBodyTag(); + } - foundHeaderItemsTag = true; - tag.setId(HEADER_ID); - tag.setAutoComponentTag(true); - tag.setModified(true); + return tag; + } - return tag; + /** + * Handle tag <body> + */ + private void handleBodyTag() + { + // WICKET-4511: We found <body> inside <head> tag. Markup is not valid! + if (foundHead && !foundClosingHead) + { + throw new MarkupException(new MarkupStream(markup), + "Invalid page markup. Tag <BODY> found inside <HEAD>"); } - else if (BODY.equalsIgnoreCase(tag.getName()) && (tag.getNamespace() == null)) + + // We found <body> + if (foundHead == false) { - // WICKET-4511: We found <body> inside <head> tag. Markup is not valid! - if (foundHead && !foundClosingHead) + insertHeadTag(); + } + + // <head> must always be before <body> + ignoreTheRest = true; + } + + /** + * Handle tag <wicket:header-items> + * + * @param tag + */ + private void handleHeaderItemsTag(ComponentTag tag) + { + if (foundHeaderItemsTag) + { + throw new MarkupException(new MarkupStream(markup), + "More than one <wicket:header-items/> detected in the <head> element. Only one is allowed."); + } + else if (foundClosingHead) + { + throw new MarkupException(new MarkupStream(markup), + "Detected <wicket:header-items/> after the closing </head> element."); + } + + foundHeaderItemsTag = true; + tag.setId(HEADER_ID); + tag.setAutoComponentTag(true); + tag.setModified(true); + } + + /** + * Handle tag <head> + * @param tag + */ + private void handleHeadTag(ComponentTag tag) + { + // we found <head> + if (tag.isOpen()) + { + if(foundHead) { throw new MarkupException(new MarkupStream(markup), - "Invalid page markup. Tag <BODY> found inside <HEAD>"); + "Tag <head> is not allowed at this position (do you have multiple <head> tags in your markup?)."); } + + foundHead = true; - // We found <body> - if (foundHead == false) + if (tag.getId() == null) { - insertHeadTag(); + tag.setId(HEADER_ID); + tag.setAutoComponentTag(true); + tag.setModified(true); } - - // <head> must always be before <body> - ignoreTheRest = true; - return tag; } + else if (tag.isClose()) + { + if (foundHeaderItemsTag) + { + // revert the settings from above + ComponentTag headOpenTag = tag.getOpenTag(); + // change the id because it is special. See HtmlHeaderResolver + headOpenTag.setId(HEADER_ID + "-Ignored"); + headOpenTag.setAutoComponentTag(false); + headOpenTag.setModified(false); + headOpenTag.setFlag(ComponentTag.RENDER_RAW, true); + } - return tag; + foundClosingHead = true; + } } /** - * Insert <head> open and close tag (with empty body) to the current position. + * Insert <head> open and close tag (with empty body) to the current position. */ private void insertHeadTag() { http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/wicket-core/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java b/wicket-core/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java index 0838594..2450704 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/resolver/HtmlHeaderResolver.java @@ -66,8 +66,7 @@ public class HtmlHeaderResolver implements IComponentResolver { // Create a special header component which will gather additional // input the <head> from 'contributors'. - return newHtmlHeaderContainer(HtmlHeaderSectionHandler.HEADER_ID + - page.getAutoIndex(), tag); + return newHtmlHeaderContainer(tag.getId(), tag); } else if ((tag instanceof WicketTag) && ((WicketTag)tag).isHeadTag()) { @@ -100,8 +99,7 @@ public class HtmlHeaderResolver implements IComponentResolver { // Create a special header component which will gather // additional input the <head> from 'contributors'. - header = newHtmlHeaderContainer(HtmlHeaderSectionHandler.HEADER_ID + - page.getAutoIndex(), tag); + header = newHtmlHeaderContainer(tag.getId(), tag); header.add(new WicketHeadContainer()); return header; } @@ -174,6 +172,7 @@ public class HtmlHeaderResolver implements IComponentResolver { htmlHeaderContainer = newHtmlHeaderContainer(id); } + return htmlHeaderContainer; } http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/wicket-core/src/test/java/org/apache/wicket/markup/html/autocomponent/AutoComponentsPage.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/autocomponent/AutoComponentsPage.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/autocomponent/AutoComponentsPage.html new file mode 100644 index 0000000..25d58e5 --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/autocomponent/AutoComponentsPage.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8"> + <title>Insert title here</title> + <link rel="stylesheet" type="text/css" href="css/style.css"/> + </head> +<body> + + <wicket:enclosure> + <span wicket:id="hello">Hello!</span> + </wicket:enclosure> + <img alt="myPicture" src="imgs/mylogo.png"> +</body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/wicket-core/src/test/java/org/apache/wicket/markup/html/autocomponent/AutoComponentsPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/autocomponent/AutoComponentsPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/autocomponent/AutoComponentsPage.java new file mode 100644 index 0000000..e9f0786 --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/autocomponent/AutoComponentsPage.java @@ -0,0 +1,36 @@ +/* + * 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.autocomponent; + +import org.apache.wicket.markup.html.WebPage; +import org.apache.wicket.markup.html.basic.Label; + +/** + * Page containing only autocomponents (header, enclosures, img tags, etc...) + * + * @author andrea del bene + * + */ +public class AutoComponentsPage extends WebPage +{ + @Override + protected void onInitialize() + { + super.onInitialize(); + add(new Label("hello")); + } +} http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/wicket-core/src/test/java/org/apache/wicket/markup/html/autocomponent/AutocomponetsGenerationTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/autocomponent/AutocomponetsGenerationTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/autocomponent/AutocomponetsGenerationTest.java new file mode 100644 index 0000000..cee6b23 --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/autocomponent/AutocomponetsGenerationTest.java @@ -0,0 +1,49 @@ +/* + * 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.autocomponent; + +import org.apache.wicket.WicketTestCase; +import org.apache.wicket.markup.IMarkupCache; +import org.junit.Test; + +/* + * Test case for https://issues.apache.org/jira/browse/WICKET-5904 + * and for https://issues.apache.org/jira/browse/WICKET-5908 + */ +public class AutocomponetsGenerationTest extends WicketTestCase +{ + + @Test + public void autocomponetsNumberDoesntChange() + { + AutoComponentsPage autoComponentsPage = new AutoComponentsPage(); + tester.startPage(autoComponentsPage); + + int childrenNumber = tester.getLastRenderedPage().size(); + + //clean markup cache and render the same page instance again + IMarkupCache markupCache = tester.getApplication().getMarkupSettings().getMarkupFactory().getMarkupCache(); + + markupCache.clear(); + tester.startPage(autoComponentsPage); + + //the number of child components must not have been changed + assertEquals(childrenNumber, tester.getLastRenderedPage().size()); + + } + +} http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupDisabledTestPage_expected.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupDisabledTestPage_expected.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupDisabledTestPage_expected.html index 86416ac..dfba8d0 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupDisabledTestPage_expected.html +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupDisabledTestPage_expected.html @@ -4,9 +4,9 @@ <!-- In addition test that chars are not converted from upper to lower and vice versa --> <FORM wicket:id="form" id="form1" method="post" action="./org.apache.wicket.markup.html.form.CheckGroupDisabledTestPage?0-1.IFormSubmitListener-form"><div style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input type="hidden" name="form1_hf_0" id="form1_hf_0" /></div> <span wicket:id="group"> - <input type="checkbox" wicket:id="check1" id="check12" name="group" value="check1" checked="checked" disabled="disabled">check1</input> + <input type="checkbox" wicket:id="check1" id="check12" name="group" value="check0" checked="checked" disabled="disabled">check1</input> <span wicket:id="container"> - <input type="checkbox" wicket:id="check2" id="check23" name="group" value="check2" checked="checked" disabled="disabled">check2</input> + <input type="checkbox" wicket:id="check2" id="check23" name="group" value="check1" checked="checked" disabled="disabled">check2</input> </span> </span> </FORM> http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage1_expected.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage1_expected.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage1_expected.html index faf38b5..8f23b9b 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage1_expected.html +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage1_expected.html @@ -4,9 +4,9 @@ <!-- In addition test that chars are not converted from upper to lower and vice versa --> <FORM wicket:id="form" id="form1" method="post" action="./org.apache.wicket.markup.html.form.CheckGroupTestPage1?0-1.IFormSubmitListener-form"><div style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input type="hidden" name="form1_hf_0" id="form1_hf_0" /></div> - <input type="checkbox" wicket:id="check1" id="check12" name="group" value="check1">check1</input> + <input type="checkbox" wicket:id="check1" id="check12" name="group" value="check0">check1</input> <span wicket:id="container"> - <input type="checkbox" wicket:id="check2" id="check23" name="group" value="check2">check2</input> + <input type="checkbox" wicket:id="check2" id="check23" name="group" value="check1">check2</input> </span> </FORM> http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage2_expected.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage2_expected.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage2_expected.html index 73e0397..c35c499 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage2_expected.html +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage2_expected.html @@ -3,9 +3,9 @@ <body> <form wicket:id="form" id="form4" method="post" action="./org.apache.wicket.markup.html.form.CheckGroupTestPage2?1-1.IFormSubmitListener-form"><div style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input type="hidden" name="form4_hf_0" id="form4_hf_0" /></div> - <input type="checkbox" wicket:id="check1" id="check15" name="group" value="check1" checked="checked">check1</input> + <input type="checkbox" wicket:id="check1" id="check15" name="group" value="check0" checked="checked">check1</input> <span wicket:id="container"> - <input type="checkbox" wicket:id="check2" id="check26" name="group" value="check2">check2</input> + <input type="checkbox" wicket:id="check2" id="check26" name="group" value="check1">check2</input> </span> </form> http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage3_expected.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage3_expected.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage3_expected.html index ead5ca4..0af457e 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage3_expected.html +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage3_expected.html @@ -3,9 +3,9 @@ <body> <form wicket:id="form" id="form7" method="post" action="./org.apache.wicket.markup.html.form.CheckGroupTestPage3?2-1.IFormSubmitListener-form"><div style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input type="hidden" name="form7_hf_0" id="form7_hf_0" /></div> - <input type="checkbox" wicket:id="check1" id="check18" name="group" value="check1">check1</input> + <input type="checkbox" wicket:id="check1" id="check18" name="group" value="check0">check1</input> <span wicket:id="container"> - <input type="checkbox" wicket:id="check2" id="check29" name="group" value="check2" checked="checked">check2</input> + <input type="checkbox" wicket:id="check2" id="check29" name="group" value="check1" checked="checked">check2</input> </span> </form> http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage4_expected.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage4_expected.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage4_expected.html index aa677ec..9a76d22 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage4_expected.html +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/CheckGroupTestPage4_expected.html @@ -3,9 +3,9 @@ <body> <form wicket:id="form" id="forma" method="post" action="./org.apache.wicket.markup.html.form.CheckGroupTestPage4?3-1.IFormSubmitListener-form"><div style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input type="hidden" name="forma_hf_0" id="forma_hf_0" /></div> - <input type="checkbox" wicket:id="check1" id="check1b" name="group" value="check1" checked="checked">check1</input> + <input type="checkbox" wicket:id="check1" id="check1b" name="group" value="check0" checked="checked">check1</input> <span wicket:id="container"> - <input type="checkbox" wicket:id="check2" id="check2c" name="group" value="check2" checked="checked">check2</input> + <input type="checkbox" wicket:id="check2" id="check2c" name="group" value="check1" checked="checked">check2</input> </span> </form> http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupDisabledTestPage_expected.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupDisabledTestPage_expected.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupDisabledTestPage_expected.html index 2d42066..ad4f11a 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupDisabledTestPage_expected.html +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupDisabledTestPage_expected.html @@ -3,9 +3,9 @@ <body> <form wicket:id="form" id="form1" method="post" action="./org.apache.wicket.markup.html.form.RadioGroupDisabledTestPage?0-1.IFormSubmitListener-form"><div style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input type="hidden" name="form1_hf_0" id="form1_hf_0" /></div> <span wicket:id="group"> - <input type="radio" wicket:id="radio1" id="radio12" name="group" value="radio1" disabled="disabled">radio1</input> + <input type="radio" wicket:id="radio1" id="radio12" name="group" value="radio0" disabled="disabled">radio1</input> <span wicket:id="container"> - <input type="radio" wicket:id="radio2" id="radio23" name="group" value="radio2" checked="checked" disabled="disabled">radio2</input> + <input type="radio" wicket:id="radio2" id="radio23" name="group" value="radio1" checked="checked" disabled="disabled">radio2</input> </span> </span> </form> http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage1_expected.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage1_expected.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage1_expected.html index d6dac16..5d518b7 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage1_expected.html +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage1_expected.html @@ -3,9 +3,9 @@ <body> <form wicket:id="form" id="form1" method="post" action="./org.apache.wicket.markup.html.form.RadioGroupTestPage1?0-1.IFormSubmitListener-form"><div style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input type="hidden" name="form1_hf_0" id="form1_hf_0" /></div> - <input type="radio" wicket:id="radio1" id="radio12" name="group" value="radio1">radio1</input> + <input type="radio" wicket:id="radio1" id="radio12" name="group" value="radio0">radio1</input> <span wicket:id="container"> - <input type="radio" wicket:id="radio2" id="radio23" name="group" value="radio2" checked="checked">radio2</input> + <input type="radio" wicket:id="radio2" id="radio23" name="group" value="radio1" checked="checked">radio2</input> </span> </form> http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage3_expected.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage3_expected.html b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage3_expected.html index 891d130..30d2934 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage3_expected.html +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/RadioGroupTestPage3_expected.html @@ -2,8 +2,8 @@ <body> <form wicket:id="form" id="form1" method="post" action="./org.apache.wicket.markup.html.form.RadioGroupTestPage3?0-1.IFormSubmitListener-form"><div style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input type="hidden" name="form1_hf_0" id="form1_hf_0" /></div> - <input wicket:id="check1" type="radio" id="check12" name="radio" value="radio1" checked="checked">Yes - <input wicket:id="check2" type="radio" id="check23" name="radio" value="radio2" checked="checked">No + <input wicket:id="check1" type="radio" id="check12" name="radio" value="radio0" checked="checked">Yes + <input wicket:id="check2" type="radio" id="check23" name="radio" value="radio1" checked="checked">No </form> </body> http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/DoubleHeadTagPage.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/DoubleHeadTagPage.html b/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/DoubleHeadTagPage.html new file mode 100644 index 0000000..458024c --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/DoubleHeadTagPage.html @@ -0,0 +1,13 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8"> + <title>Insert title here</title> + </head> + <head> + <title>Additional head tag</title> + </head> +<body> + +</body> +</html> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/DoubleHeadTagPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/DoubleHeadTagPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/DoubleHeadTagPage.java new file mode 100644 index 0000000..5f6dfac --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/DoubleHeadTagPage.java @@ -0,0 +1,24 @@ +/* + * 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.parser.filter; + +import org.apache.wicket.markup.html.WebPage; + +public class DoubleHeadTagPage extends WebPage +{ + +} http://git-wip-us.apache.org/repos/asf/wicket/blob/0a1024b1/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/HeaderSectionTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/HeaderSectionTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/HeaderSectionTest.java index ae8403d..0908f0c 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/HeaderSectionTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/HeaderSectionTest.java @@ -18,6 +18,7 @@ package org.apache.wicket.markup.parser.filter; import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.WicketTestCase; +import org.apache.wicket.markup.MarkupException; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -221,4 +222,13 @@ public class HeaderSectionTest extends WicketTestCase { executeTest(HeaderSectionPage_20.class, "HeaderSectionPageExpectedResult_20.html"); } + + /** + * https://issues.apache.org/jira/browse/WICKET-5908 + */ + @Test(expected = MarkupException.class) + public void doubleHeadTagPage() + { + tester.startPage(DoubleHeadTagPage.class); + } }
