10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /* @test
25 * @bug 6330020
26 * @summary Ensure Charset.forName/isSupport throws the correct exception
27 * if the charset names passed in are illegal.
28 */
29
30 import java.io.*;
31 import java.nio.*;
32 import java.nio.charset.*;
33 import java.util.*;
34
35 public class IllegalCharsetName {
36 public static void main(String[] args) throws Exception {
37 String[] illegalNames = {
38 ".",
39 "_",
40 ":",
41 "-",
42 ".name",
43 "_name",
44 ":name",
45 "-name",
46 "name*name",
47 "name?name"
48 };
49 for (int i = 0; i < illegalNames.length; i++) {
50 try {
51 Charset.forName(illegalNames[i]);
52 throw new Exception("Charset.forName(): No exception thrown");
53 } catch (IllegalCharsetNameException x) { //expected
54 }
55
56 try {
57 Charset.isSupported(illegalNames[i]);
58 throw new Exception("Charset.isSupported(): No exception thrown");
59 } catch (IllegalCharsetNameException x) { //expected
60 }
61 }
62 }
63 }
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /* @test
25 * @bug 6330020
26 * @summary Ensure Charset.forName/isSupport throws the correct exception
27 * if the charset names passed in are illegal.
28 */
29
30 import java.nio.charset.*;
31
32 public class IllegalCharsetName {
33 public static void main(String[] args) throws Exception {
34 String[] illegalNames = {
35 ".",
36 "_",
37 ":",
38 "-",
39 ".name",
40 "_name",
41 ":name",
42 "-name",
43 "name*name",
44 "name?name"
45 };
46 for (int i = 0; i < illegalNames.length; i++) {
47 try {
48 Charset.forName(illegalNames[i]);
49 throw new Exception("Charset.forName(): No exception thrown");
50 } catch (IllegalCharsetNameException x) { //expected
51 }
52
53 try {
54 Charset.isSupported(illegalNames[i]);
55 throw new Exception("Charset.isSupported(): No exception thrown");
56 } catch (IllegalCharsetNameException x) { //expected
57 }
58 }
59
60 // Standard charsets may bypass alias checking during startup, test that
61 // they're all well-behaved as a sanity test
62 checkAliases(StandardCharsets.ISO_8859_1);
63 checkAliases(StandardCharsets.US_ASCII);
64 checkAliases(StandardCharsets.UTF_8);
65 }
66
67 private static void checkAliases(Charset cs) {
68 for (String alias : cs.aliases()) {
69 Charset.forName(alias);
70 Charset.isSupported(alias);
71 }
72 }
73 }
|