]> source.dussan.org Git - vaadin-framework.git/commitdiff
Update to Jsoup 1.14.2 (#12382)
authorAnna Koskinen <Ansku@users.noreply.github.com>
Tue, 24 Aug 2021 14:41:15 +0000 (17:41 +0300)
committerGitHub <noreply@github.com>
Tue, 24 Aug 2021 14:41:15 +0000 (17:41 +0300)
pom.xml
server/src/main/java/com/vaadin/server/BootstrapHandler.java
server/src/main/java/com/vaadin/ui/declarative/Design.java
server/src/test/java/com/vaadin/tests/design/DeclarativeTestBaseBase.java
server/src/test/java/com/vaadin/tests/design/LocaleTest.java
server/src/test/java/com/vaadin/tests/server/component/ReadEmptyDesignTest.java
uitest/src/main/java/com/vaadin/tests/minitutorials/v7b1/BootstrapListenerCode.java

diff --git a/pom.xml b/pom.xml
index 8035295dc778003ac584eae59324b1f8276aed24..6e0378fee9cb46e71bccda73df69558bc91e494a 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@
         <!-- Used version numbers for dependencies -->
         <commons-io.version>2.4</commons-io.version>
         <google.appengine.version>1.7.7</google.appengine.version>
-        <jsoup.version>1.8.3</jsoup.version>
+        <jsoup.version>1.14.2</jsoup.version>
         <liferay.portal.version>6.0.2</liferay.portal.version>
 
         <vaadin.sass.version>0.9.13</vaadin.sass.version>
index 54ac577e784e24403b0f8add634f6638fdafcbcb..1dbf91b624e52adadf228474970614a82721197f 100644 (file)
@@ -368,8 +368,8 @@ public abstract class BootstrapHandler extends SynchronizedRequestHandler {
 
         Document document = response.getDocument();
 
-        DocumentType doctype = new DocumentType("html", "", "",
-                document.baseUri());
+        DocumentType doctype = new DocumentType("html", "", "");
+        doctype.setBaseUri(document.baseUri());
         document.child(0).before(doctype);
 
         Element head = document.head();
@@ -574,8 +574,8 @@ public abstract class BootstrapHandler extends SynchronizedRequestHandler {
         appendMainScriptTagContents(context, builder);
 
         builder.append("//]]>");
-        mainScriptTag.appendChild(
-                new DataNode(builder.toString(), mainScriptTag.baseUri()));
+        mainScriptTag.appendChild(new DataNode(builder.toString()));
+        mainScriptTag.setBaseUri(mainScriptTag.baseUri());
         fragmentNodes.add(mainScriptTag);
 
     }
index fe643f84f71cbc79bdbf02e4934c30c4f70d46e0..ddde437686cec39ee99289a02efc67aa48bb7970 100644 (file)
@@ -514,7 +514,7 @@ public class Design implements Serializable {
     private static Document createHtml(DesignContext designContext) {
         // Create the html tree skeleton.
         Document doc = new Document("");
-        DocumentType docType = new DocumentType("html", "", "", "");
+        DocumentType docType = new DocumentType("html", "", "");
         doc.appendChild(docType);
         Element html = doc.createElement("html");
         doc.appendChild(html);
index d60eb4622bd7fac76c719f9a586486f447e556ae..e66cf153ea95fe0608ee49c1d10ca326f52b551b 100644 (file)
@@ -4,6 +4,7 @@ import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
@@ -14,7 +15,6 @@ import java.util.logging.Logger;
 
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Attribute;
-import org.jsoup.nodes.BooleanAttribute;
 import org.jsoup.nodes.Element;
 import org.jsoup.nodes.Node;
 import org.jsoup.nodes.TextNode;
@@ -27,6 +27,13 @@ import com.vaadin.ui.declarative.DesignContext;
 import com.vaadin.ui.declarative.ShouldWriteDataDelegate;
 
 public abstract class DeclarativeTestBaseBase<T extends Component> {
+    private static final String[] booleanAttributes = { "allowfullscreen",
+            "async", "autofocus", "checked", "compact", "declare", "default",
+            "defer", "disabled", "formnovalidate", "hidden", "inert", "ismap",
+            "itemscope", "multiple", "muted", "nohref", "noresize", "noshade",
+            "novalidate", "nowrap", "open", "readonly", "required", "reversed",
+            "seamless", "selected", "sortable", "truespeed", "typemustmatch" };
+
     private static final class AlwaysWriteDelegate
             implements ShouldWriteDataDelegate {
         private static final long serialVersionUID = -6345914431997793599L;
@@ -247,7 +254,7 @@ public abstract class DeclarativeTestBaseBase<T extends Component> {
         ArrayList<String> names = new ArrayList<String>();
         for (Attribute a : producedElem.attributes().asList()) {
             names.add(a.getKey());
-            if (a instanceof BooleanAttribute) {
+            if (isBooleanAttribute(a.getKey())) {
                 booleanAttributes.add(a.getKey());
             }
         }
@@ -274,6 +281,13 @@ public abstract class DeclarativeTestBaseBase<T extends Component> {
         return sb.toString();
     }
 
+    /**
+     * Checks if this attribute name is defined as a boolean attribute in HTML5
+     */
+    protected static boolean isBooleanAttribute(final String key) {
+        return Arrays.binarySearch(booleanAttributes, key) >= 0;
+    }
+
     protected String stripOptionTags(String design) {
         return design.replaceAll("[ \n]*<option(.*)</option>[ \n]*", "");
 
index ee441035298a2cf3e7a403eb3fa4e5bdadb4e6fb..c16c1adf3a859db92c160b8dacf79b3aff6b6100 100644 (file)
@@ -98,7 +98,7 @@ public class LocaleTest {
     private Document componentToDoc(DesignContext dc) {
         // Create the html tree skeleton.
         Document doc = new Document("");
-        DocumentType docType = new DocumentType("html", "", "", "");
+        DocumentType docType = new DocumentType("html", "", "");
         doc.appendChild(docType);
         Element html = doc.createElement("html");
         doc.appendChild(html);
@@ -125,7 +125,7 @@ public class LocaleTest {
     public void testParsing() {
         // create an html document
         Document doc = new Document("");
-        DocumentType docType = new DocumentType("html", "", "", "");
+        DocumentType docType = new DocumentType("html", "", "");
         doc.appendChild(docType);
         Element html = doc.createElement("html");
         doc.appendChild(html);
index 1156d72b71d68e1121fb2dd766bec2fd2205774b..6929e73ec6b85ce4e88ab22a9b2362147b0ee1bb 100644 (file)
@@ -59,7 +59,7 @@ public class ReadEmptyDesignTest {
 
     private Document createDesign() {
         Document doc = new Document("");
-        DocumentType docType = new DocumentType("html", "", "", "");
+        DocumentType docType = new DocumentType("html", "", "");
         doc.appendChild(docType);
         Element html = doc.createElement("html");
         doc.appendChild(html);
index 634da8496336cea2832a0e750af11849af4fb105..fffa92796b6410bfe975564212cdb4286212ed03 100644 (file)
@@ -40,7 +40,7 @@ public class BootstrapListenerCode {
         @Override
         public void modifyBootstrapPage(BootstrapPageResponse response) {
             response.getDocument().body()
-                    .appendChild(new Comment("Powered by Vaadin!", ""));
+                    .appendChild(new Comment("Powered by Vaadin!"));
             response.setHeader("X-Powered-By", "Vaadin 7");
         }