/* * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ /* * @test * @bug 4625418 * @summary Tests XML <a href="http://download.java.net/jdk6/docs/technotes/guides/intl/encoding.doc.html">encoding</a> * @author Sergey Malenkov * * @run main Test4625418 ASCII * @run main Test4625418 Big5 * ?run main Test4625418 Big5-HKSCS * ?run main Test4625418 Big5_HKSCS * @run main Test4625418 Big5_Solaris * ?run main Test4625418 Cp037 * @run main Test4625418 Cp1006 * ?run main Test4625418 Cp1025 * -run main Test4625418 Cp1026 * @run main Test4625418 Cp1046 * @run main Test4625418 Cp1047 * @run main Test4625418 Cp1097 * @run main Test4625418 Cp1098 * ?run main Test4625418 Cp1112 * ?run main Test4625418 Cp1122 * ?run main Test4625418 Cp1123 * @run main Test4625418 Cp1124 * ?run main Test4625418 Cp1140 * ?run main Test4625418 Cp1141 * ?run main Test4625418 Cp1142 * ?run main Test4625418 Cp1143 * ?run main Test4625418 Cp1144 * ?run main Test4625418 Cp1145 * ?run main Test4625418 Cp1146 * ?run main Test4625418 Cp1147 * ?run main Test4625418 Cp1148 * ?run main Test4625418 Cp1149 * @run main Test4625418 Cp1250 * @run main Test4625418 Cp1251 * @run main Test4625418 Cp1252 * @run main Test4625418 Cp1253 * @run main Test4625418 Cp1254 * @run main Test4625418 Cp1255 * @run main Test4625418 Cp1256 * @run main Test4625418 Cp1257 * @run main Test4625418 Cp1258 * ?run main Test4625418 Cp1381 * ?run main Test4625418 Cp1383 * ?run main Test4625418 Cp273 * ?run main Test4625418 Cp277 * ?run main Test4625418 Cp278 * ?run main Test4625418 Cp280 * ?run main Test4625418 Cp284 * ?run main Test4625418 Cp285 * ?run main Test4625418 Cp297 * ?run main Test4625418 Cp33722 * ?run main Test4625418 Cp420 * ?run main Test4625418 Cp424 * @run main Test4625418 Cp437 * ?run main Test4625418 Cp500 * ?run main Test4625418 Cp50220 * ?run main Test4625418 Cp50221 * @run main Test4625418 Cp737 * @run main Test4625418 Cp775 * -run main Test4625418 Cp834 * ?run main Test4625418 Cp838 * @run main Test4625418 Cp850 * @run main Test4625418 Cp852 * @run main Test4625418 Cp855 * @run main Test4625418 Cp856 * @run main Test4625418 Cp857 * @run main Test4625418 Cp858 * @run main Test4625418 Cp860 * @run main Test4625418 Cp861 * @run main Test4625418 Cp862 * @run main Test4625418 Cp863 * @run main Test4625418 Cp864 * @run main Test4625418 Cp865 * @run main Test4625418 Cp866 * @run main Test4625418 Cp868 * @run main Test4625418 Cp869 * ?run main Test4625418 Cp870 * ?run main Test4625418 Cp871 * @run main Test4625418 Cp874 * ?run main Test4625418 Cp875 * ?run main Test4625418 Cp918 * @run main Test4625418 Cp921 * @run main Test4625418 Cp922 * -run main Test4625418 Cp930 * @run main Test4625418 Cp933 * ?run main Test4625418 Cp935 * ?run main Test4625418 Cp937 * ?run main Test4625418 Cp939 * ?run main Test4625418 Cp942 * ?run main Test4625418 Cp942C * @run main Test4625418 Cp943 * ?run main Test4625418 Cp943C * @run main Test4625418 Cp948 * @run main Test4625418 Cp949 * ?run main Test4625418 Cp949C * @run main Test4625418 Cp950 * @run main Test4625418 Cp964 * ?run main Test4625418 Cp970 * ?run main Test4625418 EUC-JP * @run main Test4625418 EUC-KR * @run main Test4625418 EUC_CN * ?run main Test4625418 EUC_JP * ?run main Test4625418 EUC_JP_LINUX * ?run main Test4625418 EUC_JP_Solaris * @run main Test4625418 EUC_KR * ?run main Test4625418 EUC_TW * @run main Test4625418 GB18030 * @run main Test4625418 GB2312 * @run main Test4625418 GBK * ?run main Test4625418 IBM-Thai * @run main Test4625418 IBM00858 * ?run main Test4625418 IBM01140 * ?run main Test4625418 IBM01141 * ?run main Test4625418 IBM01142 * ?run main Test4625418 IBM01143 * ?run main Test4625418 IBM01144 * ?run main Test4625418 IBM01145 * ?run main Test4625418 IBM01146 * ?run main Test4625418 IBM01147 * ?run main Test4625418 IBM01148 * ?run main Test4625418 IBM01149 * ?run main Test4625418 IBM037 * -run main Test4625418 IBM1026 * @run main Test4625418 IBM1047 * ?run main Test4625418 IBM273 * ?run main Test4625418 IBM277 * ?run main Test4625418 IBM278 * ?run main Test4625418 IBM280 * ?run main Test4625418 IBM284 * ?run main Test4625418 IBM285 * ?run main Test4625418 IBM297 * ?run main Test4625418 IBM420 * ?run main Test4625418 IBM424 * @run main Test4625418 IBM437 * ?run main Test4625418 IBM500 * @run main Test4625418 IBM775 * @run main Test4625418 IBM850 * @run main Test4625418 IBM852 * @run main Test4625418 IBM855 * @run main Test4625418 IBM857 * @run main Test4625418 IBM860 * @run main Test4625418 IBM861 * @run main Test4625418 IBM862 * @run main Test4625418 IBM863 * @run main Test4625418 IBM864 * @run main Test4625418 IBM865 * @run main Test4625418 IBM866 * @run main Test4625418 IBM868 * @run main Test4625418 IBM869 * ?run main Test4625418 IBM870 * ?run main Test4625418 IBM871 * ?run main Test4625418 IBM918 * ?run main Test4625418 ISCII91 * -run main Test4625418 ISO-2022-CN * @run main Test4625418 ISO-2022-JP * @run main Test4625418 ISO-2022-KR * @run main Test4625418 ISO-8859-1 * @run main Test4625418 ISO-8859-13 * @run main Test4625418 ISO-8859-15 * @run main Test4625418 ISO-8859-2 * @run main Test4625418 ISO-8859-3 * @run main Test4625418 ISO-8859-4 * @run main Test4625418 ISO-8859-5 * @run main Test4625418 ISO-8859-6 * @run main Test4625418 ISO-8859-7 * @run main Test4625418 ISO-8859-8 * @run main Test4625418 ISO-8859-9 * -run main Test4625418 ISO2022CN * @run main Test4625418 ISO2022JP * @run main Test4625418 ISO2022KR * -run main Test4625418 ISO2022_CN_CNS * -run main Test4625418 ISO2022_CN_GB * @run main Test4625418 ISO8859_1 * @run main Test4625418 ISO8859_13 * @run main Test4625418 ISO8859_15 * @run main Test4625418 ISO8859_2 * @run main Test4625418 ISO8859_3 * @run main Test4625418 ISO8859_4 * @run main Test4625418 ISO8859_5 * @run main Test4625418 ISO8859_6 * @run main Test4625418 ISO8859_7 * @run main Test4625418 ISO8859_8 * @run main Test4625418 ISO8859_9 * -run main Test4625418 JISAutoDetect * ?run main Test4625418 JIS_X0201 * -run main Test4625418 JIS_X0212-1990 * @run main Test4625418 KOI8-R * @run main Test4625418 KOI8-U * @run main Test4625418 KOI8_R * @run main Test4625418 KOI8_U * @run main Test4625418 MS874 * ?run main Test4625418 MS932 * ?run main Test4625418 MS936 * @run main Test4625418 MS949 * @run main Test4625418 MS950 * ?run main Test4625418 MS950_HKSCS * @run main Test4625418 MacArabic * @run main Test4625418 MacCentralEurope * @run main Test4625418 MacCroatian * @run main Test4625418 MacCyrillic * -run main Test4625418 MacDingbat * @run main Test4625418 MacGreek * @run main Test4625418 MacHebrew * @run main Test4625418 MacIceland * @run main Test4625418 MacRoman * @run main Test4625418 MacRomania * -run main Test4625418 MacSymbol * @run main Test4625418 MacThai * @run main Test4625418 MacTurkish * @run main Test4625418 MacUkraine * ?run main Test4625418 PCK * ?run main Test4625418 SJIS * ?run main Test4625418 Shift_JIS * @run main Test4625418 TIS-620 * @run main Test4625418 TIS620 * @run main Test4625418 US-ASCII * @run main Test4625418 UTF-16 * @run main Test4625418 UTF-16BE * @run main Test4625418 UTF-16LE * @run main Test4625418 UTF-32 * @run main Test4625418 UTF-32BE * @run main Test4625418 UTF-32LE * @run main Test4625418 UTF-8 * @run main Test4625418 UTF8 * @run main Test4625418 UTF_32 * @run main Test4625418 UTF_32BE * -run main Test4625418 UTF_32BE_BOM * @run main Test4625418 UTF_32LE * -run main Test4625418 UTF_32LE_BOM * @run main Test4625418 UnicodeBig * @run main Test4625418 UnicodeBigUnmarked * @run main Test4625418 UnicodeLittle * @run main Test4625418 UnicodeLittleUnmarked * @run main Test4625418 windows-1250 * @run main Test4625418 windows-1251 * @run main Test4625418 windows-1252 * @run main Test4625418 windows-1253 * @run main Test4625418 windows-1254 * @run main Test4625418 windows-1255 * @run main Test4625418 windows-1256 * @run main Test4625418 windows-1257 * @run main Test4625418 windows-1258 * ?run main Test4625418 windows-31j * -run main Test4625418 x-Big5_Solaris * ?run main Test4625418 x-EUC-TW * @run main Test4625418 x-IBM1006 * ?run main Test4625418 x-IBM1025 * @run main Test4625418 x-IBM1046 * @run main Test4625418 x-IBM1097 * @run main Test4625418 x-IBM1098 * ?run main Test4625418 x-IBM1112 * ?run main Test4625418 x-IBM1122 * ?run main Test4625418 x-IBM1123 * @run main Test4625418 x-IBM1124 * ?run main Test4625418 x-IBM1381 * ?run main Test4625418 x-IBM1383 * ?run main Test4625418 x-IBM33722 * @run main Test4625418 x-IBM737 * -run main Test4625418 x-IBM834 * @run main Test4625418 x-IBM856 * @run main Test4625418 x-IBM874 * ?run main Test4625418 x-IBM875 * @run main Test4625418 x-IBM921 * @run main Test4625418 x-IBM922 * -run main Test4625418 x-IBM930 * @run main Test4625418 x-IBM933 * ?run main Test4625418 x-IBM935 * ?run main Test4625418 x-IBM937 * ?run main Test4625418 x-IBM939 * ?run main Test4625418 x-IBM942 * ?run main Test4625418 x-IBM942C * @run main Test4625418 x-IBM943 * ?run main Test4625418 x-IBM943C * @run main Test4625418 x-IBM948 * @run main Test4625418 x-IBM949 * ?run main Test4625418 x-IBM949C * @run main Test4625418 x-IBM950 * @run main Test4625418 x-IBM964 * ?run main Test4625418 x-IBM970 * ?run main Test4625418 x-ISCII91 * -run main Test4625418 x-ISO2022-CN-CNS * -run main Test4625418 x-ISO2022-CN-GB * -run main Test4625418 x-JIS0208 * -run main Test4625418 x-JISAutoDetect * @run main Test4625418 x-Johab * ?run main Test4625418 x-MS950-HKSCS * @run main Test4625418 x-MacArabic * @run main Test4625418 x-MacCentralEurope * @run main Test4625418 x-MacCroatian * @run main Test4625418 x-MacCyrillic * -run main Test4625418 x-MacDingbat * @run main Test4625418 x-MacGreek * @run main Test4625418 x-MacHebrew * @run main Test4625418 x-MacIceland * @run main Test4625418 x-MacRoman * @run main Test4625418 x-MacRomania * -run main Test4625418 x-MacSymbol * @run main Test4625418 x-MacThai * @run main Test4625418 x-MacTurkish * @run main Test4625418 x-MacUkraine * ?run main Test4625418 x-PCK * @run main Test4625418 x-UTF-16LE-BOM * -run main Test4625418 x-UTF-32BE-BOM * -run main Test4625418 x-UTF-32LE-BOM * ?run main Test4625418 x-euc-jp-linux * ?run main Test4625418 x-eucJP-Open * @run main Test4625418 x-iso-8859-11 * @run main Test4625418 x-mswin-936 * ?run main Test4625418 x-windows-50220 * ?run main Test4625418 x-windows-50221 * @run main Test4625418 x-windows-874 * @run main Test4625418 x-windows-949 * @run main Test4625418 x-windows-950 * ?run main Test4625418 x-windows-iso2022jp */ import java.beans.ExceptionListener; import java.beans.XMLDecoder; import java.beans.XMLEncoder; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.nio.charset.IllegalCharsetNameException; import java.nio.charset.UnsupportedCharsetException; public final class Test4625418 implements ExceptionListener { public static void main(String[] args) { new Test4625418(args[0]).test(createString(0x10000)); System.out.println("Test passed: " + args[0]); } private static String createString(int length) { StringBuilder sb = new StringBuilder(length); while (0 < length--) sb.append((char) length); return sb.toString(); } private final String encoding; private Test4625418(String encoding) { this.encoding = encoding; } private void test(String string) { try { File file = new File("4625418." + this.encoding + ".xml"); FileOutputStream output = new FileOutputStream(file); XMLEncoder encoder = new XMLEncoder(output, this.encoding, true, 0); encoder.setExceptionListener(this); encoder.writeObject(string); encoder.close(); FileInputStream input = new FileInputStream(file); XMLDecoder decoder = new XMLDecoder(input); decoder.setExceptionListener(this); Object object = decoder.readObject(); decoder.close(); if (!string.equals(object)) throw new Error(this.encoding + " - can't read properly"); file.delete(); } catch (FileNotFoundException exception) { throw new Error(this.encoding + " - file not found", exception); } catch (IllegalCharsetNameException exception) { throw new Error(this.encoding + " - illegal charset name", exception); } catch (UnsupportedCharsetException exception) { throw new Error(this.encoding + " - unsupported charset", exception); } catch (UnsupportedOperationException exception) { throw new Error(this.encoding + " - unsupported encoder", exception); } } public void exceptionThrown(Exception exception) { throw new Error(this.encoding + " - internal", exception); } }