TOOLS: SDBLIB: Supported character set encoding in the Log View user can manually...
[sdk/ide/common-eplugin.git] / org.tizen.common.connection / test / src / org / tizen / common / connection / log / LogTabTest.java
1 /*
2  * Common
3  *
4  * Copyright (c) 2000 - 2014 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: 
7  * Shingil Kang <shingil.kang@samsung.com>
8  * Kangho Kim <kh5325.kim@samsung.com>
9  * 
10  * Licensed under the Apache License, Version 2.0 (the "License");
11  * you may not use this file except in compliance with the License.
12  * You may obtain a copy of the License at
13  *
14  * http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  *
22  * Contributors:
23  * - S-Core Co., Ltd
24  *
25  */
26 package org.tizen.common.connection.log;
27
28 import static org.junit.Assert.assertEquals;
29
30 import java.io.UnsupportedEncodingException;
31
32 import org.junit.Test;
33 import org.tizen.common.connection.log.LogTab;
34 import org.tizen.sdblib.SdbHelper;
35
36 /**
37  * LogTabTest
38  *
39  * Testcase for {@link LogTab}
40  * 
41  * @author Shingil Kang{@literal <shingil.kang@samsung.com>} (S-Core)
42  */
43 public class LogTabTest
44 {
45     private LogTab logTab = new LogTab();
46
47     @Test
48     public void test_getDecodedLineManual()
49     {
50         final Language[] TEST_CASES = new Language[]
51         {
52             new Language(new byte[] {(byte) 0xB0, (byte) 0xA1}, EncodingChar.EUC_KR),
53             new Language(new byte[] {(byte) 0xA4, (byte) 0x40}, EncodingChar.BIG5),
54             new Language(new byte[] {(byte) 0x82, (byte) 0x9F, (byte) 0x92, (byte) 0xA0}, EncodingChar.SHIFT_JIS),
55             new Language(new byte[] {(byte) 0x80, (byte) 0x81, (byte) 0x82}, EncodingChar.IBM852),
56             new Language(new byte[] {(byte) 0xAA, (byte) 0xB5}, EncodingChar.TIS_620),
57             new Language(new byte[] {(byte) 0x65, (byte) 0xAE}, EncodingChar.X_MACROMAN)
58         };
59
60         for (final Language TEST_CASE : TEST_CASES)
61         {
62             byte[] byteValue = TEST_CASE.getByteValue();
63             EncodingChar encodingChar = TEST_CASE.getEncoding();
64             String defaultEncodedString = null;
65
66             try
67             {
68                 defaultEncodedString = new String(byteValue, SdbHelper.DEFAULT_ENCODING);
69                 String encodedLine = logTab.getDecodedLineManual(defaultEncodedString, encodingChar);
70                 
71                 System.out.println("encoded line : " + encodedLine);
72                 
73                 byte[] encodedLineByte = encodedLine.getBytes(encodingChar.getName());
74
75                 assertEquals(byteValue.length, encodedLineByte.length);
76
77                 for(int i = 0; i < byteValue.length; i++)
78                 {
79                     assertEquals(byteValue[i],  encodedLineByte[i]);
80                 }
81
82             } catch (UnsupportedEncodingException e)
83             {
84                 continue;
85             }
86         }
87     }
88
89     class Language
90     {
91         private byte[] byteValue;
92         private EncodingChar encoding;
93
94         Language(byte[] byteValue, EncodingChar encoding)
95         {
96             this.byteValue = byteValue;
97             this.encoding = encoding;
98         }
99
100         public byte[] getByteValue()
101         {
102             return byteValue;
103         }
104
105         public EncodingChar getEncoding()
106         {
107             return encoding;
108         }
109     }
110 }