You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2017/01/10 09:29:13 UTC
struts git commit: WW-4731 Adds additional test case to confirm that
everything is ok
Repository: struts
Updated Branches:
refs/heads/master fc6ffba9c -> f48c9620f
WW-4731 Adds additional test case to confirm that everything is ok
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/f48c9620
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/f48c9620
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/f48c9620
Branch: refs/heads/master
Commit: f48c9620fcb877d23492c6fdd3cc7f7be5cc10e7
Parents: fc6ffba
Author: Lukasz Lenart <lu...@apache.org>
Authored: Tue Jan 10 10:28:54 2017 +0100
Committer: Lukasz Lenart <lu...@apache.org>
Committed: Tue Jan 10 10:28:54 2017 +0100
----------------------------------------------------------------------
.../apache/struts2/views/xslt/XSLTResult.java | 6 +--
.../struts2/views/xslt/XSLTResultTest.java | 29 ++++++++++++--
core/src/test/resources/XSLTResultTest6.xsl | 40 ++++++++++++++++++++
core/src/test/resources/log4j2.xml | 1 +
4 files changed, 70 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/f48c9620/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java b/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
index c264a59..2e2746e 100644
--- a/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
+++ b/core/src/main/java/org/apache/struts2/views/xslt/XSLTResult.java
@@ -171,8 +171,9 @@ public class XSLTResult implements Result {
if (location != null) {
templates = getTemplates(location);
transformer = templates.newTransformer();
- } else
+ } else {
transformer = TransformerFactory.newInstance().newTransformer();
+ }
transformer.setURIResolver(getURIResolver());
transformer.setErrorListener(buildErrorListener());
@@ -247,8 +248,7 @@ public class XSLTResult implements Result {
* function. The default is an instance of ServletURIResolver, which operates relative to the servlet context.
*/
protected URIResolver getURIResolver() {
- return new ServletURIResolver(
- ServletActionContext.getServletContext());
+ return new ServletURIResolver(ServletActionContext.getServletContext());
}
protected Templates getTemplates(final String path) throws TransformerException, IOException {
http://git-wip-us.apache.org/repos/asf/struts/blob/f48c9620/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java b/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java
index 3e8c7f1..47e7345 100644
--- a/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java
+++ b/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java
@@ -35,6 +35,7 @@ import javax.xml.transform.TransformerException;
import javax.xml.transform.URIResolver;
import javax.xml.transform.stream.StreamSource;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
/**
@@ -82,6 +83,22 @@ public class XSLTResultTest extends StrutsInternalTestCase {
assertTrue(out.indexOf("<result xmlns=\"http://www.w3.org/TR/xhtml1/strict\"") > -1);
}
+ public void testSimpleTransform5() throws Exception {
+ result.setParse(false);
+ result.setStylesheetLocation("XSLTResultTest6.xsl");
+ result.execute(mai);
+
+ String out = response.getContentAsString();
+ assertTrue(out.startsWith("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"));
+ assertTrue(out.contains("<title>WebWork in Action</title>"));
+ assertTrue(out.contains("<author>Patrick and Jason</author>"));
+ assertTrue(out.contains("<editions><edition value=\"I\">I</edition><edition value=\"IV\">IV</edition></editions>"));
+ assertTrue(out.contains("<book><title/><author/><editions/></book>"));
+ assertTrue(out.contains("<title>XWork not in Action</title>"));
+ assertTrue(out.contains("<author>Superman</author>"));
+ assertTrue(out.contains("<editions><edition value=\"1234\">1234</edition><edition value=\"345\">345</edition><edition value=\"6667\">6667</edition></editions>"));
+ }
+
public void testSimpleTransformParse() throws Exception {
result.setParse(true);
result.setStylesheetLocation("${top.myLocation}");
@@ -277,9 +294,9 @@ public class XSLTResultTest extends StrutsInternalTestCase {
public List getBooks() {
List list = new ArrayList();
- list.add(new Book("WebWork in Action", "Patrick and Jason"));
+ list.add(new Book("WebWork in Action", "Patrick and Jason", Arrays.asList("I", "IV")));
list.add(null);
- list.add(new Book("XWork not in Action", "Superman"));
+ list.add(new Book("XWork not in Action", "Superman", Arrays.asList("1234", "345", "6667")));
return list;
}
@@ -289,10 +306,12 @@ public class XSLTResultTest extends StrutsInternalTestCase {
private String title;
private String author;
+ private List<String> editions;
- public Book(String title, String author) {
+ public Book(String title, String author, List<String> editions) {
this.title = title;
this.author = author;
+ this.editions = editions;
}
public String getTitle() {
@@ -302,5 +321,9 @@ public class XSLTResultTest extends StrutsInternalTestCase {
public String getAuthor() {
return author;
}
+
+ public List<String> getEditions() {
+ return editions;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/struts/blob/f48c9620/core/src/test/resources/XSLTResultTest6.xsl
----------------------------------------------------------------------
diff --git a/core/src/test/resources/XSLTResultTest6.xsl b/core/src/test/resources/XSLTResultTest6.xsl
new file mode 100644
index 0000000..606466d
--- /dev/null
+++ b/core/src/test/resources/XSLTResultTest6.xsl
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/*
+ * 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.
+ */
+-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="xml" encoding="UTF-8" />
+ <xsl:template match="result">
+ <books>
+ <xsl:for-each select="books/item">
+ <book>
+ <title><xsl:value-of select="title"/></title>
+ <author><xsl:value-of select="author"/></author>
+ <editions>
+ <xsl:for-each select="editions/item">
+ <edition><xsl:attribute name="value"><xsl:value-of select="."/></xsl:attribute><xsl:value-of select="."/></edition>
+ </xsl:for-each>
+ </editions>
+ </book>
+ </xsl:for-each>
+ </books>
+ </xsl:template>
+</xsl:stylesheet>
http://git-wip-us.apache.org/repos/asf/struts/blob/f48c9620/core/src/test/resources/log4j2.xml
----------------------------------------------------------------------
diff --git a/core/src/test/resources/log4j2.xml b/core/src/test/resources/log4j2.xml
index 263585e..c93452b 100644
--- a/core/src/test/resources/log4j2.xml
+++ b/core/src/test/resources/log4j2.xml
@@ -9,5 +9,6 @@
<Root level="info">
<AppenderRef ref="STDOUT"/>
</Root>
+ <Logger name="org.apache.struts2.views.xslt" level="debug"/>
</Loggers>
</Configuration>
\ No newline at end of file