# HG changeset patch
# User aefimov
# Date 1428617479 -10800
# Node ID a67e948a142aaf81beef0b14169012d7bc68d5f2
# Parent af2bcd262ad20c554f270733b55dfc979f056b94
8074297: substring in XSLT returns wrong character if string contains supplementary chars
8076290: JCK test api/xsl/conf/string/string17 starts failing after JDK-8074297
Reviewed-by: joehw
diff -r af2bcd262ad2 -r a67e948a142a test/javax/xml/jaxp/transform/8062923/XslSubstringTest.java
--- a/test/javax/xml/jaxp/transform/8062923/XslSubstringTest.java Thu Apr 09 16:24:51 2015 +0300
+++ b/test/javax/xml/jaxp/transform/8062923/XslSubstringTest.java Fri Apr 10 01:11:19 2015 +0300
@@ -23,10 +23,11 @@
/**
* @test
- * @bug 8062923 8062924
+ * @bug 8062923 8062924 8074297 8076290
* @run testng XslSubstringTest
* @summary Test xsl substring function with negative, Inf and
- * NaN length and few other use cases
+ * NaN length and few other use cases. Also test proper
+ * processing of supplementary characters by substring function.
*/
import java.io.StringReader;
@@ -39,6 +40,7 @@
import javax.xml.transform.stream.StreamSource;
import static org.testng.Assert.assertEquals;
+import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
public class XslSubstringTest {
@@ -50,6 +52,36 @@
+ "";
final String xslPost = "";
+ @DataProvider(name = "GeneralTestsData")
+ private Object[][] xmls() {
+ return new Object[][] {
+ { "||", "|s|"},
+ { "||", "|sdf|"},
+ { "||", "||" },
+ { "||", "|sdf|" },
+ // 8076290 bug test case
+ { "||", "|12|"},
+ };
+ }
+
+ @DataProvider(name = "SupplementaryCharactersTestData")
+ private Object[][] dataSupplementaryCharacters() {
+ return new Object[][] {
+ // 8074297 bug test cases
+ { "||", "|BC|"},
+ { "||", "|B|" },
+ { "||", "|AB|"},
+ { "||", "|BC|"},
+ { "||", "|BC|"},
+ { "||", "|𠀋|"},
+ { "||", "|A|"},
+ { "||", "|𠀋ABC|"},
+ { "||", "|𠀋ABC|"},
+ // 8076290 bug test case
+ { "||", "|𠀋|"},
+ };
+ }
+
private String testTransform(String xsl) throws Exception {
//Prepare sources for transormation
Source src = new StreamSource(new StringReader(xml));
@@ -78,27 +110,14 @@
"||");
}
- @Test
- public void testGeneral1() throws Exception {
- assertEquals(testTransform("||"),
- "|s|");
- }
-
- @Test
- public void testGeneral2() throws Exception {
- assertEquals(testTransform("||"),
- "|sdf|");
+ @Test(dataProvider = "GeneralTestsData")
+ public void testGeneralAll(String xsl, String result) throws Exception {
+ assertEquals(testTransform(xsl), result);
}
- @Test
- public void testGeneral3() throws Exception {
- assertEquals(testTransform("||"),
- "||");
+ @Test(dataProvider = "SupplementaryCharactersTestData")
+ public void testSupplementCharacters(String xsl, String result) throws Exception {
+ assertEquals(testTransform(xsl), result);
}
- @Test
- public void testGeneral4() throws Exception {
- assertEquals(testTransform("||"),
- "||");
- }
}