1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* Licensed to the Apache Software Foundation (ASF) under one or more 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 7f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1654f969b83377b1540efc0180962966df0732a479Jesse Wilsonpackage libcore.java.nio.charset; 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.nio.ByteBuffer; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.nio.CharBuffer; 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.nio.charset.CharacterCodingException; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.nio.charset.CodingErrorAction; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 2354f969b83377b1540efc0180962966df0732a479Jesse Wilsonpublic class OldCharset_MultiByte_EUC_JP extends OldCharset_AbstractTest { 24fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes @Override protected void setUp() throws Exception { 25fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes charsetName = "EUC-JP"; 26fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes testChars = "東京 とうきょう トウキョウ Tokyo 123".toCharArray(); 27fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes testBytes = theseBytes(0xc5, 0xec, 0xb5, 0xfe, ' ', 28fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes 0xa4, 0xc8, 0xa4, 0xa6, 0xa4, 0xad, 0xa4, 0xe7, 0xa4, 0xa6, ' ', 29fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes 0xa5, 0xc8, 0xa5, 0xa6, 0xa5, 0xad, 0xa5, 0xe7, 0xa5, 0xa6, ' ', 30fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes 'T', 'o', 'k', 'y', 'o', ' ', '1', '2', '3'); 31fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes super.setUp(); 32fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes } 33fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes 34fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes @Override public void test_CodecDynamic() throws CharacterCodingException { 35fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes encoder.onUnmappableCharacter(CodingErrorAction.REPORT); 36fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes decoder.onMalformedInput(CodingErrorAction.REPORT); 37fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes CharBuffer inputCB = CharBuffer.allocate(65536); 38fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes for (char codePoint = 0; codePoint <= 0xfffe; ++codePoint) { 39fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes if (encoder.canEncode(codePoint)) { 40fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes inputCB.put(codePoint); 41fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes } 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 43fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes inputCB.rewind(); 44fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes ByteBuffer intermediateBB = encoder.encode(inputCB); 45fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes inputCB.rewind(); 46fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes intermediateBB.rewind(); 47fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes CharBuffer outputCB = decoder.decode(intermediateBB); 48fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes outputCB.rewind(); 49fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes assertEqualCBs("decode(encode(A)) must be identical with A!", inputCB, outputCB); 50fc481238e31d95648c1f0181bb0df1d8e7d0dedbElliott Hughes } 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 52