sl@0: /* sl@0: * Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * sl@0: */ sl@0: sl@0: sl@0: #include <e32std.h> sl@0: #include <utf.h> sl@0: sl@0: /////////////////////////////////////////////////////////////////////////////////////// sl@0: sl@0: #include "t_simple7.h" sl@0: sl@0: #define test(cond) \ sl@0: TEST((cond)); \ sl@0: if (!(cond)) \ sl@0: { \ sl@0: ERR_PRINTF1(_L("ERROR: Test Failed")); \ sl@0: User::Leave(1); \ sl@0: } sl@0: sl@0: /** sl@0: @SYMTestCaseID SYSLIB-CHARCONV-CT-0562 sl@0: @SYMTestCaseDesc Conversion tests from Unicode to UTF-7 character set sl@0: @SYMTestPriority Medium sl@0: @SYMTestActions Tests for CnvUtfConverter::ConvertFromUnicodeToUtf7() function sl@0: Tests for CnvUtfConverter::ConvertToUnicodeFromUtf7() function sl@0: @SYMTestExpectedResults Test must not fail sl@0: @SYMREQ REQ0000 sl@0: */ sl@0: void CT_SIMPLE7::TestSIMPLE7() sl@0: { sl@0: INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0562 Testing simple UTF-7 round trips ")); sl@0: TBuf16<256> originalUnicode; sl@0: TBuf8<256> generatedUtf7; sl@0: TBuf16<256> generatedUnicode; sl@0: TInt state=CnvUtfConverter::KStateDefault; sl@0: // sl@0: INFO_PRINTF1(_L("Empty descriptor")); sl@0: originalUnicode=_L16(""); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); sl@0: test(generatedUtf7==_L8("")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); sl@0: test(generatedUtf7==_L8("")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: INFO_PRINTF1(_L("English \"Hello!\"")); sl@0: originalUnicode=_L16("Hello!"); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); sl@0: test(generatedUtf7==_L8("Hello+ACE-")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); sl@0: test(generatedUtf7==_L8("Hello!")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: INFO_PRINTF1(_L("Russian \"Hello!\"")); sl@0: originalUnicode.Format(_L16("%c%c%c%c%c%c%c%c%c%c%c%c!"), 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443, 0x0439, 0x0442, 0x0435); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); sl@0: test(generatedUtf7==_L8("+BBcENARABDAEMgRBBEIEMgRDBDkEQgQ1ACE-")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); sl@0: test(generatedUtf7==_L8("+BBcENARABDAEMgRBBEIEMgRDBDkEQgQ1-!")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: INFO_PRINTF1(_L("Greek \"Hello!\"")); sl@0: originalUnicode.Format(_L16("%c%c%c%c%c!"), 0x0393, 0x03b1, 0x03c3, 0x03bf, 0x03c5); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); sl@0: test(generatedUtf7==_L8("+A5MDsQPDA78DxQAh-")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); sl@0: test(generatedUtf7==_L8("+A5MDsQPDA78DxQ-!")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: INFO_PRINTF1(_L("Chinese \"Hello!\"")); sl@0: originalUnicode.Format(_L16("%c%c!"), 0x4f60, 0x597d); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); sl@0: test(generatedUtf7==_L8("+T2BZfQAh-")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); sl@0: test(generatedUtf7==_L8("+T2BZfQ-!")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: INFO_PRINTF1(_L("Japanese \"Hello!\"")); sl@0: originalUnicode.Format(_L16("%c%c%c!"), 0x4eca, 0x65e5, 0x306f); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); sl@0: test(generatedUtf7==_L8("+Tspl5TBvACE-")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); sl@0: test(generatedUtf7==_L8("+Tspl5TBv-!")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: INFO_PRINTF1(_L("Trailing \"-\" character")); sl@0: originalUnicode=_L16(":-"); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); sl@0: test(generatedUtf7==_L8(":-")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); sl@0: test(generatedUtf7==_L8(":-")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: originalUnicode=_L16("=-"); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); sl@0: test(generatedUtf7==_L8("+AD0--")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); sl@0: test(generatedUtf7==_L8("=-")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: originalUnicode.Format(_L16("%c-"), 0x1e77); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); sl@0: test(generatedUtf7==_L8("+Hnc--")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); sl@0: test(generatedUtf7==_L8("+Hnc--")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: INFO_PRINTF1(_L("Interspersed \"+\" characters")); sl@0: originalUnicode.Format(_L16("+%c+&+a+"), 0x52ff); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); sl@0: test(generatedUtf7==_L8("+-+Uv8-+-+ACY-+-a+-")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); sl@0: test(generatedUtf7==_L8("+-+Uv8-+-&+-a+-")); sl@0: test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); sl@0: test(state==CnvUtfConverter::KStateDefault); sl@0: test(generatedUnicode==originalUnicode); sl@0: sl@0: } sl@0: sl@0: CT_SIMPLE7::CT_SIMPLE7() sl@0: { sl@0: SetTestStepName(KTestStep_T_SIMPLE7); sl@0: } sl@0: sl@0: TVerdict CT_SIMPLE7::doTestStepL() sl@0: { sl@0: SetTestStepResult(EFail); sl@0: sl@0: __UHEAP_MARK; sl@0: sl@0: TRAPD(error1, TestSIMPLE7()); sl@0: sl@0: sl@0: __UHEAP_MARKEND; sl@0: sl@0: if(error1 == KErrNone) sl@0: { sl@0: SetTestStepResult(EPass); sl@0: } sl@0: sl@0: return TestStepResult(); sl@0: }