Repository: wicket
Updated Branches:
  refs/heads/master 26adc3133 -> a7af2ad59
  refs/heads/wicket-6.x 548e1c090 -> c2bf22c1f
  refs/heads/wicket-7.x ebc97e31d -> 843cfdaf8
  refs/heads/wicket-8.x b5f5001de -> 4ad94835e


WICKET-6553 SelectionOptions escape markup


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

Branch: refs/heads/wicket-8.x
Commit: 4ad94835e74be3eccb52d37201f2a5631e002ca2
Parents: b5f5001
Author: Sven Meier <[email protected]>
Authored: Fri May 25 22:21:15 2018 +0200
Committer: Sven Meier <[email protected]>
Committed: Fri May 25 22:21:19 2018 +0200

----------------------------------------------------------------------
 .../markup/html/form/select/SelectOptions.java  | 12 +++-
 .../markup/html/form/select/SelectTest.java     | 16 +++++
 .../html/form/select/SelectTestPage3.html       | 12 ++++
 .../html/form/select/SelectTestPage3.java       | 62 ++++++++++++++++++++
 4 files changed, 100 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/4ad94835/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOptions.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOptions.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOptions.java
index fdf22c1..fd6d1f6 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOptions.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/form/select/SelectOptions.java
@@ -25,6 +25,7 @@ import org.apache.wicket.markup.parser.XmlTag.TagType;
 import org.apache.wicket.markup.repeater.RepeatingView;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.util.CollectionModel;
+import org.apache.wicket.util.string.Strings;
 
 
 /**
@@ -139,7 +140,9 @@ public class SelectOptions<T> extends RepeatingView
         */
        protected SelectOption<T> newOption(final String text, final IModel<T> 
model)
        {
-               return new SimpleSelectOption<>("option", model, text);
+               SimpleSelectOption<T> option = new 
SimpleSelectOption<>("option", model, text);
+               option.setEscapeModelStrings(this.getEscapeModelStrings());
+               return option;
        }
 
        /**
@@ -169,7 +172,12 @@ public class SelectOptions<T> extends RepeatingView
                @Override
                public void onComponentTagBody(final MarkupStream markupStream, 
final ComponentTag openTag)
                {
-                       replaceComponentTagBody(markupStream, openTag, text);
+                       CharSequence escaped = text;
+                       if (getEscapeModelStrings()) {
+                               escaped = Strings.escapeMarkup(text);
+                       }
+                       
+                       replaceComponentTagBody(markupStream, openTag, escaped);
                }
 
                /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/4ad94835/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/select/SelectTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/select/SelectTest.java
 
b/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/select/SelectTest.java
index d6a80230..640efb3 100644
--- 
a/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/select/SelectTest.java
+++ 
b/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/select/SelectTest.java
@@ -72,4 +72,20 @@ public class SelectTest extends WicketTestCase
 
                assertTrue(page.select.isSelected(page.option0));
        }
+       
+       /**
+        * WICKET-6553 option text
+        */
+       @Test
+       public void optionText()
+       {
+
+               SelectTestPage3 page = new SelectTestPage3();
+
+               tester.startPage(page);
+
+               
assertTrue(tester.getLastResponseAsString().contains("&lt;1&gt;"));
+               
assertTrue(tester.getLastResponseAsString().contains("&lt;2&gt;"));
+               
assertTrue(tester.getLastResponseAsString().contains("&lt;3&gt;"));
+       }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/4ad94835/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/select/SelectTestPage3.html
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/select/SelectTestPage3.html
 
b/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/select/SelectTestPage3.html
new file mode 100644
index 0000000..068bba2
--- /dev/null
+++ 
b/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/select/SelectTestPage3.html
@@ -0,0 +1,12 @@
+<html>
+<head><title>SelectTestPage</title></head>
+<body>
+       <form wicket:id="form">
+               <select wicket:id="select">
+                       <div wicket:id="options">
+                               <option wicket:id="option"></option>
+                       </div>
+               </select>
+       </form>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/wicket/blob/4ad94835/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/select/SelectTestPage3.java
----------------------------------------------------------------------
diff --git 
a/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/select/SelectTestPage3.java
 
b/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/select/SelectTestPage3.java
new file mode 100644
index 0000000..e6a3daf
--- /dev/null
+++ 
b/wicket-extensions/src/test/java/org/apache/wicket/extensions/markup/html/form/select/SelectTestPage3.java
@@ -0,0 +1,62 @@
+/*
+ * 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.extensions.markup.html.form.select;
+
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.util.ListModel;
+
+/**
+ */
+public class SelectTestPage3 extends WebPage
+{
+
+       public Form<Void> form;
+       public Select<Integer> select;
+       public SelectOptions<Integer> options;
+
+       public SelectTestPage3()
+       {
+               form = new Form<>("form");
+               add(form);
+
+               select = new Select<Integer>("select", new Model<Integer>(1));
+               form.add(select);
+
+               List<Integer> choices = Arrays.asList(1, 2, 3);
+
+               IOptionRenderer<Integer> renderer = new 
IOptionRenderer<Integer>() {
+                       
+                       @Override
+                       public IModel<Integer> getModel(Integer value) {
+                               return Model.of(value);
+                       }
+                       
+                       @Override
+                       public String getDisplayValue(Integer object) {
+                               return "<" + object + ">";
+                       }
+               };
+               
+               select.add(options = new SelectOptions<Integer>("options", new 
ListModel<>(choices), renderer ));
+       }
+}
\ No newline at end of file

Reply via email to