# HG changeset patch
# User aefimov
# Date 1428617479 -10800
# Node ID 53b6cb3c67e380486334cffec264712802fbaa60
# Parent 9c2370cc6f08382f288ed44af527481858d8746e
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 9c2370cc6f08 -r 53b6cb3c67e3 test/javax/xml/jaxp/transform/8062923/XslSubstringTest.java
--- a/test/javax/xml/jaxp/transform/8062923/XslSubstringTest.java Tue Jan 27 15:04:31 2015 +0300
+++ b/test/javax/xml/jaxp/transform/8062923/XslSubstringTest.java Fri Apr 10 01:11:19 2015 +0300
@@ -5,10 +5,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;
@@ -21,6 +22,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 {
@@ -32,6 +34,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));
@@ -60,27 +92,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("||"),
- "||");
- }
}