# 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("||"), - "||"); - } }