Update contrib.
2 * Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "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".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
25 const TUint KCharacterSetIdentifier=KCharacterSetIdentifierIscii;
29 TBool __bb = (cond); \
33 ERR_PRINTF1(_L("ERROR: Test Failed")); \
39 const TInt KBufferLength=100;
41 void CT_ISCII::TestConversionToUnicodeFromISCII(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalISCII, TInt aExpectedResult)
43 TInt state=CCnvCharacterSetConverter::KStateDefault;
44 TBuf16<KBufferLength> generatedUnicode;
45 const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalISCII, state);
46 test(returnValue == aExpectedResult );
47 test(generatedUnicode==aExpectedUnicode);
50 void CT_ISCII::TestConversionToUnicodeFromTruncatedISCII(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16&, const TDesC8& aOriginalISCII, TInt aExpectedResult)
52 TInt state=CCnvCharacterSetConverter::KStateDefault;
53 TBuf16<KBufferLength> generatedUnicode;
54 const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalISCII, state);
55 test(returnValue != aExpectedResult );
58 void CT_ISCII::TestConversionFromUnicodeToISCII(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, const TDesC8& aExpectedISCII, TInt aExpectedResult)
60 TBuf8<KBufferLength> generatedISCII;
61 const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedISCII, aOriginalUnicode);
62 test(returnValue == aExpectedResult);
63 test(generatedISCII==aExpectedISCII);
66 void CT_ISCII::TestConversion( CCnvCharacterSetConverter& aCharacterSetConverter )
68 TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x0079"), _L8("\xef\x42\x79"));
69 TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x0079"), _L8("\x79"));
71 TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x0079\x007a\x0070\x0071\x0072\x0073\x0074\x0075"), _L8("\xef\x42\x79\x7a\x70\x71\x72\x73\x74\x75"));
72 TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x0079\x007a\x0070\x0071\x0072\x0073\x0074\x0075"), _L8("\x79\x7a\x70\x71\x72\x73\x74\x75"));
73 TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x0079\x007a\x0070\x0071\x0072\x0073\x0074\x0075\x0901"), _L8("\x79\x7a\x70\x71\x72\x73\x74\x75\xa1"));
74 TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x0079\x007a\x0070\x0071\x0072\x0073\x0074\x0075\x0901\x093d"), _L8("\x79\x7a\x70\x71\x72\x73\x74\x75\xa1\xea\xe9"));
76 TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x0901"), _L8("\xef\x42\xa1"));
77 TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x0901\x0079"), _L8("\xa1\x79"));
78 TestConversionToUnicodeFromTruncatedISCII(aCharacterSetConverter, _L16("\x0901"), _L8("\xa1"));
80 TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x094d"), _L8("\xef\x42\xe8"));
81 TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x200c"), _L8("\xef\x42\xe8"));
82 TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x094d\x0079"), _L8("\xe8\x79"));
84 TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x0950"), _L8("\xef\x42\xa1\xe9"));
87 void CT_ISCII::DoE32MainL()
89 RFs fileServerSession;
90 CleanupClosePushL(fileServerSession);
91 User::LeaveIfError(fileServerSession.Connect());
92 CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC();
93 CArrayFix<CCnvCharacterSetConverter::SCharacterSet>* arrayOfCharacterSetsAvailable=\
94 CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession);
96 INFO_PRINTF1(_L("Available:\n"));
97 for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i)
99 const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i];
100 characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession);
101 TPtrC charactersSetName(charactersSet.Name());
102 if (charactersSet.NameIsFileName())
104 charactersSetName.Set(TParsePtrC(charactersSetName).Name());
106 INFO_PRINTF2(_L(" %S\n"), &charactersSetName);
109 characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession);
111 TestConversion( *characterSetConverter );
113 CleanupStack::PopAndDestroy(3);
118 SetTestStepName(KTestStep_T_ISCII);
121 TVerdict CT_ISCII::doTestStepL()
123 SetTestStepResult(EFail);
126 TRAPD(error1, DoE32MainL());
129 if(error1 == KErrNone)
131 SetTestStepResult(EPass);
134 return TestStepResult();