os/textandloc/charconvfw/charconv_fw/test/rtest/tsrc/utf/tsimple7.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
     1 /*
     2 * Copyright (c) 1997-2009 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 "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 #include <e32std.h>
    20 #include <utf.h>
    21 
    22 ///////////////////////////////////////////////////////////////////////////////////////
    23 
    24 #include "t_simple7.h"
    25 
    26 #define test(cond)                                  \
    27     TEST((cond));                                   \
    28     if (!(cond))                                    \
    29         {                                           \
    30         ERR_PRINTF1(_L("ERROR: Test Failed"));      \
    31         User::Leave(1);                             \
    32         }
    33 
    34 /**
    35 @SYMTestCaseID          SYSLIB-CHARCONV-CT-0562
    36 @SYMTestCaseDesc        Conversion tests from Unicode to UTF-7 character set
    37 @SYMTestPriority        Medium
    38 @SYMTestActions        	Tests for CnvUtfConverter::ConvertFromUnicodeToUtf7() function
    39 						Tests for CnvUtfConverter::ConvertToUnicodeFromUtf7() function
    40 @SYMTestExpectedResults Test must not fail
    41 @SYMREQ                 REQ0000
    42 */
    43 void CT_SIMPLE7::TestSIMPLE7()
    44 	{
    45 	INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0562 Testing simple UTF-7 round trips "));
    46 	TBuf16<256> originalUnicode;
    47 	TBuf8<256> generatedUtf7;
    48 	TBuf16<256> generatedUnicode;
    49 	TInt state=CnvUtfConverter::KStateDefault;
    50 	//
    51 	INFO_PRINTF1(_L("Empty descriptor"));
    52 	originalUnicode=_L16("");
    53 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0);
    54 	test(generatedUtf7==_L8(""));
    55 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
    56 	test(state==CnvUtfConverter::KStateDefault);
    57 	test(generatedUnicode==originalUnicode);
    58 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0);
    59 	test(generatedUtf7==_L8(""));
    60 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
    61 	test(state==CnvUtfConverter::KStateDefault);
    62 	test(generatedUnicode==originalUnicode);
    63 	INFO_PRINTF1(_L("English \"Hello!\""));
    64 	originalUnicode=_L16("Hello!");
    65 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0);
    66 	test(generatedUtf7==_L8("Hello+ACE-"));
    67 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
    68 	test(state==CnvUtfConverter::KStateDefault);
    69 	test(generatedUnicode==originalUnicode);
    70 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0);
    71 	test(generatedUtf7==_L8("Hello!"));
    72 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
    73 	test(state==CnvUtfConverter::KStateDefault);
    74 	test(generatedUnicode==originalUnicode);
    75 	INFO_PRINTF1(_L("Russian \"Hello!\""));
    76 	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);
    77 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0);
    78 	test(generatedUtf7==_L8("+BBcENARABDAEMgRBBEIEMgRDBDkEQgQ1ACE-"));
    79 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
    80 	test(state==CnvUtfConverter::KStateDefault);
    81 	test(generatedUnicode==originalUnicode);
    82 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0);
    83 	test(generatedUtf7==_L8("+BBcENARABDAEMgRBBEIEMgRDBDkEQgQ1-!"));
    84 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
    85 	test(state==CnvUtfConverter::KStateDefault);
    86 	test(generatedUnicode==originalUnicode);
    87 	INFO_PRINTF1(_L("Greek \"Hello!\""));
    88 	originalUnicode.Format(_L16("%c%c%c%c%c!"), 0x0393, 0x03b1, 0x03c3, 0x03bf, 0x03c5);
    89 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0);
    90 	test(generatedUtf7==_L8("+A5MDsQPDA78DxQAh-"));
    91 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
    92 	test(state==CnvUtfConverter::KStateDefault);
    93 	test(generatedUnicode==originalUnicode);
    94 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0);
    95 	test(generatedUtf7==_L8("+A5MDsQPDA78DxQ-!"));
    96 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
    97 	test(state==CnvUtfConverter::KStateDefault);
    98 	test(generatedUnicode==originalUnicode);
    99 	INFO_PRINTF1(_L("Chinese \"Hello!\""));
   100 	originalUnicode.Format(_L16("%c%c!"), 0x4f60, 0x597d);
   101 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0);
   102 	test(generatedUtf7==_L8("+T2BZfQAh-"));
   103 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
   104 	test(state==CnvUtfConverter::KStateDefault);
   105 	test(generatedUnicode==originalUnicode);
   106 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0);
   107 	test(generatedUtf7==_L8("+T2BZfQ-!"));
   108 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
   109 	test(state==CnvUtfConverter::KStateDefault);
   110 	test(generatedUnicode==originalUnicode);
   111 	INFO_PRINTF1(_L("Japanese \"Hello!\""));
   112 	originalUnicode.Format(_L16("%c%c%c!"), 0x4eca, 0x65e5, 0x306f);
   113 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0);
   114 	test(generatedUtf7==_L8("+Tspl5TBvACE-"));
   115 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
   116 	test(state==CnvUtfConverter::KStateDefault);
   117 	test(generatedUnicode==originalUnicode);
   118 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0);
   119 	test(generatedUtf7==_L8("+Tspl5TBv-!"));
   120 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
   121 	test(state==CnvUtfConverter::KStateDefault);
   122 	test(generatedUnicode==originalUnicode);
   123 	INFO_PRINTF1(_L("Trailing \"-\" character"));
   124 	originalUnicode=_L16(":-");
   125 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0);
   126 	test(generatedUtf7==_L8(":-"));
   127 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
   128 	test(state==CnvUtfConverter::KStateDefault);
   129 	test(generatedUnicode==originalUnicode);
   130 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0);
   131 	test(generatedUtf7==_L8(":-"));
   132 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
   133 	test(state==CnvUtfConverter::KStateDefault);
   134 	test(generatedUnicode==originalUnicode);
   135 	originalUnicode=_L16("=-");
   136 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0);
   137 	test(generatedUtf7==_L8("+AD0--"));
   138 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
   139 	test(state==CnvUtfConverter::KStateDefault);
   140 	test(generatedUnicode==originalUnicode);
   141 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0);
   142 	test(generatedUtf7==_L8("=-"));
   143 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
   144 	test(state==CnvUtfConverter::KStateDefault);
   145 	test(generatedUnicode==originalUnicode);
   146 	originalUnicode.Format(_L16("%c-"), 0x1e77);
   147 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0);
   148 	test(generatedUtf7==_L8("+Hnc--"));
   149 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
   150 	test(state==CnvUtfConverter::KStateDefault);
   151 	test(generatedUnicode==originalUnicode);
   152 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0);
   153 	test(generatedUtf7==_L8("+Hnc--"));
   154 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
   155 	test(state==CnvUtfConverter::KStateDefault);
   156 	test(generatedUnicode==originalUnicode);
   157 	INFO_PRINTF1(_L("Interspersed \"+\" characters"));
   158 	originalUnicode.Format(_L16("+%c+&+a+"), 0x52ff);
   159 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0);
   160 	test(generatedUtf7==_L8("+-+Uv8-+-+ACY-+-a+-"));
   161 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
   162 	test(state==CnvUtfConverter::KStateDefault);
   163 	test(generatedUnicode==originalUnicode);
   164 	test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0);
   165 	test(generatedUtf7==_L8("+-+Uv8-+-&+-a+-"));
   166 	test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0);
   167 	test(state==CnvUtfConverter::KStateDefault);
   168 	test(generatedUnicode==originalUnicode);
   169 
   170 	}
   171 
   172 CT_SIMPLE7::CT_SIMPLE7()
   173     {
   174     SetTestStepName(KTestStep_T_SIMPLE7);
   175     }
   176 
   177 TVerdict CT_SIMPLE7::doTestStepL()
   178     {
   179     SetTestStepResult(EFail);
   180 
   181     __UHEAP_MARK;
   182 
   183     TRAPD(error1, TestSIMPLE7());
   184 
   185 
   186     __UHEAP_MARKEND;
   187 
   188     if(error1 == KErrNone)
   189         {
   190         SetTestStepResult(EPass);
   191         }
   192 
   193     return TestStepResult();
   194     }