|
1 /* |
|
2 * Copyright (c) 2000 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("TJIS")); |
|
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 TInt KBufferLength=100; |
|
63 /** |
|
64 @SYMTestCaseID SYSLIB-CHARCONV-CT-0529 |
|
65 @SYMTestCaseDesc Tests for truncated conversion from Unicode to JIS |
|
66 @SYMTestPriority Medium |
|
67 @SYMTestActions Tests for truncated conversion from Unicode to JIS and back to Unicode |
|
68 @SYMTestExpectedResults Test must not fail |
|
69 @SYMREQ REQ0000 |
|
70 */ |
|
71 LOCAL_C void TestTruncatedConversionFromUnicodeToJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) |
|
72 { |
|
73 for (TInt i=aOriginalUnicode.Length(); i>=0; --i) |
|
74 { |
|
75 TBuf8<KBufferLength> generatedJis; |
|
76 TEST(aCharacterSetConverter.ConvertFromUnicode(generatedJis, aOriginalUnicode.Left(i))>=0); |
|
77 TBuf8<KBufferLength> generatedsecondPartOfJis; |
|
78 TEST(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfJis, aOriginalUnicode.Mid(i))==0); |
|
79 generatedJis.Append(generatedsecondPartOfJis); |
|
80 TInt state=CCnvCharacterSetConverter::KStateDefault; |
|
81 TBuf16<KBufferLength> generatedUnicode; |
|
82 TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedJis, state)==0); |
|
83 TEST(generatedUnicode==aOriginalUnicode); |
|
84 } |
|
85 } |
|
86 /** |
|
87 @SYMTestCaseID SYSLIB-CHARCONV-CT-0530 |
|
88 @SYMTestCaseDesc Splitting and converting from Unicode to JIS test |
|
89 @SYMTestPriority Medium |
|
90 @SYMTestActions Tests for conversion after splitting, from Unicode to JIS and back to Unicode |
|
91 @SYMTestExpectedResults Test must not fail |
|
92 @SYMREQ REQ0000 |
|
93 */ |
|
94 LOCAL_C void TestSplittingConvertingFromUnicodeToJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, const TDesC8& aExpectedFirstPartOfJis, const TDesC8& aExpectedSecondPartOfJis, const TDesC16& aOriginalUnicode) |
|
95 { |
|
96 TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); |
|
97 TEST(aMaximumLengthUpperLimit<=KBufferLength); |
|
98 TUint8 jisBuffer[KBufferLength]; |
|
99 for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) |
|
100 { |
|
101 TPtr8 generatedFirstPartOfJis(jisBuffer, i); |
|
102 TEST(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfJis, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); |
|
103 TEST(generatedFirstPartOfJis==aExpectedFirstPartOfJis); |
|
104 TBuf8<KBufferLength> generatedSecondPartOfJis; |
|
105 TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfJis, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); |
|
106 TEST(generatedSecondPartOfJis==aExpectedSecondPartOfJis); |
|
107 TInt state=CCnvCharacterSetConverter::KStateDefault; |
|
108 TBuf16<KBufferLength> generatedUnicode; |
|
109 TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfJis, state)==0); |
|
110 TBuf16<KBufferLength> generatedSecondPartOfUnicode; |
|
111 TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfJis, state)==0); |
|
112 generatedUnicode.Append(generatedSecondPartOfUnicode); |
|
113 TEST(generatedUnicode==aOriginalUnicode); |
|
114 } |
|
115 } |
|
116 /** |
|
117 @SYMTestCaseID SYSLIB-CHARCONV-CT-0531 |
|
118 @SYMTestCaseDesc Tests for truncated conversion from JIS to Unicode |
|
119 @SYMTestPriority Medium |
|
120 @SYMTestActions Tests for truncated conversion from JIS to Unicode and back to JIS |
|
121 @SYMTestExpectedResults Test must not fail |
|
122 @SYMREQ REQ0000 |
|
123 */ |
|
124 LOCAL_C void TestTruncatedConversionToUnicodeFromJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalJis) |
|
125 { |
|
126 for (TInt i=aOriginalJis.Length(); i>=6; --i) // 6 is the length of JIS' longest escape sequence |
|
127 { |
|
128 TInt state=CCnvCharacterSetConverter::KStateDefault; |
|
129 TBuf16<KBufferLength> generatedUnicode; |
|
130 const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalJis.Left(i), state); |
|
131 TEST(returnValue>=0); |
|
132 TBuf16<KBufferLength> generatedsecondPartOfUnicode; |
|
133 TEST(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalJis.Mid(i-returnValue), state)==0); |
|
134 generatedUnicode.Append(generatedsecondPartOfUnicode); |
|
135 TEST(generatedUnicode==aExpectedUnicode); |
|
136 } |
|
137 } |
|
138 /** |
|
139 @SYMTestCaseID SYSLIB-CHARCONV-CT-0532 |
|
140 @SYMTestCaseDesc Splitting and converting from JIS to Unicode test |
|
141 @SYMTestPriority Medium |
|
142 @SYMTestActions Tests for conversion after splitting, from JIS to Unicode and back to JIS |
|
143 @SYMTestExpectedResults Test must not fail |
|
144 @SYMREQ REQ0000 |
|
145 */ |
|
146 LOCAL_C void TestSplittingConvertingToUnicodeFromJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfJisBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalJis) |
|
147 { |
|
148 TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); |
|
149 TEST(aMaximumLengthUpperLimit<=KBufferLength); |
|
150 TUint16 unicodeBuffer[KBufferLength]; |
|
151 for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) |
|
152 { |
|
153 TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); |
|
154 TInt state=CCnvCharacterSetConverter::KStateDefault; |
|
155 const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalJis, state); |
|
156 TEST(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); |
|
157 TEST(returnValue==aExpectedNumberOfJisBytesNotConvertedAtSplit); |
|
158 TBuf16<KBufferLength> generatedSecondPartOfUnicode; |
|
159 TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalJis.Right(aExpectedNumberOfJisBytesNotConvertedAtSplit), state)==0); |
|
160 TEST(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); |
|
161 TBuf8<KBufferLength> generatedJis; |
|
162 TEST(aCharacterSetConverter.ConvertFromUnicode(generatedJis, generatedFirstPartOfUnicode)==0); |
|
163 TBuf8<KBufferLength> generatedSecondPartOfJis; |
|
164 TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfJis, generatedSecondPartOfUnicode)==0); |
|
165 generatedJis.Append(generatedSecondPartOfJis); |
|
166 TBuf16<KBufferLength> regeneratedUnicode; |
|
167 state=CCnvCharacterSetConverter::KStateDefault; |
|
168 TEST(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, generatedJis, state)==0); |
|
169 TEST(regeneratedUnicode==aExpectedUnicode); |
|
170 state=CCnvCharacterSetConverter::KStateDefault; |
|
171 TEST(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, aOriginalJis, state)==0); |
|
172 TEST(regeneratedUnicode==aExpectedUnicode); |
|
173 } |
|
174 } |
|
175 /** |
|
176 @SYMTestCaseID SYSLIB-CHARCONV-CT-0533 |
|
177 @SYMTestCaseDesc Conversion of bad JIS format to Unicode test |
|
178 @SYMTestPriority Medium |
|
179 @SYMTestActions Tests to convert bad formatted JIS input to Unicode. |
|
180 @SYMTestExpectedResults Test must not fail |
|
181 @SYMREQ REQ0000 |
|
182 */ |
|
183 LOCAL_C void TestIsIllFormedJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aJis) |
|
184 { |
|
185 TBuf16<50> generatedUnicode; |
|
186 TInt state=CCnvCharacterSetConverter::KStateDefault; |
|
187 TPtrC8 remainderOfJis(aJis); |
|
188 TInt lastReturnValue=KMaxTInt; |
|
189 FOREVER |
|
190 { |
|
191 const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfJis, state); |
|
192 if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) |
|
193 { |
|
194 break; |
|
195 } |
|
196 TEST(returnValue>0); |
|
197 TEST(returnValue<lastReturnValue); |
|
198 lastReturnValue=returnValue; |
|
199 remainderOfJis.Set(remainderOfJis.Right(returnValue)); |
|
200 } |
|
201 } |
|
202 |
|
203 /** |
|
204 * Utility for DEF063276 fix. |
|
205 */ |
|
206 |
|
207 _LIT(KOriginalJisFilename, "z:\\test\\data\\originalJis.dat"); |
|
208 |
|
209 static void ReadDesc(TDes8& aDes, const TDesC& aFilename, RFs& aFs) |
|
210 { |
|
211 RFile file; |
|
212 TInt err = file.Open(aFs, aFilename, EFileRead); |
|
213 TEST2(err, KErrNone); |
|
214 CleanupClosePushL(file); |
|
215 |
|
216 err = file.Read(aDes); |
|
217 TEST2(err, KErrNone); |
|
218 CleanupStack::PopAndDestroy(&file); |
|
219 } |
|
220 |
|
221 /** |
|
222 @SYMTestCaseID SYSLIB-CHARCONV-CT-0534 |
|
223 @SYMTestCaseDesc JIS to Unicode and Unicode to JIS conversion tests |
|
224 @SYMTestPriority Medium |
|
225 @SYMTestActions Calls up all conversion test functions from JIS to Unicode |
|
226 @SYMTestExpectedResults Test must not fail |
|
227 @SYMREQ REQ0000 |
|
228 */ |
|
229 |
|
230 LOCAL_C void DoE32MainL() |
|
231 { |
|
232 RFs fileServerSession; |
|
233 CleanupClosePushL(fileServerSession); |
|
234 User::LeaveIfError(fileServerSession.Connect()); |
|
235 CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); |
|
236 CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); |
|
237 TheTest.Printf(_L("Available:\n")); |
|
238 TInt i; |
|
239 for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) |
|
240 { |
|
241 const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; |
|
242 characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); |
|
243 TPtrC charactersSetName(charactersSet.Name()); |
|
244 if (charactersSet.NameIsFileName()) |
|
245 { |
|
246 charactersSetName.Set(TParsePtrC(charactersSetName).Name()); |
|
247 } |
|
248 TheTest.Printf(_L(" %S\n"), &charactersSetName); |
|
249 } |
|
250 TheTest.Start(_L("Testing JIS conversions")); |
|
251 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJis, *arrayOfCharacterSetsAvailable, fileServerSession); |
|
252 // |
|
253 TheTest.Next(_L("Empty descriptor")); |
|
254 TestSplittingConvertingFromUnicodeToJis(*characterSetConverter, 0, 10, 0, KNullDesC8, KNullDesC8, KNullDesC16); |
|
255 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); |
|
256 TheTest.Next(_L("Testing converting to JIS")); |
|
257 TBuf16<50> originalUnicode; |
|
258 originalUnicode.Format(_L16("I %c%c%c%c%c%c%c%c"), 0x611b, 0x3059, 0x308b, 0xff74, 0xff9a, 0xff68, 0xff9d, 0x4e04); |
|
259 TestTruncatedConversionFromUnicodeToJis(*characterSetConverter, originalUnicode); |
|
260 TestSplittingConvertingFromUnicodeToJis(*characterSetConverter, 0, 3, 10, KNullDesC8, _L8("\x1b\x28\x4aI \x1b\x24\x42\x30\x26\x24\x39\x24\x6b\x1b\x28\x49\x34\x5a\x28\x5d\x1b\x24\x28\x44\x30\x22"), originalUnicode); |
|
261 TestSplittingConvertingFromUnicodeToJis(*characterSetConverter, 4, 4, 9, _L8("\x1b\x28\x4aI"), _L8("\x1b\x28\x4a \x1b\x24\x42\x30\x26\x24\x39\x24\x6b\x1b\x28\x49\x34\x5a\x28\x5d\x1b\x24\x28\x44\x30\x22"), originalUnicode); |
|
262 TestSplittingConvertingFromUnicodeToJis(*characterSetConverter, 5, 9, 8, _L8("\x1b\x28\x4aI "), _L8("\x1b\x24\x42\x30\x26\x24\x39\x24\x6b\x1b\x28\x49\x34\x5a\x28\x5d\x1b\x24\x28\x44\x30\x22"), originalUnicode); |
|
263 TestSplittingConvertingFromUnicodeToJis(*characterSetConverter, 10, 11, 7, _L8("\x1b\x28\x4aI \x1b\x24\x42\x30\x26"), _L8("\x1b\x24\x42\x24\x39\x24\x6b\x1b\x28\x49\x34\x5a\x28\x5d\x1b\x24\x28\x44\x30\x22"), originalUnicode); |
|
264 TestSplittingConvertingFromUnicodeToJis(*characterSetConverter, 12, 13, 6, _L8("\x1b\x28\x4aI \x1b\x24\x42\x30\x26\x24\x39"), _L8("\x1b\x24\x42\x24\x6b\x1b\x28\x49\x34\x5a\x28\x5d\x1b\x24\x28\x44\x30\x22"), originalUnicode); |
|
265 TestSplittingConvertingFromUnicodeToJis(*characterSetConverter, 14, 17, 5, _L8("\x1b\x28\x4aI \x1b\x24\x42\x30\x26\x24\x39\x24\x6b"), _L8("\x1b\x28\x49\x34\x5a\x28\x5d\x1b\x24\x28\x44\x30\x22"), originalUnicode); |
|
266 TestSplittingConvertingFromUnicodeToJis(*characterSetConverter, 18, 18, 4, _L8("\x1b\x28\x4aI \x1b\x24\x42\x30\x26\x24\x39\x24\x6b\x1b\x28\x49\x34"), _L8("\x1b\x28\x49\x5a\x28\x5d\x1b\x24\x28\x44\x30\x22"), originalUnicode); |
|
267 TestSplittingConvertingFromUnicodeToJis(*characterSetConverter, 19, 19, 3, _L8("\x1b\x28\x4aI \x1b\x24\x42\x30\x26\x24\x39\x24\x6b\x1b\x28\x49\x34\x5a"), _L8("\x1b\x28\x49\x28\x5d\x1b\x24\x28\x44\x30\x22"), originalUnicode); |
|
268 TestSplittingConvertingFromUnicodeToJis(*characterSetConverter, 20, 20, 2, _L8("\x1b\x28\x4aI \x1b\x24\x42\x30\x26\x24\x39\x24\x6b\x1b\x28\x49\x34\x5a\x28"), _L8("\x1b\x28\x49\x5d\x1b\x24\x28\x44\x30\x22"), originalUnicode); |
|
269 TestSplittingConvertingFromUnicodeToJis(*characterSetConverter, 21, 26, 1, _L8("\x1b\x28\x4aI \x1b\x24\x42\x30\x26\x24\x39\x24\x6b\x1b\x28\x49\x34\x5a\x28\x5d"), _L8("\x1b\x24\x28\x44\x30\x22"), originalUnicode); |
|
270 TestSplittingConvertingFromUnicodeToJis(*characterSetConverter, 27, 40, 0, _L8("\x1b\x28\x4aI \x1b\x24\x42\x30\x26\x24\x39\x24\x6b\x1b\x28\x49\x34\x5a\x28\x5d\x1b\x24\x28\x44\x30\x22"), KNullDesC8, originalUnicode); |
|
271 TheTest.Next(_L("Testing converting to Unicode")); |
|
272 |
|
273 /** |
|
274 * Work around for DEF063276. |
|
275 * This literal is now loaded from a z:\test\data\originalJis.dat |
|
276 * Bullseye Coverage corrupts this literal to avoid this it is stored in a file as to not be touched by Bullseye Coverage. |
|
277 */ |
|
278 // const TPtrC8 originalJis(_S8("\\\x1b\x28\x42\\\xb4\\\x0e\x31\x0f\\\x0e\x4a\x5e\x1b\x26\x40\x1b\x24\x42\x30\x24\x1b\x24\x28\x44\x30\x24\x1b\x28\x49\x21\x0e\x22\x0f\x30\x24\x0e")); |
|
279 |
|
280 TBuf8<64> buf; |
|
281 ReadDesc(buf, KOriginalJisFilename, fileServerSession); |
|
282 |
|
283 TBuf16<50> expectedUnicode; |
|
284 expectedUnicode.Format(_L16("\xa5\\%c\xa5%c\xa5%c%c%c%c%c%c0$"), 0xff74, 0xff71, 0xff8a, 0xff9e, 0x963f, 0x4e0c, 0xff61, 0xff62); |
|
285 TestTruncatedConversionToUnicodeFromJis(*characterSetConverter, expectedUnicode, buf); |
|
286 TestTruncatedConversionToUnicodeFromJis(*characterSetConverter, _L16(" Hello"), _L8("\x1b\x24\x42\x1b\x28\x4a\x1b\x24\x42\x1b\x28\x4a\x1b\x26\x40\x1b\x24\x42\x1b\x28\x4a Hello")); |
|
287 TestTruncatedConversionToUnicodeFromJis(*characterSetConverter, _L16(" Hello"), _L8("\x1b\x26\x40\x1b\x24\x42\x1b\x28\x4a Hello")); |
|
288 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 0, 0, 38, 0, expectedUnicode, buf); |
|
289 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 1, 1, 34, 1, expectedUnicode, buf); |
|
290 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 2, 2, 33, 2, expectedUnicode, buf); |
|
291 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 3, 3, 32, 3, expectedUnicode, buf); |
|
292 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 4, 4, 30, 4, expectedUnicode, buf); |
|
293 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 5, 5, 28, 5, expectedUnicode, buf); |
|
294 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 6, 6, 26, 6, expectedUnicode, buf); |
|
295 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 7, 7, 25, 7, expectedUnicode, buf); |
|
296 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 8, 8, 24, 8, expectedUnicode, buf); |
|
297 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 9, 9, 12, 9, expectedUnicode, buf); |
|
298 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 10, 10, 7, 10, expectedUnicode, buf); |
|
299 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 11, 11, 5, 11, expectedUnicode, buf); |
|
300 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 12, 12, 3, 12, expectedUnicode, buf); |
|
301 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 13, 13, 2, 13, expectedUnicode, buf); |
|
302 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 14, 30, 0, 14, expectedUnicode, buf); |
|
303 |
|
304 // End fix |
|
305 TheTest.Next(_L("Testing the default JIS state")); |
|
306 for (i=0; i<=6; ++i) |
|
307 { |
|
308 TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, i, i, 6-i, i, _L16("Hello\xa5"), _L8("Hello\\")); |
|
309 } |
|
310 TheTest.Next(_L("Testing ill-formed JIS")); |
|
311 TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b\x26\x40\x1b\x24\x42\x21\x1b\x28\x4a def")); |
|
312 TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b\x26\x40\x1b\x24\x42\x21\x21\x21\x1b\x28\x4a def")); |
|
313 TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b\x26\x40\x1b\x24\x42\x21\x21\x21\x21\x21\x1b\x28\x4a def")); |
|
314 TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b")); |
|
315 TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b\x24")); |
|
316 TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b\x24\xff")); |
|
317 CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession |
|
318 } |
|
319 |
|
320 GLDEF_C TInt E32Main() |
|
321 { |
|
322 __UHEAP_MARK; |
|
323 |
|
324 TheTest.Title(); |
|
325 |
|
326 CTrapCleanup* trapCleanup=CTrapCleanup::New(); |
|
327 TEST(trapCleanup != NULL); |
|
328 |
|
329 TRAPD(error, DoE32MainL()); |
|
330 TEST2(error, KErrNone); |
|
331 |
|
332 delete trapCleanup; |
|
333 |
|
334 TheTest.End(); |
|
335 TheTest.Close(); |
|
336 |
|
337 __UHEAP_MARKEND; |
|
338 return KErrNone; |
|
339 } |
|
340 |