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