< prev index next >

test/javax/xml/jaxp/unittest/parsers/Bug6341770.java

Print this page

        

@@ -26,10 +26,11 @@
 import static jaxp.library.JAXPTestUtilities.tryRunWithTmpPermission;
 
 import java.io.File;
 import java.io.FileWriter;
 import java.io.PrintWriter;
+import java.nio.charset.Charset;
 import java.util.PropertyPermission;
 
 import javax.xml.parsers.SAXParserFactory;
 
 import org.testng.Assert;

@@ -51,12 +52,18 @@
 public class Bug6341770 {
 
     // naming a file "aux" would fail on windows.
     @Test
     public void testNonAsciiURI() {
+        if (!isNonAsciiSupported()) {
+            // @bug 8167478
+            // if it doesn't support non-ascii, the following test is invalid even if test is passed.
+            System.out.println("Current environment doesn't support non-ascii, exit the test.");
+            return;
+        }
         try {
-            File dir = new File("sko\u0159ice");
+            File dir = new File(alpha);
             dir.delete();
             dir.mkdir();
             File main = new File(dir, "main.xml");
             PrintWriter w = new PrintWriter(new FileWriter(main));
             w.println("<!DOCTYPE r [<!ENTITY aux SYSTEM \"aux1.xml\">]>");

@@ -80,6 +87,15 @@
             e.printStackTrace();
             Assert.fail("Exception: " + e.getMessage());
         }
         System.out.println("OK.");
     }
+
+    private boolean isNonAsciiSupported() {
+        // if equals method returns true, the non-ascii character information was not lost in this environment
+        return alpha.equals(Charset.defaultCharset().decode(Charset.defaultCharset().encode(alpha)).toString());
+    }
+
+    // Select alpha because it's a very common non-ascii character in different charsets.
+    // That this test can run in as many as possible environments if it's possible.
+    private static final String alpha = "\u03b1";
 }
< prev index next >