summaryrefslogtreecommitdiffstats
path: root/icu4j/main/tests
diff options
context:
space:
mode:
authorMarkus Scherer <markus.icu@gmail.com>2015-01-29 21:23:36 +0000
committerFredrik Roubert <roubert@google.com>2015-02-23 12:11:00 +0100
commite173918025e91ee113da17ee9a660877c522c4a5 (patch)
tree867a7b0bd9358c205b2de58841efc1344a669152 /icu4j/main/tests
parent1e8701d9e349e6abd8d603a8dbaec90709ccc19d (diff)
downloadandroid_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.java32
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(){