diff options
author | Markus Scherer <markus.icu@gmail.com> | 2015-01-29 21:23:36 +0000 |
---|---|---|
committer | Fredrik Roubert <roubert@google.com> | 2015-02-23 12:11:00 +0100 |
commit | e173918025e91ee113da17ee9a660877c522c4a5 (patch) | |
tree | 867a7b0bd9358c205b2de58841efc1344a669152 /icu4j/main/tests | |
parent | 1e8701d9e349e6abd8d603a8dbaec90709ccc19d (diff) | |
download | android_external_icu-e173918025e91ee113da17ee9a660877c522c4a5.tar.gz android_external_icu-e173918025e91ee113da17ee9a660877c522c4a5.tar.bz2 android_external_icu-e173918025e91ee113da17ee9a660877c522c4a5.zip |
Cherry-pick: ticket:11498: TestCharset.TestEncoderCreation: explicitly create one Charset from ICU, be lenient about implementation of another Charset
http://bugs.icu-project.org/trac/changeset/36993
Change-Id: I5f0a8fd6af45029ad2ec7daffc44cd237b4ba7bf
Diffstat (limited to 'icu4j/main/tests')
-rw-r--r-- | icu4j/main/tests/charset/src/com/ibm/icu/dev/test/charset/TestCharset.java | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/icu4j/main/tests/charset/src/com/ibm/icu/dev/test/charset/TestCharset.java b/icu4j/main/tests/charset/src/com/ibm/icu/dev/test/charset/TestCharset.java index a7b18f818..654eaff8d 100644 --- a/icu4j/main/tests/charset/src/com/ibm/icu/dev/test/charset/TestCharset.java +++ b/icu4j/main/tests/charset/src/com/ibm/icu/dev/test/charset/TestCharset.java @@ -1652,30 +1652,38 @@ public class TestCharset extends TestFmwk { } } - public void TestEncoderCreation(){ + // Use CharsetICU.forNameICU() so that we get the ICU version + // even if the system or another provider also supports this charset. + String encoding = "GB_2312-80"; try{ - Charset cs = Charset.forName("GB_2312-80"); + Charset cs = CharsetICU.forNameICU(encoding); CharsetEncoder enc = cs.newEncoder(); - if(enc!=null && (enc instanceof CharsetEncoderICU) ){ - logln("Successfully created the encoder: "+ enc); + if(enc!=null){ + logln("Successfully created an encoder for " + encoding + ": " + enc); + if(!(enc instanceof CharsetEncoderICU)) { + errln("Expected " + encoding + + " to be implemented by ICU but got an instance of " + enc.getClass()); + } }else{ - errln("Error creating charset encoder."); + errln("Error creating charset encoder for " + encoding); } }catch(Exception e){ - warnln("Error creating charset encoder."+ e.toString()); - // e.printStackTrace(); + warnln("Error creating charset encoder for " + encoding + ": " + e); } + // Use Charset.forName() which may return an ICU Charset or some other implementation. + encoding = "x-ibm-971_P100-1995"; try{ - Charset cs = Charset.forName("x-ibm-971_P100-1995"); + Charset cs = Charset.forName(encoding); CharsetEncoder enc = cs.newEncoder(); - if(enc!=null && (enc instanceof CharsetEncoderICU) ){ - logln("Successfully created the encoder: "+ enc); + if(enc!=null){ + logln("Successfully created an encoder for " + encoding + ": " + enc + + " which is implemented by ICU? " + (enc instanceof CharsetEncoderICU)); }else{ - errln("Error creating charset encoder."); + errln("Error creating charset encoder for " + encoding); } }catch(Exception e){ - warnln("Error creating charset encoder."+ e.toString()); + warnln("Error creating charset encoder for " + encoding + ": " + e); } } public void TestSubBytes(){ |