|
1 /* |
|
2 * Copyright (c) 2000-2005 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of the License "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 #include <e32std.h> |
|
26 #include <e32base.h> |
|
27 #include <e32test.h> |
|
28 #include <f32file.h> |
|
29 #include <charconv.h> |
|
30 |
|
31 /////////////////////////////////////////////////////////////////////////////////////// |
|
32 |
|
33 RTest TheTest(_L("TGeneralForeign")); |
|
34 |
|
35 /////////////////////////////////////////////////////////////////////////////////////// |
|
36 /////////////////////////////////////////////////////////////////////////////////////// |
|
37 //Tests macroses and functions. |
|
38 //If (!aValue) then the test will be panicked, the test data files will be deleted. |
|
39 static void Check(TInt aValue, TInt aLine) |
|
40 { |
|
41 if(!aValue) |
|
42 { |
|
43 TheTest(EFalse, aLine); |
|
44 } |
|
45 } |
|
46 //If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. |
|
47 static void Check(TInt aValue, TInt aExpected, TInt aLine) |
|
48 { |
|
49 if(aValue != aExpected) |
|
50 { |
|
51 RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); |
|
52 TheTest(EFalse, aLine); |
|
53 } |
|
54 } |
|
55 //Use these to test conditions. |
|
56 #define TEST(arg) ::Check((arg), __LINE__) |
|
57 #define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) |
|
58 |
|
59 /////////////////////////////////////////////////////////////////////////////////////// |
|
60 /////////////////////////////////////////////////////////////////////////////////////// |
|
61 |
|
62 const TUint KTibetanCharacter=0x0f65; |
|
63 /** |
|
64 @SYMTestCaseID SYSLIB-CHARCONV-CT-0498 |
|
65 @SYMTestCaseDesc Tests for CCnvCharacterSetConverter::ConvertToUnicode(), |
|
66 CCnvCharacterSetConverter::ConvertFromUnicode() functions |
|
67 @SYMTestPriority Medium |
|
68 @SYMTestActions Tests for converting various character sets to Unicode and from Unicode back to original character set. |
|
69 @SYMTestExpectedResults Test must not fail |
|
70 @SYMREQ REQ0000 |
|
71 */ |
|
72 LOCAL_C void DoE32MainL() |
|
73 { |
|
74 RFs fileServerSession; |
|
75 CleanupClosePushL(fileServerSession); |
|
76 User::LeaveIfError(fileServerSession.Connect()); |
|
77 |
|
78 CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); |
|
79 CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); |
|
80 TheTest.Printf(_L("No of CharacterSets available:%d\n"),sizeof(arrayOfCharacterSetsAvailable )); |
|
81 |
|
82 for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) |
|
83 { |
|
84 const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; |
|
85 characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); |
|
86 TPtrC charactersSetName(charactersSet.Name()); |
|
87 if (charactersSet.NameIsFileName()) |
|
88 { |
|
89 charactersSetName.Set(TParsePtrC(charactersSetName).Name()); |
|
90 } |
|
91 TheTest.Printf(_L(" %S\n"), &charactersSetName); |
|
92 } |
|
93 TPtrC8 originalForeign; |
|
94 |
|
95 HBufC * originalUnicodeHBuf = HBufC::NewLC(128); |
|
96 TPtr16 originalUnicode = originalUnicodeHBuf->Des(); |
|
97 |
|
98 HBufC * generatedUnicodeHBuf = HBufC::NewLC(128); |
|
99 TPtr16 generatedUnicode = generatedUnicodeHBuf->Des(); |
|
100 |
|
101 HBufC * expectedUnicodeHBuf = HBufC::NewLC(128); |
|
102 TPtr16 expectedUnicode = expectedUnicodeHBuf->Des(); |
|
103 |
|
104 HBufC8 * generatedForeignHBuf = HBufC8::NewLC(128); |
|
105 TPtr8 generatedForeign = generatedForeignHBuf->Des(); |
|
106 |
|
107 TInt state=CCnvCharacterSetConverter::KStateDefault; |
|
108 |
|
109 TheTest.Start(_L("Big-5")); |
|
110 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierBig5, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
111 originalForeign.Set(_L8("\xa2\xaf\xa1\x40\xc7\xcd\xc7\xce\xc7\xcfk\xa3\x7e")); |
|
112 expectedUnicode.Format(_L16("%c%c%c%c%ck%c"), 0xff10, 0x3000, 0x0435, 0x0451, 0x0436, 0x310f); |
|
113 TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); |
|
114 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
115 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); |
|
116 TEST(generatedForeign==originalForeign); |
|
117 |
|
118 TheTest.Next(_L("GB-12345-90")); |
|
119 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb12345, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
120 originalForeign.Set(_L8("\xa2\xd2i\xa1\xa6\xa2\xfc\xa3\xa1\xa3\xa2\xa3\xa3\xa3\xa4\xa3\xa5\xef\xfd\xef\xfe\xf0\xa1\xf0\xa2")); |
|
121 expectedUnicode.Format(_L16("%ci%c%c%c%c%c%c%c%c%c%c%c"), 0x2481, 0x02c7, 0x216b, 0xff01, 0xff02, 0xff03, 0xffe5, 0xff05, 0x7a1e, 0x7a14, 0x7a39, 0x7a37); |
|
122 TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); |
|
123 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
124 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); |
|
125 TEST(generatedForeign==originalForeign); |
|
126 |
|
127 TheTest.Next(_L("GB-2312-80")); |
|
128 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
129 originalForeign.Set(_L8("4\x27\x26\x27\x27\x27\x28\x29\x6e\x29\x6f\x30\x21\x30\x22\x77\x7e")); |
|
130 expectedUnicode.Format(_L16("4%c%c%c%c%c%c%c%c"), 0x0415, 0x0401, 0x0416, 0x254a, 0x254b, 0x554a, 0x963f, 0x9f44); |
|
131 TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); |
|
132 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
133 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); |
|
134 TEST(generatedForeign==originalForeign); |
|
135 |
|
136 TheTest.Next(_L("GBK")); |
|
137 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
138 originalForeign.Set(_L8("\xf7\xfd\xf7\xfe\xf8\x40\xf8\x41\xa6\xea\xa6\xeb\xa6\xee\xa6\xef\xa9\x88\xa9\x96\xfe\x4f:")); |
|
139 expectedUnicode.Format(_L16("%c%c%c%c%c%c%c%c%c%c%c:"), 0x9f3e, 0x9f44, 0x9ce3, 0x9ce4, 0xfe43, 0xfe44, 0xfe3b, 0xfe3c, 0xfe6b, 0x3007, 0xfa29); |
|
140 TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); |
|
141 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
142 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); |
|
143 TEST(generatedForeign==originalForeign); |
|
144 |
|
145 TheTest.Next(_L("JIS X 0208")); |
|
146 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
147 originalForeign.Set(_L8("\x81\xf6\x81\xf7\x81\xfc\x82\x4f\x82\x50+\x81\x40\xa1\xdf\xea\xa4")); |
|
148 expectedUnicode.Format(_L16("%c%c%c%c%c+%c%c"), 0x2021, 0x00b6, 0x25ef, 0xff10, 0xff11, 0x3000, 0xff61, 0xff9f, 0x7199); |
|
149 TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); |
|
150 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
151 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); |
|
152 TEST(generatedForeign==originalForeign); |
|
153 |
|
154 TheTest.Next(_L("JIS X 0212")); |
|
155 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierEucJpPacked, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
156 originalForeign.Set(_L8("\x8f\xa9\xaf\x8e\xcd\x8f\xa9\xb0\xed\xe3\x8f\xa9\xc1&\x8f\xa9\xc2\x8f\xed\xe3\x8f\xd5\xb7\x8f\xa2\xaf\x8f\xa2\xb3")); |
|
157 expectedUnicode.Format(_L16("%c%c%c%c%c&%c%c%c%c%c"), 0x0166, 0xff8d, 0x00de, 0x8f9c, 0x00e6, 0x0111, 0x9fa5, 0x7fc3, 0x02d8, 0x02dd); |
|
158 TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); |
|
159 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
160 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); |
|
161 TEST(generatedForeign==originalForeign); |
|
162 TheTest.Next(_L("Testing unconvertible characters")); |
|
163 TInt numberOfUnconvertibleCharacters; |
|
164 TInt indexOfFirstUnconvertibleCharacter; |
|
165 CCnvCharacterSetConverter::TArrayOfAscendingIndices indicesOfUnconvertibleCharacters; |
|
166 originalUnicode.Format(_L16("%c"), KTibetanCharacter); |
|
167 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022Jp, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
168 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); |
|
169 TEST(generatedForeign==_L8("\x1b\x24\x42\x21\x29")); |
|
170 characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("amb")); |
|
171 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); |
|
172 TEST(generatedForeign==_L8("amb")); |
|
173 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); |
|
174 TEST(generatedForeign==_L8("amb")); |
|
175 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierAscii, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
176 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022Jp, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
177 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); |
|
178 TEST(generatedForeign==_L8("\x1b\x24\x42\x21\x29")); |
|
179 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters)==0); |
|
180 TEST(generatedForeign==_L8("\x1b\x24\x42\x21\x29")); |
|
181 TEST(numberOfUnconvertibleCharacters==1); |
|
182 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter)==0); |
|
183 TEST(generatedForeign==_L8("\x1b\x24\x42\x21\x29")); |
|
184 TEST(numberOfUnconvertibleCharacters==1); |
|
185 TEST(indexOfFirstUnconvertibleCharacter==0); |
|
186 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); |
|
187 TEST(generatedForeign==_L8("\x1b\x24\x42\x21\x29")); |
|
188 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); |
|
189 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
190 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
191 characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("amb")); |
|
192 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters)==0); |
|
193 TEST(generatedForeign==_L8("amb")); |
|
194 TEST(numberOfUnconvertibleCharacters==1); |
|
195 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter)==0); |
|
196 TEST(generatedForeign==_L8("amb")); |
|
197 TEST(numberOfUnconvertibleCharacters==1); |
|
198 TEST(indexOfFirstUnconvertibleCharacter==0); |
|
199 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); |
|
200 TEST(generatedForeign==_L8("amb")); |
|
201 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); |
|
202 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
203 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
204 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, _L16("amb"), numberOfUnconvertibleCharacters)==0); |
|
205 TEST(generatedForeign==_L8("amb")); |
|
206 TEST(numberOfUnconvertibleCharacters==0); |
|
207 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, _L16("amb"), numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter)==0); |
|
208 TEST(generatedForeign==_L8("amb")); |
|
209 TEST(numberOfUnconvertibleCharacters==0); |
|
210 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, _L16("amb"), indicesOfUnconvertibleCharacters)==0); |
|
211 TEST(generatedForeign==_L8("amb")); |
|
212 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); |
|
213 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
214 originalUnicode.Format(_L16("Red, %cer, green. Je voudrais du j%con."), KTibetanCharacter, KTibetanCharacter); |
|
215 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); |
|
216 TEST(generatedForeign==_L8("Red, amb""er, green. Je voudrais du jambon.")); |
|
217 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); |
|
218 TEST(indicesOfUnconvertibleCharacters[0]==5); |
|
219 TEST(indicesOfUnconvertibleCharacters[1]==33); |
|
220 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
221 originalUnicode.Format(_L16("Red, amber, green%c Je voudrais du jambon%c"), KTibetanCharacter, KTibetanCharacter); |
|
222 characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8(".")); |
|
223 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); |
|
224 TEST(generatedForeign==_L8("Red, amber, green. Je voudrais du jambon.")); |
|
225 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); |
|
226 TEST(indicesOfUnconvertibleCharacters[0]==17); |
|
227 TEST(indicesOfUnconvertibleCharacters[1]==40); |
|
228 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
229 originalUnicode.Format(_L16("%ced, amber, green. Je voudrais du jambon."), KTibetanCharacter); |
|
230 characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("R")); |
|
231 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); |
|
232 TEST(generatedForeign==_L8("R""ed, amber, green. Je voudrais du jambon.")); |
|
233 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); |
|
234 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
235 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
236 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
237 characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("e")); |
|
238 originalUnicode.Format(_L16("R%cd, amb%cr, gr%c%cn. J%c voudrais du jambon."), KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter); |
|
239 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); |
|
240 TEST(generatedForeign==_L8("Red, amber, green. Je voudrais du jambon.")); |
|
241 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==5); |
|
242 TEST(indicesOfUnconvertibleCharacters[0]==1); |
|
243 TEST(indicesOfUnconvertibleCharacters[1]==8); |
|
244 TEST(indicesOfUnconvertibleCharacters[2]==14); |
|
245 TEST(indicesOfUnconvertibleCharacters[3]==15); |
|
246 TEST(indicesOfUnconvertibleCharacters[4]==20); |
|
247 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
248 originalUnicode.Format(_L16("Red, amber, green%c Je voudrais du jambon%c"), KTibetanCharacter, KTibetanCharacter); |
|
249 characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8(".")); |
|
250 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); |
|
251 TEST(generatedForeign==_L8("Red, amber, green. Je voudrais du jambon.")); |
|
252 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); |
|
253 TEST(indicesOfUnconvertibleCharacters[0]==17); |
|
254 TEST(indicesOfUnconvertibleCharacters[1]==40); |
|
255 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
256 originalUnicode.Format(_L16("%ced, amber, green. Je voudrais du jambon."), KTibetanCharacter); |
|
257 characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("R")); |
|
258 TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); |
|
259 TEST(generatedForeign==_L8("Red, amber, green. Je voudrais du jambon.")); |
|
260 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); |
|
261 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
262 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
263 TUint8* const foreignBuffer=CONST_CAST(TUint8*, generatedForeign.Ptr()); |
|
264 TPtr8 shortForeignOutputBuffer(NULL, 0, 0); |
|
265 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJis, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
266 originalUnicode.Format(_L16("%c%c%c%c%cT%c%c%c%c"), KTibetanCharacter, 0x7a83, KTibetanCharacter, 0xff78, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, 0x68e5, KTibetanCharacter); |
|
267 _LIT8(KLit8ExpectedJis_1, "\x1b\x24\x42\x21\x29\x1b\x24\x42\x40\x60\x1b\x24\x42\x21\x29\x1b\x28\x49\x38\x1b\x24\x42\x21\x29\x1b\x28\x4aT\x1b\x24\x42\x21\x29\x1b\x24\x42\x21\x29\x1b\x24\x28\x44\x44\x28\x1b\x24\x42\x21\x29"); |
|
268 shortForeignOutputBuffer.Set(foreignBuffer, 0, 49); |
|
269 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); |
|
270 TEST(shortForeignOutputBuffer==KLit8ExpectedJis_1); |
|
271 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==6); |
|
272 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
273 TEST(indicesOfUnconvertibleCharacters[1]==2); |
|
274 TEST(indicesOfUnconvertibleCharacters[2]==4); |
|
275 TEST(indicesOfUnconvertibleCharacters[3]==6); |
|
276 TEST(indicesOfUnconvertibleCharacters[4]==7); |
|
277 TEST(indicesOfUnconvertibleCharacters[5]==9); |
|
278 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
279 shortForeignOutputBuffer.Set(foreignBuffer, 0, 48); |
|
280 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); |
|
281 TEST(shortForeignOutputBuffer==KLit8ExpectedJis_1().Left(44)); |
|
282 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==5); |
|
283 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
284 TEST(indicesOfUnconvertibleCharacters[1]==2); |
|
285 TEST(indicesOfUnconvertibleCharacters[2]==4); |
|
286 TEST(indicesOfUnconvertibleCharacters[3]==6); |
|
287 TEST(indicesOfUnconvertibleCharacters[4]==7); |
|
288 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
289 shortForeignOutputBuffer.Set(foreignBuffer, 0, 37); |
|
290 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); |
|
291 TEST(shortForeignOutputBuffer==KLit8ExpectedJis_1().Left(33)); |
|
292 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==4); |
|
293 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
294 TEST(indicesOfUnconvertibleCharacters[1]==2); |
|
295 TEST(indicesOfUnconvertibleCharacters[2]==4); |
|
296 TEST(indicesOfUnconvertibleCharacters[3]==6); |
|
297 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
298 shortForeignOutputBuffer.Set(foreignBuffer, 0, 32); |
|
299 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==4); |
|
300 TEST(shortForeignOutputBuffer==KLit8ExpectedJis_1().Left(28)); |
|
301 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); |
|
302 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
303 TEST(indicesOfUnconvertibleCharacters[1]==2); |
|
304 TEST(indicesOfUnconvertibleCharacters[2]==4); |
|
305 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
306 shortForeignOutputBuffer.Set(foreignBuffer, 0, 23); |
|
307 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==6); |
|
308 TEST(shortForeignOutputBuffer==KLit8ExpectedJis_1().Left(19)); |
|
309 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); |
|
310 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
311 TEST(indicesOfUnconvertibleCharacters[1]==2); |
|
312 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
313 shortForeignOutputBuffer.Set(foreignBuffer, 0, 14); |
|
314 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==8); |
|
315 TEST(shortForeignOutputBuffer==KLit8ExpectedJis_1().Left(10)); |
|
316 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); |
|
317 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
318 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
319 shortForeignOutputBuffer.Set(foreignBuffer, 0, 4); |
|
320 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==10); |
|
321 TEST(shortForeignOutputBuffer==KNullDesC8); |
|
322 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); |
|
323 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
324 characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("\x1b\x28\x42_")); |
|
325 _LIT8(KLit8ExpectedJis_2, "\x1b\x28\x42_\x1b\x24\x42\x40\x60\x1b\x28\x42_\x1b\x28\x49\x38\x1b\x28\x42_\x1b\x28\x4aT\x1b\x28\x42_\x1b\x28\x42_\x1b\x24\x28\x44\x44\x28\x1b\x28\x42_"); |
|
326 shortForeignOutputBuffer.Set(foreignBuffer, 0, 43); |
|
327 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); |
|
328 TEST(shortForeignOutputBuffer==KLit8ExpectedJis_2); |
|
329 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==6); |
|
330 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
331 TEST(indicesOfUnconvertibleCharacters[1]==2); |
|
332 TEST(indicesOfUnconvertibleCharacters[2]==4); |
|
333 TEST(indicesOfUnconvertibleCharacters[3]==6); |
|
334 TEST(indicesOfUnconvertibleCharacters[4]==7); |
|
335 TEST(indicesOfUnconvertibleCharacters[5]==9); |
|
336 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
337 shortForeignOutputBuffer.Set(foreignBuffer, 0, 42); |
|
338 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); |
|
339 TEST(shortForeignOutputBuffer==KLit8ExpectedJis_2().Left(39)); |
|
340 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==5); |
|
341 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
342 TEST(indicesOfUnconvertibleCharacters[1]==2); |
|
343 TEST(indicesOfUnconvertibleCharacters[2]==4); |
|
344 TEST(indicesOfUnconvertibleCharacters[3]==6); |
|
345 TEST(indicesOfUnconvertibleCharacters[4]==7); |
|
346 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
347 shortForeignOutputBuffer.Set(foreignBuffer, 0, 32); |
|
348 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); |
|
349 TEST(shortForeignOutputBuffer==KLit8ExpectedJis_2().Left(29)); |
|
350 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==4); |
|
351 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
352 TEST(indicesOfUnconvertibleCharacters[1]==2); |
|
353 TEST(indicesOfUnconvertibleCharacters[2]==4); |
|
354 TEST(indicesOfUnconvertibleCharacters[3]==6); |
|
355 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
356 shortForeignOutputBuffer.Set(foreignBuffer, 0, 28); |
|
357 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==4); |
|
358 TEST(shortForeignOutputBuffer==KLit8ExpectedJis_2().Left(25)); |
|
359 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); |
|
360 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
361 TEST(indicesOfUnconvertibleCharacters[1]==2); |
|
362 TEST(indicesOfUnconvertibleCharacters[2]==4); |
|
363 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
364 shortForeignOutputBuffer.Set(foreignBuffer, 0, 20); |
|
365 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==6); |
|
366 TEST(shortForeignOutputBuffer==KLit8ExpectedJis_2().Left(17)); |
|
367 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); |
|
368 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
369 TEST(indicesOfUnconvertibleCharacters[1]==2); |
|
370 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
371 shortForeignOutputBuffer.Set(foreignBuffer, 0, 12); |
|
372 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==8); |
|
373 TEST(shortForeignOutputBuffer==KLit8ExpectedJis_2().Left(9)); |
|
374 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); |
|
375 TEST(indicesOfUnconvertibleCharacters[0]==0); |
|
376 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
377 shortForeignOutputBuffer.Set(foreignBuffer, 0, 3); |
|
378 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==10); |
|
379 TEST(shortForeignOutputBuffer==KNullDesC8); |
|
380 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); |
|
381 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
382 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
383 originalUnicode.Format(_L16("%c%c!%c%c%c"), 0x4e2d, KTibetanCharacter, KTibetanCharacter, 0x56fd, KTibetanCharacter); |
|
384 _LIT8(KLit8ExpectedGb2312_1, "\xd6\xd0\xa3\xbf!\xa3\xbf\xb9\xfa\xa3\xbf"); |
|
385 shortForeignOutputBuffer.Set(foreignBuffer, 0, 11); |
|
386 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); |
|
387 TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_1); |
|
388 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); |
|
389 TEST(indicesOfUnconvertibleCharacters[0]==1); |
|
390 TEST(indicesOfUnconvertibleCharacters[1]==3); |
|
391 TEST(indicesOfUnconvertibleCharacters[2]==5); |
|
392 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
393 shortForeignOutputBuffer.Set(foreignBuffer, 0, 10); |
|
394 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); |
|
395 TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_1().Left(9)); |
|
396 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); |
|
397 TEST(indicesOfUnconvertibleCharacters[0]==1); |
|
398 TEST(indicesOfUnconvertibleCharacters[1]==3); |
|
399 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
400 shortForeignOutputBuffer.Set(foreignBuffer, 0, 6); |
|
401 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); |
|
402 TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_1().Left(5)); |
|
403 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); |
|
404 TEST(indicesOfUnconvertibleCharacters[0]==1); |
|
405 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
406 shortForeignOutputBuffer.Set(foreignBuffer, 0, 3); |
|
407 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==5); |
|
408 TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_1().Left(2)); |
|
409 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); |
|
410 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
411 characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("_")); |
|
412 _LIT8(KLit8ExpectedGb2312_2, "\xd6\xd0_!_\xb9\xfa_"); |
|
413 shortForeignOutputBuffer.Set(foreignBuffer, 0, 8); |
|
414 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); |
|
415 TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_2); |
|
416 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); |
|
417 TEST(indicesOfUnconvertibleCharacters[0]==1); |
|
418 TEST(indicesOfUnconvertibleCharacters[1]==3); |
|
419 TEST(indicesOfUnconvertibleCharacters[2]==5); |
|
420 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
421 shortForeignOutputBuffer.Set(foreignBuffer, 0, 7); |
|
422 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); |
|
423 TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_2().Left(7)); |
|
424 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); |
|
425 TEST(indicesOfUnconvertibleCharacters[0]==1); |
|
426 TEST(indicesOfUnconvertibleCharacters[1]==3); |
|
427 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
428 shortForeignOutputBuffer.Set(foreignBuffer, 0, 4); |
|
429 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); |
|
430 TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_2().Left(4)); |
|
431 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); |
|
432 TEST(indicesOfUnconvertibleCharacters[0]==1); |
|
433 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
434 shortForeignOutputBuffer.Set(foreignBuffer, 0, 2); |
|
435 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==5); |
|
436 TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_2().Left(2)); |
|
437 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); |
|
438 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
439 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierHz, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
440 originalUnicode.Format(_L16("%c%c%c%c^%cZ%c"), 0x6ee1, KTibetanCharacter, 0x80ea, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter); |
|
441 _LIT8(KLit8ExpectedHz_1, "~{Bz#?kM#?~}^~{#?~}Z~{#?~}"); // if a 2-byte character is to be used for HZ's replacement character, then it must be in 8-bit GB-2312-80 form, rather than in the 7-bit form with a "~{" and "~}" wrapper |
|
442 shortForeignOutputBuffer.Set(foreignBuffer, 0, 26); |
|
443 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); |
|
444 TEST(shortForeignOutputBuffer==KLit8ExpectedHz_1); |
|
445 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==4); |
|
446 TEST(indicesOfUnconvertibleCharacters[0]==1); |
|
447 TEST(indicesOfUnconvertibleCharacters[1]==3); |
|
448 TEST(indicesOfUnconvertibleCharacters[2]==5); |
|
449 TEST(indicesOfUnconvertibleCharacters[3]==7); |
|
450 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
451 shortForeignOutputBuffer.Set(foreignBuffer, 0, 25); |
|
452 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); |
|
453 TEST(shortForeignOutputBuffer==KLit8ExpectedHz_1().Left(20)); |
|
454 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); |
|
455 TEST(indicesOfUnconvertibleCharacters[0]==1); |
|
456 TEST(indicesOfUnconvertibleCharacters[1]==3); |
|
457 TEST(indicesOfUnconvertibleCharacters[2]==5); |
|
458 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
459 shortForeignOutputBuffer.Set(foreignBuffer, 0, 18); |
|
460 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); |
|
461 TEST(shortForeignOutputBuffer==KLit8ExpectedHz_1().Left(13)); |
|
462 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); |
|
463 TEST(indicesOfUnconvertibleCharacters[0]==1); |
|
464 TEST(indicesOfUnconvertibleCharacters[1]==3); |
|
465 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
466 shortForeignOutputBuffer.Set(foreignBuffer, 0, 11); |
|
467 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==5); |
|
468 TEST(shortForeignOutputBuffer==_L8("~{Bz#?kM~}")); |
|
469 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); |
|
470 TEST(indicesOfUnconvertibleCharacters[0]==1); |
|
471 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
472 shortForeignOutputBuffer.Set(foreignBuffer, 0, 7); |
|
473 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==7); |
|
474 TEST(shortForeignOutputBuffer==_L8("~{Bz~}")); |
|
475 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); |
|
476 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
477 characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("_")); |
|
478 _LIT8(KLit8ExpectedHz_2, "~{Bz~}_~{kM~}_^_Z_"); |
|
479 shortForeignOutputBuffer.Set(foreignBuffer, 0, 18); |
|
480 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); |
|
481 TEST(shortForeignOutputBuffer==KLit8ExpectedHz_2); |
|
482 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==4); |
|
483 TEST(indicesOfUnconvertibleCharacters[0]==1); |
|
484 TEST(indicesOfUnconvertibleCharacters[1]==3); |
|
485 TEST(indicesOfUnconvertibleCharacters[2]==5); |
|
486 TEST(indicesOfUnconvertibleCharacters[3]==7); |
|
487 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
488 shortForeignOutputBuffer.Set(foreignBuffer, 0, 17); |
|
489 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); |
|
490 TEST(shortForeignOutputBuffer==KLit8ExpectedHz_2().Left(17)); |
|
491 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); |
|
492 TEST(indicesOfUnconvertibleCharacters[0]==1); |
|
493 TEST(indicesOfUnconvertibleCharacters[1]==3); |
|
494 TEST(indicesOfUnconvertibleCharacters[2]==5); |
|
495 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
496 shortForeignOutputBuffer.Set(foreignBuffer, 0, 15); |
|
497 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); |
|
498 TEST(shortForeignOutputBuffer==KLit8ExpectedHz_2().Left(15)); |
|
499 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); |
|
500 TEST(indicesOfUnconvertibleCharacters[0]==1); |
|
501 TEST(indicesOfUnconvertibleCharacters[1]==3); |
|
502 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
503 shortForeignOutputBuffer.Set(foreignBuffer, 0, 13); |
|
504 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==5); |
|
505 TEST(shortForeignOutputBuffer==KLit8ExpectedHz_2().Left(13)); |
|
506 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); |
|
507 TEST(indicesOfUnconvertibleCharacters[0]==1); |
|
508 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
509 shortForeignOutputBuffer.Set(foreignBuffer, 0, 6); |
|
510 TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==7); |
|
511 TEST(shortForeignOutputBuffer==KLit8ExpectedHz_2().Left(6)); |
|
512 TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); |
|
513 indicesOfUnconvertibleCharacters.RemoveAll(); |
|
514 TheTest.Next(_L("unconvertible foreign characters")); |
|
515 TUint16* const unicodeBuffer=CONST_CAST(TUint16*, generatedUnicode.Ptr()); |
|
516 TPtr16 shortUnicodeOutputBuffer(NULL, 0, 0); |
|
517 TInt indexOfFirstByteOfFirstUnconvertibleCharacter; |
|
518 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
519 originalForeign.Set(TPtrC8(_S8("qwe\x80\x00rt\x81\x40\x81\x3f\xb6\x7e\xfe\xfe\xa1\xa1\xff\xff"), 19)); |
|
520 expectedUnicode.Format(_L16("qwe%crt%c%c%c%c%c%c"), 0xfffd, 0x4e02, 0xfffd, 0x79ea, 0xfffd, 0x3000, 0xfffd); |
|
521 state=CCnvCharacterSetConverter::KStateDefault; |
|
522 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 12); |
|
523 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==0); |
|
524 TEST(shortUnicodeOutputBuffer==expectedUnicode); |
|
525 TEST(numberOfUnconvertibleCharacters==4); |
|
526 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
527 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); |
|
528 TEST(shortUnicodeOutputBuffer==expectedUnicode); |
|
529 TEST(numberOfUnconvertibleCharacters==4); |
|
530 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); |
|
531 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 11); |
|
532 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
533 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==2); |
|
534 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(11)); |
|
535 TEST(numberOfUnconvertibleCharacters==3); |
|
536 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
537 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==2); |
|
538 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(11)); |
|
539 TEST(numberOfUnconvertibleCharacters==3); |
|
540 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); |
|
541 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 9); |
|
542 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
543 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==6); |
|
544 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(9)); |
|
545 TEST(numberOfUnconvertibleCharacters==2); |
|
546 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
547 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==6); |
|
548 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(9)); |
|
549 TEST(numberOfUnconvertibleCharacters==2); |
|
550 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); |
|
551 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 7); |
|
552 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
553 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==10); |
|
554 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(7)); |
|
555 TEST(numberOfUnconvertibleCharacters==1); |
|
556 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
557 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==10); |
|
558 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(7)); |
|
559 TEST(numberOfUnconvertibleCharacters==1); |
|
560 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); |
|
561 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 3); |
|
562 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
563 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==16); |
|
564 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); |
|
565 TEST(numberOfUnconvertibleCharacters==0); |
|
566 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
567 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==16); |
|
568 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); |
|
569 TEST(numberOfUnconvertibleCharacters==0); |
|
570 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); |
|
571 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
572 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
573 originalForeign.Set(_S8("\xea\xa5\xaf\xea\xa6\x9a\xeb\xea\xeb@\xea\x56\xea\xfc")); |
|
574 expectedUnicode.Format(_L16("%c%c%c%c%c@%c%c"), 0xfffd, 0xff6f, 0xfffd, 0x68a6, 0xfffd, 0x9dcf, 0xfffd); |
|
575 state=CCnvCharacterSetConverter::KStateDefault; |
|
576 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 8); |
|
577 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==0); |
|
578 TEST(shortUnicodeOutputBuffer==expectedUnicode); |
|
579 TEST(numberOfUnconvertibleCharacters==4); |
|
580 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
581 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); |
|
582 TEST(shortUnicodeOutputBuffer==expectedUnicode); |
|
583 TEST(numberOfUnconvertibleCharacters==4); |
|
584 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==0); |
|
585 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
586 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 7); |
|
587 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==2); |
|
588 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(7)); |
|
589 TEST(numberOfUnconvertibleCharacters==3); |
|
590 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
591 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==2); |
|
592 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(7)); |
|
593 TEST(numberOfUnconvertibleCharacters==3); |
|
594 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==0); |
|
595 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
596 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 4); |
|
597 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==7); |
|
598 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(4)); |
|
599 TEST(numberOfUnconvertibleCharacters==2); |
|
600 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
601 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==7); |
|
602 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(4)); |
|
603 TEST(numberOfUnconvertibleCharacters==2); |
|
604 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==0); |
|
605 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
606 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 2); |
|
607 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==11); |
|
608 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(2)); |
|
609 TEST(numberOfUnconvertibleCharacters==1); |
|
610 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
611 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==11); |
|
612 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(2)); |
|
613 TEST(numberOfUnconvertibleCharacters==1); |
|
614 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==0); |
|
615 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
616 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 0); |
|
617 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==14); |
|
618 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(0)); |
|
619 TEST(numberOfUnconvertibleCharacters==0); |
|
620 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
621 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==14); |
|
622 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(0)); |
|
623 TEST(numberOfUnconvertibleCharacters==0); |
|
624 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); |
|
625 TEST(state==CCnvCharacterSetConverter::KStateDefault); |
|
626 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022Jp1, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
627 originalForeign.Set(_S8("\x1b\x28\x49\x20\x4b\x60\x1b\x24\x40\x4b\x7f\x4b\x60\x4b\x20\x1b\x28\x42*+\x1b\x24\x28\x44\x6d\x50\x6d\x64\x46\x3f")); |
|
628 expectedUnicode.Format(_L16("%c%c%c%c%c%c*+%c%c%c"), 0xfffd, 0xff8b, 0xfffd, 0xfffd, 0x6469, 0xfffd, 0x9f6e, 0xfffd, 0x6bf1); |
|
629 state=CCnvCharacterSetConverter::KStateDefault; |
|
630 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 11); |
|
631 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==0); |
|
632 TEST(shortUnicodeOutputBuffer==expectedUnicode); |
|
633 TEST(numberOfUnconvertibleCharacters==5); |
|
634 state=CCnvCharacterSetConverter::KStateDefault; |
|
635 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); |
|
636 TEST(shortUnicodeOutputBuffer==expectedUnicode); |
|
637 TEST(numberOfUnconvertibleCharacters==5); |
|
638 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); |
|
639 state=CCnvCharacterSetConverter::KStateDefault; |
|
640 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 9); |
|
641 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==4); |
|
642 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(9)); |
|
643 TEST(numberOfUnconvertibleCharacters==4); |
|
644 state=CCnvCharacterSetConverter::KStateDefault; |
|
645 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==4); |
|
646 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(9)); |
|
647 TEST(numberOfUnconvertibleCharacters==4); |
|
648 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); |
|
649 state=CCnvCharacterSetConverter::KStateDefault; |
|
650 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 5); |
|
651 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==17); |
|
652 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(5)); |
|
653 TEST(numberOfUnconvertibleCharacters==3); |
|
654 state=CCnvCharacterSetConverter::KStateDefault; |
|
655 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==17); |
|
656 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(5)); |
|
657 TEST(numberOfUnconvertibleCharacters==3); |
|
658 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); |
|
659 state=CCnvCharacterSetConverter::KStateDefault; |
|
660 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 3); |
|
661 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==21); |
|
662 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); |
|
663 TEST(numberOfUnconvertibleCharacters==2); |
|
664 state=CCnvCharacterSetConverter::KStateDefault; |
|
665 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==21); |
|
666 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); |
|
667 TEST(numberOfUnconvertibleCharacters==2); |
|
668 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); |
|
669 state=CCnvCharacterSetConverter::KStateDefault; |
|
670 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 2); |
|
671 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==25); |
|
672 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(2)); |
|
673 TEST(numberOfUnconvertibleCharacters==1); |
|
674 state=CCnvCharacterSetConverter::KStateDefault; |
|
675 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==25); |
|
676 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(2)); |
|
677 TEST(numberOfUnconvertibleCharacters==1); |
|
678 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); |
|
679 state=CCnvCharacterSetConverter::KStateDefault; |
|
680 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 0); |
|
681 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==30); |
|
682 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(0)); |
|
683 TEST(numberOfUnconvertibleCharacters==0); |
|
684 state=CCnvCharacterSetConverter::KStateDefault; |
|
685 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==30); |
|
686 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(0)); |
|
687 TEST(numberOfUnconvertibleCharacters==0); |
|
688 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); |
|
689 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierHz, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
690 originalForeign.Set(_S8("{~{ !!\"o~}~~~{o\"x#R7~}}")); |
|
691 expectedUnicode.Format(_L16("{%c%c%c~%c%c%c}"), 0xfffd, 0x3000, 0xfffd, 0x94eb, 0xfffd, 0x66f3); |
|
692 state=CCnvCharacterSetConverter::KStateDefault; |
|
693 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 9); |
|
694 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==0); |
|
695 TEST(shortUnicodeOutputBuffer==expectedUnicode); |
|
696 TEST(numberOfUnconvertibleCharacters==3); |
|
697 state=CCnvCharacterSetConverter::KStateDefault; |
|
698 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); |
|
699 TEST(shortUnicodeOutputBuffer==expectedUnicode); |
|
700 TEST(numberOfUnconvertibleCharacters==3); |
|
701 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); |
|
702 state=CCnvCharacterSetConverter::KStateDefault; |
|
703 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 6); |
|
704 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==7); |
|
705 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(6)); |
|
706 TEST(numberOfUnconvertibleCharacters==2); |
|
707 state=CCnvCharacterSetConverter::KStateDefault; |
|
708 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==7); |
|
709 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(6)); |
|
710 TEST(numberOfUnconvertibleCharacters==2); |
|
711 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); |
|
712 state=CCnvCharacterSetConverter::KStateDefault; |
|
713 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 3); |
|
714 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==17); |
|
715 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); |
|
716 TEST(numberOfUnconvertibleCharacters==1); |
|
717 state=CCnvCharacterSetConverter::KStateDefault; |
|
718 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==17); |
|
719 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); |
|
720 TEST(numberOfUnconvertibleCharacters==1); |
|
721 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); |
|
722 state=CCnvCharacterSetConverter::KStateDefault; |
|
723 shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 1); |
|
724 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==21); |
|
725 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(1)); |
|
726 TEST(numberOfUnconvertibleCharacters==0); |
|
727 state=CCnvCharacterSetConverter::KStateDefault; |
|
728 TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==21); |
|
729 TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(1)); |
|
730 TEST(numberOfUnconvertibleCharacters==0); |
|
731 TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); |
|
732 // Cleanup: arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession |
|
733 // and originalUnicodeHBuf, generatedUnicodeHBuf, expectedUnicodeHBuf, generatedForeignHBuf |
|
734 CleanupStack::PopAndDestroy(7); |
|
735 } |
|
736 |
|
737 GLDEF_C TInt E32Main() |
|
738 { |
|
739 __UHEAP_MARK; |
|
740 |
|
741 TheTest.Title(); |
|
742 |
|
743 CTrapCleanup* trapCleanup=CTrapCleanup::New(); |
|
744 TEST(trapCleanup != NULL); |
|
745 |
|
746 TRAPD(error, DoE32MainL()); |
|
747 TEST2(error, KErrNone); |
|
748 |
|
749 delete trapCleanup; |
|
750 |
|
751 TheTest.End(); |
|
752 TheTest.Close(); |
|
753 |
|
754 __UHEAP_MARKEND; |
|
755 return KErrNone; |
|
756 } |
|
757 |