summaryrefslogtreecommitdiffstats
path: root/icu4j/main/tests
diff options
context:
space:
mode:
authorMarkus Scherer <markus.icu@gmail.com>2015-01-16 17:35:52 +0000
committerFredrik Roubert <roubert@google.com>2015-01-19 17:16:50 +0100
commit07239b17af3dc8655d5b6e761309c252ad61ddd6 (patch)
tree2c505bf1d14506c9042bb75fb53e04522219d0b9 /icu4j/main/tests
parent5e909ac058631d7c3dd704a0562b3b34c0629209 (diff)
downloadandroid_external_icu-07239b17af3dc8655d5b6e761309c252ad61ddd6.tar.gz
android_external_icu-07239b17af3dc8655d5b6e761309c252ad61ddd6.tar.bz2
android_external_icu-07239b17af3dc8655d5b6e761309c252ad61ddd6.zip
Cherry-pick: ticket:11479: precompute Java canonical names for not-only-ICU Charsets, make CharsetProviderICU all-static again (see ticket #9973), simplify some test code
http://bugs.icu-project.org/trac/changeset/36966 Change-Id: I134fc6f8b9b344d000a1d7cf0b6369cc922a672b
Diffstat (limited to 'icu4j/main/tests')
-rw-r--r--icu4j/main/tests/charset/src/com/ibm/icu/dev/test/charset/TestCharset.java166
1 files changed, 89 insertions, 77 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 6e11046a7..c9bc69bcf 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
@@ -1,9 +1,7 @@
/**
*******************************************************************************
-* Copyright (C) 2006-2014, International Business Machines Corporation and *
-* others. All Rights Reserved. *
-*******************************************************************************
-*
+* Copyright (C) 2006-2015, International Business Machines Corporation and
+* others. All Rights Reserved.
*******************************************************************************
*/
@@ -36,49 +34,6 @@ import com.ibm.icu.text.UTF16;
import com.ibm.icu.text.UnicodeSet;
public class TestCharset extends TestFmwk {
- private String m_encoding = "UTF-16";
- CharsetDecoder m_decoder = null;
- CharsetEncoder m_encoder = null;
- Charset m_charset =null;
- static final String unistr = "abcd\ud800\udc00\u1234\u00a5\u3000\r\n";
- static final byte[] byteStr ={
- (byte) 0x00,(byte) 'a',
- (byte) 0x00,(byte) 'b',
- (byte) 0x00,(byte) 'c',
- (byte) 0x00,(byte) 'd',
- (byte) 0xd8,(byte) 0x00,
- (byte) 0xdc,(byte) 0x00,
- (byte) 0x12,(byte) 0x34,
- (byte) 0x00,(byte) 0xa5,
- (byte) 0x30,(byte) 0x00,
- (byte) 0x00,(byte) 0x0d,
- (byte) 0x00,(byte) 0x0a };
- static final byte[] expectedByteStr ={
- (byte) 0xfe,(byte) 0xff,
- (byte) 0x00,(byte) 'a',
- (byte) 0x00,(byte) 'b',
- (byte) 0x00,(byte) 'c',
- (byte) 0x00,(byte) 'd',
- (byte) 0xd8,(byte) 0x00,
- (byte) 0xdc,(byte) 0x00,
- (byte) 0x12,(byte) 0x34,
- (byte) 0x00,(byte) 0xa5,
- (byte) 0x30,(byte) 0x00,
- (byte) 0x00,(byte) 0x0d,
- (byte) 0x00,(byte) 0x0a };
-
- protected void init(){
- try{
- CharsetProviderICU provider = new CharsetProviderICU();
- //Charset charset = CharsetICU.forName(encoding);
- m_charset = provider.charsetForName(m_encoding);
- m_decoder = (CharsetDecoder) m_charset.newDecoder();
- m_encoder = (CharsetEncoder) m_charset.newEncoder();
- }catch(MissingResourceException ex){
- warnln("Could not load charset data");
- }
- }
-
public static void main(String[] args) throws Exception {
new TestCharset().run(args);
}
@@ -1180,23 +1135,63 @@ public class TestCharset extends TestFmwk {
// }
- public void TestAPISemantics(/*String encoding*/)
- throws Exception {
- int rc;
+ public void TestAPISemantics(/*String encoding*/) {
+ String encoding = "UTF-16";
+ CharsetDecoder decoder = null;
+ CharsetEncoder encoder = null;
+ try {
+ CharsetProviderICU provider = new CharsetProviderICU();
+ Charset charset = provider.charsetForName(encoding);
+ decoder = charset.newDecoder();
+ encoder = charset.newEncoder();
+ } catch(MissingResourceException ex) {
+ warnln("Could not load charset data: " + encoding);
+ return;
+ }
+
+ final String unistr = "abcd\ud800\udc00\u1234\u00a5\u3000\r\n";
+ final byte[] byteStr = {
+ (byte) 0x00,(byte) 'a',
+ (byte) 0x00,(byte) 'b',
+ (byte) 0x00,(byte) 'c',
+ (byte) 0x00,(byte) 'd',
+ (byte) 0xd8,(byte) 0x00,
+ (byte) 0xdc,(byte) 0x00,
+ (byte) 0x12,(byte) 0x34,
+ (byte) 0x00,(byte) 0xa5,
+ (byte) 0x30,(byte) 0x00,
+ (byte) 0x00,(byte) 0x0d,
+ (byte) 0x00,(byte) 0x0a
+ };
+ final byte[] expectedByteStr = {
+ (byte) 0xfe,(byte) 0xff,
+ (byte) 0x00,(byte) 'a',
+ (byte) 0x00,(byte) 'b',
+ (byte) 0x00,(byte) 'c',
+ (byte) 0x00,(byte) 'd',
+ (byte) 0xd8,(byte) 0x00,
+ (byte) 0xdc,(byte) 0x00,
+ (byte) 0x12,(byte) 0x34,
+ (byte) 0x00,(byte) 0xa5,
+ (byte) 0x30,(byte) 0x00,
+ (byte) 0x00,(byte) 0x0d,
+ (byte) 0x00,(byte) 0x0a
+ };
+
ByteBuffer byes = ByteBuffer.wrap(byteStr);
CharBuffer uniVal = CharBuffer.wrap(unistr);
ByteBuffer expected = ByteBuffer.wrap(expectedByteStr);
-
- rc = 0;
- if(m_decoder==null){
+
+ int rc = 0;
+ if(decoder==null){
warnln("Could not load decoder.");
return;
}
- m_decoder.reset();
+ decoder.reset();
/* Convert the whole buffer to Unicode */
try {
CharBuffer chars = CharBuffer.allocate(unistr.length());
- CoderResult result = m_decoder.decode(byes, chars, false);
+ CoderResult result = decoder.decode(byes, chars, false);
if (result.isError()) {
errln("ToChars encountered Error");
@@ -1223,11 +1218,11 @@ public class TestCharset extends TestFmwk {
try {
CharBuffer chars = CharBuffer.allocate(unistr.length());
ByteBuffer b = ByteBuffer.wrap(byteStr);
- m_decoder.reset();
+ decoder.reset();
CoderResult result=null;
for (int i = 1; i <= byteStr.length; i++) {
b.limit(i);
- result = m_decoder.decode(b, chars, false);
+ result = decoder.decode(b, chars, false);
if(result.isOverflow()){
errln("ToChars single threw an overflow exception");
}
@@ -1253,11 +1248,11 @@ public class TestCharset extends TestFmwk {
/* Convert the buffer one at a time to Unicode */
try {
CharBuffer chars = CharBuffer.allocate(unistr.length());
- m_decoder.reset();
+ decoder.reset();
byes.rewind();
for (int i = 1; i <= byteStr.length; i++) {
byes.limit(i);
- CoderResult result = m_decoder.decode(byes, chars, false);
+ CoderResult result = decoder.decode(byes, chars, false);
if (result.isError()) {
errln("Error while decoding: "+result.toString());
}
@@ -1289,8 +1284,8 @@ public class TestCharset extends TestFmwk {
/* Convert the whole buffer from unicode */
try {
ByteBuffer bytes = ByteBuffer.allocate(expectedByteStr.length);
- m_encoder.reset();
- CoderResult result = m_encoder.encode(uniVal, bytes, false);
+ encoder.reset();
+ CoderResult result = encoder.encode(uniVal, bytes, false);
if (result.isError()) {
errln("FromChars reported error: " + result.toString());
rc = 1;
@@ -1315,11 +1310,11 @@ public class TestCharset extends TestFmwk {
try {
ByteBuffer bytes = ByteBuffer.allocate(expectedByteStr.length);
CharBuffer c = CharBuffer.wrap(unistr);
- m_encoder.reset();
+ encoder.reset();
CoderResult result= null;
for (int i = 1; i <= unistr.length(); i++) {
c.limit(i);
- result = m_encoder.encode(c, bytes, false);
+ result = encoder.encode(c, bytes, false);
if(result.isOverflow()){
errln("FromChars single threw an overflow exception");
}
@@ -1349,12 +1344,12 @@ public class TestCharset extends TestFmwk {
/* Convert one char at a time to unicode */
try {
ByteBuffer bytes = ByteBuffer.allocate(expectedByteStr.length);
- m_encoder.reset();
+ encoder.reset();
char[] temp = unistr.toCharArray();
CoderResult result=null;
for (int i = 0; i <= temp.length; i++) {
uniVal.limit(i);
- result = m_encoder.encode(uniVal, bytes, false);
+ result = encoder.encode(uniVal, bytes, false);
if(result.isOverflow()){
errln("FromChars simple threw an overflow exception");
}
@@ -1378,7 +1373,7 @@ public class TestCharset extends TestFmwk {
rc = 9;
}
if (rc != 0) {
- errln("Test Simple FromChars " + m_encoding + " --FAILED");
+ errln("Test Simple FromChars " + encoding + " --FAILED");
}
}
@@ -1585,13 +1580,18 @@ public class TestCharset extends TestFmwk {
'\u22B5','\u22B6','\u22B7','\u22B8','\u22B9',
'\u22BA','\u22BB','\u22BC','\u22BD','\u22BE'
};
- if(m_encoder==null){
- warnln("Could not load encoder.");
+ String encoding = "UTF-16";
+ CharsetEncoder encoder = null;
+ try {
+ CharsetProviderICU provider = new CharsetProviderICU();
+ Charset charset = provider.charsetForName(encoding);
+ encoder = charset.newEncoder();
+ } catch(MissingResourceException ex) {
+ warnln("Could not load charset data: " + encoding);
return;
}
- m_encoder.reset();
- if (!m_encoder.canEncode(new String(mySource))) {
- errln("Test canConvert() " + m_encoding + " failed. "+m_encoder);
+ if (!encoder.canEncode(new String(mySource))) {
+ errln("Test canConvert() " + encoding + " failed. "+encoder);
}
}
@@ -2121,15 +2121,27 @@ public class TestCharset extends TestFmwk {
}
public void convertAllTest(ByteBuffer bSource, CharBuffer uSource) throws Exception {
+ String encoding = "UTF-16";
+ CharsetDecoder decoder = null;
+ CharsetEncoder encoder = null;
+ try {
+ CharsetProviderICU provider = new CharsetProviderICU();
+ Charset charset = provider.charsetForName(encoding);
+ decoder = charset.newDecoder();
+ encoder = charset.newEncoder();
+ } catch(MissingResourceException ex) {
+ warnln("Could not load charset data: " + encoding);
+ return;
+ }
{
try {
- m_decoder.reset();
+ decoder.reset();
ByteBuffer mySource = bSource.duplicate();
- CharBuffer myTarget = m_decoder.decode(mySource);
+ CharBuffer myTarget = decoder.decode(mySource);
if (!equals(myTarget, uSource)) {
errln(
"--Test convertAll() "
- + m_encoding
+ + encoding
+ " to Unicode --FAILED");
}
} catch (Exception e) {
@@ -2139,13 +2151,13 @@ public class TestCharset extends TestFmwk {
}
{
try {
- m_encoder.reset();
+ encoder.reset();
CharBuffer mySource = CharBuffer.wrap(uSource);
- ByteBuffer myTarget = m_encoder.encode(mySource);
+ ByteBuffer myTarget = encoder.encode(mySource);
if (!equals(myTarget, bSource)) {
errln(
"--Test convertAll() "
- + m_encoding
+ + encoding
+ " to Unicode --FAILED");
}
} catch (Exception e) {