# HG changeset patch # User hgs # Date 1282794378 -28800 # Node ID 11e2bb0d14bab8a03c722ba41e4f5574a1a9a95d # Parent 6124ff6478cc8e5bbb4423d536b4e29831115434 201028_05 diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/group/T_CharConvFWServer.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/group/T_CharConvFWServer.mmp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,67 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +TARGET t_charconvfwserver.exe +TARGETTYPE exe +UID 0x1000007A 0xE27AD85E +//UID 0 0xE27AD85D + +CAPABILITY ProtServ + +USERINCLUDE ../inc +USERINCLUDE ../test/rtest/tsrc/inc +USERINCLUDE ../test/rtest/tsrc/otherutf + +APP_LAYER_SYSTEMINCLUDE +OS_LAYER_LIBC_SYSTEMINCLUDE + + +SOURCEPATH ../test +//SOURCEPATH ../test/rtest/tsrc/otherutf + + +SOURCE t_charconvfwserver.cpp +SOURCEPATH ../test/rtest/tsrc/utf +SOURCE tsimple7.cpp +SOURCE tsimple8.cpp +SOURCE trfc1642.cpp +SOURCE tcomp7.cpp +SOURCE tcomp8.cpp +SOURCE trealut8.cpp +SOURCE trealuni.cpp +SOURCE terror.cpp +SOURCE tnewlin7.cpp +SOURCE tjava.cpp +SOURCE tpartial.cpp +SOURCE timap.cpp + +SOURCEPATH ../test/rtest/tsrc/main +SOURCE t_memory.cpp + + +LIBRARY euser.lib +LIBRARY charconv.lib +LIBRARY efsrv.lib +LIBRARY utf8.lib +LIBRARY utf7.lib +LIBRARY testexecuteutils.lib +LIBRARY testexecutelogclient.lib + +#ifdef ENABLE_ABIV2_MODE +DEBUGGABLE_UDEBONLY +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/group/T_CharConvFWServer.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/group/T_CharConvFWServer.pkg Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,42 @@ +; +; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +; All rights reserved. +; This component and the accompanying materials are made available +; under the terms of "Eclipse Public License v1.0" +; which accompanies this distribution, and is available +; at the URL "http:;www.eclipse.org/legal/epl-v10.html". +; +; Initial Contributors: +; Nokia Corporation - initial contribution. +; +; Contributors: +; +; Description: +; + +;Languages +&EN + +;Localised Vendor name +%{"t_PTPipsuite EN"} + +; Vendor name +: "t_PTPipsuite" + +; test scripts + +"\epoc32\data\z\test\T_MEMORY.script"-"c:\charconvfwtest\T_MEMORY.script" +"\epoc32\data\z\test\T_SIMPLE7.script"-"c:\charconvfwtest\T_SIMPLE7.script" +"\epoc32\data\z\test\T_SIMPLE8.script"-"c:\charconvfwtest\T_SIMPLE8.script" +"\epoc32\data\z\test\T_RFC1642.script"-"c:\charconvfwtest\T_RFC1642.script" +"\epoc32\data\z\test\T_COMP7.script"-"c:\charconvfwtest\T_COMP7.script" +"\epoc32\data\z\test\T_COMP8.script"-"c:\charconvfwtest\T_COMP8.script" +"\epoc32\data\z\test\T_REALUT8.script"-"c:\charconvfwtest\T_REALUT8.script" +"\epoc32\data\z\test\T_REALUNI.script"-"c:\charconvfwtest\T_REALUNI.script" +"\epoc32\data\z\test\T_MEMORY.script"-"c:\charconvfwtest\T_MEMORY.script" +"\epoc32\data\z\test\T_ERROR.script"-"c:\charconvfwtest\T_ERROR.script" +"\epoc32\data\z\test\T_NEWLIN7.script"-"c:\charconvfwtest\T_NEWLIN7.script" +"\epoc32\data\z\test\T_JAVA.script"-"c:\charconvfwtest\T_JAVA.script" +"\epoc32\data\z\test\T_PARTIAL.script"-"c:\charconvfwtest\T_PARTIAL.script" +"\epoc32\data\z\test\T_IMAP.script"-"c:\charconvfwtest\T_IMAP.script" + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/group/bld.inf --- a/charconvfw/charconv_fw/group/bld.inf Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconv_fw/group/bld.inf Thu Aug 26 11:46:18 2010 +0800 @@ -74,25 +74,28 @@ ../test/data/ethiopic.ut8 /epoc32/winscw/c/system/data/ethiopic.ut8 ../test/data/daxue.uni /epoc32/winscw/c/system/data/daxue.uni - ../test/rtest/group/charconvtests.bat /epoc32/data/z/system/test/charconvtests.bat + ../test/T_All_charcovfw.bat z:/test/T_All_charcovfw.bat + ../test/T_All_charcovfw.script z:/test/T_All_charcovfw.script + ../test/T_MEMORY.script z:/test/T_MEMORY.script + ../test/T_SIMPLE7.script z:/test/T_SIMPLE7.script + ../test/T_SIMPLE8.script z:/test/T_SIMPLE8.script + ../test/T_RFC1642.script z:/test/T_RFC1642.script + ../test/T_COMP7.script z:/test/T_COMP7.script + ../test/T_COMP8.script z:/test/T_COMP8.script + ../test/T_REALUT8.script z:/test/T_REALUT8.script + ../test/T_REALUNI.script z:/test/T_REALUNI.script + ../test/T_ERROR.script z:/test/T_ERROR.script + ../test/T_NEWLIN7.script z:/test/T_NEWLIN7.script + ../test/T_JAVA.script z:/test/T_JAVA.script + ../test/T_PARTIAL.script z:/test/T_PARTIAL.script + ../test/T_IMAP.script z:/test/T_IMAP.script + ../test/rtest/group/charconvtests.iby /epoc32/rom/include/charconvtests.iby PRJ_TESTMMPFILES ../test/rtest/group/utf7.mmp support // used by tcomp7 ../test/rtest/group/utf8.mmp support // used by tcomp8 - ../test/rtest/group/t_memory.mmp - ../test/rtest/group/tsimple7.mmp - ../test/rtest/group/tsimple8.mmp - ../test/rtest/group/trfc1642.mmp - ../test/rtest/group/tcomp7.mmp - ../test/rtest/group/tcomp8.mmp - ../test/rtest/group/trealut8.mmp - ../test/rtest/group/trealuni.mmp - ../test/rtest/group/terror.mmp - ../test/rtest/group/tnewlin7.mmp - ../test/rtest/group/tjava.mmp - ../test/rtest/group/tpartial.mmp - ../test/rtest/group/timap.mmp + ../group/T_CharConvFWServer.mmp #endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/group/t_charconvfw.pkg --- a/charconvfw/charconv_fw/group/t_charconvfw.pkg Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -; -; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -; All rights reserved. -; This component and the accompanying materials are made available -; under the terms of "Eclipse Public License v1.0" -; which accompanies this distribution, and is available -; at the URL "http:;www.eclipse.org/legal/epl-v10.html". -; -; Initial Contributors: -; Nokia Corporation - initial contribution. -; -; Contributors: -; -; Description: -; - -;Languages -&EN - -;Localised Vendor name -%{"t_PTPipsuite EN"} - -; Vendor name -: "t_PTPipsuite" - -; test scripts -"\epoc32\release\$(platform)\$(target)\t_memory.exe"-"c:\sys\bin\t_memory.exe" -"\epoc32\release\$(platform)\$(target)\tsimple7.exe"-"c:\sys\bin\tsimple7.exe" -"\epoc32\release\$(platform)\$(target)\tsimple8.exe"-"c:\sys\bin\tsimple8.exe" -"\epoc32\release\$(platform)\$(target)\trfc1642.exe"-"c:\sys\bin\trfc1642.exe" -"\epoc32\release\$(platform)\$(target)\tcomp7.exe"-"c:\sys\bin\tcomp7.exe" -"\epoc32\release\$(platform)\$(target)\tcomp8.exe"-"c:\sys\bin\tcomp8.exe" -"\epoc32\release\$(platform)\$(target)\trealut8.exe"-"c:\sys\bin\trealut8.exe" -"\epoc32\release\$(platform)\$(target)\trealuni.exe"-"c:\sys\bin\trealuni.exe" -"\epoc32\release\$(platform)\$(target)\terror.exe"-"c:\sys\bin\terror.exe" -"\epoc32\release\$(platform)\$(target)\tnewlin7.exe"-"c:\sys\bin\tnewlin7.exe" -"\epoc32\release\$(platform)\$(target)\tjava.exe"-"c:\sys\bin\tjava.exe" -"\epoc32\release\$(platform)\$(target)\tpartial.exe"-"c:\sys\bin\tpartial.exe" -"\epoc32\release\$(platform)\$(target)\timap.exe"-"c:\sys\bin\timap.exe" diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/charconvtests.bat --- a/charconvfw/charconv_fw/test/rtest/group/charconvtests.bat Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -@rem -@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -@rem All rights reserved. -@rem This component and the accompanying materials are made available -@rem under the terms of "Eclipse Public License v1.0" -@rem which accompanies this distribution, and is available -@rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -@rem -@rem Initial Contributors: -@rem Nokia Corporation - initial contribution. -@rem -@rem Contributors: -@rem -@rem Description: -@rem - -t_memory -tsimple7 -tsimple8 -trfc1642 -tcomp7 -tcomp8 -trealut8 -trealuni -terror -tnewlin7 -tjava -tpartial -timap diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/charconvtests.iby --- a/charconvfw/charconv_fw/test/rtest/group/charconvtests.iby Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconv_fw/test/rtest/group/charconvtests.iby Thu Aug 26 11:46:18 2010 +0800 @@ -20,28 +20,16 @@ #define __CHARCONVTESTS_IBY__ // Batch file that runs all automatic charconv tests. -data=ZSYSTEM\test\charconvtests.bat test\charconvtests.bat #include data=EPOCROOT##epoc32\wins\c\system\data\ethiopic.ut8 system\data\ethiopic.ut8 data=EPOCROOT##epoc32\wins\c\system\data\daxue.uni system\data\daxue.uni + +file=ABI_DIR\BUILD_DIR\t_charconvfwserver.exe sys\bin\t_charconvfwserver.exe file=ABI_DIR\BUILD_DIR\utf7.dll system\libs\utf7.dll file=ABI_DIR\BUILD_DIR\utf8.dll system\libs\utf8.dll -file=ABI_DIR\BUILD_DIR\t_memory.exe test\t_memory.exe -file=ABI_DIR\BUILD_DIR\tsimple7.exe test\tsimple7.exe -file=ABI_DIR\BUILD_DIR\tsimple8.exe test\tsimple8.exe -file=ABI_DIR\BUILD_DIR\trfc1642.exe test\trfc1642.exe -file=ABI_DIR\BUILD_DIR\tcomp7.exe test\tcomp7.exe -file=ABI_DIR\BUILD_DIR\tcomp8.exe test\tcomp8.exe -file=ABI_DIR\BUILD_DIR\trealut8.exe test\trealut8.exe -file=ABI_DIR\BUILD_DIR\trealuni.exe test\trealuni.exe -file=ABI_DIR\BUILD_DIR\terror.exe test\terror.exe -file=ABI_DIR\BUILD_DIR\tnewlin7.exe test\tnewlin7.exe -file=ABI_DIR\BUILD_DIR\tjava.exe test\tjava.exe -file=ABI_DIR\BUILD_DIR\tpartial.exe test\tpartial.exe -file=ABI_DIR\BUILD_DIR\timap.exe test\timap.exe #endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/runtests.bat --- a/charconvfw/charconv_fw/test/rtest/group/runtests.bat Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -@echo off -@rem -@rem Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -@rem All rights reserved. -@rem This component and the accompanying materials are made available -@rem under the terms of "Eclipse Public License v1.0" -@rem which accompanies this distribution, and is available -@rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -@rem -@rem Initial Contributors: -@rem Nokia Corporation - initial contribution. -@rem -@rem Contributors: -@rem -@rem Description: -@rem - -t_memory.exe -tsimple7.exe -tsimple8.exe -trfc1642.exe -tcomp7.exe -tcomp8.exe -trealut8.exe -trealuni.exe -terror.exe -tnewlin7.exe -tjava.exe -tpartial.exe -timap.exe diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/t_memory.mmp --- a/charconvfw/charconv_fw/test/rtest/group/t_memory.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET t_memory.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../tsrc/main -SOURCE t_memory.cpp - -LIBRARY efsrv.lib -LIBRARY euser.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/tcomp7.mmp --- a/charconvfw/charconv_fw/test/rtest/group/tcomp7.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tcomp7.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../tsrc/otherutf - -SOURCEPATH ../tsrc/utf -SOURCE tcomp7.cpp - -LIBRARY euser.lib -LIBRARY charconv.lib -LIBRARY utf7.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/tcomp8.mmp --- a/charconvfw/charconv_fw/test/rtest/group/tcomp8.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tcomp8.exe -TARGETTYPE exe - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../tsrc/otherutf - -SOURCEPATH ../tsrc/utf -SOURCE tcomp8.cpp - -LIBRARY euser.lib -LIBRARY charconv.lib -LIBRARY utf8.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/terror.mmp --- a/charconvfw/charconv_fw/test/rtest/group/terror.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET terror.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../tsrc/utf -SOURCE terror.cpp - -LIBRARY euser.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/timap.mmp --- a/charconvfw/charconv_fw/test/rtest/group/timap.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET timap.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../tsrc/utf -SOURCE timap.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/tjava.mmp --- a/charconvfw/charconv_fw/test/rtest/group/tjava.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tjava.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../tsrc/utf -SOURCE tjava.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/tnewlin7.mmp --- a/charconvfw/charconv_fw/test/rtest/group/tnewlin7.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tnewlin7.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../tsrc/utf -SOURCE tnewlin7.cpp - -LIBRARY euser.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/tpartial.mmp --- a/charconvfw/charconv_fw/test/rtest/group/tpartial.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tpartial.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../tsrc/utf -SOURCE tpartial.cpp - -LIBRARY euser.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/trealuni.mmp --- a/charconvfw/charconv_fw/test/rtest/group/trealuni.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET trealuni.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../tsrc/utf -SOURCE trealuni.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/trealut8.mmp --- a/charconvfw/charconv_fw/test/rtest/group/trealut8.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET trealut8.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../tsrc/utf -SOURCE trealut8.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/trfc1642.mmp --- a/charconvfw/charconv_fw/test/rtest/group/trfc1642.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET trfc1642.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../tsrc/utf -SOURCE trfc1642.cpp - -LIBRARY euser.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/tsimple7.mmp --- a/charconvfw/charconv_fw/test/rtest/group/tsimple7.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tsimple7.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../tsrc/utf -SOURCE tsimple7.cpp - -LIBRARY euser.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/group/tsimple8.mmp --- a/charconvfw/charconv_fw/test/rtest/group/tsimple8.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tsimple8.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../tsrc/utf -SOURCE tsimple8.cpp - -LIBRARY euser.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/inc/t_comp7.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/inc/t_comp7.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_COMP7_H__ +#define __T_COMP7_H__ + +//#include +#include + +class CT_COMP7 : public CTestStep + { +public: + CT_COMP7(); +protected: + TVerdict doTestStepL(); +private: + void TestCOMP7(); + }; + +_LIT(KTestStep_T_COMP7, "T_COMP7"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/inc/t_comp8.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/inc/t_comp8.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ + +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_COMP8_H__ +#define __T_COMP8_H__ + +//#include +#include + +class CT_COMP8 : public CTestStep + { +public: + CT_COMP8(); +protected: + TVerdict doTestStepL(); +private: + void TestCOMP8(); + }; + +_LIT(KTestStep_T_COMP8, "T_COMP8"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/inc/t_error.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/inc/t_error.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,49 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_ERROR_H__ +#define __T_ERROR_H__ + +//#include +#include +#include +#include + +typedef TInt (*FConvertFromUtfX)(TDes16& aUnicode, const TDesC8& aUtfX, TInt& aState); + +typedef TInt (*FConvertToUtfX)(TDes8& aUtfX, const TDesC16& aUnicode); + +class CT_ERROR : public CTestStep + { +public: + CT_ERROR(); +protected: + TVerdict doTestStepL(); +private: + void TestERROR(); + void ExhaustivelyLengthTest(const TDesC16& aUnicode, const TDesC8& aUtfX, FConvertFromUtfX aConvertFromUtfX); + void ExhaustivelyLengthTest(const TDesC8& aUtfX, const TDesC16& aUnicode, FConvertToUtfX aConvertToUtfX); + void ExhaustivelyLengthTest(const TDesC16& aUnicode, const TDesC8& aUtf7WithOptionalDirectCharactersEncodedInBase64, const TDesC8& aUtf7WithOptionalDirectCharactersEncodedDirectly, const TDesC8& aUtf8); + void ExhaustivelyLengthTest(const TDesC16& aUnicode, const TDesC8& aUtf7, const TDesC8& aUtf8); + void LengthTestGeneratingUtf7(); + void LengthTestGeneratingUtf8(); + }; + +_LIT(KTestStep_T_ERROR, "T_ERROR"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/inc/t_imap.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/inc/t_imap.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_IMAP_H__ +#define __T_IMAP_H__ + +//#include +#include + +class CT_IMAP : public CTestStep + { +public: + CT_IMAP(); +protected: + TVerdict doTestStepL(); +private: + void TestIMAP(); + }; + +_LIT(KTestStep_T_IMAP, "T_IMAP"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/inc/t_java.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/inc/t_java.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_JAVA_H__ +#define __T_JAVA_H__ + +//#include +#include + +class CT_JAVA : public CTestStep + { +public: + CT_JAVA(); +protected: + TVerdict doTestStepL(); +private: + void Test_JAVA(); + }; + +_LIT(KTestStep_T_JAVA, "T_JAVA"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/inc/t_memory.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/inc/t_memory.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_MEMORY_H__ +#define __T_MEMORY_H__ + +//#include +#include + +class CT_MEMORY : public CTestStep + { +public: + CT_MEMORY(); +protected: + TVerdict doTestStepL(); +private: + void TestDef41901L(); + }; + +_LIT(KTestStep_T_MEMORY, "T_MEMORY"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/inc/t_newlin7.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/inc/t_newlin7.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_NEWLIN7_H__ +#define __T_NEWLIN7_H__ + +//#include +#include + +class CT_NEWLIN7 : public CTestStep + { +public: + CT_NEWLIN7(); +protected: + TVerdict doTestStepL(); +private: + void TestNEWLIN7(); + }; + +_LIT(KTestStep_T_NEWLIN7, "T_NEWLIN7"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/inc/t_partial.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/inc/t_partial.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,40 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_PARTIAL_H__ +#define __T_PARTIAL_H__ + +//#include +#include + +class CT_PARTIAL : public CTestStep + { +public: + CT_PARTIAL(); +protected: + TVerdict doTestStepL(); +private: + void TestPARTIAL(); + void TestConvertingToUtf(TUint8* aUtfBuffer, TInt aMaximumLengthOfUtfDescriptor, const TDesC16& aUnicode, TBool aBoolParameter, TInt aNumberOfUnicodeItemsExpectedToBeConverted, const TDesC8& aFirstHalfOfUtfExpected, const TDesC8& aSecondHalfOfUtfExpected); + void TestUtf7StatePreservation(const TDesC8& aUtf7); + void TestConvertingToUtf(TUint8* aUtfBuffer, TInt aMaximumLengthOfUtfDescriptor, const TDesC16& aUnicode, TInt aNumberOfUnicodeItemsExpectedToBeConverted, const TDesC8& aFirstHalfOfUtfExpected, const TDesC8& aSecondHalfOfUtfExpected); + }; + +_LIT(KTestStep_T_PARTIAL, "T_PARTIAL"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/inc/t_realuni.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/inc/t_realuni.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_REALUNI_H__ +#define __T_REALUNI_H__ + +//#include +#include + +class CT_REALUNI : public CTestStep + { +public: + CT_REALUNI(); +protected: + TVerdict doTestStepL(); +private: + void TestREALUNI(); + }; + +_LIT(KTestStep_T_REALUNI, "T_REALUNI"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/inc/t_realut8.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/inc/t_realut8.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_REALUT8_H__ +#define __T_REALUT8_H__ + +//#include +#include + +class CT_REALUT8 : public CTestStep + { +public: + CT_REALUT8(); +protected: + TVerdict doTestStepL(); +private: + void TestREALUT8(); + }; + +_LIT(KTestStep_T_REALUT8, "T_REALUT8"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/inc/t_rfc1642.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/inc/t_rfc1642.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,36 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_RFC1642_H__ +#define __T_RFC1642_H__ + +//#include +#include + +class CT_RFC1642 : public CTestStep + { +public: + CT_RFC1642(); +protected: + TVerdict doTestStepL(); +private: + void TestRFC1642(); + }; + +_LIT(KTestStep_T_RFC1642, "T_RFC1642"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/inc/t_simple7.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/inc/t_simple7.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_SIMPLE7_H__ +#define __T_SIMPLE7_H__ + +//#include +#include + +class CT_SIMPLE7 : public CTestStep + { +public: + CT_SIMPLE7(); +protected: + TVerdict doTestStepL(); +private: + void TestSIMPLE7(); + }; + +_LIT(KTestStep_T_SIMPLE7, "T_SIMPLE7"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/inc/t_simple8.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/inc/t_simple8.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_SIMPLE8_H__ +#define __T_SIMPLE8_H__ + +//#include +#include + +class CT_SIMPLE8 : public CTestStep + { +public: + CT_SIMPLE8(); +protected: + TVerdict doTestStepL(); +private: + void TestForUtf8BomL(); + void TestSimple8(); + }; + +_LIT(KTestStep_T_SIMPLE8, "T_SIMPLE8"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/main/t_memory.cpp --- a/charconvfw/charconv_fw/test/rtest/tsrc/main/t_memory.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/main/t_memory.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -20,7 +20,6 @@ #include #include -#include #include #include #include @@ -29,31 +28,17 @@ /////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("T_Memory")); + +#include "t_memory.h" -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) +#define test(cond) \ + TEST((cond)); \ + if (!(cond)) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } + /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// @@ -111,12 +96,12 @@ @SYMTestExpectedResults Test must not fail @SYMREQ REQ0000 */ -LOCAL_C void TestDef41901L() +void CT_MEMORY::TestDef41901L() { RFs fileServerSession; CleanupClosePushL(fileServerSession); User::LeaveIfError(fileServerSession.Connect()); - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0561 T_memory Charconv test for DEF041901\n ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0561 T_memory Charconv test for DEF041901\n ")); // create an instance of CCnvCharacterSetConverter CCnvCharacterSetConverter* charConverter1; @@ -130,10 +115,10 @@ outputString.SetLength(0); availability = charConverter1->PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, fileServerSession); - TEST(availability == CCnvCharacterSetConverter::EAvailable); + test(availability == CCnvCharacterSetConverter::EAvailable); unconvertedCount = charConverter1->ConvertFromUnicode(outputString, KSourceString); - TEST(unconvertedCount == 0); - TheTest.Printf(_L("After first charConverter1 conversion.\n")); + test(unconvertedCount == 0); + INFO_PRINTF1(_L("After first charConverter1 conversion.\n")); // perfrom heap checking on a second instance of CCnvCharacterSetConverter TInt pass=1; @@ -143,46 +128,45 @@ __UHEAP_FAILNEXT(pass); TRAP(ret,CreateAndDestroyConverterL()); __UHEAP_RESET; - TheTest.Printf(_L("CCnvCharacterSetConverter OOM test: pass[%d] ret[%d]\n"),pass,ret); + INFO_PRINTF3(_L("CCnvCharacterSetConverter OOM test: pass[%d] ret[%d]\n"),pass,ret); pass++; } // now testing of charConverter2 is complete, test that charConverter1 is still ok. // Note: this is the test code DEF041901 see teamtrack for more details. availability = charConverter1->PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, fileServerSession); - TEST(availability == CCnvCharacterSetConverter::EAvailable); + test(availability == CCnvCharacterSetConverter::EAvailable); unconvertedCount = charConverter1->ConvertFromUnicode(outputString, KSourceString); - TEST(unconvertedCount == 0); + test(unconvertedCount == 0); - TheTest.Printf(_L("Charconv test for DEF041901 passed ok\n")); + INFO_PRINTF1(_L("Charconv test for DEF041901 passed ok\n")); CleanupStack::PopAndDestroy(charConverter1); CleanupStack::PopAndDestroy(); // RFs } -LOCAL_C void DoE32MainL() - { - TestDef41901L(); - } +CT_MEMORY::CT_MEMORY() + { + SetTestStepName(KTestStep_T_MEMORY); + } + -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; +TVerdict CT_MEMORY::doTestStepL() + { + SetTestStepResult(EFail); - TheTest.Title(); + __UHEAP_MARK; - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); + TRAPD(error1, TestDef41901L()); - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); + + __UHEAP_MARKEND; - delete trapCleanup; + if(error1 == KErrNone ) + { + SetTestStepResult(EPass); + } - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/utf/tcomp7.cpp --- a/charconvfw/charconv_fw/test/rtest/tsrc/utf/tcomp7.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/utf/tcomp7.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -17,25 +17,22 @@ #include -#include #include #include "utf7.h" +#include "t_comp7.h" /////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TComp7")); -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -#define TEST(arg) ::Check((arg), __LINE__) +#define test(cond) \ + TEST((cond)); \ + if (!(cond)) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } + + /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// @@ -58,9 +55,9 @@ @SYMTestExpectedResults Test must not fail @SYMREQ REQ0000 */ -GLDEF_C TInt E32Main() +void CT_COMP7::TestCOMP7() { - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0565 Comparing behaviour with the Unicode CD-ROM UTF-7 sample code ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0565 Comparing behaviour with the Unicode CD-ROM UTF-7 sample code ")); TDes16* originalUnicode=new TBuf16<512>; TDes8* generatedUtf7=new TBuf8<1024>; TDes8* otherGeneratedUtf7=new TBuf8<1024>; @@ -85,30 +82,30 @@ EUtf7FlagCrossOver =0x00000008, EUtf7FlagDone =0x00000010 }; - TheTest.Next(_L("Round-trips via UTF-7")); + INFO_PRINTF1(_L("Round-trips via UTF-7")); for (TInt i=0; ~i&EUtf7FlagDone; ++i) { - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(*generatedUtf7, *originalUnicode, i&EUtf7FlagOptional)==0); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(*generatedUtf7, *originalUnicode, i&EUtf7FlagOptional)==0); {__ASSERT_ALWAYS(originalUnicode->Length()MaxLength(), Panic(EPanicNoFreeSpaceAtEndOfBuffer1)); TUint16* sourceStart=CONST_CAST(TUint16*, originalUnicode->Ptr()); TUint16* sourceEnd=sourceStart+originalUnicode->Length(); char* targetStart=REINTERPRET_CAST(char*, CONST_CAST(TUint8*, otherGeneratedUtf7->Ptr())); char* targetEnd=targetStart+(otherGeneratedUtf7->MaxLength()-1); - TEST(ConvertUCS2toUTF7(&sourceStart, sourceEnd, &targetStart, targetEnd, i&EUtf7FlagOtherOptional, i&EUtf7FlagOtherVerbose)==ok); + test(ConvertUCS2toUTF7(&sourceStart, sourceEnd, &targetStart, targetEnd, i&EUtf7FlagOtherOptional, i&EUtf7FlagOtherVerbose)==ok); otherGeneratedUtf7->SetLength(targetStart-REINTERPRET_CAST(char*, CONST_CAST(TUint8*, otherGeneratedUtf7->Ptr())));} TDes8& sourceForReturnTrip=(i&EUtf7FlagCrossOver)? *otherGeneratedUtf7: *generatedUtf7; TDes8& otherSourceForReturnTrip=(i&EUtf7FlagCrossOver)? *generatedUtf7: *otherGeneratedUtf7; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(*generatedUnicode, sourceForReturnTrip, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(*generatedUnicode, sourceForReturnTrip, state)==0); + test(state==CnvUtfConverter::KStateDefault); {__ASSERT_ALWAYS(otherSourceForReturnTrip.Length()Ptr()); TUint16* targetEnd=targetStart+(otherGeneratedUnicode->MaxLength()-1); - TEST(ConvertUTF7toUCS2(&sourceStart, sourceEnd, &targetStart, targetEnd)==ok); + test(ConvertUTF7toUCS2(&sourceStart, sourceEnd, &targetStart, targetEnd)==ok); otherGeneratedUnicode->SetLength(targetStart-otherGeneratedUnicode->Ptr());} - TEST(*generatedUnicode==*originalUnicode); - TEST(*generatedUnicode==*otherGeneratedUnicode); + test(*generatedUnicode==*originalUnicode); + test(*generatedUnicode==*otherGeneratedUnicode); } // delete originalUnicode; @@ -117,9 +114,27 @@ delete generatedUnicode; delete otherGeneratedUnicode; - TheTest.End(); - TheTest.Close(); - - return KErrNone; } +CT_COMP7::CT_COMP7() + { + SetTestStepName(KTestStep_T_COMP7); + } + +TVerdict CT_COMP7::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + + TRAPD(error1, TestCOMP7()); + + __UHEAP_MARKEND; + + if(error1 == KErrNone ) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/utf/tcomp8.cpp --- a/charconvfw/charconv_fw/test/rtest/tsrc/utf/tcomp8.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/utf/tcomp8.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -17,25 +17,19 @@ #include -#include #include #include "utf8.h" - +#include "t_comp8.h" /////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TComp8")); -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -#define TEST(arg) ::Check((arg), __LINE__) +#define test(cond) \ + TEST((cond)); \ + if (!(cond)) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// @@ -58,9 +52,9 @@ @SYMTestExpectedResults Test must not fail @SYMREQ REQ0000 */ -GLDEF_C TInt E32Main() +void CT_COMP8::TestCOMP8() { - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0566 Comparing behaviour with the Unicode CD-ROM UTF-8 sample code ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0566 Comparing behaviour with the Unicode CD-ROM UTF-8 sample code ")); TDes16* originalUnicode=new TBuf16<512>; TDes8* generatedUtf8=new TBuf8<1024>; TDes8* otherGeneratedUtf8=new TBuf8<1024>; @@ -76,34 +70,56 @@ originalUnicode->AppendFormat(_L16("Here are some Han characters: %c%c%c%c%c%c%c%c%c%c. "), 0x7f0c, 0x7a92, 0x6d90, 0x6272, 0x5934, 0x5973, 0x55ce, 0x516c, 0x4ec0, 0x4e00); originalUnicode->AppendFormat(_L16("Here are some surrogate pairs: %c%c%c%c%c%c%c%c%c%c. "), 0xd800, 0xdc00, 0xdbff, 0xdfff, 0xdb80, 0xdddd, 0xdbff, 0xdcba, 0xdbeb, 0xdeb0); originalUnicode->AppendFormat(_L16("Here are some odd bits and pieces: =+-/*?#~'@!\"$%%^&\\|()[]{}<>_;:,. ")); - TheTest.Next(_L("Round-trips via UTF-8")); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(*generatedUtf8, *originalUnicode)==0); + INFO_PRINTF1(_L("Round-trips via UTF-8")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(*generatedUtf8, *originalUnicode)==0); {__ASSERT_ALWAYS(originalUnicode->Length()MaxLength(), Panic(EPanicNoFreeSpaceAtEndOfBuffer1)); TUint16* sourceStart=CONST_CAST(TUint16*, originalUnicode->Ptr()); TUint16* sourceEnd=sourceStart+originalUnicode->Length(); TUint8* targetStart=CONST_CAST(TUint8*, otherGeneratedUtf8->Ptr()); TUint8* targetEnd=targetStart+(otherGeneratedUtf8->MaxLength()-1); - TEST(ConvertUTF16toUTF8(&sourceStart, sourceEnd, &targetStart, targetEnd)==ok); + test(ConvertUTF16toUTF8(&sourceStart, sourceEnd, &targetStart, targetEnd)==ok); otherGeneratedUtf8->SetLength(targetStart-otherGeneratedUtf8->Ptr());} - TEST(*generatedUtf8==*otherGeneratedUtf8); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(*generatedUnicode, *generatedUtf8)==0); + test(*generatedUtf8==*otherGeneratedUtf8); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(*generatedUnicode, *generatedUtf8)==0); {__ASSERT_ALWAYS(otherGeneratedUtf8->Length()MaxLength(), Panic(EPanicNoFreeSpaceAtEndOfBuffer2)); TUint8* sourceStart=CONST_CAST(TUint8*, otherGeneratedUtf8->Ptr()); TUint8* sourceEnd=sourceStart+otherGeneratedUtf8->Length(); TUint16* targetStart=CONST_CAST(TUint16*, otherGeneratedUnicode->Ptr()); TUint16* targetEnd=targetStart+(otherGeneratedUnicode->MaxLength()-1); - TEST(ConvertUTF8toUTF16(&sourceStart, sourceEnd, &targetStart, targetEnd)==ok); + test(ConvertUTF8toUTF16(&sourceStart, sourceEnd, &targetStart, targetEnd)==ok); otherGeneratedUnicode->SetLength(targetStart-otherGeneratedUnicode->Ptr());} - TEST(*generatedUnicode==*originalUnicode); - TEST(*generatedUnicode==*otherGeneratedUnicode); + test(*generatedUnicode==*originalUnicode); + test(*generatedUnicode==*otherGeneratedUnicode); // delete originalUnicode; delete generatedUtf8; delete otherGeneratedUtf8; delete generatedUnicode; delete otherGeneratedUnicode; - TheTest.End(); - TheTest.Close(); - return KErrNone; } + +CT_COMP8::CT_COMP8() + { + SetTestStepName(KTestStep_T_COMP8); + } + +TVerdict CT_COMP8::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + + TRAPD(error1, TestCOMP8()); + + __UHEAP_MARKEND; + + if(error1 == KErrNone ) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/utf/terror.cpp --- a/charconvfw/charconv_fw/test/rtest/tsrc/utf/terror.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/utf/terror.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -17,53 +17,37 @@ #include -#include #include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TError")); +#include "t_error.h" -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - TheTest.Printf(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// -typedef TInt (*FConvertFromUtfX)(TDes16& aUnicode, const TDesC8& aUtfX, TInt& aState); +//typedef TInt (*FConvertFromUtfX)(TDes16& aUnicode, const TDesC8& aUtfX, TInt& aState); -LOCAL_C TInt ConvertToUnicodeFromUtf7(TDes16& aUnicode, const TDesC8& aUtf7, TInt& aState) +TInt ConvertToUnicodeFromUtf7(TDes16& aUnicode, const TDesC8& aUtf7, TInt& aState) { return CnvUtfConverter::ConvertToUnicodeFromUtf7(aUnicode, aUtf7, aState); } -LOCAL_C TInt ConvertToUnicodeFromUtf8(TDes16& aUnicode, const TDesC8& aUtf8, TInt&) +TInt ConvertToUnicodeFromUtf8(TDes16& aUnicode, const TDesC8& aUtf8, TInt&) { return CnvUtfConverter::ConvertToUnicodeFromUtf8(aUnicode, aUtf8); } -LOCAL_C void ExhaustivelyLengthTest(const TDesC16& aUnicode, const TDesC8& aUtfX, FConvertFromUtfX aConvertFromUtfX) +void CT_ERROR::ExhaustivelyLengthTest(const TDesC16& aUnicode, const TDesC8& aUtfX, FConvertFromUtfX aConvertFromUtfX) { enum {ECharacterCodeThatCannotOccurInUnicode=0xffff}; enum {ELengthOfWorkSpace=256}; @@ -71,7 +55,7 @@ TUint16 workSpace[ELengthOfWorkSpace]; const TInt lengthOfUnicode=aUnicode.Length(); - TEST(lengthOfUnicode0); - TEST((*aConvertFromUtfX)(unicode, aUtfX.Right(returnValue), state)==0); - TEST(unicode.Length()==0); - TEST(state==CnvUtfConverter::KStateDefault); + test(returnValue>0); + test((*aConvertFromUtfX)(unicode, aUtfX.Right(returnValue), state)==0); + test(unicode.Length()==0); + test(state==CnvUtfConverter::KStateDefault); } break; } - TEST(returnValue>0); + test(returnValue>0); ++i; } } -typedef TInt (*FConvertToUtfX)(TDes8& aUtfX, const TDesC16& aUnicode); +//typedef TInt (*FConvertToUtfX)(TDes8& aUtfX, const TDesC16& aUnicode); -LOCAL_C TInt ConvertFromUnicodeToUtf7WithOptionalDirectCharactersEncodedInBase64(TDes8& aUtf7, const TDesC16& aUnicode) +TInt ConvertFromUnicodeToUtf7WithOptionalDirectCharactersEncodedInBase64(TDes8& aUtf7, const TDesC16& aUnicode) { return CnvUtfConverter::ConvertFromUnicodeToUtf7(aUtf7, aUnicode, ETrue); } -LOCAL_C TInt ConvertFromUnicodeToUtf7WithOptionalDirectCharactersEncodedDirectly(TDes8& aUtf7, const TDesC16& aUnicode) +TInt ConvertFromUnicodeToUtf7WithOptionalDirectCharactersEncodedDirectly(TDes8& aUtf7, const TDesC16& aUnicode) { return CnvUtfConverter::ConvertFromUnicodeToUtf7(aUtf7, aUnicode, EFalse); } -LOCAL_C TInt ConvertFromUnicodeToUtf8(TDes8& aUtf8, const TDesC16& aUnicode) +TInt ConvertFromUnicodeToUtf8(TDes8& aUtf8, const TDesC16& aUnicode) { return CnvUtfConverter::ConvertFromUnicodeToUtf8(aUtf8, aUnicode); } -LOCAL_C void ExhaustivelyLengthTest(const TDesC8& aUtfX, const TDesC16& aUnicode, FConvertToUtfX aConvertToUtfX) +void CT_ERROR::ExhaustivelyLengthTest(const TDesC8& aUtfX, const TDesC16& aUnicode, FConvertToUtfX aConvertToUtfX) { enum {EByteValueThatCannotOccurInEitherUtf7OrUtf8=0xff}; enum {ELengthOfWorkSpace=512}; TUint8 workSpace[ELengthOfWorkSpace]; const TInt lengthOfUtfX=aUtfX.Length(); - TEST(lengthOfUtfX0); + test(returnValue>0); ++i; } } -LOCAL_C void ExhaustivelyLengthTest(const TDesC16& aUnicode, const TDesC8& aUtf7WithOptionalDirectCharactersEncodedInBase64, const TDesC8& aUtf7WithOptionalDirectCharactersEncodedDirectly, const TDesC8& aUtf8) +void CT_ERROR::ExhaustivelyLengthTest(const TDesC16& aUnicode, const TDesC8& aUtf7WithOptionalDirectCharactersEncodedInBase64, const TDesC8& aUtf7WithOptionalDirectCharactersEncodedDirectly, const TDesC8& aUtf8) { ExhaustivelyLengthTest(aUnicode, aUtf7WithOptionalDirectCharactersEncodedInBase64, ConvertToUnicodeFromUtf7); ExhaustivelyLengthTest(aUnicode, aUtf7WithOptionalDirectCharactersEncodedDirectly, ConvertToUnicodeFromUtf7); @@ -191,12 +175,12 @@ ExhaustivelyLengthTest(aUtf8, aUnicode, ConvertFromUnicodeToUtf8); } -LOCAL_C void ExhaustivelyLengthTest(const TDesC16& aUnicode, const TDesC8& aUtf7, const TDesC8& aUtf8) +void CT_ERROR::ExhaustivelyLengthTest(const TDesC16& aUnicode, const TDesC8& aUtf7, const TDesC8& aUtf8) { ExhaustivelyLengthTest(aUnicode, aUtf7, aUtf7, aUtf8); } -LOCAL_C void ResetDescriptorsForNullTest(TDes8& aEmpty8, TDes16& aEmpty16, TDes8& aNonEmpty8, TDes16& aNonEmpty16) +void ResetDescriptorsForNullTest(TDes8& aEmpty8, TDes16& aEmpty16, TDes8& aNonEmpty8, TDes16& aNonEmpty16) { aEmpty8.SetLength(0); aEmpty16.SetLength(0); @@ -204,7 +188,7 @@ aNonEmpty16=_L16("xyz"); } -LOCAL_C void LengthTestGeneratingUtf7() +void CT_ERROR::LengthTestGeneratingUtf7() { TBuf16<7> unicode; unicode.Format(_L16("+%c+&+a+"), 0x52ff); @@ -212,47 +196,47 @@ TUint8 utf7[15]; TInt i; generatedUtf7.Set(utf7, 0, 15); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==0); - TEST(generatedUtf7==_L8("+-+Uv8-+-&+-a+-")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==0); + test(generatedUtf7==_L8("+-+Uv8-+-&+-a+-")); for (i=14; i>=13; --i) { generatedUtf7.Set(utf7, 0, i); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==1); - TEST(generatedUtf7==_L8("+-+Uv8-+-&+-a")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==1); + test(generatedUtf7==_L8("+-+Uv8-+-&+-a")); } generatedUtf7.Set(utf7, 0, 12); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==2); - TEST(generatedUtf7==_L8("+-+Uv8-+-&+-")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==2); + test(generatedUtf7==_L8("+-+Uv8-+-&+-")); for (i=11; i>=10; --i) { generatedUtf7.Set(utf7, 0, i); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==3); - TEST(generatedUtf7==_L8("+-+Uv8-+-&")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==3); + test(generatedUtf7==_L8("+-+Uv8-+-&")); } generatedUtf7.Set(utf7, 0, 9); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==4); - TEST(generatedUtf7==_L8("+-+Uv8-+-")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==4); + test(generatedUtf7==_L8("+-+Uv8-+-")); for (i=8; i>=7; --i) { generatedUtf7.Set(utf7, 0, i); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==5); - TEST(generatedUtf7==_L8("+-+Uv8-")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==5); + test(generatedUtf7==_L8("+-+Uv8-")); } for (i=6; i>=2; --i) { generatedUtf7.Set(utf7, 0, i); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==6); - TEST(generatedUtf7==_L8("+-")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==6); + test(generatedUtf7==_L8("+-")); } for (i=1; i>=0; --i) { generatedUtf7.Set(utf7, 0, i); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==7); - TEST(generatedUtf7==KNullDesC8); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, unicode, EFalse)==7); + test(generatedUtf7==KNullDesC8); } } -LOCAL_C void LengthTestGeneratingUtf8() +void CT_ERROR::LengthTestGeneratingUtf8() { TBuf16<5> unicode; unicode.Format(_L16("J%c%c%c%c"), 0x027e, 0xb205, 0xdbab, 0xde4d); @@ -260,29 +244,29 @@ TUint8 utf8[10]; TInt i; generatedUtf8.Set(utf8, 0, 10); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("J\xc9\xbe\xeb\x88\x85\xf3\xba\xb9\x8d")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("J\xc9\xbe\xeb\x88\x85\xf3\xba\xb9\x8d")); for (i=9; i>=6; --i) { generatedUtf8.Set(utf8, 0, i); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==2); - TEST(generatedUtf8==_L8("J\xc9\xbe\xeb\x88\x85")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==2); + test(generatedUtf8==_L8("J\xc9\xbe\xeb\x88\x85")); } for (i=5; i>=3; --i) { generatedUtf8.Set(utf8, 0, i); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==3); - TEST(generatedUtf8==_L8("J\xc9\xbe")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==3); + test(generatedUtf8==_L8("J\xc9\xbe")); } for (i=2; i>=1; --i) { generatedUtf8.Set(utf8, 0, i); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==4); - TEST(generatedUtf8==_L8("J")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==4); + test(generatedUtf8==_L8("J")); } generatedUtf8.Set(utf8, 0, 0); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==5); - TEST(generatedUtf8==KNullDesC8); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==5); + test(generatedUtf8==KNullDesC8); } /** @SYMTestCaseID SYSLIB-CHARCONV-CT-0569 @@ -294,9 +278,9 @@ @SYMTestExpectedResults Test must not fail @SYMREQ REQ0000 */ -GLDEF_C TInt DoE32MainL() +void CT_ERROR::TestERROR() { - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0569 Checking that error conditions yield appropriate error values ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0569 Checking that error conditions yield appropriate error values ")); ExhaustivelyLengthTest(KNullDesC16, KNullDesC8, KNullDesC8); ExhaustivelyLengthTest(_L16("Hello!"), _L8("Hello+ACE-"), _L8("Hello!"), _L8("Hello!")); @@ -317,19 +301,19 @@ const TPtrC8 percentCPercentCPercentCPercentC_8=_L8("%c%c%c%c"); TInt state=CnvUtfConverter::KStateDefault; // - TheTest.Next(_L("Exhaustively length-testing a UTF-8 2-byte Unicode character")); + INFO_PRINTF1(_L("Exhaustively length-testing a UTF-8 2-byte Unicode character")); unicode.Format(_L16("%c"), 0x0635); utf8.Format(_L8("%c%c"), 0xd8, 0xb5); ExhaustivelyLengthTest(unicode, _L8("+BjU-"), utf8); - TheTest.Next(_L("Exhaustively length-testing a UTF-8 3-byte Unicode character")); + INFO_PRINTF1(_L("Exhaustively length-testing a UTF-8 3-byte Unicode character")); unicode.Format(_L16("%c"), 0x679e); utf8.Format(_L8("%c%c%c"), 0xe6, 0x9e, 0x9e); ExhaustivelyLengthTest(unicode, _L8("+Z54-"), utf8); - TheTest.Next(_L("Exhaustively length-testing a UTF-8 4-byte Unicode surrogate-pair")); + INFO_PRINTF1(_L("Exhaustively length-testing a UTF-8 4-byte Unicode surrogate-pair")); unicode.Format(_L16("%c%c"), 0xdb0d, 0xdcab); utf8.Format(_L8("%c%c%c%c"), 0xf3, 0x93, 0x92, 0xab); ExhaustivelyLengthTest(unicode, _L8("+2w3cqw-"), utf8); - TheTest.Next(_L("Exhaustively length-testing a UTF-7 various strings")); + INFO_PRINTF1(_L("Exhaustively length-testing a UTF-7 various strings")); unicode.Format(_L16("a%c"), 0x0105); utf8.Format(_L8("a%c%c"), 0xc4, 0x85); ExhaustivelyLengthTest(unicode, _L8("a+AQU-"), utf8); @@ -354,594 +338,594 @@ unicode.Format(_L16("%c%c%c%c "), 0xdbe9, 0xdcfe, 0xdb52, 0xddb4); utf8.Format(_L8("%c%c%c%c%c%c%c%c "), 0xf4, 0x8a, 0x93, 0xbe, 0xf3, 0xa4, 0xa6, 0xb4); ExhaustivelyLengthTest(unicode, _L8("+2+nc/ttS3bQ- "), utf8); - TheTest.Next(_L("Converting to short UTF-7 descriptors")); + INFO_PRINTF1(_L("Converting to short UTF-7 descriptors")); LengthTestGeneratingUtf7(); - TheTest.Next(_L("Converting to short UTF-8 descriptors")); + INFO_PRINTF1(_L("Converting to short UTF-8 descriptors")); LengthTestGeneratingUtf8(); { - TheTest.Next(_L("Testing converting bad UTF-7 to Unicode")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8(")+"), state)==1); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==')'); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+ "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+>"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+-"), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==_L16("+")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+A"), state)==0); - TEST(state!=CnvUtfConverter::KStateDefault); + INFO_PRINTF1(_L("Testing converting bad UTF-7 to Unicode")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8(")+"), state)==1); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==')'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+ "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+>"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+-"), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==_L16("+")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+A"), state)==0); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==0); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+A "), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==_L16(" ")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+A-"), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode.Length()==0); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+B"), state)==1); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+A "), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==_L16(" ")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+A-"), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+B"), state)==1); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==0); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+B "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+B-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+AA"), state)==0); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+B "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+B-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+AA"), state)==0); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==0); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+AA "), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==_L16(" ")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+AA-"), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode.Length()==0); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+AB"), state)==2); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+AA "), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==_L16(" ")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+AA-"), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+AB"), state)==2); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==0); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+AB "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+AB-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+BA"), state)==2); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+AB "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+AB-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+BA"), state)==2); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==0); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+BA "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+BA-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+BB"), state)==2); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+BA "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+BA-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+BB"), state)==2); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==0); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+BB "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+BB-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnY"), state)==0); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+BB "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+BB-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnY"), state)==0); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnY "), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode.Length()==2); - TEST(generatedUnicode[0]==0xb676); - TEST(generatedUnicode[1]==0x0020); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnY-"), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZ"), state)==3); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnY "), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==2); + test(generatedUnicode[0]==0xb676); + test(generatedUnicode[1]==0x0020); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnY-"), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZ"), state)==3); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==0); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZ "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZ-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tna"), state)==3); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZ "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZ-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tna"), state)==3); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==0); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tna "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tna-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnb"), state)==3); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tna "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tna-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnb"), state)==3); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==0); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnb "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnb-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYA"), state)==0); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnb "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnb-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYA"), state)==0); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYA "), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode.Length()==2); - TEST(generatedUnicode[0]==0xb676); - TEST(generatedUnicode[1]==0x0020); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYA-"), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYB"), state)==1); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYA "), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==2); + test(generatedUnicode[0]==0xb676); + test(generatedUnicode[1]==0x0020); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYA-"), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYB"), state)==1); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYB "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYB-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZA"), state)==1); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYB "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYB-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZA"), state)==1); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZA "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZA-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZB"), state)==1); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZA "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZA-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZB"), state)==1); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZB "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZB-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYAA"), state)==0); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZB "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZB-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYAA"), state)==0); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYAA "), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode.Length()==2); - TEST(generatedUnicode[0]==0xb676); - TEST(generatedUnicode[1]==0x0020); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYAA-"), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYAB"), state)==2); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYAA "), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==2); + test(generatedUnicode[0]==0xb676); + test(generatedUnicode[1]==0x0020); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYAA-"), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYAB"), state)==2); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYAB "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYAB-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYBA"), state)==2); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYAB "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYAB-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYBA"), state)==2); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYBA "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYBA-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYBB"), state)==2); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYBA "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYBA-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYBB"), state)==2); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYBB "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYBB-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZAA"), state)==2); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYBB "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnYBB-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZAA"), state)==2); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZAA "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZAA-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZAB"), state)==2); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZAA "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZAA-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZAB"), state)==2); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZAB "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZAB-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZBA"), state)==2); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZAB "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZAB-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZBA"), state)==2); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZBA "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZBA-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZBB"), state)==2); - TEST(state!=CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZBA "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZBA-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZBB"), state)==2); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xb676); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZBB "), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZBB-"), state)==CnvUtfConverter::EErrorIllFormedInput); - TEST(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xb676); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZBB "), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+tnZBB-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(state==CnvUtfConverter::KStateDefault); } { - TheTest.Next(_L("Testing converting bad UTF-8 to Unicode")); + INFO_PRINTF1(_L("Testing converting bad UTF-8 to Unicode")); utf8.Format(percentC_8, 0x80); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentC_8, 0xbf); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentC_8, 0xa1); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentC_8, 0xc0); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentC_8, '=', 0xc0); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); - TEST(generatedUnicode.Length()==2); - TEST(generatedUnicode[0]=='='); - TEST(generatedUnicode[1]==0xFFFD); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(generatedUnicode.Length()==2); + test(generatedUnicode[0]=='='); + test(generatedUnicode[1]==0xFFFD); utf8.Format(percentCPercentC_8, 0xc0, 0x00); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentC_8, 0xc0, 0x80); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); - TEST(generatedUnicode.Length()==2); - TEST(generatedUnicode[0]==0xFFFD); - TEST(generatedUnicode[1]==0xFFFD); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(generatedUnicode.Length()==2); + test(generatedUnicode[0]==0xFFFD); + test(generatedUnicode[1]==0xFFFD); utf8.Format(percentC_8, 0xdf); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentC_8, '*', 0xdf); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==1); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='*'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==1); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='*'); utf8.Format(percentCPercentC_8, 0xdf, 0x7f); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentC_8, 0xdf, 0xbf); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0x07ff); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0x07ff); utf8.Format(percentC_8, 0xd7); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentC_8, '\'', 0xd7); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==1); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='\''); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==1); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='\''); utf8.Format(percentCPercentC_8, 0xd7, 0xd9); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==1); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==1); utf8.Format(percentCPercentC_8, 0xd7, 0x99); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0x05d9); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0x05d9); utf8.Format(percentC_8, 0xe0); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentC_8, '@', 0xe0); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==1); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='@'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==1); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='@'); utf8.Format(percentCPercentC_8, 0xe0, 0x80); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentCPercentC_8, ':', 0xe0, 0x80); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==':'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==':'); utf8.Format(percentCPercentCPercentC_8, 0xe0, 0x80, 0x80); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); - TEST(generatedUnicode.Length()==3); - TEST(generatedUnicode[0]==0xfffd); - TEST(generatedUnicode[1]==0xfffd); - TEST(generatedUnicode[2]==0xfffd); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(generatedUnicode.Length()==3); + test(generatedUnicode[0]==0xfffd); + test(generatedUnicode[1]==0xfffd); + test(generatedUnicode[2]==0xfffd); utf8.Format(percentCPercentC_8, 0xef, 0x3f); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentCPercentC_8, '~', 0xef, 0x3f); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='~'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='~'); utf8.Format(percentCPercentCPercentC_8, 0xef, 0x3f, 0xbf); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentC_8, 0xef, 0x7f); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentCPercentC_8, 'L', 0xef, 0x7f); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='L'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='L'); utf8.Format(percentCPercentCPercentC_8, 0xef, 0x7f, 0xbf); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentC_8, 0xef, 0xff); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentCPercentC_8, '^', 0xef, 0xff); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='^'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='^'); utf8.Format(percentCPercentCPercentC_8, 0xef, 0xff, 0xbf); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentCPercentC_8, 0xef, 0xbf, 0x3f); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentCPercentC_8, 0xef, 0xbf, 0x7f); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentCPercentC_8, 0xef, 0xbf, 0xff); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentCPercentC_8, 0xef, 0xbf, 0xbf); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xffff); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xffff); utf8.Format(percentC_8, 0xf4); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentC_8, ',', 0xf4); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==1); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==','); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==1); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==','); utf8.Format(percentCPercentC_8, 0xf4, 0x06); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentCPercentC_8, 'J', 0xf4, 0x06); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='J'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='J'); utf8.Format(percentCPercentCPercentC_8, 0xf4, 0x06, 0xab); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentCPercentCPercentC_8, ']', 0xf4, 0x06, 0xab); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==3); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==']'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==3); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==']'); utf8.Format(percentCPercentCPercentCPercentC_8, 0xf4, 0x06, 0xab, 0x9c); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentC_8, 0xf4, 0x46); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentCPercentC_8, 'o', 0xf4, 0x46); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='o'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='o'); utf8.Format(percentCPercentCPercentC_8, 0xf4, 0x46, 0xab); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentCPercentCPercentC_8, '!', 0xf4, 0x46, 0xab); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==3); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='!'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==3); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='!'); utf8.Format(percentCPercentCPercentCPercentC_8, 0xf4, 0x46, 0xab, 0x9c); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentC_8, 0xf4, 0xc6); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentCPercentC_8, 'm', 0xf4, 0xc6); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='m'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='m'); utf8.Format(percentCPercentCPercentC_8, 0xf4, 0xc6, 0xab); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentCPercentCPercentC_8, '&', 0xf4, 0xc6, 0xab); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==3); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='&'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==3); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='&'); utf8.Format(percentCPercentCPercentCPercentC_8, 0xf4, 0xc6, 0xab, 0x9c); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentCPercentC_8, 0xf4, 0x86, 0x2b); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentCPercentCPercentC_8, 'v', 0xf4, 0x86, 0x2b); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==3); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='v'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==3); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='v'); utf8.Format(percentCPercentCPercentCPercentC_8, 0xf4, 0x86, 0x2b, 0x9c); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentCPercentC_8, 0xf4, 0x86, 0x6b); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentCPercentCPercentC_8, 'Q', 0xf4, 0x86, 0x6b); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==3); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='Q'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==3); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='Q'); utf8.Format(percentCPercentCPercentCPercentC_8, 0xf4, 0x86, 0x6b, 0x9c); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentCPercentC_8, 0xf4, 0x86, 0xeb); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==CnvUtfConverter::EErrorIllFormedInput); utf8.Format(percentCPercentCPercentCPercentC_8, '?', 0xf4, 0x86, 0xeb); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==3); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='?'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==3); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='?'); utf8.Format(percentCPercentCPercentCPercentC_8, 0xf4, 0x86, 0xeb, 0x9c); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==2); utf8.Format(percentCPercentCPercentCPercentC_8, 0xf4, 0x86, 0xab, 0x1c); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentCPercentCPercentC_8, 0xf4, 0x86, 0xab, 0x5c); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentCPercentCPercentC_8, 0xf4, 0x86, 0xab, 0xdc); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==1); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==1); utf8.Format(percentCPercentCPercentCPercentC_8, 0xf4, 0x86, 0xab, 0x9c); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); - TEST(generatedUnicode.Length()==2); - TEST(generatedUnicode[0]==0xdbda); - TEST(generatedUnicode[1]==0xdedc); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(generatedUnicode.Length()==2); + test(generatedUnicode[0]==0xdbda); + test(generatedUnicode[1]==0xdedc); // Additional tests added for INC117111... utf8.Format(_L8("%c%c%c%c"), 0xf4, 0xc6, 0xab, 0x9c); // Invalid 4 bit TInt returnval = CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8); - TEST(generatedUnicode.Length()==3); - TEST(generatedUnicode[0]==0xFFFD); - TEST(generatedUnicode[1]==0x01AB); - TEST(generatedUnicode[2]==0xFFFD); + test(generatedUnicode.Length()==3); + test(generatedUnicode[0]==0xFFFD); + test(generatedUnicode[1]==0x01AB); + test(generatedUnicode[2]==0xFFFD); unicode.Format(percentCPercentC_16, 0xd800, 0xdc00); // a surrogate pair - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf0\x90\x80\x80")); // round trip test + test(generatedUtf8==_L8("\xf0\x90\x80\x80")); // round trip test returnval = CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8); - TEST(generatedUnicode.Length()==2); - TEST(generatedUnicode[0]==0xd800); - TEST(generatedUnicode[1]==0xdc00); + test(generatedUnicode.Length()==2); + test(generatedUnicode[0]==0xd800); + test(generatedUnicode[1]==0xdc00); unicode.Format(percentCPercentC_16, 0xd7ff, 0xdfff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\x9f\xbf\xed\xbf\xbf")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\x9f\xbf\xed\xbf\xbf")); utf8.Format(_L8("%c"), 0xc0); // An invalid char. returnval = CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xFFFD); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xFFFD); utf8.Format(_L8("%c%c%c%c%c"), 0xf4, 0x20, 0x01, 0x02, 0x10); // Invalid 4 bit and a ASCI returnval = CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8); - TEST(generatedUnicode.Length()==5); - TEST(generatedUnicode[0]==0xFFFD); - TEST(generatedUnicode[1]==0x0020); - TEST(generatedUnicode[2]==0x0001); - TEST(generatedUnicode[3]==0x0002); - TEST(generatedUnicode[4]==0x0010); + test(generatedUnicode.Length()==5); + test(generatedUnicode[0]==0xFFFD); + test(generatedUnicode[1]==0x0020); + test(generatedUnicode[2]==0x0001); + test(generatedUnicode[3]==0x0002); + test(generatedUnicode[4]==0x0010); utf8.Format(_L8("%c%c%c%c"), 0xed, 0xa0, 0x80, 0x10); // Invalid 3 bit and a ASCI returnval = CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8); - TEST(generatedUnicode.Length()==4); - TEST(generatedUnicode[0]==0xFFFD); - TEST(generatedUnicode[1]==0xFFFD); - TEST(generatedUnicode[2]==0xFFFD); - TEST(generatedUnicode[3]==0x0010); + test(generatedUnicode.Length()==4); + test(generatedUnicode[0]==0xFFFD); + test(generatedUnicode[1]==0xFFFD); + test(generatedUnicode[2]==0xFFFD); + test(generatedUnicode[3]==0x0010); utf8.Format(_L8("%c%c%c%c%c"), 0xf4, 0x81, 0x81, 0x81, 0x10); // Valid 4 bit and a ASCI returnval = CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8); - TEST(generatedUnicode.Length()==3); - TEST(generatedUnicode[0]==0xdbc4); - TEST(generatedUnicode[1]==0xdc41); - TEST(generatedUnicode[2]==0x0010); + test(generatedUnicode.Length()==3); + test(generatedUnicode[0]==0xdbc4); + test(generatedUnicode[1]==0xdc41); + test(generatedUnicode[2]==0x0010); utf8.Format(_L8("%c%c%c%c%c"), 0xf4, 0xc6, 0xab, 0x9c, 0x10); // Invalid 4 bit and a ASCI returnval = CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8); - TEST(generatedUnicode.Length()==4); - TEST(generatedUnicode[0]==0xFFFD); - TEST(generatedUnicode[1]==0x01AB); - TEST(generatedUnicode[2]==0xFFFD); - TEST(generatedUnicode[3]==0x0010); + test(generatedUnicode.Length()==4); + test(generatedUnicode[0]==0xFFFD); + test(generatedUnicode[1]==0x01AB); + test(generatedUnicode[2]==0xFFFD); + test(generatedUnicode[3]==0x0010); utf8.Format(_L8("%c%c%c%c%c"), 0xf4, 0x8c, 0x81, 0x81, 0x10); // Valid 4 bit and a ASCI returnval = CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8); //INC044750 utf8.Format(_L8("%c%c%c%c%c"),0x3C, 0xFC, 0xDC, 0x3C,0x3C); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); - TEST(generatedUnicode==_L("<\xFFFD\xFFFD<<")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(generatedUnicode==_L("<\xFFFD\xFFFD<<")); } - TheTest.Next(_L("Testing bad uuuuu (wwww+1) bits in 4-byte UTF-8")); + INFO_PRINTF1(_L("Testing bad uuuuu (wwww+1) bits in 4-byte UTF-8")); utf8.Format(percentCPercentCPercentCPercentC_8, 0xf4, 0x96, 0xab, 0x9c); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); utf8.Format(percentCPercentCPercentCPercentC_8, 0xf0, 0x86, 0xab, 0x9c); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8)==0); { - TheTest.Next(_L("Testing converting bad Unicode surrogate-pairs to UTF-8")); + INFO_PRINTF1(_L("Testing converting bad Unicode surrogate-pairs to UTF-8")); unicode.Format(percentC_16, 0xd800); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); unicode.Format(percentCPercentC_16, '>', 0xd800); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==1); - TEST(generatedUtf8.Length()==1); - TEST(generatedUtf8[0]=='>'); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==1); + test(generatedUtf8.Length()==1); + test(generatedUtf8[0]=='>'); unicode.Format(percentC_16, 0xdbff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); unicode.Format(percentCPercentC_16, 'Z', 0xdbff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==1); - TEST(generatedUtf8.Length()==1); - TEST(generatedUtf8[0]=='Z'); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==1); + test(generatedUtf8.Length()==1); + test(generatedUtf8[0]=='Z'); unicode.Format(percentC_16, 0xdaaa); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); unicode.Format(percentCPercentC_16, '|', 0xdaaa); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==1); - TEST(generatedUtf8.Length()==1); - TEST(generatedUtf8[0]=='|'); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==1); + test(generatedUtf8.Length()==1); + test(generatedUtf8[0]=='|'); unicode.Format(percentC_16, 0xd7ff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\x9f\xbf")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\x9f\xbf")); unicode.Format(percentC_16, 0xdc00); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\xb0\x80")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\xb0\x80")); unicode.Format(percentCPercentC_16, 0xd800, 0xe000); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); unicode.Format(percentCPercentC_16, 0xdbff, 0xe000); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); unicode.Format(percentCPercentC_16, 0xdaaa, 0xe000); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); unicode.Format(percentCPercentC_16, 0xd7ff, 0xe000); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\x9f\xbf\xee\x80\x80")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\x9f\xbf\xee\x80\x80")); unicode.Format(percentCPercentC_16, 0xdc00, 0xe000); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\xb0\x80\xee\x80\x80")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\xb0\x80\xee\x80\x80")); unicode.Format(percentCPercentC_16, 0xd800, 0xdbff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); unicode.Format(percentCPercentC_16, 0xdbff, 0xdbff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); unicode.Format(percentCPercentC_16, 0xdaaa, 0xdbff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); unicode.Format(percentCPercentC_16, 0xd7ff, 0xdbff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==1); - TEST(generatedUtf8==_L8("\xed\x9f\xbf")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==1); + test(generatedUtf8==_L8("\xed\x9f\xbf")); unicode.Format(percentCPercentC_16, 0xdc00, 0xdbff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==1); - TEST(generatedUtf8==_L8("\xed\xb0\x80")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==1); + test(generatedUtf8==_L8("\xed\xb0\x80")); unicode.Format(percentCPercentC_16, 0xd800, 0xd7ff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); unicode.Format(percentCPercentC_16, 0xdbff, 0xd7ff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); unicode.Format(percentCPercentC_16, 0xdaaa, 0xd7ff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==CnvUtfConverter::EErrorIllFormedInput); unicode.Format(percentCPercentC_16, 0xd7ff, 0xd7ff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\x9f\xbf\xed\x9f\xbf")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\x9f\xbf\xed\x9f\xbf")); unicode.Format(percentCPercentC_16, 0xdc00, 0xd7ff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\xb0\x80\xed\x9f\xbf")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\xb0\x80\xed\x9f\xbf")); unicode.Format(percentCPercentC_16, 0xd800, 0xdfff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf0\x90\x8f\xbf")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf0\x90\x8f\xbf")); unicode.Format(percentCPercentC_16, 0xdbff, 0xdfff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf4\x8f\xbf\xbf")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf4\x8f\xbf\xbf")); unicode.Format(percentCPercentC_16, 0xdaaa, 0xdfff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf2\xba\xaf\xbf")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf2\xba\xaf\xbf")); unicode.Format(percentCPercentC_16, 0xd7ff, 0xdfff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\x9f\xbf\xed\xbf\xbf")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\x9f\xbf\xed\xbf\xbf")); unicode.Format(percentCPercentC_16, 0xdc00, 0xdfff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\xb0\x80\xed\xbf\xbf")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\xb0\x80\xed\xbf\xbf")); unicode.Format(percentCPercentC_16, 0xd800, 0xdc00); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf0\x90\x80\x80")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf0\x90\x80\x80")); unicode.Format(percentCPercentC_16, 0xdbff, 0xdc00); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf4\x8f\xb0\x80")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf4\x8f\xb0\x80")); unicode.Format(percentCPercentC_16, 0xdaaa, 0xdc00); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf2\xba\xa0\x80")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf2\xba\xa0\x80")); unicode.Format(percentCPercentC_16, 0xd7ff, 0xdc00); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\x9f\xbf\xed\xb0\x80")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\x9f\xbf\xed\xb0\x80")); unicode.Format(percentCPercentC_16, 0xdc00, 0xdc00); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\xb0\x80\xed\xb0\x80")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\xb0\x80\xed\xb0\x80")); unicode.Format(percentCPercentC_16, 0xd800, 0xde37); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf0\x90\x88\xb7")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf0\x90\x88\xb7")); unicode.Format(percentCPercentC_16, 0xdbff, 0xde37); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf4\x8f\xb8\xb7")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf4\x8f\xb8\xb7")); unicode.Format(percentCPercentC_16, 0xdaaa, 0xde37); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf2\xba\xa8\xb7")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf2\xba\xa8\xb7")); unicode.Format(percentCPercentC_16, 0xd7ff, 0xde37); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\x9f\xbf\xed\xb8\xb7")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\x9f\xbf\xed\xb8\xb7")); unicode.Format(percentCPercentC_16, 0xdc00, 0xde37); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\xb0\x80\xed\xb8\xb7")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\xb0\x80\xed\xb8\xb7")); } TUint i; for (i=0; i<=0x1f; ++i) @@ -950,15 +934,15 @@ const TInt returnValue=CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8); if ((i<1) || ((i-1)&~0x0f)) { - TEST(returnValue==0); + test(returnValue==0); } else { - TEST(returnValue==0); - TEST(generatedUnicode.Length()==2); - TEST((0xd815&~((i-1)<<6))==0xd815); // sanity check ((i-1)<<6) - TEST(generatedUnicode[0]==(0xd815|((i-1)<<6))); - TEST(generatedUnicode[1]==0xde71); + test(returnValue==0); + test(generatedUnicode.Length()==2); + test((0xd815&~((i-1)<<6))==0xd815); // sanity check ((i-1)<<6) + test(generatedUnicode[0]==(0xd815|((i-1)<<6))); + test(generatedUnicode[1]==0xde71); } } for (i=0; i<=0x1f; ++i) @@ -967,18 +951,18 @@ const TInt returnValue=CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, utf8); if ((i<1) || ((i-1)&~0x0f)) { - TEST(returnValue==0); + test(returnValue==0); } else { - TEST(returnValue==0); - TEST(generatedUnicode.Length()==2); - TEST((0xd800&~((i-1)<<6))==0xd800); // sanity check ((i-1)<<6) - TEST(generatedUnicode[0]==(0xd800|((i-1)<<6))); - TEST(generatedUnicode[1]==0xdc00); + test(returnValue==0); + test(generatedUnicode.Length()==2); + test((0xd800&~((i-1)<<6))==0xd800); // sanity check ((i-1)<<6) + test(generatedUnicode[0]==(0xd800|((i-1)<<6))); + test(generatedUnicode[1]==0xdc00); } } - TheTest.Next(_L("Testing passing in descriptors that are empty and have NULL pointers")); + INFO_PRINTF1(_L("Testing passing in descriptors that are empty and have NULL pointers")); enum {EBufferLength8=32}; TUint8 buffer8[EBufferLength8]; TPtr8 null8(NULL, 0, 0); @@ -1002,18 +986,18 @@ const TBool inCompleteConversion16=((descriptor16.MaxLength()==0) && (descriptor8.Length()>0)); TInt returnValue; returnValue=CnvUtfConverter::ConvertFromUnicodeToUtf7(descriptor8, descriptor16, k&0x1); - TEST(inCompleteConversion8? (returnValue>0): (returnValue==0)); + test(inCompleteConversion8? (returnValue>0): (returnValue==0)); ResetDescriptorsForNullTest(empty8, empty16, nonEmpty8, nonEmpty16); returnValue=CnvUtfConverter::ConvertFromUnicodeToUtf8(descriptor8, descriptor16); - TEST(inCompleteConversion8? (returnValue>0): (returnValue==0)); + test(inCompleteConversion8? (returnValue>0): (returnValue==0)); ResetDescriptorsForNullTest(empty8, empty16, nonEmpty8, nonEmpty16); state=CnvUtfConverter::KStateDefault; returnValue=CnvUtfConverter::ConvertToUnicodeFromUtf7(descriptor16, descriptor8, state); - TEST(inCompleteConversion16? (returnValue>0): (returnValue==0)); - TEST(inCompleteConversion16 || (state==CnvUtfConverter::KStateDefault)); + test(inCompleteConversion16? (returnValue>0): (returnValue==0)); + test(inCompleteConversion16 || (state==CnvUtfConverter::KStateDefault)); ResetDescriptorsForNullTest(empty8, empty16, nonEmpty8, nonEmpty16); returnValue=CnvUtfConverter::ConvertToUnicodeFromUtf8(descriptor16, descriptor8); - TEST(inCompleteConversion16? (returnValue>0): (returnValue==0)); + test(inCompleteConversion16? (returnValue>0): (returnValue==0)); if (k&0x2) { break; @@ -1023,27 +1007,28 @@ // Pop and destroy: unicodeHBuf, generatedUnicode, utf8, generatedUtf8 CleanupStack::PopAndDestroy(4); - return KErrNone; } -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; +CT_ERROR::CT_ERROR() + { + SetTestStepName(KTestStep_T_ERROR); + } - TheTest.Title(); +TVerdict CT_ERROR::doTestStepL() + { + SetTestStepResult(EFail); - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); + __UHEAP_MARK; - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); + TRAPD(error1, TestERROR()); - delete trapCleanup; + __UHEAP_MARKEND; - TheTest.End(); - TheTest.Close(); + if(error1 == KErrNone ) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return KErrNone; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/utf/timap.cpp --- a/charconvfw/charconv_fw/test/rtest/tsrc/utf/timap.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/utf/timap.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -18,37 +18,22 @@ #include #include -#include #include #include +#include "t_imap.h" -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TImap")); -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// @@ -61,74 +46,75 @@ @SYMTestExpectedResults Test must not fail @SYMREQ REQ0000 */ -LOCAL_C void DoE32MainL() +void CT_IMAP::TestIMAP() { RFs fileServerSession; CleanupClosePushL(fileServerSession); User::LeaveIfError(fileServerSession.Connect()); CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); TInt state=CCnvCharacterSetConverter::KStateDefault; - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0574 Testing IMAP UTF-7 ")); - TEST(characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierImapUtf7, fileServerSession)==CCnvCharacterSetConverter::EAvailable); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0574 Testing IMAP UTF-7 ")); + test(characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierImapUtf7, fileServerSession)==CCnvCharacterSetConverter::EAvailable); TBuf16<256> originalUnicode; TBuf8<256> generatedUtf7; TBuf16<256> generatedUnicode; // - TheTest.Next(_L("Empty descriptor")); + INFO_PRINTF1(_L("Empty descriptor")); originalUnicode=_L16(""); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf7, originalUnicode)==0); - TEST(generatedUtf7==_L8("")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("Characters \" +&-~\\\"")); + test(characterSetConverter->ConvertFromUnicode(generatedUtf7, originalUnicode)==0); + test(generatedUtf7==_L8("")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf7, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("Characters \" +&-~\\\"")); originalUnicode=_L16(" +&-~\\"); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf7, originalUnicode)==0); - TEST(generatedUtf7==_L8(" +&--~\\")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("Example quoted in RFC 2060 (Section 5.1.3)")); + test(characterSetConverter->ConvertFromUnicode(generatedUtf7, originalUnicode)==0); + test(generatedUtf7==_L8(" +&--~\\")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf7, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("Example quoted in RFC 2060 (Section 5.1.3)")); originalUnicode.Format(_L16("~peter/mail/%c%c%c/%c%c"), 0x65e5, 0x672c, 0x8a9e, 0x53f0, 0x5317); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf7, originalUnicode)==0); - TEST(generatedUtf7==_L8("~peter/mail/&ZeVnLIqe-/&U,BTFw-")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("Testing fix for defect EDNDSEF-4KMEUH in \"Symbian Defect Tracking v3.0\"")); + test(characterSetConverter->ConvertFromUnicode(generatedUtf7, originalUnicode)==0); + test(generatedUtf7==_L8("~peter/mail/&ZeVnLIqe-/&U,BTFw-")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf7, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("Testing fix for defect EDNDSEF-4KMEUH in \"Symbian Defect Tracking v3.0\"")); originalUnicode.Format(_L16("%c%c%c%c%c%c%c%c%c"), 0x30ad, 0x30e3, 0x30d3, 0x30cd, 0x30c3, 0x30c8, 0x3068, 0x306f, 0xff1f); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf7, originalUnicode)==0); - TEST(generatedUtf7==_L8("&MK0w4zDTMM0wwzDIMGgwb,8f-")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf7, originalUnicode)==0); + test(generatedUtf7==_L8("&MK0w4zDTMM0wwzDIMGgwb,8f-")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf7, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); TBuf8<0x14> generatedUtf7_0x14; - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf7_0x14, originalUnicode)==3); - TEST(generatedUtf7_0x14==_L8("&MK0w4zDTMM0wwzDI-")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf7_0x14, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode.Left(6)); + test(characterSetConverter->ConvertFromUnicode(generatedUtf7_0x14, originalUnicode)==3); + test(generatedUtf7_0x14==_L8("&MK0w4zDTMM0wwzDI-")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf7_0x14, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode.Left(6)); CleanupStack::PopAndDestroy(2); // characterSetConverter and fileServerSession } -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; +CT_IMAP::CT_IMAP() + { + SetTestStepName(KTestStep_T_IMAP); + } - TheTest.Title(); +TVerdict CT_IMAP::doTestStepL() + { + SetTestStepResult(EFail); - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); + __UHEAP_MARK; - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); + TRAPD(error1, TestIMAP()); - delete trapCleanup; + __UHEAP_MARKEND; - TheTest.End(); - TheTest.Close(); + if(error1 == KErrNone ) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return KErrNone; - } - + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/utf/tjava.cpp --- a/charconvfw/charconv_fw/test/rtest/tsrc/utf/tjava.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/utf/tjava.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -18,38 +18,21 @@ #include #include -#include #include #include #include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TJava")); +#include "t_java.h" -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// @@ -61,359 +44,361 @@ @SYMTestExpectedResults Test must not fail @SYMREQ REQ0000 */ -LOCAL_C void DoE32MainL() +void CT_JAVA::Test_JAVA() { RFs fileServerSession; CleanupClosePushL(fileServerSession); User::LeaveIfError(fileServerSession.Connect()); CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0571 Checking that Java-conformant UTF-8 is generated and handled correctly ")); - TEST(characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJavaConformantUtf8, fileServerSession)==CCnvCharacterSetConverter::EAvailable); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0571 Checking that Java-conformant UTF-8 is generated and handled correctly ")); + test(characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJavaConformantUtf8, fileServerSession)==CCnvCharacterSetConverter::EAvailable); TBuf16<32> unicode; TBuf16<32> generatedUnicode; TBuf8<64> generatedUtf8; TInt convertToUnicodeState = CCnvCharacterSetConverter::KStateDefault; // - TheTest.Next(_L("Testing the behaviour of the Unicode character 0x0000")); + INFO_PRINTF1(_L("Testing the behaviour of the Unicode character 0x0000")); unicode.Format(_L16("%c"), 0x0000); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\x00"), 1)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xc0\x80")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode==unicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\x00"), 1)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xc0\x80")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode==unicode); unicode.Format(_L16("%c%c"), 0x0000, 0x0026); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\x00\x26"), 2)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xc0\x80\x26")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode==unicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\x00\x26"), 2)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xc0\x80\x26")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode==unicode); unicode.Format(_L16("%c%c"), 0x0000, 0x05d9); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\x00\xd7\x99"), 3)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xc0\x80\xd7\x99")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode==unicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\x00\xd7\x99"), 3)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xc0\x80\xd7\x99")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode==unicode); unicode.Format(_L16("%c%c"), 0x0000, 0x81ea); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\x00\xe8\x87\xaa"), 4)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xc0\x80\xe8\x87\xaa")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode==unicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\x00\xe8\x87\xaa"), 4)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xc0\x80\xe8\x87\xaa")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode==unicode); unicode.Format(_L16("%c%c%c"), 0x0000, 0xd9e0, 0xdda3); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\x00\xf2\x88\x86\xa3"), 5)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xc0\x80\xed\xa7\xa0\xed\xb6\xa3")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode.Length()==7); - TEST(generatedUnicode[0]==0x0000); - TEST(generatedUnicode[1]==0xFFFD); - TEST(generatedUnicode[2]==0xFFFD); - TEST(generatedUnicode[3]==0xFFFD); - TEST(generatedUnicode[4]==0xFFFD); - TEST(generatedUnicode[5]==0xFFFD); - TEST(generatedUnicode[6]==0xFFFD); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\x00\xf2\x88\x86\xa3"), 5)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xc0\x80\xed\xa7\xa0\xed\xb6\xa3")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode.Length()==7); + test(generatedUnicode[0]==0x0000); + test(generatedUnicode[1]==0xFFFD); + test(generatedUnicode[2]==0xFFFD); + test(generatedUnicode[3]==0xFFFD); + test(generatedUnicode[4]==0xFFFD); + test(generatedUnicode[5]==0xFFFD); + test(generatedUnicode[6]==0xFFFD); unicode.Format(_L16("%c%c"), 0x0071, 0x0000); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\x71\x00"), 2)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\x71\xc0\x80")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode==unicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\x71\x00"), 2)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\x71\xc0\x80")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode==unicode); unicode.Format(_L16("%c%c"), 0x06aa, 0x0000); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\xda\xaa\x00"), 3)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xda\xaa\xc0\x80")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode==unicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\xda\xaa\x00"), 3)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xda\xaa\xc0\x80")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode==unicode); unicode.Format(_L16("%c%c"), 0xc427, 0x0000); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\xec\x90\xa7\x00"), 4)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xec\x90\xa7\xc0\x80")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode==unicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\xec\x90\xa7\x00"), 4)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xec\x90\xa7\xc0\x80")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode==unicode); unicode.Format(_L16("%c%c%c"), 0xd801, 0xdef1, 0x0000); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\xf0\x90\x9b\xb1\x00"), 5)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\xa0\x81\xed\xbb\xb1\xc0\x80")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode.Length()==7); - TEST(generatedUnicode[0]==0xFFFD); - TEST(generatedUnicode[1]==0xFFFD); - TEST(generatedUnicode[2]==0xFFFD); - TEST(generatedUnicode[3]==0xFFFD); - TEST(generatedUnicode[4]==0xFFFD); - TEST(generatedUnicode[5]==0xFFFD); - TEST(generatedUnicode[6]==0x0000); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==TPtrC8(REINTERPRET_CAST(const TText8*, "\xf0\x90\x9b\xb1\x00"), 5)); // can't use _L8 as that gets the length by assuming it's a zero-terminated string + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\xa0\x81\xed\xbb\xb1\xc0\x80")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode.Length()==7); + test(generatedUnicode[0]==0xFFFD); + test(generatedUnicode[1]==0xFFFD); + test(generatedUnicode[2]==0xFFFD); + test(generatedUnicode[3]==0xFFFD); + test(generatedUnicode[4]==0xFFFD); + test(generatedUnicode[5]==0xFFFD); + test(generatedUnicode[6]==0x0000); - TheTest.Next(_L("Testing the generation of UTF-8 from surrogate pairs")); + INFO_PRINTF1(_L("Testing the generation of UTF-8 from surrogate pairs")); unicode.Format(_L16("%c"), 0xd7ff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\x9f\xbf")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\x9f\xbf")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode==unicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\x9f\xbf")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\x9f\xbf")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode==unicode); unicode.Format(_L16("%c"), 0xe000); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xee\x80\x80")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xee\x80\x80")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode==unicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xee\x80\x80")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xee\x80\x80")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode==unicode); unicode.Format(_L16("%c%c"), 0xd800, 0xdc00); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf0\x90\x80\x80")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\xa0\x80\xed\xb0\x80")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode.Length()==6); - TEST(generatedUnicode[0]==0xFFFD); - TEST(generatedUnicode[1]==0xFFFD); - TEST(generatedUnicode[2]==0xFFFD); - TEST(generatedUnicode[3]==0xFFFD); - TEST(generatedUnicode[4]==0xFFFD); - TEST(generatedUnicode[5]==0xFFFD); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf0\x90\x80\x80")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\xa0\x80\xed\xb0\x80")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode.Length()==6); + test(generatedUnicode[0]==0xFFFD); + test(generatedUnicode[1]==0xFFFD); + test(generatedUnicode[2]==0xFFFD); + test(generatedUnicode[3]==0xFFFD); + test(generatedUnicode[4]==0xFFFD); + test(generatedUnicode[5]==0xFFFD); unicode.Format(_L16("%c%c"), 0xd800, 0xdfff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf0\x90\x8f\xbf")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\xa0\x80\xed\xbf\xbf")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode.Length()==6); - TEST(generatedUnicode[0]==0xFFFD); - TEST(generatedUnicode[1]==0xFFFD); - TEST(generatedUnicode[2]==0xFFFD); - TEST(generatedUnicode[3]==0xFFFD); - TEST(generatedUnicode[4]==0xFFFD); - TEST(generatedUnicode[5]==0xFFFD); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf0\x90\x8f\xbf")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\xa0\x80\xed\xbf\xbf")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode.Length()==6); + test(generatedUnicode[0]==0xFFFD); + test(generatedUnicode[1]==0xFFFD); + test(generatedUnicode[2]==0xFFFD); + test(generatedUnicode[3]==0xFFFD); + test(generatedUnicode[4]==0xFFFD); + test(generatedUnicode[5]==0xFFFD); unicode.Format(_L16("%c%c"), 0xdbff, 0xdc00); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf4\x8f\xb0\x80")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\xaf\xbf\xed\xb0\x80")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode.Length()==6); - TEST(generatedUnicode[0]==0xFFFD); - TEST(generatedUnicode[1]==0xFFFD); - TEST(generatedUnicode[2]==0xFFFD); - TEST(generatedUnicode[3]==0xFFFD); - TEST(generatedUnicode[4]==0xFFFD); - TEST(generatedUnicode[5]==0xFFFD); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf4\x8f\xb0\x80")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\xaf\xbf\xed\xb0\x80")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode.Length()==6); + test(generatedUnicode[0]==0xFFFD); + test(generatedUnicode[1]==0xFFFD); + test(generatedUnicode[2]==0xFFFD); + test(generatedUnicode[3]==0xFFFD); + test(generatedUnicode[4]==0xFFFD); + test(generatedUnicode[5]==0xFFFD); unicode.Format(_L16("%c%c"), 0xdbff, 0xdfff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf4\x8f\xbf\xbf")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\xaf\xbf\xed\xbf\xbf")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode.Length()==6); - TEST(generatedUnicode[0]==0xFFFD); - TEST(generatedUnicode[1]==0xFFFD); - TEST(generatedUnicode[2]==0xFFFD); - TEST(generatedUnicode[3]==0xFFFD); - TEST(generatedUnicode[4]==0xFFFD); - TEST(generatedUnicode[5]==0xFFFD); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf4\x8f\xbf\xbf")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\xaf\xbf\xed\xbf\xbf")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode.Length()==6); + test(generatedUnicode[0]==0xFFFD); + test(generatedUnicode[1]==0xFFFD); + test(generatedUnicode[2]==0xFFFD); + test(generatedUnicode[3]==0xFFFD); + test(generatedUnicode[4]==0xFFFD); + test(generatedUnicode[5]==0xFFFD); unicode.Format(_L16("%c%c"), 0xd8e9, 0xdcd4); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf1\x8a\x93\x94")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\xa3\xa9\xed\xb3\x94")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode.Length()==6); - TEST(generatedUnicode[0]==0xFFFD); - TEST(generatedUnicode[1]==0xFFFD); - TEST(generatedUnicode[2]==0xFFFD); - TEST(generatedUnicode[3]==0xFFFD); - TEST(generatedUnicode[4]==0xFFFD); - TEST(generatedUnicode[5]==0xFFFD); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf1\x8a\x93\x94")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\xa3\xa9\xed\xb3\x94")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode.Length()==6); + test(generatedUnicode[0]==0xFFFD); + test(generatedUnicode[1]==0xFFFD); + test(generatedUnicode[2]==0xFFFD); + test(generatedUnicode[3]==0xFFFD); + test(generatedUnicode[4]==0xFFFD); + test(generatedUnicode[5]==0xFFFD); unicode.Format(_L16("%c%c%c"), 0xd8e9, 0xdcd4, 0x003e); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf1\x8a\x93\x94\x3e")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\xa3\xa9\xed\xb3\x94\x3e")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode.Length()==7); - TEST(generatedUnicode[0]==0xFFFD); - TEST(generatedUnicode[1]==0xFFFD); - TEST(generatedUnicode[2]==0xFFFD); - TEST(generatedUnicode[3]==0xFFFD); - TEST(generatedUnicode[4]==0xFFFD); - TEST(generatedUnicode[5]==0xFFFD); - TEST(generatedUnicode[6]==0x003e); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf1\x8a\x93\x94\x3e")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\xa3\xa9\xed\xb3\x94\x3e")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode.Length()==7); + test(generatedUnicode[0]==0xFFFD); + test(generatedUnicode[1]==0xFFFD); + test(generatedUnicode[2]==0xFFFD); + test(generatedUnicode[3]==0xFFFD); + test(generatedUnicode[4]==0xFFFD); + test(generatedUnicode[5]==0xFFFD); + test(generatedUnicode[6]==0x003e); unicode.Format(_L16("%c%c%c"), 0xd8e9, 0xdcd4, 0x01e9); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf1\x8a\x93\x94\xc7\xa9")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\xa3\xa9\xed\xb3\x94\xc7\xa9")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode.Length()==7); - TEST(generatedUnicode[0]==0xFFFD); - TEST(generatedUnicode[1]==0xFFFD); - TEST(generatedUnicode[2]==0xFFFD); - TEST(generatedUnicode[3]==0xFFFD); - TEST(generatedUnicode[4]==0xFFFD); - TEST(generatedUnicode[5]==0xFFFD); - TEST(generatedUnicode[6]==0x01e9); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf1\x8a\x93\x94\xc7\xa9")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\xa3\xa9\xed\xb3\x94\xc7\xa9")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode.Length()==7); + test(generatedUnicode[0]==0xFFFD); + test(generatedUnicode[1]==0xFFFD); + test(generatedUnicode[2]==0xFFFD); + test(generatedUnicode[3]==0xFFFD); + test(generatedUnicode[4]==0xFFFD); + test(generatedUnicode[5]==0xFFFD); + test(generatedUnicode[6]==0x01e9); unicode.Format(_L16("%c%c%c"), 0xd8e9, 0xdcd4, 0x1f9a); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xf1\x8a\x93\x94\xe1\xbe\x9a")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xed\xa3\xa9\xed\xb3\x94\xe1\xbe\x9a")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode.Length()==7); - TEST(generatedUnicode[0]==0xFFFD); - TEST(generatedUnicode[1]==0xFFFD); - TEST(generatedUnicode[2]==0xFFFD); - TEST(generatedUnicode[3]==0xFFFD); - TEST(generatedUnicode[4]==0xFFFD); - TEST(generatedUnicode[5]==0xFFFD); - TEST(generatedUnicode[6]==0x1f9a); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xf1\x8a\x93\x94\xe1\xbe\x9a")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xed\xa3\xa9\xed\xb3\x94\xe1\xbe\x9a")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode.Length()==7); + test(generatedUnicode[0]==0xFFFD); + test(generatedUnicode[1]==0xFFFD); + test(generatedUnicode[2]==0xFFFD); + test(generatedUnicode[3]==0xFFFD); + test(generatedUnicode[4]==0xFFFD); + test(generatedUnicode[5]==0xFFFD); + test(generatedUnicode[6]==0x1f9a); unicode.Format(_L16("%c%c%c"), 0x0025, 0xd8e9, 0xdcd4); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\x25\xf1\x8a\x93\x94")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\x25\xed\xa3\xa9\xed\xb3\x94")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode.Length()==7); - TEST(generatedUnicode[0]==0x0025); - TEST(generatedUnicode[1]==0xFFFD); - TEST(generatedUnicode[2]==0xFFFD); - TEST(generatedUnicode[3]==0xFFFD); - TEST(generatedUnicode[4]==0xFFFD); - TEST(generatedUnicode[5]==0xFFFD); - TEST(generatedUnicode[6]==0xFFFD); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\x25\xf1\x8a\x93\x94")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\x25\xed\xa3\xa9\xed\xb3\x94")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode.Length()==7); + test(generatedUnicode[0]==0x0025); + test(generatedUnicode[1]==0xFFFD); + test(generatedUnicode[2]==0xFFFD); + test(generatedUnicode[3]==0xFFFD); + test(generatedUnicode[4]==0xFFFD); + test(generatedUnicode[5]==0xFFFD); + test(generatedUnicode[6]==0xFFFD); unicode.Format(_L16("%c%c%c"), 0x00a5, 0xd8e9, 0xdcd4); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xc2\xa5\xf1\x8a\x93\x94")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xc2\xa5\xed\xa3\xa9\xed\xb3\x94")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode.Length()==7); - TEST(generatedUnicode[0]==0x00a5); - TEST(generatedUnicode[1]==0xFFFD); - TEST(generatedUnicode[2]==0xFFFD); - TEST(generatedUnicode[3]==0xFFFD); - TEST(generatedUnicode[4]==0xFFFD); - TEST(generatedUnicode[5]==0xFFFD); - TEST(generatedUnicode[6]==0xFFFD); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xc2\xa5\xf1\x8a\x93\x94")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xc2\xa5\xed\xa3\xa9\xed\xb3\x94")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode.Length()==7); + test(generatedUnicode[0]==0x00a5); + test(generatedUnicode[1]==0xFFFD); + test(generatedUnicode[2]==0xFFFD); + test(generatedUnicode[3]==0xFFFD); + test(generatedUnicode[4]==0xFFFD); + test(generatedUnicode[5]==0xFFFD); + test(generatedUnicode[6]==0xFFFD); unicode.Format(_L16("%c%c%c"), 0x0ca6, 0xd8e9, 0xdcd4); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xe0\xb2\xa6\xf1\x8a\x93\x94")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==unicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); - TEST(generatedUtf8==_L8("\xe0\xb2\xa6\xed\xa3\xa9\xed\xb3\x94")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); - TEST(generatedUnicode.Length()==7); - TEST(generatedUnicode[0]==0x0ca6); - TEST(generatedUnicode[1]==0xFFFD); - TEST(generatedUnicode[2]==0xFFFD); - TEST(generatedUnicode[3]==0xFFFD); - TEST(generatedUnicode[4]==0xFFFD); - TEST(generatedUnicode[5]==0xFFFD); - TEST(generatedUnicode[6]==0xFFFD); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xe0\xb2\xa6\xf1\x8a\x93\x94")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==unicode); + test(characterSetConverter->ConvertFromUnicode(generatedUtf8, unicode)==0); + test(generatedUtf8==_L8("\xe0\xb2\xa6\xed\xa3\xa9\xed\xb3\x94")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==0); + test(generatedUnicode.Length()==7); + test(generatedUnicode[0]==0x0ca6); + test(generatedUnicode[1]==0xFFFD); + test(generatedUnicode[2]==0xFFFD); + test(generatedUnicode[3]==0xFFFD); + test(generatedUnicode[4]==0xFFFD); + test(generatedUnicode[5]==0xFFFD); + test(generatedUnicode[6]==0xFFFD); // Additional tests added for INC117111... generatedUtf8.Format(_L8("\xe0\xb2\xa6\xc0")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==1); - TEST(generatedUnicode[0]==0x0ca6); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==1); + test(generatedUnicode[0]==0x0ca6); generatedUtf8.Format(_L8("\xc0")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==CnvUtfConverter::EErrorIllFormedInput); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedUtf8, convertToUnicodeState)==CnvUtfConverter::EErrorIllFormedInput); CleanupStack::PopAndDestroy(2); // characterSetConverter and fileServerSession } -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; + +CT_JAVA::CT_JAVA() + { + SetTestStepName(KTestStep_T_JAVA); + } - TheTest.Title(); +TVerdict CT_JAVA::doTestStepL() + { + SetTestStepResult(EFail); - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); + __UHEAP_MARK; - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); + TRAPD(error1, Test_JAVA()); - delete trapCleanup; + __UHEAP_MARKEND; - TheTest.End(); - TheTest.Close(); + if(error1 == KErrNone ) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return KErrNone; - } - + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/utf/tnewlin7.cpp --- a/charconvfw/charconv_fw/test/rtest/tsrc/utf/tnewlin7.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/utf/tnewlin7.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -17,25 +17,21 @@ #include -#include #include +#include "t_newlin7.h" /////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TNewLin7")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -#define TEST(arg) ::Check((arg), __LINE__) - +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// /** @@ -46,29 +42,47 @@ @SYMTestExpectedResults Test must not fail @SYMREQ REQ0000 */ -GLDEF_C TInt E32Main() +void CT_NEWLIN7::TestNEWLIN7() { - TheTest.Title(); - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0570 Testing base64 sequences combined with line-breaks ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0570 Testing base64 sequences combined with line-breaks ")); TBuf16<256> unicode; TBuf8<256> utf7; TInt state=CnvUtfConverter::KStateDefault; utf7=_L8("+U0E\nU0E"); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(unicode, utf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(unicode.Length()==5); - TEST(unicode[0]==0x5341); - TEST(unicode[1]==0x000a); - TEST(unicode[2]==0x0055); - TEST(unicode[3]==0x0030); - TEST(unicode[4]==0x0045); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(unicode, utf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(unicode.Length()==5); + test(unicode[0]==0x5341); + test(unicode[1]==0x000a); + test(unicode[2]==0x0055); + test(unicode[3]==0x0030); + test(unicode[4]==0x0045); unicode=_L16(")\n)\n*\n*\n+\n+\n)\n)\n*\n*\n+\n+"); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(utf7, unicode, ETrue)==0); - TEST(utf7==_L8(")\n)\n+ACo-\n+ACo-\n+-\n+-\n)\n)\n+ACo-\n+ACo-\n+-\n+-")); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(utf7, unicode, EFalse)==0); - TEST(utf7==_L8(")\n)\n*\n*\n+-\n+-\n)\n)\n*\n*\n+-\n+-")); - TheTest.End(); - TheTest.Close(); - return KErrNone; + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(utf7, unicode, ETrue)==0); + test(utf7==_L8(")\n)\n+ACo-\n+ACo-\n+-\n+-\n)\n)\n+ACo-\n+ACo-\n+-\n+-")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(utf7, unicode, EFalse)==0); + test(utf7==_L8(")\n)\n*\n*\n+-\n+-\n)\n)\n*\n*\n+-\n+-")); } +CT_NEWLIN7::CT_NEWLIN7() + { + SetTestStepName(KTestStep_T_NEWLIN7); + } + +TVerdict CT_NEWLIN7::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + + TRAPD(error1, TestNEWLIN7()); + + __UHEAP_MARKEND; + + if(error1 == KErrNone ) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/utf/tpartial.cpp --- a/charconvfw/charconv_fw/test/rtest/tsrc/utf/tpartial.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/utf/tpartial.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -17,24 +17,20 @@ #include -#include #include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TPartial")); +#include "t_partial.h" -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -#define TEST(arg) ::Check((arg), __LINE__) +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// @@ -106,23 +102,23 @@ @SYMTestExpectedResults Test must not fail @SYMREQ REQ0000 */ -LOCAL_C void TestConvertingToUtf(TUint8* aUtfBuffer, TInt aMaximumLengthOfUtfDescriptor, const TDesC16& aUnicode, TBool aBoolParameter, TInt aNumberOfUnicodeItemsExpectedToBeConverted, const TDesC8& aFirstHalfOfUtfExpected, const TDesC8& aSecondHalfOfUtfExpected) +void CT_PARTIAL::TestConvertingToUtf(TUint8* aUtfBuffer, TInt aMaximumLengthOfUtfDescriptor, const TDesC16& aUnicode, TBool aBoolParameter, TInt aNumberOfUnicodeItemsExpectedToBeConverted, const TDesC8& aFirstHalfOfUtfExpected, const TDesC8& aSecondHalfOfUtfExpected) { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0572 ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0572 ")); TPtr8 utf(aUtfBuffer, aMaximumLengthOfUtfDescriptor); FillWithIllegalUtf(aUtfBuffer); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(utf, aUnicode, aBoolParameter)==aNumberOfUnicodeItemsExpectedToBeConverted); - TEST(FillWithIllegalUtfReturningIfMatched(aUtfBuffer, utf, aFirstHalfOfUtfExpected)); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(utf, aUnicode, aBoolParameter)==aNumberOfUnicodeItemsExpectedToBeConverted); + test(FillWithIllegalUtfReturningIfMatched(aUtfBuffer, utf, aFirstHalfOfUtfExpected)); TPtr8 restOfUtf(aUtfBuffer, KUtfBufferLength); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(restOfUtf, aUnicode.Right(aNumberOfUnicodeItemsExpectedToBeConverted), aBoolParameter)==0); - TEST(FillWithIllegalUtfReturningIfMatched(aUtfBuffer, restOfUtf, aSecondHalfOfUtfExpected)); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(restOfUtf, aUnicode.Right(aNumberOfUnicodeItemsExpectedToBeConverted), aBoolParameter)==0); + test(FillWithIllegalUtfReturningIfMatched(aUtfBuffer, restOfUtf, aSecondHalfOfUtfExpected)); TBuf8 originalUtf(aFirstHalfOfUtfExpected); originalUtf.Append(aSecondHalfOfUtfExpected); TBuf16<20> generatedUnicode; TInt state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, originalUtf, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==aUnicode); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, originalUtf, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==aUnicode); } /** @SYMTestCaseID SYSLIB-CHARCONV-CT-0573 @@ -132,12 +128,12 @@ @SYMTestExpectedResults Test must not fail @SYMREQ REQ0000 */ -LOCAL_C void TestUtf7StatePreservation(const TDesC8& aUtf7) +void CT_PARTIAL::TestUtf7StatePreservation(const TDesC8& aUtf7) { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0573 ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0573 ")); TInt state=CnvUtfConverter::KStateDefault; TBuf16<50> wholeGeneratedUnicode; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(wholeGeneratedUnicode, aUtf7, state)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(wholeGeneratedUnicode, aUtf7, state)==0); for (TInt i=aUtf7.Length()-1; i>=0; --i) { state=CnvUtfConverter::KStateDefault; @@ -145,54 +141,53 @@ TInt numberOfUtf7BytesNotConvertedByFirstCall=CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode1, aUtf7.Left(i), state); if (numberOfUtf7BytesNotConvertedByFirstCall<0) { - TEST(numberOfUtf7BytesNotConvertedByFirstCall==CnvUtfConverter::EErrorIllFormedInput); + test(numberOfUtf7BytesNotConvertedByFirstCall==CnvUtfConverter::EErrorIllFormedInput); numberOfUtf7BytesNotConvertedByFirstCall=i; generatedUnicode1=KNullDesC16; state=CnvUtfConverter::KStateDefault; } - TEST(numberOfUtf7BytesNotConvertedByFirstCall>=0); + test(numberOfUtf7BytesNotConvertedByFirstCall>=0); TBuf16<50> generatedUnicode2; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode2, aUtf7.Mid(i-numberOfUtf7BytesNotConvertedByFirstCall), state)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode2, aUtf7.Mid(i-numberOfUtf7BytesNotConvertedByFirstCall), state)==0); generatedUnicode1+=generatedUnicode2; - TEST(generatedUnicode1==wholeGeneratedUnicode); + test(generatedUnicode1==wholeGeneratedUnicode); } } -LOCAL_C void TestConvertingToUtf(TUint8* aUtfBuffer, TInt aMaximumLengthOfUtfDescriptor, const TDesC16& aUnicode, TInt aNumberOfUnicodeItemsExpectedToBeConverted, const TDesC8& aFirstHalfOfUtfExpected, const TDesC8& aSecondHalfOfUtfExpected) +void CT_PARTIAL::TestConvertingToUtf(TUint8* aUtfBuffer, TInt aMaximumLengthOfUtfDescriptor, const TDesC16& aUnicode, TInt aNumberOfUnicodeItemsExpectedToBeConverted, const TDesC8& aFirstHalfOfUtfExpected, const TDesC8& aSecondHalfOfUtfExpected) { TestConvertingToUtf(aUtfBuffer, aMaximumLengthOfUtfDescriptor, aUnicode, EFalse, aNumberOfUnicodeItemsExpectedToBeConverted, aFirstHalfOfUtfExpected, aSecondHalfOfUtfExpected); } -GLDEF_C TInt E32Main() +void CT_PARTIAL::TestPARTIAL() { - TheTest.Title(); - TheTest.Start(_L("Checking that partial conversions work")); + INFO_PRINTF1(_L("Checking that partial conversions work")); TUint8 utfBuffer[KUtfBufferLength]; TUint16 unicodeBuffer[KUtfBufferLength]; - TheTest.Next(_L("Testing trivial UTF-7 and UTF-8")); + INFO_PRINTF1(_L("Testing trivial UTF-7 and UTF-8")); { for (TInt i=0; i<6; ++i) { const TInt numberOfUnconvertedItemsAtEndOfInputDescriptor=5-i; TPtr8 utf(utfBuffer, i); FillWithIllegalUtf(utfBuffer); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(utf, _L16("abcde"), EFalse)==numberOfUnconvertedItemsAtEndOfInputDescriptor); - TEST(FillWithIllegalUtfReturningIfMatched(utfBuffer, utf, _L8("abcde").Left(i))); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(utf, _L16("abcde"), ETrue)==numberOfUnconvertedItemsAtEndOfInputDescriptor); - TEST(FillWithIllegalUtfReturningIfMatched(utfBuffer, utf, _L8("abcde").Left(i))); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(utf, _L16("abcde"))==numberOfUnconvertedItemsAtEndOfInputDescriptor); - TEST(FillWithIllegalUtfReturningIfMatched(utfBuffer, utf, _L8("abcde").Left(i))); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(utf, _L16("abcde"), EFalse)==numberOfUnconvertedItemsAtEndOfInputDescriptor); + test(FillWithIllegalUtfReturningIfMatched(utfBuffer, utf, _L8("abcde").Left(i))); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(utf, _L16("abcde"), ETrue)==numberOfUnconvertedItemsAtEndOfInputDescriptor); + test(FillWithIllegalUtfReturningIfMatched(utfBuffer, utf, _L8("abcde").Left(i))); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(utf, _L16("abcde"))==numberOfUnconvertedItemsAtEndOfInputDescriptor); + test(FillWithIllegalUtfReturningIfMatched(utfBuffer, utf, _L8("abcde").Left(i))); TPtr16 unicode(unicodeBuffer, i); TInt state=CnvUtfConverter::KStateDefault; FillWithIllegalUnicode(unicodeBuffer); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(unicode, _L8("abcde"), state)==numberOfUnconvertedItemsAtEndOfInputDescriptor); - TEST(FillWithIllegalUnicodeReturningIfMatched(unicodeBuffer, _L16("abcde").Left(i))); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(unicode, _L8("abcde"))==numberOfUnconvertedItemsAtEndOfInputDescriptor); - TEST(FillWithIllegalUnicodeReturningIfMatched(unicodeBuffer, _L16("abcde").Left(i))); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(unicode, _L8("abcde"), state)==numberOfUnconvertedItemsAtEndOfInputDescriptor); + test(FillWithIllegalUnicodeReturningIfMatched(unicodeBuffer, _L16("abcde").Left(i))); + test(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(unicode, _L8("abcde"))==numberOfUnconvertedItemsAtEndOfInputDescriptor); + test(FillWithIllegalUnicodeReturningIfMatched(unicodeBuffer, _L16("abcde").Left(i))); } } - TheTest.Next(_L("Testing converting to UTF-7")); + INFO_PRINTF1(_L("Testing converting to UTF-7")); { TBuf16<20> originalUnicode; TBuf16<20> generatedUnicode; @@ -250,218 +245,238 @@ } TestConvertingToUtf(utfBuffer, 28, originalUnicode, 1, _L8("+BC8- +BD0ENQ- +BDcEPQQwBE4-"), _L8(".")); TestConvertingToUtf(utfBuffer, 29, originalUnicode, 0, _L8("+BC8- +BD0ENQ- +BDcEPQQwBE4-."), KNullDesC8); - TheTest.Next(_L("Testing converting UCS-2 ending in truncated sequences")); + INFO_PRINTF1(_L("Testing converting UCS-2 ending in truncated sequences")); originalUnicode.Format(_L16(" %c"), 0xd800); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf, originalUnicode, EFalse)==0); - TEST(generatedUtf==_L8(" +2AA-")); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf, originalUnicode, ETrue)==0); - TEST(generatedUtf==_L8(" +2AA-")); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf, originalUnicode)==1); - TEST(generatedUtf.Length()==1); - TEST(generatedUtf[0]==' '); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf, originalUnicode, EFalse)==0); + test(generatedUtf==_L8(" +2AA-")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf, originalUnicode, ETrue)==0); + test(generatedUtf==_L8(" +2AA-")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf, originalUnicode)==1); + test(generatedUtf.Length()==1); + test(generatedUtf[0]==' '); originalUnicode.Format(_L16("%c"), 0xd800); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf, originalUnicode, EFalse)==0); - TEST(generatedUtf==_L8("+2AA-")); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf, originalUnicode, ETrue)==0); - TEST(generatedUtf==_L8("+2AA-")); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf, originalUnicode)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf, originalUnicode, EFalse)==0); + test(generatedUtf==_L8("+2AA-")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf, originalUnicode, ETrue)==0); + test(generatedUtf==_L8("+2AA-")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf, originalUnicode)==CnvUtfConverter::EErrorIllFormedInput); originalUnicode.Format(_L16("%c%c"), 0xd800, 0xdbff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf, originalUnicode)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf, originalUnicode)==CnvUtfConverter::EErrorIllFormedInput); originalUnicode.Format(_L16("%c%c"), 0xd800, 0xdc00); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf, originalUnicode)==0); - TEST(generatedUtf==_L8("\xf0\x90\x80\x80")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf, originalUnicode)==0); + test(generatedUtf==_L8("\xf0\x90\x80\x80")); - TheTest.Next(_L("Testing converting UTF-7 ending in truncated sequences")); + INFO_PRINTF1(_L("Testing converting UTF-7 ending in truncated sequences")); TInt state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+"), state)==CnvUtfConverter::EErrorIllFormedInput); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("e+"), state)==1); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='e'); - TEST(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("e+"), state)==1); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='e'); + test(state==CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+-"), state)==0); - TEST(generatedUnicode==_L16("+")); - TEST(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+-"), state)==0); + test(generatedUnicode==_L16("+")); + test(state==CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++"), state)==1); - TEST(generatedUnicode.Length()==0); - TEST(state!=CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+"), state)==CnvUtfConverter::EErrorIllFormedInput); // before resetting state + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++"), state)==1); + test(generatedUnicode.Length()==0); + test(state!=CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+"), state)==CnvUtfConverter::EErrorIllFormedInput); // before resetting state state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++-"), state)==CnvUtfConverter::EErrorIllFormedInput); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+++"), state)==2); - TEST(generatedUnicode.Length()==0); - TEST(state!=CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++"), state)==CnvUtfConverter::EErrorIllFormedInput); // before resetting state + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+++"), state)==2); + test(generatedUnicode.Length()==0); + test(state!=CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++"), state)==CnvUtfConverter::EErrorIllFormedInput); // before resetting state state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+++-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+++-"), state)==CnvUtfConverter::EErrorIllFormedInput); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++"), state)==3); - TEST(generatedUnicode.Length()==0); - TEST(state!=CnvUtfConverter::KStateDefault); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+++"), state)==CnvUtfConverter::EErrorIllFormedInput); // before resetting state + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++"), state)==3); + test(generatedUnicode.Length()==0); + test(state!=CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+++"), state)==CnvUtfConverter::EErrorIllFormedInput); // before resetting state state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++-"), state)==CnvUtfConverter::EErrorIllFormedInput); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+++8"), state)==0); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xfbef); - TEST(state!=CnvUtfConverter::KStateDefault); // this is imporant, as even though we've converted all the input UTF-7, the input may be being received in chunks, in which case, we need to make sure we remember when converting the next chunk that we were previously in a base-64 sequence + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+++8"), state)==0); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xfbef); + test(state!=CnvUtfConverter::KStateDefault); // this is imporant, as even though we've converted all the input UTF-7, the input may be being received in chunks, in which case, we need to make sure we remember when converting the next chunk that we were previously in a base-64 sequence state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+++8-"), state)==0); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xfbef); - TEST(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+++8-"), state)==0); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xfbef); + test(state==CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++/"), state)==1); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xfbef); - TEST(state!=CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++/"), state)==1); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xfbef); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++/-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++/-"), state)==CnvUtfConverter::EErrorIllFormedInput); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++//"), state)==2); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xfbef); - TEST(state!=CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++//"), state)==2); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xfbef); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++//-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++//-"), state)==CnvUtfConverter::EErrorIllFormedInput); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///"), state)==3); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xfbef); - TEST(state!=CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///"), state)==3); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xfbef); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///-"), state)==CnvUtfConverter::EErrorIllFormedInput); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++//w"), state)==0); - TEST(generatedUnicode.Length()==2); - TEST(generatedUnicode[0]==0xfbef); - TEST(generatedUnicode[1]==0xbfff); - TEST(state!=CnvUtfConverter::KStateDefault); // this is imporant, as even though we've converted all the input UTF-7, the input may be being received in chunks, in which case, we need to make sure we remember when converting the next chunk that we were previously in a base-64 sequence + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++//w"), state)==0); + test(generatedUnicode.Length()==2); + test(generatedUnicode[0]==0xfbef); + test(generatedUnicode[1]==0xbfff); + test(state!=CnvUtfConverter::KStateDefault); // this is imporant, as even though we've converted all the input UTF-7, the input may be being received in chunks, in which case, we need to make sure we remember when converting the next chunk that we were previously in a base-64 sequence state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++//w-"), state)==0); - TEST(generatedUnicode.Length()==2); - TEST(generatedUnicode[0]==0xfbef); - TEST(generatedUnicode[1]==0xbfff); - TEST(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++//w-"), state)==0); + test(generatedUnicode.Length()==2); + test(generatedUnicode[0]==0xfbef); + test(generatedUnicode[1]==0xbfff); + test(state==CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///h"), state)==1); - TEST(generatedUnicode.Length()==2); - TEST(generatedUnicode[0]==0xfbef); - TEST(generatedUnicode[1]==0xbfff); - TEST(state!=CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///h"), state)==1); + test(generatedUnicode.Length()==2); + test(generatedUnicode[0]==0xfbef); + test(generatedUnicode[1]==0xbfff); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///h-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///h-"), state)==CnvUtfConverter::EErrorIllFormedInput); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///hh"), state)==0); - TEST(generatedUnicode.Length()==3); - TEST(generatedUnicode[0]==0xfbef); - TEST(generatedUnicode[1]==0xbfff); - TEST(generatedUnicode[2]==0xf861); - TEST(state!=CnvUtfConverter::KStateDefault); // this is imporant, as even though we've converted all the input UTF-7, the input may be being received in chunks, in which case, we need to make sure we remember when converting the next chunk that we were previously in a base-64 sequence + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///hh"), state)==0); + test(generatedUnicode.Length()==3); + test(generatedUnicode[0]==0xfbef); + test(generatedUnicode[1]==0xbfff); + test(generatedUnicode[2]==0xf861); + test(state!=CnvUtfConverter::KStateDefault); // this is imporant, as even though we've converted all the input UTF-7, the input may be being received in chunks, in which case, we need to make sure we remember when converting the next chunk that we were previously in a base-64 sequence state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///hh-"), state)==0); - TEST(generatedUnicode.Length()==3); - TEST(generatedUnicode[0]==0xfbef); - TEST(generatedUnicode[1]==0xbfff); - TEST(generatedUnicode[2]==0xf861); - TEST(state==CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///hh-"), state)==0); + test(generatedUnicode.Length()==3); + test(generatedUnicode[0]==0xfbef); + test(generatedUnicode[1]==0xbfff); + test(generatedUnicode[2]==0xf861); + test(state==CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///hht"), state)==1); - TEST(generatedUnicode.Length()==3); - TEST(generatedUnicode[0]==0xfbef); - TEST(generatedUnicode[1]==0xbfff); - TEST(generatedUnicode[2]==0xf861); - TEST(state!=CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///hht"), state)==1); + test(generatedUnicode.Length()==3); + test(generatedUnicode[0]==0xfbef); + test(generatedUnicode[1]==0xbfff); + test(generatedUnicode[2]==0xf861); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///hht-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///hht-"), state)==CnvUtfConverter::EErrorIllFormedInput); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///hhtt"), state)==2); - TEST(generatedUnicode.Length()==3); - TEST(generatedUnicode[0]==0xfbef); - TEST(generatedUnicode[1]==0xbfff); - TEST(generatedUnicode[2]==0xf861); - TEST(state!=CnvUtfConverter::KStateDefault); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///hhtt"), state)==2); + test(generatedUnicode.Length()==3); + test(generatedUnicode[0]==0xfbef); + test(generatedUnicode[1]==0xbfff); + test(generatedUnicode[2]==0xf861); + test(state!=CnvUtfConverter::KStateDefault); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///hhtt-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("++++///hhtt-"), state)==CnvUtfConverter::EErrorIllFormedInput); state=CnvUtfConverter::KStateDefault; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+34-"), state)==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+34-"), state)==CnvUtfConverter::EErrorIllFormedInput); TestUtf7StatePreservation(_L8("++34-")); TestUtf7StatePreservation(_L8("+rY4/5b+al3V98w-")); TestUtf7StatePreservation(_L8("+ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/-")); - TheTest.Next(_L("Testing converting UTF-8 ending in truncated sequences")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xc8"))==CnvUtfConverter::EErrorIllFormedInput); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("x\xc8"))==1); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='x'); + INFO_PRINTF1(_L("Testing converting UTF-8 ending in truncated sequences")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xc8"))==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("x\xc8"))==1); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='x'); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xc8\xc0"))==0); - TEST(generatedUnicode[0]==0xfffd); - TEST(generatedUnicode[1]==0xfffd); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xc8\xb0"))==0); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0x0230); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xc8\xc0"))==0); + test(generatedUnicode[0]==0xfffd); + test(generatedUnicode[1]==0xfffd); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xc8\xb0"))==0); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0x0230); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xe4"))==CnvUtfConverter::EErrorIllFormedInput); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("y\xe4"))==1); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='y'); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xe4\x80"))==CnvUtfConverter::EErrorIllFormedInput); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("H\xe4\x80"))==2); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='H'); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xe4\xc0"))==CnvUtfConverter::EErrorIllFormedInput); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("e\xe4\xc0"))==2); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='e'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xe4"))==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("y\xe4"))==1); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='y'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xe4\x80"))==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("H\xe4\x80"))==2); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='H'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xe4\xc0"))==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("e\xe4\xc0"))==2); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='e'); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xe4\x80\xc0"))==0); - TEST(generatedUnicode[0]==0xfffd); - TEST(generatedUnicode[1]==0xfffd); - TEST(generatedUnicode[1]==0xfffd); - - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xe4\x80\xb0"))==0); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0x4030); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xe4\x80\xc0"))==0); + test(generatedUnicode[0]==0xfffd); + test(generatedUnicode[1]==0xfffd); + test(generatedUnicode[1]==0xfffd); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xf2"))==CnvUtfConverter::EErrorIllFormedInput); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("7\xf2"))==1); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='7'); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xf2\x80"))==CnvUtfConverter::EErrorIllFormedInput); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\\\xf2\x80"))==2); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='\\'); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xf2\xc0"))==CnvUtfConverter::EErrorIllFormedInput); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("$\xf2\xc0"))==2); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='$'); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xf2\x80\x80"))==CnvUtfConverter::EErrorIllFormedInput); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("{\xf2\x80\x80"))==3); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]=='{'); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xf2\x80\xc0"))==CnvUtfConverter::EErrorIllFormedInput); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8(" \xf2\x80\xc0"))==3); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==' '); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xe4\x80\xb0"))==0); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0x4030); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xf2\x80\x80\xc0"))==0); - TEST(generatedUnicode[0]==0xfffd); - TEST(generatedUnicode[1]==0xfffd); - TEST(generatedUnicode[2]==0xfffd); - TEST(generatedUnicode[3]==0xfffd); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xf2"))==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("7\xf2"))==1); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='7'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xf2\x80"))==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\\\xf2\x80"))==2); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='\\'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xf2\xc0"))==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("$\xf2\xc0"))==2); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='$'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xf2\x80\x80"))==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("{\xf2\x80\x80"))==3); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]=='{'); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xf2\x80\xc0"))==CnvUtfConverter::EErrorIllFormedInput); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8(" \xf2\x80\xc0"))==3); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==' '); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xf2\x80\x80\xb0"))==0); - TEST(generatedUnicode.Length()==2); - TEST(generatedUnicode[0]==0xd9c0); - TEST(generatedUnicode[1]==0xdc30); - } - TheTest.End(); - TheTest.Close(); - return KErrNone; + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xf2\x80\x80\xc0"))==0); + test(generatedUnicode[0]==0xfffd); + test(generatedUnicode[1]==0xfffd); + test(generatedUnicode[2]==0xfffd); + test(generatedUnicode[3]==0xfffd); + + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, _L8("\xf2\x80\x80\xb0"))==0); + test(generatedUnicode.Length()==2); + test(generatedUnicode[0]==0xd9c0); + test(generatedUnicode[1]==0xdc30); } + } + +CT_PARTIAL::CT_PARTIAL() + { + SetTestStepName(KTestStep_T_PARTIAL); + } + +TVerdict CT_PARTIAL::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + + TRAPD(error1, TestPARTIAL()); + + __UHEAP_MARKEND; + + if(error1 == KErrNone ) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/utf/trealuni.cpp --- a/charconvfw/charconv_fw/test/rtest/tsrc/utf/trealuni.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/utf/trealuni.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -17,37 +17,23 @@ #include -#include #include #include +#include "t_realuni.h" /////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TRealUni")); -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - TheTest.Printf(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// @@ -59,43 +45,62 @@ @SYMTestExpectedResults Test must not fail @SYMREQ REQ0000 */ -GLDEF_C TInt E32Main() +void CT_REALUNI::TestREALUNI() { - TheTest.Title(); - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0568 Testing a \"real\" Unicode file's round trip ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0568 Testing a \"real\" Unicode file's round trip ")); RFs fs; RFile file; - TEST2(fs.Connect(), KErrNone); + test(fs.Connect() == KErrNone); TFindFile findFile=fs; - TEST(findFile.FindByDir(_L("DAXUE.UNI"), _L("\\system\\data\\"))==KErrNone); - TEST(file.Open(fs, findFile.File(), EFileShareExclusive|EFileStream|EFileRead)==KErrNone); + test(findFile.FindByDir(_L("DAXUE.UNI"), _L("\\system\\data\\"))==KErrNone); + test(file.Open(fs, findFile.File(), EFileShareExclusive|EFileStream|EFileRead)==KErrNone); TInt size=0; - TEST2(file.Size(size), KErrNone); - TEST((size>0) && (size%2==0)); + test(file.Size(size) == KErrNone); + test((size>0) && (size%2==0)); HBufC16* originalUnicode=HBufC16::New(size/2); HBufC8* generatedUtf8=HBufC8::New(size*2); HBufC16* generatedUnicode=HBufC16::New(size/2); - TEST(originalUnicode!=NULL); - TEST(generatedUtf8!=NULL); - TEST(generatedUnicode!=NULL); + test(originalUnicode!=NULL); + test(generatedUtf8!=NULL); + test(generatedUnicode!=NULL); TPtr8 ptr1(REINTERPRET_CAST(TUint8*, CONST_CAST(TUint16*, originalUnicode->Ptr())), 0, size); - TEST2(file.Read(ptr1), KErrNone); - TEST(ptr1.Length()==size); + test(file.Read(ptr1) == KErrNone); + test(ptr1.Length()==size); TPtr16 ptr2=originalUnicode->Des(); ptr2.SetLength(size/2); - TEST(originalUnicode->Size()==size); + test(originalUnicode->Size()==size); TPtr8 ptr3=generatedUtf8->Des(); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(ptr3, *originalUnicode)==0); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(ptr3, *originalUnicode)==0); TPtr16 ptr4=generatedUnicode->Des(); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(ptr4, *generatedUtf8)==0); - TEST(*generatedUnicode==*originalUnicode); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(ptr4, *generatedUtf8)==0); + test(*generatedUnicode==*originalUnicode); delete originalUnicode; delete generatedUtf8; delete generatedUnicode; file.Close(); fs.Close(); - TheTest.End(); - TheTest.Close(); - return KErrNone; + } +CT_REALUNI::CT_REALUNI() + { + SetTestStepName(KTestStep_T_REALUNI); + } + +TVerdict CT_REALUNI::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + + TRAPD(error1, TestREALUNI()); + + __UHEAP_MARKEND; + + if(error1 == KErrNone ) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/utf/trealut8.cpp --- a/charconvfw/charconv_fw/test/rtest/tsrc/utf/trealut8.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/utf/trealut8.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -17,37 +17,25 @@ #include -#include #include #include +#include "t_realut8.h" /////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TRealUT8")); -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - TheTest.Printf(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// @@ -59,42 +47,60 @@ @SYMTestExpectedResults Test must not fail @SYMREQ REQ0000 */ -GLDEF_C TInt E32Main() +void CT_REALUT8::TestREALUT8() { - TheTest.Title(); - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0567 Testing a \"real\" UTF8 file's round trip ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0567 Testing a \"real\" UTF8 file's round trip ")); RFs fs; RFile inputFile; - TEST2(fs.Connect(), KErrNone); + test(fs.Connect()== KErrNone); TFindFile findFile=fs; - TEST(findFile.FindByDir(_L("ETHIOPIC.UT8"), _L("\\system\\data\\"))==KErrNone); - TEST(inputFile.Open(fs, findFile.File(), EFileShareExclusive|EFileStream|EFileRead)==KErrNone); + test(findFile.FindByDir(_L("ETHIOPIC.UT8"), _L("\\system\\data\\"))==KErrNone); + test(inputFile.Open(fs, findFile.File(), EFileShareExclusive|EFileStream|EFileRead)==KErrNone); TInt size=0; - TEST2(inputFile.Size(size), KErrNone); + test(inputFile.Size(size) == KErrNone); HBufC8* originalUtf8=HBufC8::New(size); HBufC16* generatedUnicode=HBufC16::New(size); HBufC8* generatedUtf8=HBufC8::New(size); RFile outputFile; - TEST(originalUtf8!=NULL); - TEST(generatedUnicode!=NULL); - TEST(generatedUtf8!=NULL); + test(originalUtf8!=NULL); + test(generatedUnicode!=NULL); + test(generatedUtf8!=NULL); TPtr8 ptr1=originalUtf8->Des(); - TEST2(inputFile.Read(ptr1), KErrNone); - TEST(outputFile.Replace(fs, _L("c:\\ETHIOPIC.UNI"), EFileShareExclusive|EFileStream|EFileWrite)==KErrNone); + test(inputFile.Read(ptr1) == KErrNone); + test(outputFile.Replace(fs, _L("c:\\ETHIOPIC.UNI"), EFileShareExclusive|EFileStream|EFileWrite)==KErrNone); TPtr16 ptr2=generatedUnicode->Des(); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(ptr2, *originalUtf8)==0); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(ptr2, *originalUtf8)==0); TPtr8 ptr3=generatedUtf8->Des(); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(ptr3, *generatedUnicode)==0); - TEST(*generatedUtf8==*originalUtf8); - TEST(outputFile.Write(TPtrC8(REINTERPRET_CAST(const TUint8*, generatedUnicode->Ptr()), generatedUnicode->Size()))==KErrNone); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(ptr3, *generatedUnicode)==0); + test(*generatedUtf8==*originalUtf8); + test(outputFile.Write(TPtrC8(REINTERPRET_CAST(const TUint8*, generatedUnicode->Ptr()), generatedUnicode->Size()))==KErrNone); outputFile.Close(); delete generatedUtf8; delete generatedUnicode; delete originalUtf8; inputFile.Close(); fs.Close(); - TheTest.End(); - TheTest.Close(); - return KErrNone; } +CT_REALUT8::CT_REALUT8() + { + SetTestStepName(KTestStep_T_REALUT8); + } + +TVerdict CT_REALUT8::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + + TRAPD(error1, TestREALUT8()); + + __UHEAP_MARKEND; + + if(error1 == KErrNone ) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/utf/trfc1642.cpp --- a/charconvfw/charconv_fw/test/rtest/tsrc/utf/trfc1642.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/utf/trfc1642.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -17,24 +17,16 @@ #include -#include #include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TRFC1642")); - -/////////////////////////////////////////////////////////////////////////////////////// +#include "t_rfc1642.h" /////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -#define TEST(arg) ::Check((arg), __LINE__) +#define test(cond) \ + TEST((cond)); \ + if (!(cond)) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// @@ -46,56 +38,77 @@ @SYMTestExpectedResults Test must not fail @SYMREQ REQ0000 */ -GLDEF_C TInt E32Main() +void CT_RFC1642::TestRFC1642() { - TheTest.Title(); - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0564 Testing the examples given in RFC 1642 ")); + + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0564 Testing the examples given in RFC 1642 ")); TBuf16<256> generatedUnicode; TInt state=CnvUtfConverter::KStateDefault; // - TheTest.Next(_L("Empty descriptor")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8(""), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==_L16("")); - TheTest.Next(_L("\"A.\"")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("A+ImIDkQ."), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode.Length()==4); - TEST(generatedUnicode[0]==0x0041); - TEST(generatedUnicode[1]==0x2262); - TEST(generatedUnicode[2]==0x0391); - TEST(generatedUnicode[3]==0x002e); - TheTest.Next(_L("\"Hi Mom !\"")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("Hi Mom +Jjo-!"), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode.Length()==9); - TEST(generatedUnicode[0]==0x0048); - TEST(generatedUnicode[1]==0x0069); - TEST(generatedUnicode[2]==0x0020); - TEST(generatedUnicode[3]==0x004d); - TEST(generatedUnicode[4]==0x006f); - TEST(generatedUnicode[5]==0x006d); - TEST(generatedUnicode[6]==0x0020); - TEST(generatedUnicode[7]==0x263a); - TEST(generatedUnicode[8]==0x0021); - TheTest.Next(_L("The japanese word \"nihongo\"")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+ZeVnLIqe-"), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode.Length()==3); - TEST(generatedUnicode[0]==0x65e5); - TEST(generatedUnicode[1]==0x672c); - TEST(generatedUnicode[2]==0x8a9e); - TheTest.Next(_L("The special case of \"+-\"")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+-"), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==_L16("+")); - TheTest.Next(_L("The special case of \"+-\" in a context")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("2+-3 is 5"), state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==_L16("2+3 is 5")); + INFO_PRINTF1(_L("Empty descriptor")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8(""), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==_L16("")); + INFO_PRINTF1(_L("\"A.\"")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("A+ImIDkQ."), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==4); + test(generatedUnicode[0]==0x0041); + test(generatedUnicode[1]==0x2262); + test(generatedUnicode[2]==0x0391); + test(generatedUnicode[3]==0x002e); + INFO_PRINTF1(_L("\"Hi Mom !\"")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("Hi Mom +Jjo-!"), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==9); + test(generatedUnicode[0]==0x0048); + test(generatedUnicode[1]==0x0069); + test(generatedUnicode[2]==0x0020); + test(generatedUnicode[3]==0x004d); + test(generatedUnicode[4]==0x006f); + test(generatedUnicode[5]==0x006d); + test(generatedUnicode[6]==0x0020); + test(generatedUnicode[7]==0x263a); + test(generatedUnicode[8]==0x0021); + INFO_PRINTF1(_L("The japanese word \"nihongo\"")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+ZeVnLIqe-"), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode.Length()==3); + test(generatedUnicode[0]==0x65e5); + test(generatedUnicode[1]==0x672c); + test(generatedUnicode[2]==0x8a9e); + INFO_PRINTF1(_L("The special case of \"+-\"")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("+-"), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==_L16("+")); + INFO_PRINTF1(_L("The special case of \"+-\" in a context")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, _L8("2+-3 is 5"), state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==_L16("2+3 is 5")); // - TheTest.End(); - TheTest.Close(); - return KErrNone; + } +CT_RFC1642::CT_RFC1642() + { + SetTestStepName(KTestStep_T_RFC1642); + } + +TVerdict CT_RFC1642::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + + TRAPD(error1, TestRFC1642()); + + __UHEAP_MARKEND; + + if(error1 == KErrNone ) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/utf/tsimple7.cpp --- a/charconvfw/charconv_fw/test/rtest/tsrc/utf/tsimple7.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/utf/tsimple7.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -17,27 +17,20 @@ #include -#include #include /////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TSimple7")); +#include "t_simple7.h" -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -#define TEST(arg) ::Check((arg), __LINE__) +#define test(cond) \ + TEST((cond)); \ + if (!(cond)) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// /** @SYMTestCaseID SYSLIB-CHARCONV-CT-0562 @SYMTestCaseDesc Conversion tests from Unicode to UTF-7 character set @@ -47,136 +40,155 @@ @SYMTestExpectedResults Test must not fail @SYMREQ REQ0000 */ -GLDEF_C TInt E32Main() +void CT_SIMPLE7::TestSIMPLE7() { - TheTest.Title(); - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0562 Testing simple UTF-7 round trips ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0562 Testing simple UTF-7 round trips ")); TBuf16<256> originalUnicode; TBuf8<256> generatedUtf7; TBuf16<256> generatedUnicode; TInt state=CnvUtfConverter::KStateDefault; // - TheTest.Next(_L("Empty descriptor")); + INFO_PRINTF1(_L("Empty descriptor")); originalUnicode=_L16(""); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); - TEST(generatedUtf7==_L8("")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); - TEST(generatedUtf7==_L8("")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("English \"Hello!\"")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); + test(generatedUtf7==_L8("")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); + test(generatedUtf7==_L8("")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("English \"Hello!\"")); originalUnicode=_L16("Hello!"); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); - TEST(generatedUtf7==_L8("Hello+ACE-")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); - TEST(generatedUtf7==_L8("Hello!")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("Russian \"Hello!\"")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); + test(generatedUtf7==_L8("Hello+ACE-")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); + test(generatedUtf7==_L8("Hello!")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("Russian \"Hello!\"")); 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); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); - TEST(generatedUtf7==_L8("+BBcENARABDAEMgRBBEIEMgRDBDkEQgQ1ACE-")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); - TEST(generatedUtf7==_L8("+BBcENARABDAEMgRBBEIEMgRDBDkEQgQ1-!")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("Greek \"Hello!\"")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); + test(generatedUtf7==_L8("+BBcENARABDAEMgRBBEIEMgRDBDkEQgQ1ACE-")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); + test(generatedUtf7==_L8("+BBcENARABDAEMgRBBEIEMgRDBDkEQgQ1-!")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("Greek \"Hello!\"")); originalUnicode.Format(_L16("%c%c%c%c%c!"), 0x0393, 0x03b1, 0x03c3, 0x03bf, 0x03c5); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); - TEST(generatedUtf7==_L8("+A5MDsQPDA78DxQAh-")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); - TEST(generatedUtf7==_L8("+A5MDsQPDA78DxQ-!")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("Chinese \"Hello!\"")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); + test(generatedUtf7==_L8("+A5MDsQPDA78DxQAh-")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); + test(generatedUtf7==_L8("+A5MDsQPDA78DxQ-!")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("Chinese \"Hello!\"")); originalUnicode.Format(_L16("%c%c!"), 0x4f60, 0x597d); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); - TEST(generatedUtf7==_L8("+T2BZfQAh-")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); - TEST(generatedUtf7==_L8("+T2BZfQ-!")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("Japanese \"Hello!\"")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); + test(generatedUtf7==_L8("+T2BZfQAh-")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); + test(generatedUtf7==_L8("+T2BZfQ-!")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("Japanese \"Hello!\"")); originalUnicode.Format(_L16("%c%c%c!"), 0x4eca, 0x65e5, 0x306f); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); - TEST(generatedUtf7==_L8("+Tspl5TBvACE-")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); - TEST(generatedUtf7==_L8("+Tspl5TBv-!")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("Trailing \"-\" character")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); + test(generatedUtf7==_L8("+Tspl5TBvACE-")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); + test(generatedUtf7==_L8("+Tspl5TBv-!")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("Trailing \"-\" character")); originalUnicode=_L16(":-"); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); - TEST(generatedUtf7==_L8(":-")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); - TEST(generatedUtf7==_L8(":-")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); + test(generatedUtf7==_L8(":-")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); + test(generatedUtf7==_L8(":-")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); originalUnicode=_L16("=-"); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); - TEST(generatedUtf7==_L8("+AD0--")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); - TEST(generatedUtf7==_L8("=-")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); + test(generatedUtf7==_L8("+AD0--")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); + test(generatedUtf7==_L8("=-")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); originalUnicode.Format(_L16("%c-"), 0x1e77); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); - TEST(generatedUtf7==_L8("+Hnc--")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); - TEST(generatedUtf7==_L8("+Hnc--")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("Interspersed \"+\" characters")); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); + test(generatedUtf7==_L8("+Hnc--")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); + test(generatedUtf7==_L8("+Hnc--")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("Interspersed \"+\" characters")); originalUnicode.Format(_L16("+%c+&+a+"), 0x52ff); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); - TEST(generatedUtf7==_L8("+-+Uv8-+-+ACY-+-a+-")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); - TEST(generatedUtf7==_L8("+-+Uv8-+-&+-a+-")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); - TEST(state==CnvUtfConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, ETrue)==0); + test(generatedUtf7==_L8("+-+Uv8-+-+ACY-+-a+-")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf7(generatedUtf7, originalUnicode, EFalse)==0); + test(generatedUtf7==_L8("+-+Uv8-+-&+-a+-")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf7(generatedUnicode, generatedUtf7, state)==0); + test(state==CnvUtfConverter::KStateDefault); + test(generatedUnicode==originalUnicode); - TheTest.End(); - TheTest.Close(); - return KErrNone; } +CT_SIMPLE7::CT_SIMPLE7() + { + SetTestStepName(KTestStep_T_SIMPLE7); + } + +TVerdict CT_SIMPLE7::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + + TRAPD(error1, TestSIMPLE7()); + + + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconv_fw/test/rtest/tsrc/utf/tsimple8.cpp --- a/charconvfw/charconv_fw/test/rtest/tsrc/utf/tsimple8.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconv_fw/test/rtest/tsrc/utf/tsimple8.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -17,36 +17,18 @@ #include -#include + #include - +#include "t_simple8.h" /////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TSimple8")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - TheTest.Printf(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) +#define test(cond) \ + TEST((cond)); \ + if (!(cond)) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// @@ -62,24 +44,23 @@ @SYMREQ REQ0000 */ //INC118714L -LOCAL_C void TestForUtf8BomL() +void CT_SIMPLE8::TestForUtf8BomL() { - TheTest.Start(_L("@SYMTestCaseID:SYSLIB-CHARCONV-CT-4002 Testing converting to and from UTF-8 BOM.")); + INFO_PRINTF1(_L("@SYMTestCaseID:SYSLIB-CHARCONV-CT-4002 Testing converting to and from UTF-8 BOM.")); TBuf8<100> generatedUtf8NoGKBWithBom(_L8("\xef\xbb\xbf\x7F\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64")); //convert to unicode and verify BOM converted properly. - TheTest.Next(_L("BOM, valid UTF-8 to Unicode conversion test.")); + INFO_PRINTF1(_L("BOM, valid UTF-8 to Unicode conversion test.")); TBuf16<256> generatedUnicode; - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8NoGKBWithBom)==0); - TEST(generatedUnicode==_L16("\xFEFF\x007fHello World")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8NoGKBWithBom)==0); + test(generatedUnicode==_L16("\xFEFF\x007fHello World")); - TheTest.Next(_L("BOM, valid Unicode to UTF-8 conversion test.")); + INFO_PRINTF1(_L("BOM, valid Unicode to UTF-8 conversion test.")); TBuf8<256> generatedUtf8; - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, generatedUnicode)==0); - TEST(generatedUtf8==generatedUtf8NoGKBWithBom); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, generatedUnicode)==0); + test(generatedUtf8==generatedUtf8NoGKBWithBom); - TheTest.End(); } @@ -92,134 +73,136 @@ @SYMTestExpectedResults Test must not fail @SYMREQ REQ0000 */ -LOCAL_C void DoE32MainL() +void CT_SIMPLE8::TestSimple8() { - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0563 Testing simple UTF-8 round trips ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0563 Testing simple UTF-8 round trips ")); TBuf16<256> originalUnicode; TBuf8<256> generatedUtf8; TBuf16<256> generatedUnicode; // - TheTest.Next(_L("Empty descriptor")); + INFO_PRINTF1(_L("Empty descriptor")); originalUnicode=_L16(""); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, originalUnicode)==0); - TEST(generatedUtf8==_L8("")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, originalUnicode)==0); + test(generatedUtf8==_L8("")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==originalUnicode); // Testing the new API HBufC8* testbuffer8; HBufC* testbuffer; testbuffer8= CnvUtfConverter::ConvertFromUnicodeToUtf8L(originalUnicode); TPtr8 comparebuffer8 = testbuffer8->Des(); - TEST(comparebuffer8==generatedUtf8); + test(comparebuffer8==generatedUtf8); testbuffer = CnvUtfConverter::ConvertToUnicodeFromUtf8L(generatedUtf8); TPtr compareBuffer = testbuffer->Des(); - TEST(compareBuffer == originalUnicode); + test(compareBuffer == originalUnicode); delete testbuffer8; delete testbuffer; - TheTest.Next(_L("English \"Hello!\"")); + INFO_PRINTF1(_L("English \"Hello!\"")); originalUnicode=_L16("Hello!"); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, originalUnicode)==0); - TEST(generatedUtf8==_L8("Hello!")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, originalUnicode)==0); + test(generatedUtf8==_L8("Hello!")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==originalUnicode); // Testing the new API testbuffer8= CnvUtfConverter::ConvertFromUnicodeToUtf8L(originalUnicode); comparebuffer8.Set(testbuffer8->Des()); - TEST(comparebuffer8==generatedUtf8); + test(comparebuffer8==generatedUtf8); testbuffer = CnvUtfConverter::ConvertToUnicodeFromUtf8L(generatedUtf8); compareBuffer.Set(testbuffer->Des()); - TEST(compareBuffer == originalUnicode); + test(compareBuffer == originalUnicode); delete testbuffer8; delete testbuffer; - TheTest.Next(_L("Russian \"Hello!\"")); + INFO_PRINTF1(_L("Russian \"Hello!\"")); originalUnicode.Format(_L16("%c%c%c%c%c%c%c%c%c%c%c%c%c"), 0x0417, 0x0434, 0x0440, 0x0430, 0x0432, 0x0441, 0x0442, 0x0432, 0x0443, 0x0439, 0x0442, 0x0435, 0x0021); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, originalUnicode)==0); - TEST(generatedUtf8==_L8("\xd0\x97\xd0\xb4\xd1\x80\xd0\xb0\xd0\xb2\xd1\x81\xd1\x82\xd0\xb2\xd1\x83\xd0\xb9\xd1\x82\xd0\xb5\x21")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, originalUnicode)==0); + test(generatedUtf8==_L8("\xd0\x97\xd0\xb4\xd1\x80\xd0\xb0\xd0\xb2\xd1\x81\xd1\x82\xd0\xb2\xd1\x83\xd0\xb9\xd1\x82\xd0\xb5\x21")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==originalUnicode); // Testing the new API testbuffer8= CnvUtfConverter::ConvertFromUnicodeToUtf8L(originalUnicode); comparebuffer8.Set(testbuffer8->Des()); - TEST(comparebuffer8==generatedUtf8); + test(comparebuffer8==generatedUtf8); testbuffer = CnvUtfConverter::ConvertToUnicodeFromUtf8L(generatedUtf8); compareBuffer.Set(testbuffer->Des()); - TEST(compareBuffer == originalUnicode); + test(compareBuffer == originalUnicode); delete testbuffer8; delete testbuffer; - TheTest.Next(_L("Greek \"Hello!\"")); + INFO_PRINTF1(_L("Greek \"Hello!\"")); originalUnicode.Format(_L16("%c%c%c%c%c%c"), 0x0393, 0x03b1, 0x03c3, 0x03bf, 0x03c5, 0x0021); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, originalUnicode)==0); - TEST(generatedUtf8==_L8("\xce\x93\xce\xb1\xcf\x83\xce\xbf\xcf\x85\x21")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, originalUnicode)==0); + test(generatedUtf8==_L8("\xce\x93\xce\xb1\xcf\x83\xce\xbf\xcf\x85\x21")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==originalUnicode); // Testing the new API testbuffer8= CnvUtfConverter::ConvertFromUnicodeToUtf8L(originalUnicode); comparebuffer8.Set(testbuffer8->Des()); - TEST(comparebuffer8==generatedUtf8); + test(comparebuffer8==generatedUtf8); testbuffer = CnvUtfConverter::ConvertToUnicodeFromUtf8L(generatedUtf8); compareBuffer.Set(testbuffer->Des()); - TEST(compareBuffer == originalUnicode); + test(compareBuffer == originalUnicode); delete testbuffer8; delete testbuffer; - TheTest.Next(_L("Chinese \"Hello!\"")); + INFO_PRINTF1(_L("Chinese \"Hello!\"")); originalUnicode.Format(_L16("%c%c%c"), 0x4f60, 0x597d, 0x0021); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, originalUnicode)==0); - TEST(generatedUtf8==_L8("\xe4\xbd\xa0\xe5\xa5\xbd\x21")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, originalUnicode)==0); + test(generatedUtf8==_L8("\xe4\xbd\xa0\xe5\xa5\xbd\x21")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==originalUnicode); // Testing the new API testbuffer8= CnvUtfConverter::ConvertFromUnicodeToUtf8L(originalUnicode); comparebuffer8.Set(testbuffer8->Des()); - TEST(comparebuffer8==generatedUtf8); + test(comparebuffer8==generatedUtf8); testbuffer = CnvUtfConverter::ConvertToUnicodeFromUtf8L(generatedUtf8); compareBuffer.Set(testbuffer->Des()); - TEST(compareBuffer == originalUnicode); + test(compareBuffer == originalUnicode); delete testbuffer8; delete testbuffer; - TheTest.Next(_L("Japanese \"Hello!\"")); + INFO_PRINTF1(_L("Japanese \"Hello!\"")); originalUnicode.Format(_L16("%c%c%c%c"), 0x4eca, 0x65e5, 0x306f, 0x0021); - TEST(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, originalUnicode)==0); - TEST(generatedUtf8==_L8("\xe4\xbb\x8a\xe6\x97\xa5\xe3\x81\xaf\x21")); - TEST(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); - TEST(generatedUnicode==originalUnicode); + test(CnvUtfConverter::ConvertFromUnicodeToUtf8(generatedUtf8, originalUnicode)==0); + test(generatedUtf8==_L8("\xe4\xbb\x8a\xe6\x97\xa5\xe3\x81\xaf\x21")); + test(CnvUtfConverter::ConvertToUnicodeFromUtf8(generatedUnicode, generatedUtf8)==0); + test(generatedUnicode==originalUnicode); // Testing the new API testbuffer8= CnvUtfConverter::ConvertFromUnicodeToUtf8L(originalUnicode); comparebuffer8.Set(testbuffer8->Des()); - TEST(comparebuffer8==generatedUtf8); + test(comparebuffer8==generatedUtf8); testbuffer = CnvUtfConverter::ConvertToUnicodeFromUtf8L(generatedUtf8); compareBuffer.Set(testbuffer->Des()); - TEST(compareBuffer == originalUnicode); + test(compareBuffer == originalUnicode); delete testbuffer8; delete testbuffer; - TestForUtf8BomL(); } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; +CT_SIMPLE8::CT_SIMPLE8() + { + SetTestStepName(KTestStep_T_SIMPLE8); + } - TheTest.Title(); +TVerdict CT_SIMPLE8::doTestStepL() + { + SetTestStepResult(EFail); - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); + __UHEAP_MARK; - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); + TRAPD(error1, TestSimple8()); + TRAPD(error2, TestForUtf8BomL()); - delete trapCleanup; + + __UHEAP_MARKEND; - TheTest.End(); - TheTest.Close(); + if(error1 == KErrNone && error2 == KErrNone) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return KErrNone; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/group/bld.inf --- a/charconvfw/charconvplugins/group/bld.inf Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconvplugins/group/bld.inf Thu Aug 26 11:46:18 2010 +0800 @@ -281,10 +281,15 @@ Win1255.mmp Win1256.mmp Win1257.mmp - Win1258.mmp + Win1258.mmp PRJ_TESTEXPORTS - + + ../test/rtest/tsrc/main/T_ALL.script /epoc32/data/z/test/T_ALL.script + ../test/rtest/tsrc/main/T_ALL.bat /epoc32/data/z/test/T_ALL.bat + ../test/rtest/tsrc/main/T_ALL.script /epoc32/winscw/c/test/T_ALL.script + ../test/rtest/tsrc/main/T_ALL.bat /epoc32/winscw/c/test/T_ALL.bat + ../test/data/swedish.txt /epoc32/data/z/test/data/swedish.txt ../test/data/finnish.txt /epoc32/data/z/test/data/finnish.txt ../test/data/swedish.txt /epoc32/winscw/c/test/data/swedish.txt @@ -548,7 +553,6 @@ ../test/data/win1258_uni_expect.dat /epoc32/data/z/test/data/win1258_uni_expect.dat ../test/data/win1258_uni_input.dat /epoc32/data/z/test/data/win1258_uni_input.dat - ../test/rtest/group/charconvplugintests.bat /epoc32/data/z/system/test/charconvplugintests.bat ../test/rtest/group/charconvplugintests.iby /epoc32/rom/include/charconvplugintests.iby PRJ_TESTEXTENSIONS @@ -558,63 +562,16 @@ end PRJ_TESTMMPFILES - - ../test/rtest/group/tgeneralforeign.mmp - ../test/rtest/group/tbuiltin.mmp - ../test/rtest/group/tgb2312.mmp - ../test/rtest/group/thz.mmp - ../test/rtest/group/tgbk.mmp - ../test/rtest/group/tgb18030.mmp - ../test/rtest/group/tbig5.mmp - ../test/rtest/group/tshiftjis_kddiau.mmp - ../test/rtest/group/tshiftjis_docomo.mmp - ../test/rtest/group/tiso2022jp.mmp - ../test/rtest/group/tjis.mmp - ../test/rtest/group/teucjp_packed.mmp - ../test/rtest/group/tiso8859x.mmp - ../test/rtest/group/treplacement.mmp - ../test/rtest/group/tsnm.mmp - ../test/rtest/group/tautodetect.mmp - ../test/rtest/group/tucs2.mmp - ../test/rtest/group/shiftjis_with_sample_extension.mmp support // Plug-in for test code. - // Special versions of Shift-JIS plugin with different UIDs do that they can co-exist for test purposes. + ../test/rtest/group/iso2022jp1_2_test.mmp support // For testing S60 variants of iso2022jp1. + ../test/rtest/group/iso2022jp_2_test.mmp support // For testing S60 variants of iso2022jp. + ../test/rtest/group/eucjp_packed_2_test.mmp support // For testing S60 variants of eucjp_packed. + ../test/rtest/group/test_j5_kddiau.mmp support // For testing Kddiau variants of Shift-JIS. ../test/rtest/group/tis1620.mmp support ../test/rtest/group/shiftjis_kddiau_test.mmp support // For testing Kddiau variants of Shift-JIS. - ../test/rtest/group/tj5_kddiau.mmp - ../test/rtest/group/tj5_docomo.mmp - ../test/rtest/group/test_j5_kddiau.mmp support // For testing Kddiau variants of Shift-JIS. - ../test/rtest/group/test_multi_plugins.mmp // Test for DEF088036. - ../test/rtest/group/textendedsms.mmp - ../test/rtest/group/tturkishsingle.mmp - ../test/rtest/group/tturkishlocking.mmp - ../test/rtest/group/tturkishlockingsingle.mmp - ../test/rtest/group/tportuguesegsmsingle.mmp - ../test/rtest/group/tportugueselocking.mmp - ../test/rtest/group/tportugueselockingsingle.mmp - ../test/rtest/group/tspanishgsmsingle.mmp - ../test/rtest/group/tiscii.mmp - ../test/rtest/group/tKOI8U.mmp - ../test/rtest/group/tKOI8R.mmp - ../test/rtest/group/tTIS_620.mmp - ../test/rtest/group/twin874.mmp - ../test/rtest/group/twin1250.mmp - ../test/rtest/group/twin1251.mmp - ../test/rtest/group/twin1253.mmp - ../test/rtest/group/twin1254.mmp - ../test/rtest/group/twin1255.mmp - ../test/rtest/group/twin1256.mmp - ../test/rtest/group/twin1257.mmp - ../test/rtest/group/twin1258.mmp - ../test/rtest/group/tcp949.mmp - ../test/rtest/group/teucjpdirectmap.mmp - ../test/rtest/group/tshiftjisdirectmap.mmp - ../test/rtest/group/eucjp_packed_2_test.mmp support // For testing S60 variants of eucjp_packed. - ../test/rtest/group/teucjp_packed_2.mmp - ../test/rtest/group/iso2022jp_2_test.mmp support // For testing S60 variants of iso2022jp. - ../test/rtest/group/tiso2022jp_2.mmp - ../test/rtest/group/iso2022jp1_2_test.mmp support // For testing S60 variants of iso2022jp1. - ../test/rtest/group/tiso2022jp1_2.mmp + + ../test/rtest/group/t_charconvpluginserver.mmp + PRJ_TESTEXTENSIONS start extension syslibs/test/charconv_testpostbuild // Remove shiftjis_kddiau.rsc and j5_kddiau.rsc so test version will work correctly. diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/group/t_charconvplugins.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/group/t_charconvplugins.pkg Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,30 @@ +; +; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +; All rights reserved. +; This component and the accompanying materials are made available +; under the terms of "Eclipse Public License v1.0" +; which accompanies this distribution, and is available +; at the URL "http:;www.eclipse.org/legal/epl-v10.html". +; +; Initial Contributors: +; Nokia Corporation - initial contribution. +; +; Contributors: +; +; Description: +; + + +;Languages +&EN + + +;Localised Vendor name +%{"t_PTPipsuite EN"} + +; Vendor name +: "t_PTPipsuite" + +; test scripts +"\epoc32\data\z\test\T_All.script"-"c:\charconvpluginstest\T_All.script" + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/charconvplugintests.bat --- a/charconvfw/charconvplugins/test/rtest/group/charconvplugintests.bat Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -@rem -@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -@rem All rights reserved. -@rem This component and the accompanying materials are made available -@rem under the terms of "Eclipse Public License v1.0" -@rem which accompanies this distribution, and is available -@rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -@rem -@rem Initial Contributors: -@rem Nokia Corporation - initial contribution. -@rem -@rem Contributors: -@rem -@rem Description: -@rem - -TGENERALFOREIGN -TBUILTIN -TGB2312 -THZ -TGBK -TGB18030 -TBIG5 -tshiftjis_kddiau -TSHIFTJIS_DOCOMO -TISO2022JP -TJIS -TEUCJP_PACKED -TISO8859X -TREPLACEMENT -TSNM -TAUTODETECT -TUCS2 -tj5_kddiau -TJ5_DOCOMO -test_multi_plugins -textendedsms -tturkishlocking -tturkishlockingsingle -tturkishsingle -tportuguesegsmsingle -tportugueselocking -tportugueselockingsingle -tspanishgsmsingle -teucjpdirectmap -tshiftjisdirectmap -//teucjp_packed_2 -//tiso2022jp_2 -//tiso2022jp1_2 -tiscii -tKOI8R -tKOI8U -tTIS_620 -twin874 -twin1250 -twin1251 -twin1253 -twin1254 -twin1255 -twin1256 -twin1257 -twin1258 -tcp949 diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/charconvplugintests.iby --- a/charconvfw/charconvplugins/test/rtest/group/charconvplugintests.iby Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/charconvplugins/test/rtest/group/charconvplugintests.iby Thu Aug 26 11:46:18 2010 +0800 @@ -207,58 +207,7 @@ data=EPOCROOT##epoc32\data\z\test\data\win1258_uni_expect.dat test\data\win1258_uni_expect.dat data=EPOCROOT##epoc32\data\z\test\data\win1258_uni_input.dat test\data\win1258_uni_input.dat -file=ABI_DIR\BUILD_DIR\TGENERALFOREIGN.EXE TEST\TGENERALFOREIGN.EXE -file=ABI_DIR\BUILD_DIR\TBUILTIN.EXE TEST\TBUILTIN.EXE -file=ABI_DIR\BUILD_DIR\TGB2312.EXE TEST\TGB2312.EXE -file=ABI_DIR\BUILD_DIR\THZ.EXE TEST\THZ.EXE -file=ABI_DIR\BUILD_DIR\TGBK.EXE TEST\TGBK.EXE -file=ABI_DIR\BUILD_DIR\TGB18030.EXE TEST\TGB18030.EXE -file=ABI_DIR\BUILD_DIR\TBIG5.EXE TEST\TBIG5.EXE -file=ABI_DIR\BUILD_DIR\tshiftjis_kddiau.exe TEST\tshiftjis_kddiau.exe -file=ABI_DIR\BUILD_DIR\TISO2022JP.EXE TEST\TISO2022JP.EXE -file=ABI_DIR\BUILD_DIR\TJIS.EXE TEST\TJIS.EXE -file=ABI_DIR\BUILD_DIR\TEUCJP_PACKED.EXE TEST\TEUCJP_PACKED.EXE -file=ABI_DIR\BUILD_DIR\TISO8859X.EXE TEST\TISO8859X.EXE -file=ABI_DIR\BUILD_DIR\TREPLACEMENT.EXE TEST\TREPLACEMENT.EXE -file=ABI_DIR\BUILD_DIR\TSNM.EXE TEST\TSNM.EXE -file=ABI_DIR\BUILD_DIR\TAUTODETECT.EXE TEST\TAUTODETECT.EXE - -file=ABI_DIR\BUILD_DIR\TUCS2.EXE TEST\TUCS2.EXE -file=ABI_DIR\BUILD_DIR\tj5_kddiau.exe TEST\tj5_kddiau.exe -file=ABI_DIR\BUILD_DIR\TJ5_DOCOMO.EXE TEST\TJ5_DOCOMO.EXE +file=ABI_DIR\BUILD_DIR\t_charconvpluginserver.exe Sys\Bin\t_charconvpluginserver.exe file=ABI_DIR\BUILD_DIR\shiftjis_kddiau_shared.dll Sys\Bin\shiftjis_kddiau_shared.dll -file=ABI_DIR\BUILD_DIR\TSHIFTJIS_DOCOMO.EXE TEST\TSHIFTJIS_DOCOMO.EXE -file=ABI_DIR\BUILD_DIR\test_multi_plugins.exe TEST\test_multi_plugins.exe - -file=ABI_DIR\BUILD_DIR\textendedsms.exe TEST\textendedsms.exe -file=ABI_DIR\BUILD_DIR\tturkishlocking.exe TEST\tturkishlocking.exe -file=ABI_DIR\BUILD_DIR\tturkishlockingsingle.exe TEST\tturkishlockingsingle.exe -file=ABI_DIR\BUILD_DIR\tturkishsingle.exe TEST\tturkishsingle.exe - -file=ABI_DIR\BUILD_DIR\tportuguesegsmsingle.exe TEST\tportuguesegsmsingle.exe -file=ABI_DIR\BUILD_DIR\tportugueselocking.exe TEST\tportugueselocking.exe -file=ABI_DIR\BUILD_DIR\tportugueselockingsingle.exe TEST\tportugueselockingsingle.exe -file=ABI_DIR\BUILD_DIR\tspanishgsmsingle.exe TEST\tspanishgsmsingle.exe -file=ABI_DIR\BUILD_DIR\teucjpdirectmap.exe TEST\teucjpdirectmap.exe -file=ABI_DIR\BUILD_DIR\tshiftjisdirectmap.exe TEST\tshiftjisdirectmap.exe -//file=ABI_DIR\BUILD_DIR\teucjp_packed_2.exe TEST\teucjp_packed_2.exe -//file=ABI_DIR\BUILD_DIR\tiso2022jp_2.exe TEST\tiso2022jp_2.exe -//file=ABI_DIR\BUILD_DIR\tiso2022jp1_2.exe TEST\tiso2022jp1_2.exe - -file=ABI_DIR\BUILD_DIR\tiscii.exe TEST\tiscii.exe -file=ABI_DIR\BUILD_DIR\tKOI8R.exe TEST\tKOI8R.exe -file=ABI_DIR\BUILD_DIR\tKOI8U.exe TEST\tKOI8U.exe -file=ABI_DIR\BUILD_DIR\tTIS_620.exe TEST\tTIS_620.exe -file=ABI_DIR\BUILD_DIR\twin874.exe TEST\twin874.exe -file=ABI_DIR\BUILD_DIR\twin1250.exe TEST\twin1250.exe -file=ABI_DIR\BUILD_DIR\twin1251.exe TEST\twin1251.exe -file=ABI_DIR\BUILD_DIR\twin1253.exe TEST\twin1253.exe -file=ABI_DIR\BUILD_DIR\twin1254.exe TEST\twin1254.exe -file=ABI_DIR\BUILD_DIR\twin1255.exe TEST\twin1255.exe -file=ABI_DIR\BUILD_DIR\twin1256.exe TEST\twin1256.exe -file=ABI_DIR\BUILD_DIR\twin1257.exe TEST\twin1257.exe -file=ABI_DIR\BUILD_DIR\twin1258.exe TEST\twin1258.exe -file=ABI_DIR\BUILD_DIR\tcp949.exe TEST\tcp949.exe - #endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/runtests.bat --- a/charconvfw/charconvplugins/test/rtest/group/runtests.bat Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -@echo off -@rem -@rem Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -@rem All rights reserved. -@rem This component and the accompanying materials are made available -@rem under the terms of "Eclipse Public License v1.0" -@rem which accompanies this distribution, and is available -@rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -@rem -@rem Initial Contributors: -@rem Nokia Corporation - initial contribution. -@rem -@rem Contributors: -@rem -@rem Description: -@rem - -TGENERALFOREIGN.exe -TBUILTIN.exe -TGB2312.exe -THZ.exe -TGBK.exe -TGB18030.exe -TBIG5.exe -tshiftjis_kddiau.exe -TSHIFTJIS_DOCOMO.exe -TISO2022JP.exe -TJIS.exe -TEUCJP_PACKED.exe -TISO8859X.exe -TREPLACEMENT.exe -TSNM.exe -TAUTODETECT.exe -TUCS2.exe -tj5_kddiau.exe -TJ5_DOCOMO.exe -test_multi_plugins.exe -textendedsms.exe -tturkishlocking.exe -tturkishlockingsingle.exe -tturkishsingle.exe -tportuguesegsmsingle.exe -tportugueselocking.exe -tportugueselockingsingle.exe -tspanishgsmsingle.exe -teucjpdirectmap.exe -tshiftjisdirectmap.exe -//teucjp_packed_2.exe -//tiso2022jp_2.exe -//tiso2022jp1_2.exe -tiscii.exe -tKOI8R.exe -tKOI8U.exe -tTIS_620.exe -twin874.exe -twin1250.exe -twin1251.exe -twin1253.exe -twin1254.exe -twin1255.exe -twin1256.exe -twin1257.exe -twin1258.exe -tcp949.exe diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tKOI8R.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tKOI8R.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tKOI8R.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tKOI8R.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tKOI8U.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tKOI8U.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tKOI8U.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tKOI8U.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tTIS_620.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tTIS_620.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tTIS_620.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tTIS_620.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/t_charconvpluginserver.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/group/t_charconvpluginserver.mmp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,100 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +TARGET t_charconvpluginserver.exe +TARGETTYPE exe +UID 0x1000007A 0xE27AD85E +//for browser +SECUREID 0x10008D39 +VENDORID 0x70000001 + +CAPABILITY ProtServ + +USERINCLUDE ../../ +USERINCLUDE ../tsrc/plugins +USERINCLUDE ../../../inc + +APP_LAYER_SYSTEMINCLUDE +OS_LAYER_LIBC_SYSTEMINCLUDE + +SOURCEPATH ..\tsrc\main +SOURCE t_charconvpluginserver.cpp +SOURCE t_big5.cpp +SOURCE t_cp949.cpp +SOURCE t_autodetect.cpp + +SOURCE t_win1250.cpp +SOURCE t_win1251.cpp +SOURCE t_win1253.cpp +SOURCE t_win1254.cpp +SOURCE t_win1255.cpp +SOURCE t_win1256.cpp +SOURCE t_win1257.cpp +SOURCE t_win1258.cpp +SOURCE t_win874.cpp +SOURCE t_ucs2.cpp +SOURCE t_turkishsingle.cpp +SOURCE t_turkishlockingsingle.cpp +SOURCE t_turkishlocking.cpp +SOURCE t_tis_620.cpp +SOURCE t_spanishgsmsingle.cpp +SOURCE t_snm.cpp +SOURCE t_replacement.cpp +SOURCE t_portugueselockingsingle.cpp +SOURCE t_portugueselocking.cpp +SOURCE t_portuguesesingle.cpp +SOURCE t_iso8859x.cpp g_tiso8859x.cpp +SOURCE t_iscii.cpp +SOURCE t_gb2312.cpp +SOURCE t_gbk.cpp +SOURCE t_hz.cpp +SOURCE t_extendedsms.cpp +SOURCE t_koi8r.cpp +SOURCE t_koi8u.cpp +SOURCE t_gb18030.cpp +SOURCE t_multi_plugins.cpp +SOURCE t_generalforeign.cpp +SOURCE t_jis.cpp +SOURCE t_builtin.cpp +SOURCE t_j5_kddiau.cpp +SOURCE t_j5_docomo.cpp +SOURCE t_eucjpdirectmap.cpp +SOURCE t_shiftjisdirectmap.cpp +SOURCE t_eucjp_packed.cpp +SOURCE t_eucjp_packed_2.cpp +SOURCE t_iso2022jp.cpp +SOURCE t_iso2022jp_2.cpp +SOURCE t_iso2022jp1_2.cpp +SOURCE t_shiftjis_kddiau.cpp +SOURCE t_shiftjis_docomo.cpp + +LIBRARY euser.lib +LIBRARY efsrv.lib +LIBRARY charconv.lib +LIBRARY testexecuteutils.lib +LIBRARY testexecutelogclient.lib +LIBRARY ecom.lib +LIBRARY shiftjis_kddiau_shared.lib +LIBRARY shiftjis_docomo_shared.lib + +#ifdef ENABLE_ABIV2_MODE +DEBUGGABLE_UDEBONLY +#endif + +epocstacksize 50000 + +SMPSAFE diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tautodetect.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tautodetect.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* default stack size(8K) is too small and cause stack overflow -* in the hardware test udeb -* set the stack size to 16K -* -*/ - - -EPOCSTACKSIZE 16384 - -TARGET tautodetect.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tautodetect.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tbig5.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tbig5.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tbig5.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tbig5.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tbuiltin.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tbuiltin.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tbuiltin.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tbuiltin.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -epocstacksize 0x5000 - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tcp949.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tcp949.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tcp949.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tcp949.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/test_multi_plugins.mmp --- a/charconvfw/charconvplugins/test/rtest/group/test_multi_plugins.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET test_multi_plugins.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ -USERINCLUDE ../tsrc/plugins - -SOURCEPATH ../tsrc/main -SOURCE test_multi_plugins.cpp - -LIBRARY euser.lib -LIBRARY charconv.lib -LIBRARY ecom.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/teucjp_packed.mmp --- a/charconvfw/charconvplugins/test/rtest/group/teucjp_packed.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET teucjp_packed.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE teucjp_packed.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/teucjp_packed_2.mmp --- a/charconvfw/charconvplugins/test/rtest/group/teucjp_packed_2.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -TARGET teucjp_packed_2.exe -TARGETTYPE exe - -// run as a browser -UID 0 0x10008D39 -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE teucjp_packed_2.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/teucjpdirectmap.mmp --- a/charconvfw/charconvplugins/test/rtest/group/teucjpdirectmap.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -TARGET teucjpdirectmap.exe -TARGETTYPE exe - -// run as a browser -UID 0 0x10008D39 -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE teucjpdirectmap.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/textendedsms.mmp --- a/charconvfw/charconvplugins/test/rtest/group/textendedsms.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET textendedsms.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE textendedsms.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tgb18030.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tgb18030.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tgb18030.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tgb18030.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib -LIBRARY hal.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tgb2312.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tgb2312.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tgb2312.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tgb2312.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -epocstacksize 0x5000 - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tgbk.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tgbk.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tgbk.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tgbk.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tgeneralforeign.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tgeneralforeign.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tgeneralforeign.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tgeneralforeign.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -epocstacksize 0x5000 - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/thz.mmp --- a/charconvfw/charconvplugins/test/rtest/group/thz.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET thz.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE thz.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tiscii.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tiscii.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tiscii.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tiscii.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tiso2022jp.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tiso2022jp.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tiso2022jp.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tiso2022jp.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tiso2022jp1_2.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tiso2022jp1_2.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -TARGET tiso2022jp1_2.exe -TARGETTYPE exe - -// run as a browser -UID 0 0x10008D39 -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../tsrc/main -SOURCE tiso2022jp1_2.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tiso2022jp_2.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tiso2022jp_2.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -TARGET tiso2022jp_2.exe -TARGETTYPE exe - -// run as a browser -UID 0 0x10008D39 -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../tsrc/main -SOURCE tiso2022jp_2.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tiso8859x.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tiso8859x.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// Default stack size(8K) is too small and cause stack overflow in the hardware test udeb. -EPOCSTACKSIZE 16384 - -TARGET tiso8859x.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../tsrc/main - -SOURCEPATH ../tsrc/main -SOURCE tiso8859x.cpp -SOURCE g_tiso8859x.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tj5_docomo.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tj5_docomo.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* This is for testing the Docomo version of the J5 characonv plugin. -* As this uses the Docomo specific shiftjis conversion some of the test data -* values differ from the Kddi/au versions -* -*/ - - -TARGET tj5_docomo.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../../inc -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tj5_docomo.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -epocstacksize 20000 - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tj5_kddiau.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tj5_kddiau.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tj5_kddiau.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../../inc -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tj5_kddiau.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -epocstacksize 20000 - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tjis.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tjis.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tjis.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tjis.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tportuguesegsmsingle.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tportuguesegsmsingle.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET tportuguesegsmsingle.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tportuguesegsmsingle.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tportugueselocking.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tportugueselocking.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET tportugueselocking.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tportugueselocking.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tportugueselockingsingle.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tportugueselockingsingle.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET tportugueselockingsingle.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tportugueselockingsingle.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/treplacement.mmp --- a/charconvfw/charconvplugins/test/rtest/group/treplacement.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET treplacement.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE treplacement.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tshiftjis_docomo.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tshiftjis_docomo.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* Builds tshiftjis_docomo.cpp to test the NTT DoCoMo -* specific version of the Shift-JIS plugin. -* -*/ - - -TARGET tshiftjis_docomo.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ -USERINCLUDE ../../../inc - -SOURCEPATH ../tsrc/main -SOURCE tshiftjis_docomo.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib -LIBRARY shiftjis_docomo_shared.lib - -epocstacksize 20000 - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tshiftjis_kddiau.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tshiftjis_kddiau.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tshiftjis_kddiau.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ -USERINCLUDE ../../../inc - -SOURCEPATH ../tsrc/main -SOURCE tshiftjis_kddiau.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib -LIBRARY shiftjis_kddiau_shared.lib - -epocstacksize 20000 - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tshiftjisdirectmap.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tshiftjisdirectmap.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -TARGET tshiftjisdirectmap.exe -TARGETTYPE exe - -// run as a browser -UID 0 0x10008D39 -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tshiftjisdirectmap.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tsnm.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tsnm.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tsnm.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tsnm.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tspanishgsmsingle.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tspanishgsmsingle.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET tspanishgsmsingle.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tspanishgsmsingle.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tturkishlocking.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tturkishlocking.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tturkishlocking.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tturkishlocking.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tturkishlockingsingle.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tturkishlockingsingle.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tturkishlockingsingle.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tturkishlockingsingle.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tturkishsingle.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tturkishsingle.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tturkishsingle.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE tturkishsingle.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/tucs2.mmp --- a/charconvfw/charconvplugins/test/rtest/group/tucs2.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET tucs2.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ -USERINCLUDE ../../../src/inc - -SOURCEPATH ../tsrc/main -SOURCE tucs2.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/twin1250.mmp --- a/charconvfw/charconvplugins/test/rtest/group/twin1250.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET twin1250.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE twin1250.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/twin1251.mmp --- a/charconvfw/charconvplugins/test/rtest/group/twin1251.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET twin1251.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE twin1251.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/twin1253.mmp --- a/charconvfw/charconvplugins/test/rtest/group/twin1253.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET twin1253.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE twin1253.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/twin1254.mmp --- a/charconvfw/charconvplugins/test/rtest/group/twin1254.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET twin1254.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE twin1254.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/twin1255.mmp --- a/charconvfw/charconvplugins/test/rtest/group/twin1255.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET twin1255.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE twin1255.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/twin1256.mmp --- a/charconvfw/charconvplugins/test/rtest/group/twin1256.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET twin1256.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE twin1256.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/twin1257.mmp --- a/charconvfw/charconvplugins/test/rtest/group/twin1257.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET twin1257.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE twin1257.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/twin1258.mmp --- a/charconvfw/charconvplugins/test/rtest/group/twin1258.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET twin1258.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE twin1258.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/group/twin874.mmp --- a/charconvfw/charconvplugins/test/rtest/group/twin874.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -TARGET twin874.exe -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -USERINCLUDE ../../ - -SOURCEPATH ../tsrc/main -SOURCE twin874.cpp - -LIBRARY euser.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/T_All.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/T_All.bat Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,4 @@ +@echo on +testexecute.exe c:\T_All.script +@echo off + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/T_All.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/T_All.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,67 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run All t_charconvpluginserver tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_BIG5 +RUN_TEST_STEP 200 t_charconvpluginserver T_CP949 +RUN_TEST_STEP 200 t_charconvpluginserver T_AUTODETECT +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1250 +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1251 +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1253 +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1254 +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1255 +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1256 +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1257 +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1258 +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN874 +RUN_TEST_STEP 200 t_charconvpluginserver T_UCS2 +RUN_TEST_STEP 200 t_charconvpluginserver T_TURKISHSINGLE +RUN_TEST_STEP 200 t_charconvpluginserver T_TURKISHLOCKINGSINGLE +RUN_TEST_STEP 200 t_charconvpluginserver T_TURKISHLOCKING +RUN_TEST_STEP 200 t_charconvpluginserver T_TIS_620 +RUN_TEST_STEP 200 t_charconvpluginserver T_SPANISHGSMSINGLE +RUN_TEST_STEP 200 t_charconvpluginserver T_SNM +RUN_TEST_STEP 200 t_charconvpluginserver T_REPLACEMENT +RUN_TEST_STEP 200 t_charconvpluginserver T_PORTUGUESELOCKINGSINGLE +RUN_TEST_STEP 200 t_charconvpluginserver T_PORTUGUESELOCKING +RUN_TEST_STEP 200 t_charconvpluginserver T_PORTUGUESESINGLE +RUN_TEST_STEP 200 t_charconvpluginserver T_ISO8859X +RUN_TEST_STEP 200 t_charconvpluginserver T_ISCII +RUN_TEST_STEP 200 t_charconvpluginserver T_GB2312 +RUN_TEST_STEP 200 t_charconvpluginserver T_GBK +RUN_TEST_STEP 200 t_charconvpluginserver T_HZ +RUN_TEST_STEP 200 t_charconvpluginserver T_EXTENDEDSMS +RUN_TEST_STEP 200 t_charconvpluginserver T_KOI8R +RUN_TEST_STEP 200 t_charconvpluginserver T_KOI8U +RUN_TEST_STEP 200 t_charconvpluginserver T_GB18030 +RUN_TEST_STEP 200 t_charconvpluginserver T_MULTI_PLUGINS +RUN_TEST_STEP 200 t_charconvpluginserver T_JIS +RUN_TEST_STEP 200 t_charconvpluginserver T_BUILTIN +RUN_TEST_STEP 200 t_charconvpluginserver T_J5_KDDIAU +RUN_TEST_STEP 200 t_charconvpluginserver T_J5_DOCOMO +//RUN_TEST_STEP 200 t_charconvpluginserver T_EUCJPDIRECTMAP +//RUN_TEST_STEP 200 t_charconvpluginserver T_SHIFTJISDIRECTMAP +RUN_TEST_STEP 200 t_charconvpluginserver T_EUCJP_PACKED +//RUN_TEST_STEP 200 t_charconvpluginserver T_EUCJP_PACKED_2 +RUN_TEST_STEP 200 t_charconvpluginserver T_ISO2022JP +//RUN_TEST_STEP 200 t_charconvpluginserver T_ISO2022JP_2 +//RUN_TEST_STEP 200 t_charconvpluginserver T_ISO2022JP1_2 +RUN_TEST_STEP 200 t_charconvpluginserver T_SHIFTJIS_KDDIAU +RUN_TEST_STEP 200 t_charconvpluginserver T_SHIFTJIS_DOCOMO + + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/g_tiso8859x.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/g_tiso8859x.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,6682 @@ +// g_tiso8859x.cpp +// +// Copyright (c) Nokia Corporation 2010. All rights reserved. +// + +#include +#include +#include "tiso8859x.h" + +LOCAL_D const TUint16 iso8859_1_unicode[]= + { + 0x0000, + 0x0001, + 0x0002, + 0x0003, + 0x0004, + 0x0005, + 0x0006, + 0x0007, + 0x0008, + 0x0009, + 0x000a, + 0x000b, + 0x000c, + 0x000d, + 0x000e, + 0x000f, + 0x0010, + 0x0011, + 0x0012, + 0x0013, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + 0x0018, + 0x0019, + 0x001a, + 0x001b, + 0x001c, + 0x001d, + 0x001e, + 0x001f, + 0x0020, + 0x0021, + 0x0022, + 0x0023, + 0x0024, + 0x0025, + 0x0026, + 0x0027, + 0x0028, + 0x0029, + 0x002a, + 0x002b, + 0x002c, + 0x002d, + 0x002e, + 0x002f, + 0x0030, + 0x0031, + 0x0032, + 0x0033, + 0x0034, + 0x0035, + 0x0036, + 0x0037, + 0x0038, + 0x0039, + 0x003a, + 0x003b, + 0x003c, + 0x003d, + 0x003e, + 0x003f, + 0x0040, + 0x0041, + 0x0042, + 0x0043, + 0x0044, + 0x0045, + 0x0046, + 0x0047, + 0x0048, + 0x0049, + 0x004a, + 0x004b, + 0x004c, + 0x004d, + 0x004e, + 0x004f, + 0x0050, + 0x0051, + 0x0052, + 0x0053, + 0x0054, + 0x0055, + 0x0056, + 0x0057, + 0x0058, + 0x0059, + 0x005a, + 0x005b, + 0x005c, + 0x005d, + 0x005e, + 0x005f, + 0x0060, + 0x0061, + 0x0062, + 0x0063, + 0x0064, + 0x0065, + 0x0066, + 0x0067, + 0x0068, + 0x0069, + 0x006a, + 0x006b, + 0x006c, + 0x006d, + 0x006e, + 0x006f, + 0x0070, + 0x0071, + 0x0072, + 0x0073, + 0x0074, + 0x0075, + 0x0076, + 0x0077, + 0x0078, + 0x0079, + 0x007a, + 0x007b, + 0x007c, + 0x007d, + 0x007e, + 0x007f, + 0x20ac, + 0x0081, + 0x0082, + 0x0083, + 0x0084, + 0x0085, + 0x0086, + 0x0087, + 0x0088, + 0x0089, + 0x008a, + 0x008b, + 0x008c, + 0x008d, + 0x008e, + 0x008f, + 0x0090, + 0x0091, + 0x0092, + 0x0093, + 0x0094, + 0x0095, + 0x0096, + 0x0097, + 0x0098, + 0x0099, + 0x009a, + 0x009b, + 0x009c, + 0x009d, + 0x009e, + 0x009f, + 0x00a0, + 0x00a1, + 0x00a2, + 0x00a3, + 0x00a4, + 0x00a5, + 0x00a6, + 0x00a7, + 0x00a8, + 0x00a9, + 0x00aa, + 0x00ab, + 0x00ac, + 0x00ad, + 0x00ae, + 0x00af, + 0x00b0, + 0x00b1, + 0x00b2, + 0x00b3, + 0x00b4, + 0x00b5, + 0x00b6, + 0x00b7, + 0x00b8, + 0x00b9, + 0x00ba, + 0x00bb, + 0x00bc, + 0x00bd, + 0x00be, + 0x00bf, + 0x00c0, + 0x00c1, + 0x00c2, + 0x00c3, + 0x00c4, + 0x00c5, + 0x00c6, + 0x00c7, + 0x00c8, + 0x00c9, + 0x00ca, + 0x00cb, + 0x00cc, + 0x00cd, + 0x00ce, + 0x00cf, + 0x00d0, + 0x00d1, + 0x00d2, + 0x00d3, + 0x00d4, + 0x00d5, + 0x00d6, + 0x00d7, + 0x00d8, + 0x00d9, + 0x00da, + 0x00db, + 0x00dc, + 0x00dd, + 0x00de, + 0x00df, + 0x00e0, + 0x00e1, + 0x00e2, + 0x00e3, + 0x00e4, + 0x00e5, + 0x00e6, + 0x00e7, + 0x00e8, + 0x00e9, + 0x00ea, + 0x00eb, + 0x00ec, + 0x00ed, + 0x00ee, + 0x00ef, + 0x00f0, + 0x00f1, + 0x00f2, + 0x00f3, + 0x00f4, + 0x00f5, + 0x00f6, + 0x00f7, + 0x00f8, + 0x00f9, + 0x00fa, + 0x00fb, + 0x00fc, + 0x00fd, + 0x00fe, + 0x00ff + }; + +LOCAL_D const TUint8 iso8859_1_iso8859[]= + { + 0x00, + 0x01, + 0x02, + 0x03, + 0x04, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0a, + 0x0b, + 0x0c, + 0x0d, + 0x0e, + 0x0f, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x17, + 0x18, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x27, + 0x28, + 0x29, + 0x2a, + 0x2b, + 0x2c, + 0x2d, + 0x2e, + 0x2f, + 0x30, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x39, + 0x3a, + 0x3b, + 0x3c, + 0x3d, + 0x3e, + 0x3f, + 0x40, + 0x41, + 0x42, + 0x43, + 0x44, + 0x45, + 0x46, + 0x47, + 0x48, + 0x49, + 0x4a, + 0x4b, + 0x4c, + 0x4d, + 0x4e, + 0x4f, + 0x50, + 0x51, + 0x52, + 0x53, + 0x54, + 0x55, + 0x56, + 0x57, + 0x58, + 0x59, + 0x5a, + 0x5b, + 0x5c, + 0x5d, + 0x5e, + 0x5f, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0x73, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7c, + 0x7d, + 0x7e, + 0x7f, + 0x80, + 0x81, + 0x82, + 0x83, + 0x84, + 0x85, + 0x86, + 0x87, + 0x88, + 0x89, + 0x8a, + 0x8b, + 0x8c, + 0x8d, + 0x8e, + 0x8f, + 0x90, + 0x91, + 0x92, + 0x93, + 0x94, + 0x95, + 0x96, + 0x97, + 0x98, + 0x99, + 0x9a, + 0x9b, + 0x9c, + 0x9d, + 0x9e, + 0x9f, + 0xa0, + 0xa1, + 0xa2, + 0xa3, + 0xa4, + 0xa5, + 0xa6, + 0xa7, + 0xa8, + 0xa9, + 0xaa, + 0xab, + 0xac, + 0xad, + 0xae, + 0xaf, + 0xb0, + 0xb1, + 0xb2, + 0xb3, + 0xb4, + 0xb5, + 0xb6, + 0xb7, + 0xb8, + 0xb9, + 0xba, + 0xbb, + 0xbc, + 0xbd, + 0xbe, + 0xbf, + 0xc0, + 0xc1, + 0xc2, + 0xc3, + 0xc4, + 0xc5, + 0xc6, + 0xc7, + 0xc8, + 0xc9, + 0xca, + 0xcb, + 0xcc, + 0xcd, + 0xce, + 0xcf, + 0xd0, + 0xd1, + 0xd2, + 0xd3, + 0xd4, + 0xd5, + 0xd6, + 0xd7, + 0xd8, + 0xd9, + 0xda, + 0xdb, + 0xdc, + 0xdd, + 0xde, + 0xdf, + 0xe0, + 0xe1, + 0xe2, + 0xe3, + 0xe4, + 0xe5, + 0xe6, + 0xe7, + 0xe8, + 0xe9, + 0xea, + 0xeb, + 0xec, + 0xed, + 0xee, + 0xef, + 0xf0, + 0xf1, + 0xf2, + 0xf3, + 0xf4, + 0xf5, + 0xf6, + 0xf7, + 0xf8, + 0xf9, + 0xfa, + 0xfb, + 0xfc, + 0xfd, + 0xfe, + 0xff + }; + +LOCAL_D const TUint16 iso8859_2_unicode[]= + { + 0x0000, + 0x0001, + 0x0002, + 0x0003, + 0x0004, + 0x0005, + 0x0006, + 0x0007, + 0x0008, + 0x0009, + 0x000a, + 0x000b, + 0x000c, + 0x000d, + 0x000e, + 0x000f, + 0x0010, + 0x0011, + 0x0012, + 0x0013, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + 0x0018, + 0x0019, + 0x001a, + 0x001b, + 0x001c, + 0x001d, + 0x001e, + 0x001f, + 0x0020, + 0x0021, + 0x0022, + 0x0023, + 0x0024, + 0x0025, + 0x0026, + 0x0027, + 0x0028, + 0x0029, + 0x002a, + 0x002b, + 0x002c, + 0x002d, + 0x002e, + 0x002f, + 0x0030, + 0x0031, + 0x0032, + 0x0033, + 0x0034, + 0x0035, + 0x0036, + 0x0037, + 0x0038, + 0x0039, + 0x003a, + 0x003b, + 0x003c, + 0x003d, + 0x003e, + 0x003f, + 0x0040, + 0x0041, + 0x0042, + 0x0043, + 0x0044, + 0x0045, + 0x0046, + 0x0047, + 0x0048, + 0x0049, + 0x004a, + 0x004b, + 0x004c, + 0x004d, + 0x004e, + 0x004f, + 0x0050, + 0x0051, + 0x0052, + 0x0053, + 0x0054, + 0x0055, + 0x0056, + 0x0057, + 0x0058, + 0x0059, + 0x005a, + 0x005b, + 0x005c, + 0x005d, + 0x005e, + 0x005f, + 0x0060, + 0x0061, + 0x0062, + 0x0063, + 0x0064, + 0x0065, + 0x0066, + 0x0067, + 0x0068, + 0x0069, + 0x006a, + 0x006b, + 0x006c, + 0x006d, + 0x006e, + 0x006f, + 0x0070, + 0x0071, + 0x0072, + 0x0073, + 0x0074, + 0x0075, + 0x0076, + 0x0077, + 0x0078, + 0x0079, + 0x007a, + 0x007b, + 0x007c, + 0x007d, + 0x007e, + 0x007f, + 0x0080, + 0x0081, + 0x0082, + 0x0083, + 0x0084, + 0x0085, + 0x0086, + 0x0087, + 0x0088, + 0x0089, + 0x008a, + 0x008b, + 0x008c, + 0x008d, + 0x008e, + 0x008f, + 0x0090, + 0x0091, + 0x0092, + 0x0093, + 0x0094, + 0x0095, + 0x0096, + 0x0097, + 0x0098, + 0x0099, + 0x009a, + 0x009b, + 0x009c, + 0x009d, + 0x009e, + 0x009f, + 0x00a0, + 0x0104, + 0x02d8, + 0x0141, + 0x00a4, + 0x013d, + 0x015a, + 0x00a7, + 0x00a8, + 0x0160, + 0x015e, + 0x0164, + 0x0179, + 0x00ad, + 0x017d, + 0x017b, + 0x00b0, + 0x0105, + 0x02db, + 0x0142, + 0x00b4, + 0x013e, + 0x015b, + 0x02c7, + 0x00b8, + 0x0161, + 0x015f, + 0x0165, + 0x017a, + 0x02dd, + 0x017e, + 0x017c, + 0x0154, + 0x00c1, + 0x00c2, + 0x0102, + 0x00c4, + 0x0139, + 0x0106, + 0x00c7, + 0x010c, + 0x00c9, + 0x0118, + 0x00cb, + 0x011a, + 0x00cd, + 0x00ce, + 0x010e, + 0x0110, + 0x0143, + 0x0147, + 0x00d3, + 0x00d4, + 0x0150, + 0x00d6, + 0x00d7, + 0x0158, + 0x016e, + 0x00da, + 0x0170, + 0x00dc, + 0x00dd, + 0x0162, + 0x00df, + 0x0155, + 0x00e1, + 0x00e2, + 0x0103, + 0x00e4, + 0x013a, + 0x0107, + 0x00e7, + 0x010d, + 0x00e9, + 0x0119, + 0x00eb, + 0x011b, + 0x00ed, + 0x00ee, + 0x010f, + 0x0111, + 0x0144, + 0x0148, + 0x00f3, + 0x00f4, + 0x0151, + 0x00f6, + 0x00f7, + 0x0159, + 0x016f, + 0x00fa, + 0x0171, + 0x00fc, + 0x00fd, + 0x0163, + 0x02d9 + }; + +LOCAL_D const TUint8 iso8859_2_iso8859[]= + { + 0x00, + 0x01, + 0x02, + 0x03, + 0x04, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0a, + 0x0b, + 0x0c, + 0x0d, + 0x0e, + 0x0f, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x17, + 0x18, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x27, + 0x28, + 0x29, + 0x2a, + 0x2b, + 0x2c, + 0x2d, + 0x2e, + 0x2f, + 0x30, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x39, + 0x3a, + 0x3b, + 0x3c, + 0x3d, + 0x3e, + 0x3f, + 0x40, + 0x41, + 0x42, + 0x43, + 0x44, + 0x45, + 0x46, + 0x47, + 0x48, + 0x49, + 0x4a, + 0x4b, + 0x4c, + 0x4d, + 0x4e, + 0x4f, + 0x50, + 0x51, + 0x52, + 0x53, + 0x54, + 0x55, + 0x56, + 0x57, + 0x58, + 0x59, + 0x5a, + 0x5b, + 0x5c, + 0x5d, + 0x5e, + 0x5f, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0x73, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7c, + 0x7d, + 0x7e, + 0x7f, + 0x80, + 0x81, + 0x82, + 0x83, + 0x84, + 0x85, + 0x86, + 0x87, + 0x88, + 0x89, + 0x8a, + 0x8b, + 0x8c, + 0x8d, + 0x8e, + 0x8f, + 0x90, + 0x91, + 0x92, + 0x93, + 0x94, + 0x95, + 0x96, + 0x97, + 0x98, + 0x99, + 0x9a, + 0x9b, + 0x9c, + 0x9d, + 0x9e, + 0x9f, + 0xa0, + 0xa1, + 0xa2, + 0xa3, + 0xa4, + 0xa5, + 0xa6, + 0xa7, + 0xa8, + 0xa9, + 0xaa, + 0xab, + 0xac, + 0xad, + 0xae, + 0xaf, + 0xb0, + 0xb1, + 0xb2, + 0xb3, + 0xb4, + 0xb5, + 0xb6, + 0xb7, + 0xb8, + 0xb9, + 0xba, + 0xbb, + 0xbc, + 0xbd, + 0xbe, + 0xbf, + 0xc0, + 0xc1, + 0xc2, + 0xc3, + 0xc4, + 0xc5, + 0xc6, + 0xc7, + 0xc8, + 0xc9, + 0xca, + 0xcb, + 0xcc, + 0xcd, + 0xce, + 0xcf, + 0xd0, + 0xd1, + 0xd2, + 0xd3, + 0xd4, + 0xd5, + 0xd6, + 0xd7, + 0xd8, + 0xd9, + 0xda, + 0xdb, + 0xdc, + 0xdd, + 0xde, + 0xdf, + 0xe0, + 0xe1, + 0xe2, + 0xe3, + 0xe4, + 0xe5, + 0xe6, + 0xe7, + 0xe8, + 0xe9, + 0xea, + 0xeb, + 0xec, + 0xed, + 0xee, + 0xef, + 0xf0, + 0xf1, + 0xf2, + 0xf3, + 0xf4, + 0xf5, + 0xf6, + 0xf7, + 0xf8, + 0xf9, + 0xfa, + 0xfb, + 0xfc, + 0xfd, + 0xfe, + 0xff + }; + +LOCAL_D const TUint16 iso8859_3_unicode[]= + { + 0x0000, + 0x0001, + 0x0002, + 0x0003, + 0x0004, + 0x0005, + 0x0006, + 0x0007, + 0x0008, + 0x0009, + 0x000a, + 0x000b, + 0x000c, + 0x000d, + 0x000e, + 0x000f, + 0x0010, + 0x0011, + 0x0012, + 0x0013, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + 0x0018, + 0x0019, + 0x001a, + 0x001b, + 0x001c, + 0x001d, + 0x001e, + 0x001f, + 0x0020, + 0x0021, + 0x0022, + 0x0023, + 0x0024, + 0x0025, + 0x0026, + 0x0027, + 0x0028, + 0x0029, + 0x002a, + 0x002b, + 0x002c, + 0x002d, + 0x002e, + 0x002f, + 0x0030, + 0x0031, + 0x0032, + 0x0033, + 0x0034, + 0x0035, + 0x0036, + 0x0037, + 0x0038, + 0x0039, + 0x003a, + 0x003b, + 0x003c, + 0x003d, + 0x003e, + 0x003f, + 0x0040, + 0x0041, + 0x0042, + 0x0043, + 0x0044, + 0x0045, + 0x0046, + 0x0047, + 0x0048, + 0x0049, + 0x004a, + 0x004b, + 0x004c, + 0x004d, + 0x004e, + 0x004f, + 0x0050, + 0x0051, + 0x0052, + 0x0053, + 0x0054, + 0x0055, + 0x0056, + 0x0057, + 0x0058, + 0x0059, + 0x005a, + 0x005b, + 0x005c, + 0x005d, + 0x005e, + 0x005f, + 0x0060, + 0x0061, + 0x0062, + 0x0063, + 0x0064, + 0x0065, + 0x0066, + 0x0067, + 0x0068, + 0x0069, + 0x006a, + 0x006b, + 0x006c, + 0x006d, + 0x006e, + 0x006f, + 0x0070, + 0x0071, + 0x0072, + 0x0073, + 0x0074, + 0x0075, + 0x0076, + 0x0077, + 0x0078, + 0x0079, + 0x007a, + 0x007b, + 0x007c, + 0x007d, + 0x007e, + 0x007f, + 0x0080, + 0x0081, + 0x0082, + 0x0083, + 0x0084, + 0x0085, + 0x0086, + 0x0087, + 0x0088, + 0x0089, + 0x008a, + 0x008b, + 0x008c, + 0x008d, + 0x008e, + 0x008f, + 0x0090, + 0x0091, + 0x0092, + 0x0093, + 0x0094, + 0x0095, + 0x0096, + 0x0097, + 0x0098, + 0x0099, + 0x009a, + 0x009b, + 0x009c, + 0x009d, + 0x009e, + 0x009f, + 0x00a0, + 0x0126, + 0x02d8, + 0x00a3, + 0x00a4, + 0x0124, + 0x00a7, + 0x00a8, + 0x0130, + 0x015e, + 0x011e, + 0x0134, + 0x00ad, + 0x017b, + 0x00b0, + 0x0127, + 0x00b2, + 0x00b3, + 0x00b4, + 0x00b5, + 0x0125, + 0x00b7, + 0x00b8, + 0x0131, + 0x015f, + 0x011f, + 0x0135, + 0x00bd, + 0x017c, + 0x00c0, + 0x00c1, + 0x00c2, + 0x00c4, + 0x010a, + 0x0108, + 0x00c7, + 0x00c8, + 0x00c9, + 0x00ca, + 0x00cb, + 0x00cc, + 0x00cd, + 0x00ce, + 0x00cf, + 0x00d1, + 0x00d2, + 0x00d3, + 0x00d4, + 0x0120, + 0x00d6, + 0x00d7, + 0x011c, + 0x00d9, + 0x00da, + 0x00db, + 0x00dc, + 0x016c, + 0x015c, + 0x00df, + 0x00e0, + 0x00e1, + 0x00e2, + 0x00e4, + 0x010b, + 0x0109, + 0x00e7, + 0x00e8, + 0x00e9, + 0x00ea, + 0x00eb, + 0x00ec, + 0x00ed, + 0x00ee, + 0x00ef, + 0x00f1, + 0x00f2, + 0x00f3, + 0x00f4, + 0x0121, + 0x00f6, + 0x00f7, + 0x011d, + 0x00f9, + 0x00fa, + 0x00fb, + 0x00fc, + 0x016d, + 0x015d, + 0x02d9 + }; + +LOCAL_D const TUint8 iso8859_3_iso8859[]= + { + 0x00, + 0x01, + 0x02, + 0x03, + 0x04, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0a, + 0x0b, + 0x0c, + 0x0d, + 0x0e, + 0x0f, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x17, + 0x18, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x27, + 0x28, + 0x29, + 0x2a, + 0x2b, + 0x2c, + 0x2d, + 0x2e, + 0x2f, + 0x30, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x39, + 0x3a, + 0x3b, + 0x3c, + 0x3d, + 0x3e, + 0x3f, + 0x40, + 0x41, + 0x42, + 0x43, + 0x44, + 0x45, + 0x46, + 0x47, + 0x48, + 0x49, + 0x4a, + 0x4b, + 0x4c, + 0x4d, + 0x4e, + 0x4f, + 0x50, + 0x51, + 0x52, + 0x53, + 0x54, + 0x55, + 0x56, + 0x57, + 0x58, + 0x59, + 0x5a, + 0x5b, + 0x5c, + 0x5d, + 0x5e, + 0x5f, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0x73, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7c, + 0x7d, + 0x7e, + 0x7f, + 0x80, + 0x81, + 0x82, + 0x83, + 0x84, + 0x85, + 0x86, + 0x87, + 0x88, + 0x89, + 0x8a, + 0x8b, + 0x8c, + 0x8d, + 0x8e, + 0x8f, + 0x90, + 0x91, + 0x92, + 0x93, + 0x94, + 0x95, + 0x96, + 0x97, + 0x98, + 0x99, + 0x9a, + 0x9b, + 0x9c, + 0x9d, + 0x9e, + 0x9f, + 0xa0, + 0xa1, + 0xa2, + 0xa3, + 0xa4, + 0xa6, + 0xa7, + 0xa8, + 0xa9, + 0xaa, + 0xab, + 0xac, + 0xad, + 0xaf, + 0xb0, + 0xb1, + 0xb2, + 0xb3, + 0xb4, + 0xb5, + 0xb6, + 0xb7, + 0xb8, + 0xb9, + 0xba, + 0xbb, + 0xbc, + 0xbd, + 0xbf, + 0xc0, + 0xc1, + 0xc2, + 0xc4, + 0xc5, + 0xc6, + 0xc7, + 0xc8, + 0xc9, + 0xca, + 0xcb, + 0xcc, + 0xcd, + 0xce, + 0xcf, + 0xd1, + 0xd2, + 0xd3, + 0xd4, + 0xd5, + 0xd6, + 0xd7, + 0xd8, + 0xd9, + 0xda, + 0xdb, + 0xdc, + 0xdd, + 0xde, + 0xdf, + 0xe0, + 0xe1, + 0xe2, + 0xe4, + 0xe5, + 0xe6, + 0xe7, + 0xe8, + 0xe9, + 0xea, + 0xeb, + 0xec, + 0xed, + 0xee, + 0xef, + 0xf1, + 0xf2, + 0xf3, + 0xf4, + 0xf5, + 0xf6, + 0xf7, + 0xf8, + 0xf9, + 0xfa, + 0xfb, + 0xfc, + 0xfd, + 0xfe, + 0xff + }; + +LOCAL_D const TUint16 iso8859_4_unicode[]= + { + 0x0000, + 0x0001, + 0x0002, + 0x0003, + 0x0004, + 0x0005, + 0x0006, + 0x0007, + 0x0008, + 0x0009, + 0x000a, + 0x000b, + 0x000c, + 0x000d, + 0x000e, + 0x000f, + 0x0010, + 0x0011, + 0x0012, + 0x0013, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + 0x0018, + 0x0019, + 0x001a, + 0x001b, + 0x001c, + 0x001d, + 0x001e, + 0x001f, + 0x0020, + 0x0021, + 0x0022, + 0x0023, + 0x0024, + 0x0025, + 0x0026, + 0x0027, + 0x0028, + 0x0029, + 0x002a, + 0x002b, + 0x002c, + 0x002d, + 0x002e, + 0x002f, + 0x0030, + 0x0031, + 0x0032, + 0x0033, + 0x0034, + 0x0035, + 0x0036, + 0x0037, + 0x0038, + 0x0039, + 0x003a, + 0x003b, + 0x003c, + 0x003d, + 0x003e, + 0x003f, + 0x0040, + 0x0041, + 0x0042, + 0x0043, + 0x0044, + 0x0045, + 0x0046, + 0x0047, + 0x0048, + 0x0049, + 0x004a, + 0x004b, + 0x004c, + 0x004d, + 0x004e, + 0x004f, + 0x0050, + 0x0051, + 0x0052, + 0x0053, + 0x0054, + 0x0055, + 0x0056, + 0x0057, + 0x0058, + 0x0059, + 0x005a, + 0x005b, + 0x005c, + 0x005d, + 0x005e, + 0x005f, + 0x0060, + 0x0061, + 0x0062, + 0x0063, + 0x0064, + 0x0065, + 0x0066, + 0x0067, + 0x0068, + 0x0069, + 0x006a, + 0x006b, + 0x006c, + 0x006d, + 0x006e, + 0x006f, + 0x0070, + 0x0071, + 0x0072, + 0x0073, + 0x0074, + 0x0075, + 0x0076, + 0x0077, + 0x0078, + 0x0079, + 0x007a, + 0x007b, + 0x007c, + 0x007d, + 0x007e, + 0x007f, + 0x0080, + 0x0081, + 0x0082, + 0x0083, + 0x0084, + 0x0085, + 0x0086, + 0x0087, + 0x0088, + 0x0089, + 0x008a, + 0x008b, + 0x008c, + 0x008d, + 0x008e, + 0x008f, + 0x0090, + 0x0091, + 0x0092, + 0x0093, + 0x0094, + 0x0095, + 0x0096, + 0x0097, + 0x0098, + 0x0099, + 0x009a, + 0x009b, + 0x009c, + 0x009d, + 0x009e, + 0x009f, + 0x00a0, + 0x0104, + 0x0138, + 0x0156, + 0x00a4, + 0x0128, + 0x013b, + 0x00a7, + 0x00a8, + 0x0160, + 0x0112, + 0x0122, + 0x0166, + 0x00ad, + 0x017d, + 0x00af, + 0x00b0, + 0x0105, + 0x02db, + 0x0157, + 0x00b4, + 0x0129, + 0x013c, + 0x02c7, + 0x00b8, + 0x0161, + 0x0113, + 0x0123, + 0x0167, + 0x014a, + 0x017e, + 0x014b, + 0x0100, + 0x00c1, + 0x00c2, + 0x00c3, + 0x00c4, + 0x00c5, + 0x00c6, + 0x012e, + 0x010c, + 0x00c9, + 0x0118, + 0x00cb, + 0x0116, + 0x00cd, + 0x00ce, + 0x012a, + 0x0110, + 0x0145, + 0x014c, + 0x0136, + 0x00d4, + 0x00d5, + 0x00d6, + 0x00d7, + 0x00d8, + 0x0172, + 0x00da, + 0x00db, + 0x00dc, + 0x0168, + 0x016a, + 0x00df, + 0x0101, + 0x00e1, + 0x00e2, + 0x00e3, + 0x00e4, + 0x00e5, + 0x00e6, + 0x012f, + 0x010d, + 0x00e9, + 0x0119, + 0x00eb, + 0x0117, + 0x00ed, + 0x00ee, + 0x012b, + 0x0111, + 0x0146, + 0x014d, + 0x0137, + 0x00f4, + 0x00f5, + 0x00f6, + 0x00f7, + 0x00f8, + 0x0173, + 0x00fa, + 0x00fb, + 0x00fc, + 0x0169, + 0x016b, + 0x02d9 + }; + +LOCAL_D const TUint8 iso8859_4_iso8859[]= + { + 0x00, + 0x01, + 0x02, + 0x03, + 0x04, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0a, + 0x0b, + 0x0c, + 0x0d, + 0x0e, + 0x0f, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x17, + 0x18, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x27, + 0x28, + 0x29, + 0x2a, + 0x2b, + 0x2c, + 0x2d, + 0x2e, + 0x2f, + 0x30, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x39, + 0x3a, + 0x3b, + 0x3c, + 0x3d, + 0x3e, + 0x3f, + 0x40, + 0x41, + 0x42, + 0x43, + 0x44, + 0x45, + 0x46, + 0x47, + 0x48, + 0x49, + 0x4a, + 0x4b, + 0x4c, + 0x4d, + 0x4e, + 0x4f, + 0x50, + 0x51, + 0x52, + 0x53, + 0x54, + 0x55, + 0x56, + 0x57, + 0x58, + 0x59, + 0x5a, + 0x5b, + 0x5c, + 0x5d, + 0x5e, + 0x5f, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0x73, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7c, + 0x7d, + 0x7e, + 0x7f, + 0x80, + 0x81, + 0x82, + 0x83, + 0x84, + 0x85, + 0x86, + 0x87, + 0x88, + 0x89, + 0x8a, + 0x8b, + 0x8c, + 0x8d, + 0x8e, + 0x8f, + 0x90, + 0x91, + 0x92, + 0x93, + 0x94, + 0x95, + 0x96, + 0x97, + 0x98, + 0x99, + 0x9a, + 0x9b, + 0x9c, + 0x9d, + 0x9e, + 0x9f, + 0xa0, + 0xa1, + 0xa2, + 0xa3, + 0xa4, + 0xa5, + 0xa6, + 0xa7, + 0xa8, + 0xa9, + 0xaa, + 0xab, + 0xac, + 0xad, + 0xae, + 0xaf, + 0xb0, + 0xb1, + 0xb2, + 0xb3, + 0xb4, + 0xb5, + 0xb6, + 0xb7, + 0xb8, + 0xb9, + 0xba, + 0xbb, + 0xbc, + 0xbd, + 0xbe, + 0xbf, + 0xc0, + 0xc1, + 0xc2, + 0xc3, + 0xc4, + 0xc5, + 0xc6, + 0xc7, + 0xc8, + 0xc9, + 0xca, + 0xcb, + 0xcc, + 0xcd, + 0xce, + 0xcf, + 0xd0, + 0xd1, + 0xd2, + 0xd3, + 0xd4, + 0xd5, + 0xd6, + 0xd7, + 0xd8, + 0xd9, + 0xda, + 0xdb, + 0xdc, + 0xdd, + 0xde, + 0xdf, + 0xe0, + 0xe1, + 0xe2, + 0xe3, + 0xe4, + 0xe5, + 0xe6, + 0xe7, + 0xe8, + 0xe9, + 0xea, + 0xeb, + 0xec, + 0xed, + 0xee, + 0xef, + 0xf0, + 0xf1, + 0xf2, + 0xf3, + 0xf4, + 0xf5, + 0xf6, + 0xf7, + 0xf8, + 0xf9, + 0xfa, + 0xfb, + 0xfc, + 0xfd, + 0xfe, + 0xff + }; + +LOCAL_D const TUint16 iso8859_5_unicode[]= + { + 0x0000, + 0x0001, + 0x0002, + 0x0003, + 0x0004, + 0x0005, + 0x0006, + 0x0007, + 0x0008, + 0x0009, + 0x000a, + 0x000b, + 0x000c, + 0x000d, + 0x000e, + 0x000f, + 0x0010, + 0x0011, + 0x0012, + 0x0013, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + 0x0018, + 0x0019, + 0x001a, + 0x001b, + 0x001c, + 0x001d, + 0x001e, + 0x001f, + 0x0020, + 0x0021, + 0x0022, + 0x0023, + 0x0024, + 0x0025, + 0x0026, + 0x0027, + 0x0028, + 0x0029, + 0x002a, + 0x002b, + 0x002c, + 0x002d, + 0x002e, + 0x002f, + 0x0030, + 0x0031, + 0x0032, + 0x0033, + 0x0034, + 0x0035, + 0x0036, + 0x0037, + 0x0038, + 0x0039, + 0x003a, + 0x003b, + 0x003c, + 0x003d, + 0x003e, + 0x003f, + 0x0040, + 0x0041, + 0x0042, + 0x0043, + 0x0044, + 0x0045, + 0x0046, + 0x0047, + 0x0048, + 0x0049, + 0x004a, + 0x004b, + 0x004c, + 0x004d, + 0x004e, + 0x004f, + 0x0050, + 0x0051, + 0x0052, + 0x0053, + 0x0054, + 0x0055, + 0x0056, + 0x0057, + 0x0058, + 0x0059, + 0x005a, + 0x005b, + 0x005c, + 0x005d, + 0x005e, + 0x005f, + 0x0060, + 0x0061, + 0x0062, + 0x0063, + 0x0064, + 0x0065, + 0x0066, + 0x0067, + 0x0068, + 0x0069, + 0x006a, + 0x006b, + 0x006c, + 0x006d, + 0x006e, + 0x006f, + 0x0070, + 0x0071, + 0x0072, + 0x0073, + 0x0074, + 0x0075, + 0x0076, + 0x0077, + 0x0078, + 0x0079, + 0x007a, + 0x007b, + 0x007c, + 0x007d, + 0x007e, + 0x007f, + 0x0080, + 0x0081, + 0x0082, + 0x0083, + 0x0084, + 0x0085, + 0x0086, + 0x0087, + 0x0088, + 0x0089, + 0x008a, + 0x008b, + 0x008c, + 0x008d, + 0x008e, + 0x008f, + 0x0090, + 0x0091, + 0x0092, + 0x0093, + 0x0094, + 0x0095, + 0x0096, + 0x0097, + 0x0098, + 0x0099, + 0x009a, + 0x009b, + 0x009c, + 0x009d, + 0x009e, + 0x009f, + 0x00a0, + 0x0401, + 0x0402, + 0x0403, + 0x0404, + 0x0405, + 0x0406, + 0x0407, + 0x0408, + 0x0409, + 0x040a, + 0x040b, + 0x040c, + 0x00ad, + 0x040e, + 0x040f, + 0x0410, + 0x0411, + 0x0412, + 0x0413, + 0x0414, + 0x0415, + 0x0416, + 0x0417, + 0x0418, + 0x0419, + 0x041a, + 0x041b, + 0x041c, + 0x041d, + 0x041e, + 0x041f, + 0x0420, + 0x0421, + 0x0422, + 0x0423, + 0x0424, + 0x0425, + 0x0426, + 0x0427, + 0x0428, + 0x0429, + 0x042a, + 0x042b, + 0x042c, + 0x042d, + 0x042e, + 0x042f, + 0x0430, + 0x0431, + 0x0432, + 0x0433, + 0x0434, + 0x0435, + 0x0436, + 0x0437, + 0x0438, + 0x0439, + 0x043a, + 0x043b, + 0x043c, + 0x043d, + 0x043e, + 0x043f, + 0x0440, + 0x0441, + 0x0442, + 0x0443, + 0x0444, + 0x0445, + 0x0446, + 0x0447, + 0x0448, + 0x0449, + 0x044a, + 0x044b, + 0x044c, + 0x044d, + 0x044e, + 0x044f, + 0x2116, + 0x0451, + 0x0452, + 0x0453, + 0x0454, + 0x0455, + 0x0456, + 0x0457, + 0x0458, + 0x0459, + 0x045a, + 0x045b, + 0x045c, + 0x00a7, + 0x045e, + 0x045f + }; + +LOCAL_D const TUint8 iso8859_5_iso8859[]= + { + 0x00, + 0x01, + 0x02, + 0x03, + 0x04, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0a, + 0x0b, + 0x0c, + 0x0d, + 0x0e, + 0x0f, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x17, + 0x18, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x27, + 0x28, + 0x29, + 0x2a, + 0x2b, + 0x2c, + 0x2d, + 0x2e, + 0x2f, + 0x30, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x39, + 0x3a, + 0x3b, + 0x3c, + 0x3d, + 0x3e, + 0x3f, + 0x40, + 0x41, + 0x42, + 0x43, + 0x44, + 0x45, + 0x46, + 0x47, + 0x48, + 0x49, + 0x4a, + 0x4b, + 0x4c, + 0x4d, + 0x4e, + 0x4f, + 0x50, + 0x51, + 0x52, + 0x53, + 0x54, + 0x55, + 0x56, + 0x57, + 0x58, + 0x59, + 0x5a, + 0x5b, + 0x5c, + 0x5d, + 0x5e, + 0x5f, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0x73, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7c, + 0x7d, + 0x7e, + 0x7f, + 0x80, + 0x81, + 0x82, + 0x83, + 0x84, + 0x85, + 0x86, + 0x87, + 0x88, + 0x89, + 0x8a, + 0x8b, + 0x8c, + 0x8d, + 0x8e, + 0x8f, + 0x90, + 0x91, + 0x92, + 0x93, + 0x94, + 0x95, + 0x96, + 0x97, + 0x98, + 0x99, + 0x9a, + 0x9b, + 0x9c, + 0x9d, + 0x9e, + 0x9f, + 0xa0, + 0xa1, + 0xa2, + 0xa3, + 0xa4, + 0xa5, + 0xa6, + 0xa7, + 0xa8, + 0xa9, + 0xaa, + 0xab, + 0xac, + 0xad, + 0xae, + 0xaf, + 0xb0, + 0xb1, + 0xb2, + 0xb3, + 0xb4, + 0xb5, + 0xb6, + 0xb7, + 0xb8, + 0xb9, + 0xba, + 0xbb, + 0xbc, + 0xbd, + 0xbe, + 0xbf, + 0xc0, + 0xc1, + 0xc2, + 0xc3, + 0xc4, + 0xc5, + 0xc6, + 0xc7, + 0xc8, + 0xc9, + 0xca, + 0xcb, + 0xcc, + 0xcd, + 0xce, + 0xcf, + 0xd0, + 0xd1, + 0xd2, + 0xd3, + 0xd4, + 0xd5, + 0xd6, + 0xd7, + 0xd8, + 0xd9, + 0xda, + 0xdb, + 0xdc, + 0xdd, + 0xde, + 0xdf, + 0xe0, + 0xe1, + 0xe2, + 0xe3, + 0xe4, + 0xe5, + 0xe6, + 0xe7, + 0xe8, + 0xe9, + 0xea, + 0xeb, + 0xec, + 0xed, + 0xee, + 0xef, + 0xf0, + 0xf1, + 0xf2, + 0xf3, + 0xf4, + 0xf5, + 0xf6, + 0xf7, + 0xf8, + 0xf9, + 0xfa, + 0xfb, + 0xfc, + 0xfd, + 0xfe, + 0xff + }; + +LOCAL_D const TUint16 iso8859_6_unicode[]= + { + 0x0000, + 0x0001, + 0x0002, + 0x0003, + 0x0004, + 0x0005, + 0x0006, + 0x0007, + 0x0008, + 0x0009, + 0x000a, + 0x000b, + 0x000c, + 0x000d, + 0x000e, + 0x000f, + 0x0010, + 0x0011, + 0x0012, + 0x0013, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + 0x0018, + 0x0019, + 0x001a, + 0x001b, + 0x001c, + 0x001d, + 0x001e, + 0x001f, + 0x0020, + 0x0021, + 0x0022, + 0x0023, + 0x0024, + 0x0025, + 0x0026, + 0x0027, + 0x0028, + 0x0029, + 0x002a, + 0x002b, + 0x002c, + 0x002d, + 0x002e, + 0x002f, + 0x0030, + 0x0031, + 0x0032, + 0x0033, + 0x0034, + 0x0035, + 0x0036, + 0x0037, + 0x0038, + 0x0039, + 0x003a, + 0x003b, + 0x003c, + 0x003d, + 0x003e, + 0x003f, + 0x0040, + 0x0041, + 0x0042, + 0x0043, + 0x0044, + 0x0045, + 0x0046, + 0x0047, + 0x0048, + 0x0049, + 0x004a, + 0x004b, + 0x004c, + 0x004d, + 0x004e, + 0x004f, + 0x0050, + 0x0051, + 0x0052, + 0x0053, + 0x0054, + 0x0055, + 0x0056, + 0x0057, + 0x0058, + 0x0059, + 0x005a, + 0x005b, + 0x005c, + 0x005d, + 0x005e, + 0x005f, + 0x0060, + 0x0061, + 0x0062, + 0x0063, + 0x0064, + 0x0065, + 0x0066, + 0x0067, + 0x0068, + 0x0069, + 0x006a, + 0x006b, + 0x006c, + 0x006d, + 0x006e, + 0x006f, + 0x0070, + 0x0071, + 0x0072, + 0x0073, + 0x0074, + 0x0075, + 0x0076, + 0x0077, + 0x0078, + 0x0079, + 0x007a, + 0x007b, + 0x007c, + 0x007d, + 0x007e, + 0x007f, + 0x0080, + 0x0081, + 0x0082, + 0x0083, + 0x0084, + 0x0085, + 0x0086, + 0x0087, + 0x0088, + 0x0089, + 0x008a, + 0x008b, + 0x008c, + 0x008d, + 0x008e, + 0x008f, + 0x0090, + 0x0091, + 0x0092, + 0x0093, + 0x0094, + 0x0095, + 0x0096, + 0x0097, + 0x0098, + 0x0099, + 0x009a, + 0x009b, + 0x009c, + 0x009d, + 0x009e, + 0x009f, + 0x00a0, + 0x00a4, + 0x060c, + 0x00ad, + 0x061b, + 0x061f, + 0x0621, + 0x0622, + 0x0623, + 0x0624, + 0x0625, + 0x0626, + 0x0627, + 0x0628, + 0x0629, + 0x062a, + 0x062b, + 0x062c, + 0x062d, + 0x062e, + 0x062f, + 0x0630, + 0x0631, + 0x0632, + 0x0633, + 0x0634, + 0x0635, + 0x0636, + 0x0637, + 0x0638, + 0x0639, + 0x063a, + 0x0640, + 0x0641, + 0x0642, + 0x0643, + 0x0644, + 0x0645, + 0x0646, + 0x0647, + 0x0648, + 0x0649, + 0x064a, + 0x064b, + 0x064c, + 0x064d, + 0x064e, + 0x064f, + 0x0650, + 0x0651, + 0x0652 + }; + +LOCAL_D const TUint8 iso8859_6_iso8859[]= + { + 0x00, + 0x01, + 0x02, + 0x03, + 0x04, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0a, + 0x0b, + 0x0c, + 0x0d, + 0x0e, + 0x0f, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x17, + 0x18, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x27, + 0x28, + 0x29, + 0x2a, + 0x2b, + 0x2c, + 0x2d, + 0x2e, + 0x2f, + 0x30, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x39, + 0x3a, + 0x3b, + 0x3c, + 0x3d, + 0x3e, + 0x3f, + 0x40, + 0x41, + 0x42, + 0x43, + 0x44, + 0x45, + 0x46, + 0x47, + 0x48, + 0x49, + 0x4a, + 0x4b, + 0x4c, + 0x4d, + 0x4e, + 0x4f, + 0x50, + 0x51, + 0x52, + 0x53, + 0x54, + 0x55, + 0x56, + 0x57, + 0x58, + 0x59, + 0x5a, + 0x5b, + 0x5c, + 0x5d, + 0x5e, + 0x5f, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0x73, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7c, + 0x7d, + 0x7e, + 0x7f, + 0x80, + 0x81, + 0x82, + 0x83, + 0x84, + 0x85, + 0x86, + 0x87, + 0x88, + 0x89, + 0x8a, + 0x8b, + 0x8c, + 0x8d, + 0x8e, + 0x8f, + 0x90, + 0x91, + 0x92, + 0x93, + 0x94, + 0x95, + 0x96, + 0x97, + 0x98, + 0x99, + 0x9a, + 0x9b, + 0x9c, + 0x9d, + 0x9e, + 0x9f, + 0xa0, + 0xa4, + 0xac, + 0xad, + 0xbb, + 0xbf, + 0xc1, + 0xc2, + 0xc3, + 0xc4, + 0xc5, + 0xc6, + 0xc7, + 0xc8, + 0xc9, + 0xca, + 0xcb, + 0xcc, + 0xcd, + 0xce, + 0xcf, + 0xd0, + 0xd1, + 0xd2, + 0xd3, + 0xd4, + 0xd5, + 0xd6, + 0xd7, + 0xd8, + 0xd9, + 0xda, + 0xe0, + 0xe1, + 0xe2, + 0xe3, + 0xe4, + 0xe5, + 0xe6, + 0xe7, + 0xe8, + 0xe9, + 0xea, + 0xeb, + 0xec, + 0xed, + 0xee, + 0xef, + 0xf0, + 0xf1, + 0xf2 + }; + +LOCAL_D const TUint16 iso8859_7_unicode[]= + { + 0x0000, + 0x0001, + 0x0002, + 0x0003, + 0x0004, + 0x0005, + 0x0006, + 0x0007, + 0x0008, + 0x0009, + 0x000a, + 0x000b, + 0x000c, + 0x000d, + 0x000e, + 0x000f, + 0x0010, + 0x0011, + 0x0012, + 0x0013, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + 0x0018, + 0x0019, + 0x001a, + 0x001b, + 0x001c, + 0x001d, + 0x001e, + 0x001f, + 0x0020, + 0x0021, + 0x0022, + 0x0023, + 0x0024, + 0x0025, + 0x0026, + 0x0027, + 0x0028, + 0x0029, + 0x002a, + 0x002b, + 0x002c, + 0x002d, + 0x002e, + 0x002f, + 0x0030, + 0x0031, + 0x0032, + 0x0033, + 0x0034, + 0x0035, + 0x0036, + 0x0037, + 0x0038, + 0x0039, + 0x003a, + 0x003b, + 0x003c, + 0x003d, + 0x003e, + 0x003f, + 0x0040, + 0x0041, + 0x0042, + 0x0043, + 0x0044, + 0x0045, + 0x0046, + 0x0047, + 0x0048, + 0x0049, + 0x004a, + 0x004b, + 0x004c, + 0x004d, + 0x004e, + 0x004f, + 0x0050, + 0x0051, + 0x0052, + 0x0053, + 0x0054, + 0x0055, + 0x0056, + 0x0057, + 0x0058, + 0x0059, + 0x005a, + 0x005b, + 0x005c, + 0x005d, + 0x005e, + 0x005f, + 0x0060, + 0x0061, + 0x0062, + 0x0063, + 0x0064, + 0x0065, + 0x0066, + 0x0067, + 0x0068, + 0x0069, + 0x006a, + 0x006b, + 0x006c, + 0x006d, + 0x006e, + 0x006f, + 0x0070, + 0x0071, + 0x0072, + 0x0073, + 0x0074, + 0x0075, + 0x0076, + 0x0077, + 0x0078, + 0x0079, + 0x007a, + 0x007b, + 0x007c, + 0x007d, + 0x007e, + 0x007f, + 0x0080, + 0x0081, + 0x0082, + 0x0083, + 0x0084, + 0x0085, + 0x0086, + 0x0087, + 0x0088, + 0x0089, + 0x008a, + 0x008b, + 0x008c, + 0x008d, + 0x008e, + 0x008f, + 0x0090, + 0x0091, + 0x0092, + 0x0093, + 0x0094, + 0x0095, + 0x0096, + 0x0097, + 0x0098, + 0x0099, + 0x009a, + 0x009b, + 0x009c, + 0x009d, + 0x009e, + 0x009f, + 0x00a0, + 0x2018, + 0x2019, + 0x00a3, + 0x00a6, + 0x00a7, + 0x00a8, + 0x00a9, + 0x00ab, + 0x00ac, + 0x00ad, + 0x2015, + 0x00b0, + 0x00b1, + 0x00b2, + 0x00b3, + 0x0384, + 0x0385, + 0x0386, + 0x00b7, + 0x0388, + 0x0389, + 0x038a, + 0x00bb, + 0x038c, + 0x00bd, + 0x038e, + 0x038f, + 0x0390, + 0x0391, + 0x0392, + 0x0393, + 0x0394, + 0x0395, + 0x0396, + 0x0397, + 0x0398, + 0x0399, + 0x039a, + 0x039b, + 0x039c, + 0x039d, + 0x039e, + 0x039f, + 0x03a0, + 0x03a1, + 0x03a3, + 0x03a4, + 0x03a5, + 0x03a6, + 0x03a7, + 0x03a8, + 0x03a9, + 0x03aa, + 0x03ab, + 0x03ac, + 0x03ad, + 0x03ae, + 0x03af, + 0x03b0, + 0x03b1, + 0x03b2, + 0x03b3, + 0x03b4, + 0x03b5, + 0x03b6, + 0x03b7, + 0x03b8, + 0x03b9, + 0x03ba, + 0x03bb, + 0x03bc, + 0x03bd, + 0x03be, + 0x03bf, + 0x03c0, + 0x03c1, + 0x03c2, + 0x03c3, + 0x03c4, + 0x03c5, + 0x03c6, + 0x03c7, + 0x03c8, + 0x03c9, + 0x03ca, + 0x03cb, + 0x03cc, + 0x03cd, + 0x03ce + }; + +LOCAL_D const TUint8 iso8859_7_iso8859[]= + { + 0x00, + 0x01, + 0x02, + 0x03, + 0x04, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0a, + 0x0b, + 0x0c, + 0x0d, + 0x0e, + 0x0f, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x17, + 0x18, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x27, + 0x28, + 0x29, + 0x2a, + 0x2b, + 0x2c, + 0x2d, + 0x2e, + 0x2f, + 0x30, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x39, + 0x3a, + 0x3b, + 0x3c, + 0x3d, + 0x3e, + 0x3f, + 0x40, + 0x41, + 0x42, + 0x43, + 0x44, + 0x45, + 0x46, + 0x47, + 0x48, + 0x49, + 0x4a, + 0x4b, + 0x4c, + 0x4d, + 0x4e, + 0x4f, + 0x50, + 0x51, + 0x52, + 0x53, + 0x54, + 0x55, + 0x56, + 0x57, + 0x58, + 0x59, + 0x5a, + 0x5b, + 0x5c, + 0x5d, + 0x5e, + 0x5f, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0x73, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7c, + 0x7d, + 0x7e, + 0x7f, + 0x80, + 0x81, + 0x82, + 0x83, + 0x84, + 0x85, + 0x86, + 0x87, + 0x88, + 0x89, + 0x8a, + 0x8b, + 0x8c, + 0x8d, + 0x8e, + 0x8f, + 0x90, + 0x91, + 0x92, + 0x93, + 0x94, + 0x95, + 0x96, + 0x97, + 0x98, + 0x99, + 0x9a, + 0x9b, + 0x9c, + 0x9d, + 0x9e, + 0x9f, + 0xa0, + 0xa1, + 0xa2, + 0xa3, + 0xa6, + 0xa7, + 0xa8, + 0xa9, + 0xab, + 0xac, + 0xad, + 0xaf, + 0xb0, + 0xb1, + 0xb2, + 0xb3, + 0xb4, + 0xb5, + 0xb6, + 0xb7, + 0xb8, + 0xb9, + 0xba, + 0xbb, + 0xbc, + 0xbd, + 0xbe, + 0xbf, + 0xc0, + 0xc1, + 0xc2, + 0xc3, + 0xc4, + 0xc5, + 0xc6, + 0xc7, + 0xc8, + 0xc9, + 0xca, + 0xcb, + 0xcc, + 0xcd, + 0xce, + 0xcf, + 0xd0, + 0xd1, + 0xd3, + 0xd4, + 0xd5, + 0xd6, + 0xd7, + 0xd8, + 0xd9, + 0xda, + 0xdb, + 0xdc, + 0xdd, + 0xde, + 0xdf, + 0xe0, + 0xe1, + 0xe2, + 0xe3, + 0xe4, + 0xe5, + 0xe6, + 0xe7, + 0xe8, + 0xe9, + 0xea, + 0xeb, + 0xec, + 0xed, + 0xee, + 0xef, + 0xf0, + 0xf1, + 0xf2, + 0xf3, + 0xf4, + 0xf5, + 0xf6, + 0xf7, + 0xf8, + 0xf9, + 0xfa, + 0xfb, + 0xfc, + 0xfd, + 0xfe + }; + +LOCAL_D const TUint16 iso8859_8_unicode[]= + { + 0x0000, + 0x0001, + 0x0002, + 0x0003, + 0x0004, + 0x0005, + 0x0006, + 0x0007, + 0x0008, + 0x0009, + 0x000a, + 0x000b, + 0x000c, + 0x000d, + 0x000e, + 0x000f, + 0x0010, + 0x0011, + 0x0012, + 0x0013, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + 0x0018, + 0x0019, + 0x001a, + 0x001b, + 0x001c, + 0x001d, + 0x001e, + 0x001f, + 0x0020, + 0x0021, + 0x0022, + 0x0023, + 0x0024, + 0x0025, + 0x0026, + 0x0027, + 0x0028, + 0x0029, + 0x002a, + 0x002b, + 0x002c, + 0x002d, + 0x002e, + 0x002f, + 0x0030, + 0x0031, + 0x0032, + 0x0033, + 0x0034, + 0x0035, + 0x0036, + 0x0037, + 0x0038, + 0x0039, + 0x003a, + 0x003b, + 0x003c, + 0x003d, + 0x003e, + 0x003f, + 0x0040, + 0x0041, + 0x0042, + 0x0043, + 0x0044, + 0x0045, + 0x0046, + 0x0047, + 0x0048, + 0x0049, + 0x004a, + 0x004b, + 0x004c, + 0x004d, + 0x004e, + 0x004f, + 0x0050, + 0x0051, + 0x0052, + 0x0053, + 0x0054, + 0x0055, + 0x0056, + 0x0057, + 0x0058, + 0x0059, + 0x005a, + 0x005b, + 0x005c, + 0x005d, + 0x005e, + 0x005f, + 0x0060, + 0x0061, + 0x0062, + 0x0063, + 0x0064, + 0x0065, + 0x0066, + 0x0067, + 0x0068, + 0x0069, + 0x006a, + 0x006b, + 0x006c, + 0x006d, + 0x006e, + 0x006f, + 0x0070, + 0x0071, + 0x0072, + 0x0073, + 0x0074, + 0x0075, + 0x0076, + 0x0077, + 0x0078, + 0x0079, + 0x007a, + 0x007b, + 0x007c, + 0x007d, + 0x007e, + 0x007f, + 0x0080, + 0x0081, + 0x0082, + 0x0083, + 0x0084, + 0x0085, + 0x0086, + 0x0087, + 0x0088, + 0x0089, + 0x008a, + 0x008b, + 0x008c, + 0x008d, + 0x008e, + 0x008f, + 0x0090, + 0x0091, + 0x0092, + 0x0093, + 0x0094, + 0x0095, + 0x0096, + 0x0097, + 0x0098, + 0x0099, + 0x009a, + 0x009b, + 0x009c, + 0x009d, + 0x009e, + 0x009f, + 0x00a0, + 0x00a2, + 0x00a3, + 0x00a4, + 0x00a5, + 0x00a6, + 0x00a7, + 0x00a8, + 0x00a9, + 0x00d7, + 0x00ab, + 0x00ac, + 0x00ad, + 0x00ae, + 0x00af, + 0x00b0, + 0x00b1, + 0x00b2, + 0x00b3, + 0x00b4, + 0x00b5, + 0x00b6, + 0x00b7, + 0x00b8, + 0x00b9, + 0x00f7, + 0x00bb, + 0x00bc, + 0x00bd, + 0x00be, + 0x2017, + 0x05d0, + 0x05d1, + 0x05d2, + 0x05d3, + 0x05d4, + 0x05d5, + 0x05d6, + 0x05d7, + 0x05d8, + 0x05d9, + 0x05da, + 0x05db, + 0x05dc, + 0x05dd, + 0x05de, + 0x05df, + 0x05e0, + 0x05e1, + 0x05e2, + 0x05e3, + 0x05e4, + 0x05e5, + 0x05e6, + 0x05e7, + 0x05e8, + 0x05e9, + 0x05ea, + 0x200e, + 0x200f + }; + +LOCAL_D const TUint8 iso8859_8_iso8859[]= + { + 0x00, + 0x01, + 0x02, + 0x03, + 0x04, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0a, + 0x0b, + 0x0c, + 0x0d, + 0x0e, + 0x0f, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x17, + 0x18, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x27, + 0x28, + 0x29, + 0x2a, + 0x2b, + 0x2c, + 0x2d, + 0x2e, + 0x2f, + 0x30, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x39, + 0x3a, + 0x3b, + 0x3c, + 0x3d, + 0x3e, + 0x3f, + 0x40, + 0x41, + 0x42, + 0x43, + 0x44, + 0x45, + 0x46, + 0x47, + 0x48, + 0x49, + 0x4a, + 0x4b, + 0x4c, + 0x4d, + 0x4e, + 0x4f, + 0x50, + 0x51, + 0x52, + 0x53, + 0x54, + 0x55, + 0x56, + 0x57, + 0x58, + 0x59, + 0x5a, + 0x5b, + 0x5c, + 0x5d, + 0x5e, + 0x5f, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0x73, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7c, + 0x7d, + 0x7e, + 0x7f, + 0x80, + 0x81, + 0x82, + 0x83, + 0x84, + 0x85, + 0x86, + 0x87, + 0x88, + 0x89, + 0x8a, + 0x8b, + 0x8c, + 0x8d, + 0x8e, + 0x8f, + 0x90, + 0x91, + 0x92, + 0x93, + 0x94, + 0x95, + 0x96, + 0x97, + 0x98, + 0x99, + 0x9a, + 0x9b, + 0x9c, + 0x9d, + 0x9e, + 0x9f, + 0xa0, + 0xa2, + 0xa3, + 0xa4, + 0xa5, + 0xa6, + 0xa7, + 0xa8, + 0xa9, + 0xaa, + 0xab, + 0xac, + 0xad, + 0xae, + 0xaf, + 0xb0, + 0xb1, + 0xb2, + 0xb3, + 0xb4, + 0xb5, + 0xb6, + 0xb7, + 0xb8, + 0xb9, + 0xba, + 0xbb, + 0xbc, + 0xbd, + 0xbe, + 0xdf, + 0xe0, + 0xe1, + 0xe2, + 0xe3, + 0xe4, + 0xe5, + 0xe6, + 0xe7, + 0xe8, + 0xe9, + 0xea, + 0xeb, + 0xec, + 0xed, + 0xee, + 0xef, + 0xf0, + 0xf1, + 0xf2, + 0xf3, + 0xf4, + 0xf5, + 0xf6, + 0xf7, + 0xf8, + 0xf9, + 0xfa, + 0xfd, + 0xfe + }; + +LOCAL_D const TUint16 iso8859_9_unicode[]= + { + 0x0000, + 0x0001, + 0x0002, + 0x0003, + 0x0004, + 0x0005, + 0x0006, + 0x0007, + 0x0008, + 0x0009, + 0x000a, + 0x000b, + 0x000c, + 0x000d, + 0x000e, + 0x000f, + 0x0010, + 0x0011, + 0x0012, + 0x0013, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + 0x0018, + 0x0019, + 0x001a, + 0x001b, + 0x001c, + 0x001d, + 0x001e, + 0x001f, + 0x0020, + 0x0021, + 0x0022, + 0x0023, + 0x0024, + 0x0025, + 0x0026, + 0x0027, + 0x0028, + 0x0029, + 0x002a, + 0x002b, + 0x002c, + 0x002d, + 0x002e, + 0x002f, + 0x0030, + 0x0031, + 0x0032, + 0x0033, + 0x0034, + 0x0035, + 0x0036, + 0x0037, + 0x0038, + 0x0039, + 0x003a, + 0x003b, + 0x003c, + 0x003d, + 0x003e, + 0x003f, + 0x0040, + 0x0041, + 0x0042, + 0x0043, + 0x0044, + 0x0045, + 0x0046, + 0x0047, + 0x0048, + 0x0049, + 0x004a, + 0x004b, + 0x004c, + 0x004d, + 0x004e, + 0x004f, + 0x0050, + 0x0051, + 0x0052, + 0x0053, + 0x0054, + 0x0055, + 0x0056, + 0x0057, + 0x0058, + 0x0059, + 0x005a, + 0x005b, + 0x005c, + 0x005d, + 0x005e, + 0x005f, + 0x0060, + 0x0061, + 0x0062, + 0x0063, + 0x0064, + 0x0065, + 0x0066, + 0x0067, + 0x0068, + 0x0069, + 0x006a, + 0x006b, + 0x006c, + 0x006d, + 0x006e, + 0x006f, + 0x0070, + 0x0071, + 0x0072, + 0x0073, + 0x0074, + 0x0075, + 0x0076, + 0x0077, + 0x0078, + 0x0079, + 0x007a, + 0x007b, + 0x007c, + 0x007d, + 0x007e, + 0x007f, + 0x0080, + 0x0081, + 0x0082, + 0x0083, + 0x0084, + 0x0085, + 0x0086, + 0x0087, + 0x0088, + 0x0089, + 0x008a, + 0x008b, + 0x008c, + 0x008d, + 0x008e, + 0x008f, + 0x0090, + 0x0091, + 0x0092, + 0x0093, + 0x0094, + 0x0095, + 0x0096, + 0x0097, + 0x0098, + 0x0099, + 0x009a, + 0x009b, + 0x009c, + 0x009d, + 0x009e, + 0x009f, + 0x00a0, + 0x00a1, + 0x00a2, + 0x00a3, + 0x00a4, + 0x00a5, + 0x00a6, + 0x00a7, + 0x00a8, + 0x00a9, + 0x00aa, + 0x00ab, + 0x00ac, + 0x00ad, + 0x00ae, + 0x00af, + 0x00b0, + 0x00b1, + 0x00b2, + 0x00b3, + 0x00b4, + 0x00b5, + 0x00b6, + 0x00b7, + 0x00b8, + 0x00b9, + 0x00ba, + 0x00bb, + 0x00bc, + 0x00bd, + 0x00be, + 0x00bf, + 0x00c0, + 0x00c1, + 0x00c2, + 0x00c3, + 0x00c4, + 0x00c5, + 0x00c6, + 0x00c7, + 0x00c8, + 0x00c9, + 0x00ca, + 0x00cb, + 0x00cc, + 0x00cd, + 0x00ce, + 0x00cf, + 0x011e, + 0x00d1, + 0x00d2, + 0x00d3, + 0x00d4, + 0x00d5, + 0x00d6, + 0x00d7, + 0x00d8, + 0x00d9, + 0x00da, + 0x00db, + 0x00dc, + 0x0130, + 0x015e, + 0x00df, + 0x00e0, + 0x00e1, + 0x00e2, + 0x00e3, + 0x00e4, + 0x00e5, + 0x00e6, + 0x00e7, + 0x00e8, + 0x00e9, + 0x00ea, + 0x00eb, + 0x00ec, + 0x00ed, + 0x00ee, + 0x00ef, + 0x011f, + 0x00f1, + 0x00f2, + 0x00f3, + 0x00f4, + 0x00f5, + 0x00f6, + 0x00f7, + 0x00f8, + 0x00f9, + 0x00fa, + 0x00fb, + 0x00fc, + 0x0131, + 0x015f, + 0x00ff + }; + +LOCAL_D const TUint8 iso8859_9_iso8859[]= + { + 0x00, + 0x01, + 0x02, + 0x03, + 0x04, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0a, + 0x0b, + 0x0c, + 0x0d, + 0x0e, + 0x0f, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x17, + 0x18, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x27, + 0x28, + 0x29, + 0x2a, + 0x2b, + 0x2c, + 0x2d, + 0x2e, + 0x2f, + 0x30, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x39, + 0x3a, + 0x3b, + 0x3c, + 0x3d, + 0x3e, + 0x3f, + 0x40, + 0x41, + 0x42, + 0x43, + 0x44, + 0x45, + 0x46, + 0x47, + 0x48, + 0x49, + 0x4a, + 0x4b, + 0x4c, + 0x4d, + 0x4e, + 0x4f, + 0x50, + 0x51, + 0x52, + 0x53, + 0x54, + 0x55, + 0x56, + 0x57, + 0x58, + 0x59, + 0x5a, + 0x5b, + 0x5c, + 0x5d, + 0x5e, + 0x5f, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0x73, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7c, + 0x7d, + 0x7e, + 0x7f, + 0x80, + 0x81, + 0x82, + 0x83, + 0x84, + 0x85, + 0x86, + 0x87, + 0x88, + 0x89, + 0x8a, + 0x8b, + 0x8c, + 0x8d, + 0x8e, + 0x8f, + 0x90, + 0x91, + 0x92, + 0x93, + 0x94, + 0x95, + 0x96, + 0x97, + 0x98, + 0x99, + 0x9a, + 0x9b, + 0x9c, + 0x9d, + 0x9e, + 0x9f, + 0xa0, + 0xa1, + 0xa2, + 0xa3, + 0xa4, + 0xa5, + 0xa6, + 0xa7, + 0xa8, + 0xa9, + 0xaa, + 0xab, + 0xac, + 0xad, + 0xae, + 0xaf, + 0xb0, + 0xb1, + 0xb2, + 0xb3, + 0xb4, + 0xb5, + 0xb6, + 0xb7, + 0xb8, + 0xb9, + 0xba, + 0xbb, + 0xbc, + 0xbd, + 0xbe, + 0xbf, + 0xc0, + 0xc1, + 0xc2, + 0xc3, + 0xc4, + 0xc5, + 0xc6, + 0xc7, + 0xc8, + 0xc9, + 0xca, + 0xcb, + 0xcc, + 0xcd, + 0xce, + 0xcf, + 0xd0, + 0xd1, + 0xd2, + 0xd3, + 0xd4, + 0xd5, + 0xd6, + 0xd7, + 0xd8, + 0xd9, + 0xda, + 0xdb, + 0xdc, + 0xdd, + 0xde, + 0xdf, + 0xe0, + 0xe1, + 0xe2, + 0xe3, + 0xe4, + 0xe5, + 0xe6, + 0xe7, + 0xe8, + 0xe9, + 0xea, + 0xeb, + 0xec, + 0xed, + 0xee, + 0xef, + 0xf0, + 0xf1, + 0xf2, + 0xf3, + 0xf4, + 0xf5, + 0xf6, + 0xf7, + 0xf8, + 0xf9, + 0xfa, + 0xfb, + 0xfc, + 0xfd, + 0xfe, + 0xff + }; + +LOCAL_D const TUint16 iso8859_10_unicode[]= + { + 0x0000, + 0x0001, + 0x0002, + 0x0003, + 0x0004, + 0x0005, + 0x0006, + 0x0007, + 0x0008, + 0x0009, + 0x000a, + 0x000b, + 0x000c, + 0x000d, + 0x000e, + 0x000f, + 0x0010, + 0x0011, + 0x0012, + 0x0013, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + 0x0018, + 0x0019, + 0x001a, + 0x001b, + 0x001c, + 0x001d, + 0x001e, + 0x001f, + 0x0020, + 0x0021, + 0x0022, + 0x0023, + 0x0024, + 0x0025, + 0x0026, + 0x0027, + 0x0028, + 0x0029, + 0x002a, + 0x002b, + 0x002c, + 0x002d, + 0x002e, + 0x002f, + 0x0030, + 0x0031, + 0x0032, + 0x0033, + 0x0034, + 0x0035, + 0x0036, + 0x0037, + 0x0038, + 0x0039, + 0x003a, + 0x003b, + 0x003c, + 0x003d, + 0x003e, + 0x003f, + 0x0040, + 0x0041, + 0x0042, + 0x0043, + 0x0044, + 0x0045, + 0x0046, + 0x0047, + 0x0048, + 0x0049, + 0x004a, + 0x004b, + 0x004c, + 0x004d, + 0x004e, + 0x004f, + 0x0050, + 0x0051, + 0x0052, + 0x0053, + 0x0054, + 0x0055, + 0x0056, + 0x0057, + 0x0058, + 0x0059, + 0x005a, + 0x005b, + 0x005c, + 0x005d, + 0x005e, + 0x005f, + 0x0060, + 0x0061, + 0x0062, + 0x0063, + 0x0064, + 0x0065, + 0x0066, + 0x0067, + 0x0068, + 0x0069, + 0x006a, + 0x006b, + 0x006c, + 0x006d, + 0x006e, + 0x006f, + 0x0070, + 0x0071, + 0x0072, + 0x0073, + 0x0074, + 0x0075, + 0x0076, + 0x0077, + 0x0078, + 0x0079, + 0x007a, + 0x007b, + 0x007c, + 0x007d, + 0x007e, + 0x007f, + 0x0080, + 0x0081, + 0x0082, + 0x0083, + 0x0084, + 0x0085, + 0x0086, + 0x0087, + 0x0088, + 0x0089, + 0x008a, + 0x008b, + 0x008c, + 0x008d, + 0x008e, + 0x008f, + 0x0090, + 0x0091, + 0x0092, + 0x0093, + 0x0094, + 0x0095, + 0x0096, + 0x0097, + 0x0098, + 0x0099, + 0x009a, + 0x009b, + 0x009c, + 0x009d, + 0x009e, + 0x009f, + 0x00a0, + 0x0104, + 0x0112, + 0x0122, + 0x012a, + 0x0128, + 0x0136, + 0x00a7, + 0x013b, + 0x0110, + 0x0160, + 0x0166, + 0x017d, + 0x00ad, + 0x016a, + 0x014a, + 0x00b0, + 0x0105, + 0x0113, + 0x0123, + 0x012b, + 0x0129, + 0x0137, + 0x00b7, + 0x013c, + 0x0111, + 0x0161, + 0x0167, + 0x017e, + 0x2015, + 0x016b, + 0x014b, + 0x0100, + 0x00c1, + 0x00c2, + 0x00c3, + 0x00c4, + 0x00c5, + 0x00c6, + 0x012e, + 0x010c, + 0x00c9, + 0x0118, + 0x00cb, + 0x0116, + 0x00cd, + 0x00ce, + 0x00cf, + 0x00d0, + 0x0145, + 0x014c, + 0x00d3, + 0x00d4, + 0x00d5, + 0x00d6, + 0x0168, + 0x00d8, + 0x0172, + 0x00da, + 0x00db, + 0x00dc, + 0x00dd, + 0x00de, + 0x00df, + 0x0101, + 0x00e1, + 0x00e2, + 0x00e3, + 0x00e4, + 0x00e5, + 0x00e6, + 0x012f, + 0x010d, + 0x00e9, + 0x0119, + 0x00eb, + 0x0117, + 0x00ed, + 0x00ee, + 0x00ef, + 0x00f0, + 0x0146, + 0x014d, + 0x00f3, + 0x00f4, + 0x00f5, + 0x00f6, + 0x0169, + 0x00f8, + 0x0173, + 0x00fa, + 0x00fb, + 0x00fc, + 0x00fd, + 0x00fe, + 0x0138 + }; + +LOCAL_D const TUint8 iso8859_10_iso8859[]= + { + 0x00, + 0x01, + 0x02, + 0x03, + 0x04, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0a, + 0x0b, + 0x0c, + 0x0d, + 0x0e, + 0x0f, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x17, + 0x18, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x27, + 0x28, + 0x29, + 0x2a, + 0x2b, + 0x2c, + 0x2d, + 0x2e, + 0x2f, + 0x30, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x39, + 0x3a, + 0x3b, + 0x3c, + 0x3d, + 0x3e, + 0x3f, + 0x40, + 0x41, + 0x42, + 0x43, + 0x44, + 0x45, + 0x46, + 0x47, + 0x48, + 0x49, + 0x4a, + 0x4b, + 0x4c, + 0x4d, + 0x4e, + 0x4f, + 0x50, + 0x51, + 0x52, + 0x53, + 0x54, + 0x55, + 0x56, + 0x57, + 0x58, + 0x59, + 0x5a, + 0x5b, + 0x5c, + 0x5d, + 0x5e, + 0x5f, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0x73, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7c, + 0x7d, + 0x7e, + 0x7f, + 0x80, + 0x81, + 0x82, + 0x83, + 0x84, + 0x85, + 0x86, + 0x87, + 0x88, + 0x89, + 0x8a, + 0x8b, + 0x8c, + 0x8d, + 0x8e, + 0x8f, + 0x90, + 0x91, + 0x92, + 0x93, + 0x94, + 0x95, + 0x96, + 0x97, + 0x98, + 0x99, + 0x9a, + 0x9b, + 0x9c, + 0x9d, + 0x9e, + 0x9f, + 0xa0, + 0xa1, + 0xa2, + 0xa3, + 0xa4, + 0xa5, + 0xa6, + 0xa7, + 0xa8, + 0xa9, + 0xaa, + 0xab, + 0xac, + 0xad, + 0xae, + 0xaf, + 0xb0, + 0xb1, + 0xb2, + 0xb3, + 0xb4, + 0xb5, + 0xb6, + 0xb7, + 0xb8, + 0xb9, + 0xba, + 0xbb, + 0xbc, + 0xbd, + 0xbe, + 0xbf, + 0xc0, + 0xc1, + 0xc2, + 0xc3, + 0xc4, + 0xc5, + 0xc6, + 0xc7, + 0xc8, + 0xc9, + 0xca, + 0xcb, + 0xcc, + 0xcd, + 0xce, + 0xcf, + 0xd0, + 0xd1, + 0xd2, + 0xd3, + 0xd4, + 0xd5, + 0xd6, + 0xd7, + 0xd8, + 0xd9, + 0xda, + 0xdb, + 0xdc, + 0xdd, + 0xde, + 0xdf, + 0xe0, + 0xe1, + 0xe2, + 0xe3, + 0xe4, + 0xe5, + 0xe6, + 0xe7, + 0xe8, + 0xe9, + 0xea, + 0xeb, + 0xec, + 0xed, + 0xee, + 0xef, + 0xf0, + 0xf1, + 0xf2, + 0xf3, + 0xf4, + 0xf5, + 0xf6, + 0xf7, + 0xf8, + 0xf9, + 0xfa, + 0xfb, + 0xfc, + 0xfd, + 0xfe, + 0xff + }; + +LOCAL_D const TUint16 iso8859_13_unicode[]= + { + 0x0000, + 0x0001, + 0x0002, + 0x0003, + 0x0004, + 0x0005, + 0x0006, + 0x0007, + 0x0008, + 0x0009, + 0x000a, + 0x000b, + 0x000c, + 0x000d, + 0x000e, + 0x000f, + 0x0010, + 0x0011, + 0x0012, + 0x0013, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + 0x0018, + 0x0019, + 0x001a, + 0x001b, + 0x001c, + 0x001d, + 0x001e, + 0x001f, + 0x0020, + 0x0021, + 0x0022, + 0x0023, + 0x0024, + 0x0025, + 0x0026, + 0x0027, + 0x0028, + 0x0029, + 0x002a, + 0x002b, + 0x002c, + 0x002d, + 0x002e, + 0x002f, + 0x0030, + 0x0031, + 0x0032, + 0x0033, + 0x0034, + 0x0035, + 0x0036, + 0x0037, + 0x0038, + 0x0039, + 0x003a, + 0x003b, + 0x003c, + 0x003d, + 0x003e, + 0x003f, + 0x0040, + 0x0041, + 0x0042, + 0x0043, + 0x0044, + 0x0045, + 0x0046, + 0x0047, + 0x0048, + 0x0049, + 0x004a, + 0x004b, + 0x004c, + 0x004d, + 0x004e, + 0x004f, + 0x0050, + 0x0051, + 0x0052, + 0x0053, + 0x0054, + 0x0055, + 0x0056, + 0x0057, + 0x0058, + 0x0059, + 0x005a, + 0x005b, + 0x005c, + 0x005d, + 0x005e, + 0x005f, + 0x0060, + 0x0061, + 0x0062, + 0x0063, + 0x0064, + 0x0065, + 0x0066, + 0x0067, + 0x0068, + 0x0069, + 0x006a, + 0x006b, + 0x006c, + 0x006d, + 0x006e, + 0x006f, + 0x0070, + 0x0071, + 0x0072, + 0x0073, + 0x0074, + 0x0075, + 0x0076, + 0x0077, + 0x0078, + 0x0079, + 0x007a, + 0x007b, + 0x007c, + 0x007d, + 0x007e, + 0x007f, + 0x0080, + 0x0081, + 0x0082, + 0x0083, + 0x0084, + 0x0085, + 0x0086, + 0x0087, + 0x0088, + 0x0089, + 0x008a, + 0x008b, + 0x008c, + 0x008d, + 0x008e, + 0x008f, + 0x0090, + 0x0091, + 0x0092, + 0x0093, + 0x0094, + 0x0095, + 0x0096, + 0x0097, + 0x0098, + 0x0099, + 0x009a, + 0x009b, + 0x009c, + 0x009d, + 0x009e, + 0x009f, + 0x00a0, + 0x201d, + 0x00a2, + 0x00a3, + 0x00a4, + 0x201e, + 0x00a6, + 0x00a7, + 0x00d8, + 0x00a9, + 0x0156, + 0x00ab, + 0x00ac, + 0x00ad, + 0x00ae, + 0x00c6, + 0x00b0, + 0x00b1, + 0x00b2, + 0x00b3, + 0x201c, + 0x00b5, + 0x00b6, + 0x00b7, + 0x00f8, + 0x00b9, + 0x0157, + 0x00bb, + 0x00bc, + 0x00bd, + 0x00be, + 0x00e6, + 0x0104, + 0x012e, + 0x0100, + 0x0106, + 0x00c4, + 0x00c5, + 0x0118, + 0x0112, + 0x010c, + 0x00c9, + 0x0179, + 0x0116, + 0x0122, + 0x0136, + 0x012a, + 0x013b, + 0x0160, + 0x0143, + 0x0145, + 0x00d3, + 0x014c, + 0x00d5, + 0x00d6, + 0x00d7, + 0x0172, + 0x0141, + 0x015a, + 0x016a, + 0x00dc, + 0x017b, + 0x017d, + 0x00df, + 0x0105, + 0x012f, + 0x0101, + 0x0107, + 0x00e4, + 0x00e5, + 0x0119, + 0x0113, + 0x010d, + 0x00e9, + 0x017a, + 0x0117, + 0x0123, + 0x0137, + 0x012b, + 0x013c, + 0x0161, + 0x0144, + 0x0146, + 0x00f3, + 0x014d, + 0x00f5, + 0x00f6, + 0x00f7, + 0x0173, + 0x0142, + 0x015b, + 0x016b, + 0x00fc, + 0x017c, + 0x017e, + 0x2019 + }; + +LOCAL_D const TUint8 iso8859_13_iso8859[]= + { + 0x00, + 0x01, + 0x02, + 0x03, + 0x04, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0a, + 0x0b, + 0x0c, + 0x0d, + 0x0e, + 0x0f, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x17, + 0x18, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x27, + 0x28, + 0x29, + 0x2a, + 0x2b, + 0x2c, + 0x2d, + 0x2e, + 0x2f, + 0x30, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x39, + 0x3a, + 0x3b, + 0x3c, + 0x3d, + 0x3e, + 0x3f, + 0x40, + 0x41, + 0x42, + 0x43, + 0x44, + 0x45, + 0x46, + 0x47, + 0x48, + 0x49, + 0x4a, + 0x4b, + 0x4c, + 0x4d, + 0x4e, + 0x4f, + 0x50, + 0x51, + 0x52, + 0x53, + 0x54, + 0x55, + 0x56, + 0x57, + 0x58, + 0x59, + 0x5a, + 0x5b, + 0x5c, + 0x5d, + 0x5e, + 0x5f, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0x73, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7c, + 0x7d, + 0x7e, + 0x7f, + 0x80, + 0x81, + 0x82, + 0x83, + 0x84, + 0x85, + 0x86, + 0x87, + 0x88, + 0x89, + 0x8a, + 0x8b, + 0x8c, + 0x8d, + 0x8e, + 0x8f, + 0x90, + 0x91, + 0x92, + 0x93, + 0x94, + 0x95, + 0x96, + 0x97, + 0x98, + 0x99, + 0x9a, + 0x9b, + 0x9c, + 0x9d, + 0x9e, + 0x9f, + 0xa0, + 0xa1, + 0xa2, + 0xa3, + 0xa4, + 0xa5, + 0xa6, + 0xa7, + 0xa8, + 0xa9, + 0xaa, + 0xab, + 0xac, + 0xad, + 0xae, + 0xaf, + 0xb0, + 0xb1, + 0xb2, + 0xb3, + 0xb4, + 0xb5, + 0xb6, + 0xb7, + 0xb8, + 0xb9, + 0xba, + 0xbb, + 0xbc, + 0xbd, + 0xbe, + 0xbf, + 0xc0, + 0xc1, + 0xc2, + 0xc3, + 0xc4, + 0xc5, + 0xc6, + 0xc7, + 0xc8, + 0xc9, + 0xca, + 0xcb, + 0xcc, + 0xcd, + 0xce, + 0xcf, + 0xd0, + 0xd1, + 0xd2, + 0xd3, + 0xd4, + 0xd5, + 0xd6, + 0xd7, + 0xd8, + 0xd9, + 0xda, + 0xdb, + 0xdc, + 0xdd, + 0xde, + 0xdf, + 0xe0, + 0xe1, + 0xe2, + 0xe3, + 0xe4, + 0xe5, + 0xe6, + 0xe7, + 0xe8, + 0xe9, + 0xea, + 0xeb, + 0xec, + 0xed, + 0xee, + 0xef, + 0xf0, + 0xf1, + 0xf2, + 0xf3, + 0xf4, + 0xf5, + 0xf6, + 0xf7, + 0xf8, + 0xf9, + 0xfa, + 0xfb, + 0xfc, + 0xfd, + 0xfe, + 0xff + }; + +LOCAL_D const TUint16 iso8859_14_unicode[]= + { + 0x0000, + 0x0001, + 0x0002, + 0x0003, + 0x0004, + 0x0005, + 0x0006, + 0x0007, + 0x0008, + 0x0009, + 0x000a, + 0x000b, + 0x000c, + 0x000d, + 0x000e, + 0x000f, + 0x0010, + 0x0011, + 0x0012, + 0x0013, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + 0x0018, + 0x0019, + 0x001a, + 0x001b, + 0x001c, + 0x001d, + 0x001e, + 0x001f, + 0x0020, + 0x0021, + 0x0022, + 0x0023, + 0x0024, + 0x0025, + 0x0026, + 0x0027, + 0x0028, + 0x0029, + 0x002a, + 0x002b, + 0x002c, + 0x002d, + 0x002e, + 0x002f, + 0x0030, + 0x0031, + 0x0032, + 0x0033, + 0x0034, + 0x0035, + 0x0036, + 0x0037, + 0x0038, + 0x0039, + 0x003a, + 0x003b, + 0x003c, + 0x003d, + 0x003e, + 0x003f, + 0x0040, + 0x0041, + 0x0042, + 0x0043, + 0x0044, + 0x0045, + 0x0046, + 0x0047, + 0x0048, + 0x0049, + 0x004a, + 0x004b, + 0x004c, + 0x004d, + 0x004e, + 0x004f, + 0x0050, + 0x0051, + 0x0052, + 0x0053, + 0x0054, + 0x0055, + 0x0056, + 0x0057, + 0x0058, + 0x0059, + 0x005a, + 0x005b, + 0x005c, + 0x005d, + 0x005e, + 0x005f, + 0x0060, + 0x0061, + 0x0062, + 0x0063, + 0x0064, + 0x0065, + 0x0066, + 0x0067, + 0x0068, + 0x0069, + 0x006a, + 0x006b, + 0x006c, + 0x006d, + 0x006e, + 0x006f, + 0x0070, + 0x0071, + 0x0072, + 0x0073, + 0x0074, + 0x0075, + 0x0076, + 0x0077, + 0x0078, + 0x0079, + 0x007a, + 0x007b, + 0x007c, + 0x007d, + 0x007e, + 0x007f, + 0x0080, + 0x0081, + 0x0082, + 0x0083, + 0x0084, + 0x0085, + 0x0086, + 0x0087, + 0x0088, + 0x0089, + 0x008a, + 0x008b, + 0x008c, + 0x008d, + 0x008e, + 0x008f, + 0x0090, + 0x0091, + 0x0092, + 0x0093, + 0x0094, + 0x0095, + 0x0096, + 0x0097, + 0x0098, + 0x0099, + 0x009a, + 0x009b, + 0x009c, + 0x009d, + 0x009e, + 0x009f, + 0x00a0, + 0x1e02, + 0x1e03, + 0x00a3, + 0x010a, + 0x010b, + 0x1e0a, + 0x00a7, + 0x1e80, + 0x00a9, + 0x1e82, + 0x1e0b, + 0x1ef2, + 0x00ad, + 0x00ae, + 0x0178, + 0x1e1e, + 0x1e1f, + 0x0120, + 0x0121, + 0x1e40, + 0x1e41, + 0x00b6, + 0x1e56, + 0x1e81, + 0x1e57, + 0x1e83, + 0x1e60, + 0x1ef3, + 0x1e84, + 0x1e85, + 0x1e61, + 0x00c0, + 0x00c1, + 0x00c2, + 0x00c3, + 0x00c4, + 0x00c5, + 0x00c6, + 0x00c7, + 0x00c8, + 0x00c9, + 0x00ca, + 0x00cb, + 0x00cc, + 0x00cd, + 0x00ce, + 0x00cf, + 0x0174, + 0x00d1, + 0x00d2, + 0x00d3, + 0x00d4, + 0x00d5, + 0x00d6, + 0x1e6a, + 0x00d8, + 0x00d9, + 0x00da, + 0x00db, + 0x00dc, + 0x00dd, + 0x0176, + 0x00df, + 0x00e0, + 0x00e1, + 0x00e2, + 0x00e3, + 0x00e4, + 0x00e5, + 0x00e6, + 0x00e7, + 0x00e8, + 0x00e9, + 0x00ea, + 0x00eb, + 0x00ec, + 0x00ed, + 0x00ee, + 0x00ef, + 0x0175, + 0x00f1, + 0x00f2, + 0x00f3, + 0x00f4, + 0x00f5, + 0x00f6, + 0x1e6b, + 0x00f8, + 0x00f9, + 0x00fa, + 0x00fb, + 0x00fc, + 0x00fd, + 0x0177, + 0x00ff + }; + +LOCAL_D const TUint8 iso8859_14_iso8859[]= + { + 0x00, + 0x01, + 0x02, + 0x03, + 0x04, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0a, + 0x0b, + 0x0c, + 0x0d, + 0x0e, + 0x0f, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x17, + 0x18, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x27, + 0x28, + 0x29, + 0x2a, + 0x2b, + 0x2c, + 0x2d, + 0x2e, + 0x2f, + 0x30, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x39, + 0x3a, + 0x3b, + 0x3c, + 0x3d, + 0x3e, + 0x3f, + 0x40, + 0x41, + 0x42, + 0x43, + 0x44, + 0x45, + 0x46, + 0x47, + 0x48, + 0x49, + 0x4a, + 0x4b, + 0x4c, + 0x4d, + 0x4e, + 0x4f, + 0x50, + 0x51, + 0x52, + 0x53, + 0x54, + 0x55, + 0x56, + 0x57, + 0x58, + 0x59, + 0x5a, + 0x5b, + 0x5c, + 0x5d, + 0x5e, + 0x5f, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0x73, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7c, + 0x7d, + 0x7e, + 0x7f, + 0x80, + 0x81, + 0x82, + 0x83, + 0x84, + 0x85, + 0x86, + 0x87, + 0x88, + 0x89, + 0x8a, + 0x8b, + 0x8c, + 0x8d, + 0x8e, + 0x8f, + 0x90, + 0x91, + 0x92, + 0x93, + 0x94, + 0x95, + 0x96, + 0x97, + 0x98, + 0x99, + 0x9a, + 0x9b, + 0x9c, + 0x9d, + 0x9e, + 0x9f, + 0xa0, + 0xa1, + 0xa2, + 0xa3, + 0xa4, + 0xa5, + 0xa6, + 0xa7, + 0xa8, + 0xa9, + 0xaa, + 0xab, + 0xac, + 0xad, + 0xae, + 0xaf, + 0xb0, + 0xb1, + 0xb2, + 0xb3, + 0xb4, + 0xb5, + 0xb6, + 0xb7, + 0xb8, + 0xb9, + 0xba, + 0xbb, + 0xbc, + 0xbd, + 0xbe, + 0xbf, + 0xc0, + 0xc1, + 0xc2, + 0xc3, + 0xc4, + 0xc5, + 0xc6, + 0xc7, + 0xc8, + 0xc9, + 0xca, + 0xcb, + 0xcc, + 0xcd, + 0xce, + 0xcf, + 0xd0, + 0xd1, + 0xd2, + 0xd3, + 0xd4, + 0xd5, + 0xd6, + 0xd7, + 0xd8, + 0xd9, + 0xda, + 0xdb, + 0xdc, + 0xdd, + 0xde, + 0xdf, + 0xe0, + 0xe1, + 0xe2, + 0xe3, + 0xe4, + 0xe5, + 0xe6, + 0xe7, + 0xe8, + 0xe9, + 0xea, + 0xeb, + 0xec, + 0xed, + 0xee, + 0xef, + 0xf0, + 0xf1, + 0xf2, + 0xf3, + 0xf4, + 0xf5, + 0xf6, + 0xf7, + 0xf8, + 0xf9, + 0xfa, + 0xfb, + 0xfc, + 0xfd, + 0xfe, + 0xff + }; + +LOCAL_D const TUint16 iso8859_15_unicode[]= + { + 0x0000, + 0x0001, + 0x0002, + 0x0003, + 0x0004, + 0x0005, + 0x0006, + 0x0007, + 0x0008, + 0x0009, + 0x000a, + 0x000b, + 0x000c, + 0x000d, + 0x000e, + 0x000f, + 0x0010, + 0x0011, + 0x0012, + 0x0013, + 0x0014, + 0x0015, + 0x0016, + 0x0017, + 0x0018, + 0x0019, + 0x001a, + 0x001b, + 0x001c, + 0x001d, + 0x001e, + 0x001f, + 0x0020, + 0x0021, + 0x0022, + 0x0023, + 0x0024, + 0x0025, + 0x0026, + 0x0027, + 0x0028, + 0x0029, + 0x002a, + 0x002b, + 0x002c, + 0x002d, + 0x002e, + 0x002f, + 0x0030, + 0x0031, + 0x0032, + 0x0033, + 0x0034, + 0x0035, + 0x0036, + 0x0037, + 0x0038, + 0x0039, + 0x003a, + 0x003b, + 0x003c, + 0x003d, + 0x003e, + 0x003f, + 0x0040, + 0x0041, + 0x0042, + 0x0043, + 0x0044, + 0x0045, + 0x0046, + 0x0047, + 0x0048, + 0x0049, + 0x004a, + 0x004b, + 0x004c, + 0x004d, + 0x004e, + 0x004f, + 0x0050, + 0x0051, + 0x0052, + 0x0053, + 0x0054, + 0x0055, + 0x0056, + 0x0057, + 0x0058, + 0x0059, + 0x005a, + 0x005b, + 0x005c, + 0x005d, + 0x005e, + 0x005f, + 0x0060, + 0x0061, + 0x0062, + 0x0063, + 0x0064, + 0x0065, + 0x0066, + 0x0067, + 0x0068, + 0x0069, + 0x006a, + 0x006b, + 0x006c, + 0x006d, + 0x006e, + 0x006f, + 0x0070, + 0x0071, + 0x0072, + 0x0073, + 0x0074, + 0x0075, + 0x0076, + 0x0077, + 0x0078, + 0x0079, + 0x007a, + 0x007b, + 0x007c, + 0x007d, + 0x007e, + 0x007f, + 0x0080, + 0x0081, + 0x0082, + 0x0083, + 0x0084, + 0x0085, + 0x0086, + 0x0087, + 0x0088, + 0x0089, + 0x008a, + 0x008b, + 0x008c, + 0x008d, + 0x008e, + 0x008f, + 0x0090, + 0x0091, + 0x0092, + 0x0093, + 0x0094, + 0x0095, + 0x0096, + 0x0097, + 0x0098, + 0x0099, + 0x009a, + 0x009b, + 0x009c, + 0x009d, + 0x009e, + 0x009f, + 0x00a0, + 0x00a1, + 0x00a2, + 0x00a3, + 0x20ac, + 0x00a5, + 0x0160, + 0x00a7, + 0x0161, + 0x00a9, + 0x00aa, + 0x00ab, + 0x00ac, + 0x00ad, + 0x00ae, + 0x00af, + 0x00b0, + 0x00b1, + 0x00b2, + 0x00b3, + 0x017d, + 0x00b5, + 0x00b6, + 0x00b7, + 0x017e, + 0x00b9, + 0x00ba, + 0x00bb, + 0x0152, + 0x0153, + 0x0178, + 0x00bf, + 0x00c0, + 0x00c1, + 0x00c2, + 0x00c3, + 0x00c4, + 0x00c5, + 0x00c6, + 0x00c7, + 0x00c8, + 0x00c9, + 0x00ca, + 0x00cb, + 0x00cc, + 0x00cd, + 0x00ce, + 0x00cf, + 0x00d0, + 0x00d1, + 0x00d2, + 0x00d3, + 0x00d4, + 0x00d5, + 0x00d6, + 0x00d7, + 0x00d8, + 0x00d9, + 0x00da, + 0x00db, + 0x00dc, + 0x00dd, + 0x00de, + 0x00df, + 0x00e0, + 0x00e1, + 0x00e2, + 0x00e3, + 0x00e4, + 0x00e5, + 0x00e6, + 0x00e7, + 0x00e8, + 0x00e9, + 0x00ea, + 0x00eb, + 0x00ec, + 0x00ed, + 0x00ee, + 0x00ef, + 0x00f0, + 0x00f1, + 0x00f2, + 0x00f3, + 0x00f4, + 0x00f5, + 0x00f6, + 0x00f7, + 0x00f8, + 0x00f9, + 0x00fa, + 0x00fb, + 0x00fc, + 0x00fd, + 0x00fe, + 0x00ff + }; + +LOCAL_D const TUint8 iso8859_15_iso8859[]= + { + 0x00, + 0x01, + 0x02, + 0x03, + 0x04, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0a, + 0x0b, + 0x0c, + 0x0d, + 0x0e, + 0x0f, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x17, + 0x18, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x27, + 0x28, + 0x29, + 0x2a, + 0x2b, + 0x2c, + 0x2d, + 0x2e, + 0x2f, + 0x30, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x39, + 0x3a, + 0x3b, + 0x3c, + 0x3d, + 0x3e, + 0x3f, + 0x40, + 0x41, + 0x42, + 0x43, + 0x44, + 0x45, + 0x46, + 0x47, + 0x48, + 0x49, + 0x4a, + 0x4b, + 0x4c, + 0x4d, + 0x4e, + 0x4f, + 0x50, + 0x51, + 0x52, + 0x53, + 0x54, + 0x55, + 0x56, + 0x57, + 0x58, + 0x59, + 0x5a, + 0x5b, + 0x5c, + 0x5d, + 0x5e, + 0x5f, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0x73, + 0x74, + 0x75, + 0x76, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7c, + 0x7d, + 0x7e, + 0x7f, + 0x80, + 0x81, + 0x82, + 0x83, + 0x84, + 0x85, + 0x86, + 0x87, + 0x88, + 0x89, + 0x8a, + 0x8b, + 0x8c, + 0x8d, + 0x8e, + 0x8f, + 0x90, + 0x91, + 0x92, + 0x93, + 0x94, + 0x95, + 0x96, + 0x97, + 0x98, + 0x99, + 0x9a, + 0x9b, + 0x9c, + 0x9d, + 0x9e, + 0x9f, + 0xa0, + 0xa1, + 0xa2, + 0xa3, + 0xa4, + 0xa5, + 0xa6, + 0xa7, + 0xa8, + 0xa9, + 0xaa, + 0xab, + 0xac, + 0xad, + 0xae, + 0xaf, + 0xb0, + 0xb1, + 0xb2, + 0xb3, + 0xb4, + 0xb5, + 0xb6, + 0xb7, + 0xb8, + 0xb9, + 0xba, + 0xbb, + 0xbc, + 0xbd, + 0xbe, + 0xbf, + 0xc0, + 0xc1, + 0xc2, + 0xc3, + 0xc4, + 0xc5, + 0xc6, + 0xc7, + 0xc8, + 0xc9, + 0xca, + 0xcb, + 0xcc, + 0xcd, + 0xce, + 0xcf, + 0xd0, + 0xd1, + 0xd2, + 0xd3, + 0xd4, + 0xd5, + 0xd6, + 0xd7, + 0xd8, + 0xd9, + 0xda, + 0xdb, + 0xdc, + 0xdd, + 0xde, + 0xdf, + 0xe0, + 0xe1, + 0xe2, + 0xe3, + 0xe4, + 0xe5, + 0xe6, + 0xe7, + 0xe8, + 0xe9, + 0xea, + 0xeb, + 0xec, + 0xed, + 0xee, + 0xef, + 0xf0, + 0xf1, + 0xf2, + 0xf3, + 0xf4, + 0xf5, + 0xf6, + 0xf7, + 0xf8, + 0xf9, + 0xfa, + 0xfb, + 0xfc, + 0xfd, + 0xfe, + 0xff + }; + +LOCAL_D const STstIso8859TestDataItem iso8859TestDataItems[]= + { + { + 1, + KCharacterSetIdentifierIso88591, + 256, + iso8859_1_unicode, + iso8859_1_iso8859 + }, + { + 2, + KCharacterSetIdentifierIso88592, + 256, + iso8859_2_unicode, + iso8859_2_iso8859 + }, + { + 3, + KCharacterSetIdentifierIso88593, + 249, + iso8859_3_unicode, + iso8859_3_iso8859 + }, + { + 4, + KCharacterSetIdentifierIso88594, + 256, + iso8859_4_unicode, + iso8859_4_iso8859 + }, + { + 5, + KCharacterSetIdentifierIso88595, + 256, + iso8859_5_unicode, + iso8859_5_iso8859 + }, + { + 6, + KCharacterSetIdentifierIso88596, + 211, + iso8859_6_unicode, + iso8859_6_iso8859 + }, + { + 7, + KCharacterSetIdentifierIso88597, + 250, + iso8859_7_unicode, + iso8859_7_iso8859 + }, + { + 8, + KCharacterSetIdentifierIso88598, + 220, + iso8859_8_unicode, + iso8859_8_iso8859 + }, + { + 9, + KCharacterSetIdentifierIso88599, + 256, + iso8859_9_unicode, + iso8859_9_iso8859 + }, + { + 10, + KCharacterSetIdentifierIso885910, + 256, + iso8859_10_unicode, + iso8859_10_iso8859 + }, + { + 13, + KCharacterSetIdentifierIso885913, + 256, + iso8859_13_unicode, + iso8859_13_iso8859 + }, + { + 14, + KCharacterSetIdentifierIso885914, + 256, + iso8859_14_unicode, + iso8859_14_iso8859 + }, + { + 15, + KCharacterSetIdentifierIso885915, + 256, + iso8859_15_unicode, + iso8859_15_iso8859 + } + }; + +GLDEF_D const STstIso8859TestData iso8859TestData= + { + 13, + iso8859TestDataItems + }; + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tKOI8R.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tKOI8R.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierKOI8R; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\KOI8R_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\KOI8R_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\KOI8R_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\KOI8R_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\KOI8R_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\KOI8R_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\KOI8R_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\KOI8R_for_expect.dat"); -#endif - -// Local Functions -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TestKOI8R")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -static void Merge_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - - TheTest.Start(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - TheTest.Next(_L("Encoding from Unicode to Foreign")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); - TBuf8<508> temp; - TBuf16<254> originalUnicode; - TBuf8<254> generatedForeign; - TBuf16<254> generatedUnicode; - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Merge_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - - TheTest.Next(_L("Encoding from Foreign to Unicode")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Merge_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - - CleanupStack::PopAndDestroy(3); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tKOI8U.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tKOI8U.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierKOI8U; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\KOI8U_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\KOI8U_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\KOI8U_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\KOI8U_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\KOI8U_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\KOI8U_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\KOI8U_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\KOI8U_for_expect.dat"); -#endif - -// Local Functions -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TestKOI8U")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -static void Merge_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - - TheTest.Start(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - TheTest.Next(_L("Encoding from Unicode to Foreign")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); - TBuf8<512> temp; - TBuf16<256> originalUnicode; - TBuf8<256> generatedForeign; - TBuf16<256> generatedUnicode; - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Merge_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - - TheTest.Next(_L("Encoding from Foreign to Unicode")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Merge_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - - CleanupStack::PopAndDestroy(3); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tTIS_620.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tTIS_620.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierTIS_620; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\TIS_620_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\TIS_620_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\TIS_620_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\TIS_620_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\TIS_620_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\TIS_620_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\TIS_620_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\TIS_620_for_expect.dat"); -#endif - -// Local Functions -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TestTIS_620")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -static void Merge_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - - TheTest.Start(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - TheTest.Next(_L("Encoding from Unicode to Foreign")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); - TBuf8<494> temp; - TBuf16<247> originalUnicode; - TBuf8<247> generatedForeign; - TBuf16<247> generatedUnicode; - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Merge_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - - TheTest.Next(_L("Encoding from Foreign to Unicode")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Merge_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - - CleanupStack::PopAndDestroy(3); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_autodetect.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_autodetect.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,752 @@ +/* +* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_autodetect.h" + +_LIT8(KUnicode,"ÿþHi there"); +_LIT8(KUnicode2, "\xff\xfe\x48\x00\x69\x00\x20\x00\x74\x00\x68\x00\x65\x00\x72\x00\x65\x00"); +_LIT8(KUnicode3, "\xfe\xff\x48\x00\x69\x00\x20\x00\x74\x00\x68\x00\x65\x00\x72\x00\x65\x00"); +_LIT8(KSMS7InvalidEmail, "\x21\x00\x70\x2e\x63 \x21\x00\x70\x2e\x63 \x21\x00\x70\x2e\x63\x7e\x7e"); +_LIT8(KSMS7ValidEmail, "\x42\x00\x70\x2e\x63 \x42\x00\x70\x2e\x63 \x42\x00\x70\x2e\x63\x7e\x7e"); +_LIT8(KSJISPhrase, "\x81@\x81y\x83o\x83\x93\x83R\x83N\x82Q\x82T\x93\xfa\x81\x81\x89\xaa\x93""c\x8e\xa0\x8ds\x81z\x83\x84\x83\x93\x83S\x83\x93\x82\xa9\x82\xe7\x82\xcc\x8f\xee\x95\xf1\x82\xc9\x82\xe6\x82\xe9\x82\xc6\x81""A\x83~\x83\x83\x83\x93\x83}\x81[\x82\xcc\x96\xaf\x8e\xe5\x89\xbb\x89^\x93\xae\x8ew\x93\xb1\x8e\xd2\x83""A\x83""E\x83\x93\x81""E\x83T\x83\x93\x81""E\x83X\x81[\x81""E\x83`\x81[\x82\xb3\x82\xf1\x82\xe7\x8d\x91\x96\xaf\x96\xaf\x8e\xe5\x98""A\x96\xbf\x81i\x82m\x82k\x82""c\x81j\x82\xcc\x83\x81\x83\x93\x83o\x81[\x82\xaa\x93\xf1\x8f\\x8el\x93\xfa\x81""A\x8e\xd4\x82\xc5\x83\x84\x83\x93\x83S\x83\x93\x8dx\x8aO\x82\xc9\x8fo\x82\xbd\x82\xc6\x82\xb1\x82\xeb\x81""A\x8cR\x90\xad\x93\x96\x8b\xc7\x82\xc9\x90\xa7\x8e~\x82\xb3\x82\xea\x82\xbd\x82\xbd\x82\xdf\x81""A\x93\xb9\x98H\x82\xed\x82\xab\x82\xc9\x88\xda\x82\xb3\x82\xea\x82\xbd\x8e\xd4\x93\xf1\x91\xe4\x82\xcc\x92\x86\x82\xc5\x82\xeb\x82\xa4\x8f\xe9\x82\xf0\x8en\x82\xdf\x82\xbd\x81""B\x83X\x81[\x81""E\x83`\x81[\x82\xb3\x82\xf1\x82\xaa\x81""A\x93\x96\x8b\xc7\x82\xcc\x8ds\x93\xae\x90\xa7\x8c\xc0\x82\xf0\x94j\x82\xc1\x82\xc4\x8dx\x8aO\x82\xc9\x8fo\x82\xbd\x82\xcc\x82\xcd\x8b\xe3\x94\xaa\x94N\x94\xaa\x8c\x8e\x88\xc8\x97\x88\x81""A\x93\xf1\x94N\x82\xd4\x82\xe8\x81""B\x96\xaf\x8e\xe5\x89\xbb\x89^\x93\xae\x82\xd6\x82\xcc\x8d\x91\x8d\xdb\x93I\x82\xc8\x8ex\x8e\x9d\x8fW\x82\xdf\x82\xf0\x91_\x82\xc1\x82\xc4\x92\xb7\x8a\xfa\x82\xeb\x82\xa4\x8f\xe9\x82\xf0\x8ds\x82\xa4\x89\xc2\x94\\x90\xab\x82\xe0\x82\xa0\x82\xe8\x81""A\x8cR\x90\xad\x91\xa4\x82\xcd\x91\xce\x89\x9e\x82\xc9\x8b\xea\x97\xb6\x82\xb5\x82\xc4\x82\xa2\x82\xe9\x81""B

"); +_LIT8(KBig5, "\xa1@\xa1@\xa5\xbb\xb3\xf8\xb0T\xa1]\xb0O\xaa\xcc\xb1\xe4\xd9y\xa1^\xac\xb0\xb3""e\xb9\xfd\xb8\xa8\xb9\xea\xa4\xa4\xa5\xa1\xa6\xe8\xb3\xa1\xa4j\xb6}\xb5o\xbe\xd4\xb2\xa4\xa9M\xa7\xf5\xb4P\xb2M\xb0\xc6\xc1`\xb2z\xc3\xf6\xa4_\xb1\xd0\xa8|\xb9\xef\xa4""f\xa4\xe4\xb4\xa9\xab\xfc\xa5\xdc\xba\xeb\xaf\xab\xa1""A\xa5\xbb\xa5\xab\xb1N\xb2\xd5\xc2\xb4\xb1\xd0\xaev\xb9\xce\xadu\xa4\xba\xbbX\xa5j\xb6}\xaei\xb9\xef\xa4""f\xa4\xe4\xb4\xa9\xa1""A\xad\xba\xa7\xe5""115\xa6W\xb1\xd0\xaev\xb1N\xa6""b\xb7s\xbe\xc7\xb4\xc1\xb6}\xbe\xc7\xa4\xa7\xbb\xda\xb1\xd2\xb5{\xadu\xa4\xba\xbbX\xa5j\xa1""C\xacQ\xa4\xd1\xa4W\xa4\xc8\xa1""A\xa5\xab\xa9""e\xae\xd1\xb0O"); +_LIT8(KEUP, "\xa1\xcb\xa1\xa3\xa4\xb3\xa4\xec\xa4\xcf\xa1\xa4\xb9\xe2\xc9\xe9\xb2\xd9\xa4\xce\xa5\xd9\xa5\xf3\xa5\xc1\xa5\xde\xa1\xbc\xa5\xaf\xa4\xe4\xa5\xa2\xa5\xd7\xa5\xea\xa5\xb1\xa1\xbc\xa5\xb7\xa5\xe7\xa5\xf3\xa4\xf2\xbc\xc2\xb9\xd4\xa4\xb9\xa4\xeb\xa4\xc8\xa1\xa4\xbd\xe8\xcd\xfd\xa4\xac\xb4\xb0\xce\xbb\xa4\xb9\xa4\xeb\xc1\xb0\xa4\xcb\xa5\xd5\xa5\xea\xa1\xbc\xa5\xba\xa4\xb9\xa4\xeb\xc9\xd4\xb6\xf1\xb9\xe7\xa4\xac\xb3\xce\xc7\xa7\xa4\xb5\xa4\xec\xa4\xbf\xa4\xbf\xa4\xe1\xa1\xa3\xa4\xb7\xa4\xab\xa4\xb7\xcc\xe4\xc2\xea\xa4\xcf\xa1\xa4\xa4\xbd\xa4\xce\xb8\xb6\xb0\xf8\xa4\xac\xa1\xd6\xa5\xb7\xa5\xea\xa5\xb3\xa5\xf3\xa4\xce\xa5\xde\xa1\xbc\xa5\xb8\xa5\xf3\xc9\xd4\xc2\xad\xa1\xd7\xa4\xc0\xa4\xc3\xa4\xbf\xc5\xc0\xa4\xc0\xa1\xa3"); +_LIT8(KEUC2, "Enlightenment\xa4\xce\xa5\xc6\xa1\xbc\xa5\xde\xa4\xc8\xa4\xcf\xa1\xa2\xa5\xa6\xa5\xa3\xa5\xf3\xa5\xc9\xa5\xa6\xa5\xde\xa5\xcd\xa1\xbc\xa5\xb8\xa5\xe3\xa4\xce\xb3\xb0\xb4\xd1\xc9\xf4\xca\xac\xa4\xce\xcd\xd7\xc1\xc7\xa4\xf2\xa4\xd2\xa4\xc8\xa4\xde\xa4\xc8\xa4\xe1\xa4\xcb\xa4\xb7\xa4\xc6\xc0\xda\xa4\xea\xc2\xd8\xa4\xa8\xa4\xe9\xa4\xec\xa4\xeb\xa4\xe8\xa4\xa6\xa4\xcb\xa4\xb7\xa4\xbf\xa4\xe2\xa4\xce\xa1\xa2\xa4\xc8\xb9\xcd\xa4\xa8\xa4\xeb\xa4\xb3\xa4\xc8\xa4\xac\xa4\xc7\xa4\xad\xa4\xde\xa4\xb9\xa1\xa3\xa4\xc4\xa4\xde\xa4\xea\xa1\xa2""1\xa4\xc4\xa4\xce\xa5\xa6\xa5\xa3\xa5\xf3\xa5\xc9\xa5\xa6\xa5\xde\xa5\xcd\xa1\xbc\xa5\xb8\xa5\xe3\xa4\xca\xa4\xce\xa4\xcb\xa1\xa2Windows\xc9\xf7\xa4\xcb\xa4\xe2\xa1\xa2Mac\xc9\xf7\xa4\xcb\xa4\xe2\xa1\xa2\xa4\xb5\xa4\xde\xa4\xb6\xa4\xde\xa4\xcb\xa5\xab\xa5\xb9\xa5\xbf\xa5\xde\xa5\xa4\xa5\xba\xa4\xb9\xa4\xeb\xa4\xb3\xa4\xc8\xa4\xac\xa4\xc7\xa4\xad\xa4\xde\xa4\xb9\xa1\xa3"); +_LIT8(KSJIS, "\x82\xb1\x82\xcc\x83z\x81[\x83\x80\x83y\x81[\x83W\x82\xcd\x81""A\x82\xa9\x82\xed\x82\xa2\x82\xa2\x83L\x83\x83\x83\x89\x83N\x83^\x81[\x81g\x83s\x83\x93\x83O\x81[\x81h\x82\xf0\x82\xbd\x82\xad\x82\xb3\x82\xf1\x82\xcc\x90l\x82\xbd\x82\xbf\x82\xc9\x8f\xd0\x89\xee\x82\xb5\x81""A\x82\xdc\x82\xbd\x81""A\x8c\xf0\x97\xac\x82\xf0\x8e\x9d\x82\xc1\x82\xc4\x82\xa2\x82\xbd\x82\xbe\x82\xab\x82\xbd\x82\xa2\x82\xc6\x8ev\x82\xc1\x82\xc4\x8d\xec\x90\xac\x82\xb3\x82\xea\x82\xbd\x83y\x81[\x83W\x82\xc5\x82\xb7\x81""B\x82\xb1\x82\xcc\x83z\x81[\x83\x80\x83y\x81[\x83W\x82\xcd\x8a""F\x82\xb3\x82\xf1\x82\xcc\x81g\x83N\x83`\x83R\x83~\x81h\x82\xc5\x90\xac\x82\xe8\x97\xa7\x82\xc1\x82\xc4\x82\xa2\x82\xdc\x82\xb7\x81""B\x82\xba\x82\xd0\x8f\xee\x95\xf1\x82\xf0\x82\xa8\x8a\xf1\x82\xb9\x89\xba\x82\xb3\x82\xa2\x81I"); +_LIT8(SJISNET, "20\x94NTRUSTe\x93\xfa\x96{\x82\xcd\x81""A\x8f\xee\x95\xf1\x82\xcc\x8aJ\x8e\xa6\x82\xc6\x8d\x90\x92m\x8b`\x96\xb1\x82\xc9\x8a\xd6\x82\xb7\x82\xe9\x8c\xb4\x91\xa5\x82\xf0\x8dL\x82\xdf\x82\xe9\x82\xb1\x82\xc6\x82\xc9\x82\xe6\x82\xe8\x81""A\x83""C\x83\x93\x83^\x81[\x83l\x83""b\x83g\x8f\xe3\x82\xc9\x82\xa8\x82\xaf\x82\xe9\x83\x86\x81[\x83U\x81[\x82\xc6\x82\xcc\x8f\xee\x95\xf1\x8aJ\x8e\xa6\x82\xc9\x8a\xd6\x82\xb7\x82\xe9\x90M\x97\x8a\x8a\xd6\x8cW\x82\xf0\x91\xc5\x82\xbf\x97\xa7\x82\xc4\x82\xe9\x82\xb1\x82\xc6\x82\xf0\x8eg\x96\xbd\x82\xc6\x82\xb7\x82\xe9\x81""A\x93\xc6\x97\xa7\x82\xcc\x94\xf1\x89""c\x97\x98\x91g\x90""D\x82\xc5\x82\xb7\x81""B\x82\xb1\x82\xcc\x83""E\x83""F\x83u\x83T\x83""C\x83g\x82\xcd\x8bM\x93""a\x82\xcc\x83v\x83\x89\x83""C\x83o\x83V\x81[\x82\xc9\x91\xce\x82\xb7\x82\xe9\x82\xbb\x82\xcc\x8c\xf6\x96\xf1\x82\xf0\x8e\xc0\x8f\xd8\x82\xb7\x82\xe9\x88\xd3\x96\xa1\x82\xc5\x81""A\x82\xb1\x82\xb1\x82\xc9\x8f\xee\x95\xf1\x82\xcc\x8e\xe6\x82\xe8\x88\xb5\x82\xa2\x8a\xee\x8f\x80\x82\xf0\x8aJ\x8e\xa6\x82\xb5\x82\xbd\x82\xe0\x82\xcc\x82\xc5\x81""A\x82\xb1\x82\xcc\x83v\x83\x89\x83""C\x83o\x83V\x81[\x8e\xe6\x82\xe8\x88\xb5\x82\xa2\x8a\xee\x8f\x80\x82\xc9\x82\xc2\x82\xa2\x82\xc4\x82\xcd\x81""ATRUSTe\x82\xc9\x82\xe6\x82\xe8\x81""A\x82\xbb\x82\xcc\x8f\x87\x8e\xe7\x82\xc9\x8a\xd6\x82\xb7\x82\xe9\x8c\x9f\x93\xa2\x82\xc6\x8a\xc4\x8d\xb8\x82\xc6\x82\xf0\x8e\xf3\x82\xaf\x82\xbd\x82\xe0\x82\xcc\x82\xc5\x82\xb7\x81""B"); +_LIT8(BIG5A, "\xb0\xea\xae""a\xbcs\xbc\xbd\xb9q\xb5\xf8\xbd\xe8\xb6q\xba\xca\xb7\xfe\xc0\xcb\xc5\xe7\xb4\xfa\xb8\xd5\xa4\xa4\xa4\xdf - \xb9\xef\xad\xb5\xb5\xf8\xc0W\xb2\xa3\xab~\xaa\xba\xb1`\xb7\xc5\xb9q\xa9\xca\xaf\xe0\xa1""B\xa6w\xa5\xfe\xa1""B\xb9q\xba\xcf\xad\xdd\xae""e\xa7@\xc0\xf4\xb9\xd2\xb4\xfa\xb8\xd5\xa9M\xba\xca\xb7\xfe\xa9\xe2\xac""d"); +_LIT8(BIG5C, "\xac\xfc \xb0\xea \xb0\xc8 \xb0| \xa8\xc8 \xa4\xd3 \xb0\xc6 \xa7U \xad\xeb \xc1\xc2 \xb2Q \xc4R \xa4\xb5 \xa4\xe9 \xa6""b \xa6\xb9 \xb6\xa1 \xa4@ \xa6\xb8 \xbcy \xaf\xac \xa4\xa4 \xa6@ \xab\xd8 \xac""F \xa4\xad \xa4Q \xa9P \xa6~ \xaa\xba \xa4j \xab\xac \xac\xe3 \xb0Q \xb7| \xa4\xa4 \xaa\xed \xa5\xdc \xa1""A \xa4\xa4 \xa6@ \xc0\xb3 \xb8\xd3 \xb9\xef \xa5x \xc6W \xb1\xc4"); +_LIT8(GB2312B, "\xd0\xc2\xce\xc5, \xd0\xa1\xcb\xb5\xa3\xac\xd4\xd3\xd6\xbe\xa3\xac\xb6\xc1\xd5\xdf\xa3\xac\xc2\xdb\xcc\xb3\xa3\xac\xce\xc4\xd5\xaa\xa3\xac\xb1\xa8\xd6\xbd\xa3\xac\xd0\xa6\xbb\xb0\xa3\xac\xcc\xe5\xd3\xfd\xa3\xac\xc7\xe9\xb8\xd0\xa3\xac\xc1\xf4\xd1\xa7\xa3\xac\xbf\xe1\xd5\xbe\xa3\xac"); +_LIT8(GB2312C, "\xa1\xa1\xa1\xf1\xcd\xf5\xbb\xdb\xa3\xa8\xb1\xbe\xb1\xa8\xcc\xd8\xd4\xbc\xa3\xa9\xb1\xb1\xbe\xa9\xb1\xa8\xb5\xc0

\xa1\xa1\xa1\xa1\xc0\xfa\xbd\xec\xb0\xc2\xd4\xcb\xbb\xe1\xca\xd7"); +_LIT8(GB2312Corrupt, "\xa1\xa1\xa1\xf1\xcd\xf5\xbb\xdb\xa3""fff\xb1\xbe\xb1\xa8\xcc\xd8\xd4\xbc\xa3\xa9""ff\xb1\xb1\xbe\xa9\xb1\xa8\xb5\xc0\xa1\xa1\xa1\xa1\xc0\xfa\xbd\xec\xb0\xc2\xd4\xcb\xbb\xe1\xca\xd7");//FAILED +_LIT8(BIG5Corrupt, "\xac\xfc \xb0\xea \xb0\xc8 \xb0| \xa8\xc8 \xa4\xd3 \xb0\xc6 \xa7U ddd\xad\xeb \xc1\xc2 \xb2Q \xc4R \xa4""ddd\xb5 \xa4\xe9 \xa6""b \xa6\xb9 \xb6\xa1 \xa4@ \xa6\xb8 \xbcy \xaf\xac \xa4\xa4 \xa6@ \xab\xd8 \xac""F \xa4\xad \xa4Q \xa9P \xa6~ \xaa\xba \xa4j \xab\xac \xac\xe3 \xb0Q \xb7| \xa4\xa4 \xaa\xed \xa5\xdc \xa1""A \xa4\xa4 \xa6@ddd \xc0\xb3 \xb8\xd3 \xb9\xef \xa5x \xc6W \xb1\xc4"); +_LIT8(BIG5Ahalf, "this is to test the data with ASCII mixured \xea\xae""a\xbcs\xbc\xbd\xb9q\xb5\xf8\xbd\xe8\xb6q\xba\xca\xb7\xfe\xc0\xcb\xc5\xe7\xb4\xfa\xb8\xd5\xa4\xa4\xa4\xdf - \xb9\xef\xad\xb5\xb5\xf8\xc0W\xb2\xa3\xab~\xaa\xba\xb1`\xb7\xc5\xb9q\xa9\xca\xaf\xe0\xa1""B\xa6w\xa5\xfe\xa1""B\xb9q\xba\xcf\xad\xdd\xae""e\xa7@\xc0\xf4\xb9\xd2\xb4\xfa\xb8\xd5\xa9M\xba\xca\xb7\xfe\xa9\xe2\xac""d"); +_LIT8(KASCII, "SO what result do I get for a text that is pure Ascii and nothing else. Not something stupid I hope!"); +_LIT8(KUTF8, "\xe4\xbc\x80\xe6\xac\x80\xe2\x80\x80\xe5\x8c\x80\xe6\xbc\x80\xe2\x80\x80\xe4\xa0\x80\xe6\x94\x80\xe7\x88\x80\xe6\x94\x80\xe2\x80\x80\xe6\xa4\x80\xe7\x8c\x80\xe2\x80\x80\xe6\x84\x80\xe2\x80\x80\xe7\x90\x80\xe6\x94\x80\xe7\xa0\x80\xe7\x90\x80\xe2\x80\x80\xe7\x90\x80\xe6\xa0\x80\xe6\x84\x80\xe7\x90\x80\xe2\x80\x80\xe7\x9c\x80\xe6\xa4\x80\xe6\xb0\x80\xe6\xb0\x80\xe2\x80\x80\xe6\x88\x80\xe6\x94\x80\xe2\x80\x80\xe6\x8c\x80\xe6\xbc\x80\xe6\xb8\x80\xe7\x98\x80\xe6\x94\x80\xe7\x88\x80\xe7\x90\x80\xe6\x94\x80\xe6\x90\x80\xe2\x80\x80\xe6\xa4\x80\xe6\xb8\x80\xe7\x90\x80\xe6\xbc\x80\xe2\x80\x80\xe6\x84\x80\xe2\x80\x80\xe5\x94\x80\xe5\x90\x80\xe4\x98\x80\xe2\xb4\x80\xe3\x9c\x80\xe2\x80\x80\xe7\xb8\x80\xe2\x80\x80\xe5\x90\x80\xe6\x94\x80\xe7\xa0\x80\xe7\x90\x80"); +_LIT8(KDodgyShiftJIS,"¡“ú‚Í’a¶“ú‚¾‚悤‚ꂵ‚¢‚È‚Ÿ`™™"); +_LIT8(KDodgyShiftJIS2,"20000222T100000Z;;;\x92\xa9\x82\xbe\x82\xe6\x8b\x4e\x82\xab\x82\xeb\x82\xa7\x81\x60\x81\x60\x81\x49\x81\x49\x81\x49"); +_LIT8(KDodgyShiftJIS3,"\x83\x5c\x83\x5c\x83\x5c\x82\xa0\x82\xa2\x82\xa4\x82\xa6\x82\xa8\x83\x5c\x83\x5c\x83\x5c\x82\xa9\x82\xab\x82\xad\x82\xaf\x82\xb1\x82\x5c"); +_LIT8(KISO,"\x6d\x6f\x72\x6f\x0d\x0a\x6d\x69\x74\xe4\x20\x6b\x75\x75\x6c\x75\x75\x3f"); +_LIT8(KSomeISO, "\x48\x65\x6a\x21\x20\x0d\x0a\x0d\x0a\x68\xe4\x72\x20\x6b\x6f\x6d\x6d\x65\x72\x20\x65\x74\x74\x20\x6d\x61\x69\x6c\x20\x6d\x65\x64\x20\x6d\x61\x73\x73\x61\x20\x74\x65\x78\x74\x20\x6f\x63\x68\x20\x65\x74\x74\x20\x61\x74\x74\x61\x63\x68\x6d\x65\x6e\x74\x2e\x20\x44\x65\x74\x74\x61\x20\x6c\x69\x6c\x6c\x61\x20\x6d\x61\x69\x6c"); +_LIT8(KUnicodeFail,"\x0d"); +_LIT8(KISODEF,"\xd7\x6d\x30\xf7"); // Test for defect raised in 6.1 (EXT-5HLEKN) +_LIT8(KShortUnicode1, "\xff\xfe\x29\x00\x3d\x00"); +_LIT8(KShortUnicode2, "\xff\xfe\x41\x00\x61\x00"); + +/** +* Work around for DEF063276. +* These literals are now loaded from a z:\test\data\KLittleEndian.dat and +* z:\test\data\KBigEndian.dat respectivly. +* Bullseye Coverage corrupts these literals to avoid this they are stored in files as to not be touched by Bullseye Coverage. +*/ + +// Test for defect INC037743 - Charconv recognises Little Endian as Big Endian +/*_LIT8(KLittleEndian, + "\x43\x00\x68\x00\x61\x00\x74\x00\x20\x00\x68\x00\x69\x00\x73\x00" + "\x74\x00\x6F\x00\x72\x00\x79\x00\x20\x00\x32\x00\x0A\x00\x43\x00" + "\x68\x00\x61\x00\x74\x00\x20\x00\x72\x00\x6F\x00\x6F\x00\x6D\x00" + "\x20\x00\x27\x00\x77\x00\x76\x00\x3A\x00\x6A\x00\x75\x00\x68\x00" + "\x61\x00\x75\x00\x74\x00\x69\x00\x6F\x00\x2F\x00\x32\x00\x30\x00" + "\x70\x00\x6D\x00\x74\x00\x40\x00\x6E\x00\x6F\x00\x6B\x00\x69\x00" + "\x61\x00\x2E\x00\x63\x00\x6F\x00\x6D\x00\x27\x00\x0A\x00\x53\x00" + "\x74\x00\x61\x00\x72\x00\x74\x00\x3A\x00\x20\x00\x30\x00\x31\x00" + "\x2F\x00\x30\x00\x39\x00\x2F\x00\x32\x00\x30\x00\x30\x00\x33\x00" + "\x20\x00\x32\x00\x32\x00\x3A\x00\x34\x00\x33\x00\x3A\x00\x32\x00" + "\x38\x00\x0A\x00\x49\x00\x76\x00\x61\x00\x6E\x00\x20\x00\x57\x00" + "\x65\x00\x6C\x00\x63\x00\x6F\x00\x6D\x00\x65\x00\x20\x00\x74\x00" + "\x6F\x00\x20\x00\x63\x00\x68\x00\x61\x00\x74\x00\x20\x00\x72\x00" + "\x6F\x00\x6F\x00\x6D\x00\x21\x00\x20\x00\x54\x00\x6F\x00\x70\x00" + "\x69\x00\x63\x00\x20\x00\x69\x00\x73\x00\x20\x00\x59\x00\x6C\x00" + "\x65\x00\x69\x00\x73\x00\x74\x00\xE4\x00\x20\x00\x76\x00\x65\x00" + "\x6C\x00\x6C\x00\x6F\x00\x6E\x00\x74\x00\x61\x00\x61\x00\x2E\x00" + "\x0A\x00\x4D\x00\x69\x00\x6B\x00\x61\x00\x54\x00\x20\x00\x6A\x00" + "\x6F\x00\x69\x00\x6E\x00\x65\x00\x64\x00\x0A\x00"); + +_LIT8(KBigEndian, + "\x00\x43\x00\x68\x00\x61\x00\x74\x00\x20\x00\x68\x00\x69\x00\x73" + "\x00\x74\x00\x6F\x00\x72\x00\x79\x00\x20\x00\x32\x00\x0A\x00\x43" + "\x00\x68\x00\x61\x00\x74\x00\x20\x00\x72\x00\x6F\x00\x6F\x00\x6D" + "\x00\x20\x00\x27\x00\x77\x00\x76\x00\x3A\x00\x6A\x00\x75\x00\x68" + "\x00\x61\x00\x75\x00\x74\x00\x69\x00\x6F\x00\x2F\x00\x32\x00\x30" + "\x00\x70\x00\x6D\x00\x74\x00\x40\x00\x6E\x00\x6F\x00\x6B\x00\x69" + "\x00\x61\x00\x2E\x00\x63\x00\x6F\x00\x6D\x00\x27\x00\x0A\x00\x53" + "\x00\x74\x00\x61\x00\x72\x00\x74\x00\x3A\x00\x20\x00\x30\x00\x31" + "\x00\x2F\x00\x30\x00\x39\x00\x2F\x00\x32\x00\x30\x00\x30\x00\x33" + "\x00\x20\x00\x32\x00\x32\x00\x3A\x00\x34\x00\x33\x00\x3A\x00\x32" + "\x00\x38\x00\x0A\x00\x49\x00\x76\x00\x61\x00\x6E\x00\x20\x00\x57" + "\x00\x65\x00\x6C\x00\x63\x00\x6F\x00\x6D\x00\x65\x00\x20\x00\x74" + "\x00\x6F\x00\x20\x00\x63\x00\x68\x00\x61\x00\x74\x00\x20\x00\x72" + "\x00\x6F\x00\x6F\x00\x6D\x00\x21\x00\x20\x00\x54\x00\x6F\x00\x70" + "\x00\x69\x00\x63\x00\x20\x00\x69\x00\x73\x00\x20\x00\x59\x00\x6C" + "\x00\x65\x00\x69\x00\x73\x00\x74\x00\xE4\x00\x20\x00\x76\x00\x65" + "\x00\x6C\x00\x6C\x00\x6F\x00\x6E\x00\x74\x00\x61\x00\x61\x00\x2E" + "\x00\x0A\x00\x4D\x00\x69\x00\x6B\x00\x61\x00\x54\x00\x20\x00\x6A" + "\x00\x6F\x00\x69\x00\x6E\x00\x65\x00\x64\x00\x0A\x00");*/ + +// Swedish test file for INC037705, This is "test2.txt" from the defect +_LIT8(KSwedish, + "\x55\x74\x61\x6E\x73\x6B\x72\x69\x66\x74\x65\x6E\x3A\x0D\x0A\x53" + "\x65\x72\x65\x6E\x69\x73\x73\x69\x6D\x6F\x20\x65\x74\x20\x43\x6C" + "\x61\x72\x69\x73\x73\x69\x6D\x6F\x20\x44\x6F\x6D\x69\x6E\x6F\x0D" + "\x0A\x44\x6F\x6D\x69\x6E\x6F\x20\x47\x75\x73\x74\x61\x66\x66\x6F" + "\x20\x53\x75\x65\x63\x6F\x72\x75\x6D\x0D\x0A\x65\x74\x20\x47\x6f" + "\x74\x68\x6F\x72\x75\x6D\x20\x52\x65\x67\x69\x20\x44\x6F\x6D\x69" + "\x6E\x6F\x20\x53\x75\x6F\x0D\x0A\x43\x6C\x65\x6D\x65\x6E\x74\x69" + "\x70\x70\x69\x6D\x6F\x0D\x0A\x0D\x0A\x4E\xE5\x64\x20\x6F\x63\x68" + ); + +// Finnish test file for INC037705, This is "test3.txt" from the defect +_LIT8(KFinnish, + "\x59\x68\x64\x65\x73\x74\x6F\x69\x73\x74\x61\x20\x72\x75\x6E\x6F" + "\x0D\x0A\x0D\x0A\x56\x69\x6B\x61\x20\x6F\x6E\x20\x41\x68\x74\x69" + "\x61\x20\x73\x61\x6E\x6F\x61\x2C\x20\x76\x65\x69\x74\x69\x6B\x6B" + "\xE4\x74\xE4\x20\x76\x69\x65\x72\x65\x74\x65\x6C\x6C\xE4\x2E\x20" + "\x0D\x0A\x0D\x0A\x41\x68\x74\x69\x20\x70\x6F\x69\x6B\x61\x20\x53" + "\x61\x61\x72\x65\x6C\x61\x69\x6E\x65\x6E\x2C\x20\x74\x75\x6F\x20" + "\x6F\x6E\x20\x6C\x69\x65\x74\x6F\x20\x4C\x65\x6D\x6D\x69\x6E\x20" + "\x70\x6F\x69\x6B\x61\x2C\x20\x0D\x0A\x6B\x61\x73\x76\x6F\x69\x20" + ); + +// This is the last two lines from GotchaLog.txt +// from INC043016 - AV21 via BTH received TXT file could not be opened +// Which is enough to reproduce the defect +_LIT8(KGotcha, + "\x0A\x0D\x0A\x4D\x65\x6D\x6F\x72\x79\x20\x74\x65\x73\x74\x20\x2D" + "\x6F\x64\x75\x6C\x65\x20\x65\x6E\x64\x0D\x0A\x2B\x2B\x2B\x2B\x2B" + ); + +/////////////////////////////////////////////////////////////////////////////////////// + +//UTF8 return values. +const TInt KUtf8NoBomMaxSuccessConfidenceLevel = 100; +const TInt KUtf8NoBomMinSuccessConfidenceLevel = 75; +const TInt KUtf8BomConfidenceLevel = 95; +const TInt KUtf8NoStringConfidenceLevel = 89; +const TInt KUtf8ConfidenceFailure = 0; + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +/** +* Utility for DEF063276 fix. +*/ + +_LIT(KLittleEndianFilename, "z:\\test\\data\\KLittleEndian.dat"); +_LIT(KBigEndianFilename, "z:\\test\\data\\KBigEndian.dat"); + +// Utility for DEF089572 fix +_LIT(KSMS7bitFilename, "z:\\test\\data\\KSMS7bit.dat"); + +void CT_AUTODETECT::ReadDesc(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +/////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////////// + +const TInt KMinimumThresholdForConvertableCharacter=70; + +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0548 +@SYMTestCaseDesc Tests for auto detecting the character set + Test for CCnvCharacterSetConverter::AutoDetectCharacterSetL() +@SYMTestPriority Medium +@SYMTestActions Attempt to determine the character set of the sample text from those supported on the phone +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_AUTODETECT::TestAutodetectL(const CArrayFix& aArrayOfCharacterSetsAvailable, const TDesC8& aSample, const TUint& aResult) + { + TInt Confidence = 0; + TUint Character = 0; + CCnvCharacterSetConverter::AutoDetectCharacterSetL (Confidence,Character, aArrayOfCharacterSetsAvailable,aSample); + test(Character==aResult); + INFO_PRINTF1(_L(".")); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-1307 +@SYMTestCaseDesc Tests for auto detecting the character set +@SYMTestPriority Medium +@SYMTestActions Tests for CCnvCharacterSetConverter::AutoDetectCharSetL() +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_AUTODETECT::TestAutodetect1L( + const CArrayFix& aArrayOfCharacterSetsAvailable, + const TDesC8& aSample, + const TUint& aResult, + CCnvCharacterSetConverter* aConverter) + { + TInt Confidence = 0; + TUint Character = 0; + aConverter->AutoDetectCharSetL(Confidence,Character, aArrayOfCharacterSetsAvailable,aSample); + test(Character==aResult); + INFO_PRINTF1(_L(".")); + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0549 +@SYMTestCaseDesc Tests for CCnvCharacterSetConverter::ConvertibleToCharacterSetL() function +@SYMTestPriority Medium +@SYMTestActions Tests the likelihood that a sample is encoded in a CharacterSetIdentifier +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_AUTODETECT::TestConvertibleToCharacterL(const TUint aCharsetIdentifier, const CArrayFix& aArrayOfCharacterSetsAvailable, const TDesC8& aSample, const TInt flag) + { + TInt confidence = 0; + CCnvCharacterSetConverter::ConvertibleToCharacterSetL(confidence,aCharsetIdentifier, aArrayOfCharacterSetsAvailable, aSample); + if (flag) + {test(confidence >= KMinimumThresholdForConvertableCharacter );} + else + {test(confidence < KMinimumThresholdForConvertableCharacter );} + } + +TInt CT_AUTODETECT::TestConvertibleToCharacterReturnResultL(const TUint aCharsetIdentifier, const CArrayFix& aArrayOfCharacterSetsAvailable, const TDesC8& aSample) + { + TInt confidence = 0; + CCnvCharacterSetConverter::ConvertibleToCharacterSetL(confidence,aCharsetIdentifier, aArrayOfCharacterSetsAvailable, aSample); + + return confidence; + } + +void CT_AUTODETECT::TestConvertibleToCharacterWithSpecificResultL(const TUint aCharsetIdentifier, const CArrayFix& aArrayOfCharacterSetsAvailable, const TDesC8& aSample, const TInt aResult) + { + TInt confidence = TestConvertibleToCharacterReturnResultL(aCharsetIdentifier, aArrayOfCharacterSetsAvailable, aSample); + + test(confidence==aResult); + } + +const TInt KMaxSampleLengthForAutoDetection = 1024; + +/** +This test code uses the method as is used by notepad in \Notepad\LibSrc\NpdUtil.cpp + +@SYMTestCaseID SYSLIB-CHARCONV-CT-0550 +@SYMTestCaseDesc Tests to autodetect a character read from file +@SYMTestPriority Medium +@SYMTestActions Tests to determine the character set of the sample text read from a file +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_AUTODETECT::TestAutoDetectFromFileL(const TDesC16& aFileName, const TUint& aResult ) + { + // get file server session and open file + RFile file; + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + User::LeaveIfError(file.Open(fileServerSession, aFileName, EFileRead)); + + // get up to KMaxSampleLengthForAutoDetection bytes of file for autodetect + TInt size(0); + User::LeaveIfError( file.Size(size) ); + + TBuf8 sample; + User::LeaveIfError( file.Read(sample, + size > KMaxSampleLengthForAutoDetection ? KMaxSampleLengthForAutoDetection : size) ); + + TInt confidence(0); + TUint charset(0); + + // if the first two bytes say unicode, don't bother with autodetect + if ( size >= 2 && + ( ( sample[0] == 0xfe && sample[1] == 0xff ) || + ( sample[0] == 0xff && sample[1] == 0xfe ) ) ) + { + charset = 0; // Unicode + } + else + { + //ok, try autodetect, first get available character sets + const CArrayFix* + lists = CCnvCharacterSetConverter:: + CreateArrayOfCharacterSetsAvailableLC( fileServerSession ); + + // now try AutoDetect + CCnvCharacterSetConverter::AutoDetectCharacterSetL(confidence, charset, *lists, sample); + CleanupStack::PopAndDestroy(); // filserver + } + + INFO_PRINTF5(_L("file %S charset = 0x%x confidence %d expected 0x%x\n"), + &aFileName, charset, confidence, aResult ); + + // check the character set expected was the one autodetected + test(charset==aResult); + + CleanupStack::PopAndDestroy(1); // fileserver + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0551 +@SYMTestCaseDesc Tests for conversion of characters read from a file to Unicode +@SYMTestPriority Medium +@SYMTestActions Logs out number of uncoverted bytes left at end,number of uncovertable characters, + index of first byte of first unconvertible character +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_AUTODETECT::TestConvertFromFileL(const TDesC16& aFileName, const TUint& aCharacterSetIdentifier ) + { + // get file server session and open file + RFile file; + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + User::LeaveIfError(file.Open(fileServerSession, aFileName, EFileRead)); + + // get up to KMaxSampleLengthForAutoDetection bytes of file for autodetect + TInt size(0); + User::LeaveIfError( file.Size(size) ); + + TBuf8 sample; + User::LeaveIfError( file.Read(sample, + size > KMaxSampleLengthForAutoDetection ? KMaxSampleLengthForAutoDetection : size) ); + + INFO_PRINTF3(_L("Comnverting to unicode file %S size = %d \n"), + &aFileName, size ); + + TInt NumberOfUnconvertibleCharacters=0; + TInt IndexOfFirstByteOfFirstUnconvertibleCharacter=0; + TInt state = CCnvCharacterSetConverter::KStateDefault; + TBuf16 result; + + CCnvCharacterSetConverter *Converter = CCnvCharacterSetConverter::NewLC(); + TRAPD( ConverterErr, Converter->PrepareToConvertToOrFromL( aCharacterSetIdentifier, fileServerSession)); + if ( ConverterErr!= KErrNone ) + { + INFO_PRINTF3(_L("PrepareToConvertToOrFromL left on file %S ConverterErr = 0x%x \n"), + &aFileName, ConverterErr ); + } + + TInt bytesLeft = Converter->ConvertToUnicode( result, + sample, + state, + NumberOfUnconvertibleCharacters, + IndexOfFirstByteOfFirstUnconvertibleCharacter); + + INFO_PRINTF2(_L("ConvertToUnicode returned %d unconverted bytes left at the end\n"),bytesLeft ); + INFO_PRINTF2(_L("NumberOfUnconvertibleCharacters=%d \n"),NumberOfUnconvertibleCharacters); + INFO_PRINTF2(_L("IndexOfFirstByteOfFirstUnconvertibleCharacter=%d \n"),IndexOfFirstByteOfFirstUnconvertibleCharacter); + + CleanupStack::PopAndDestroy(2); // fileserver, CCnvCharacterSetConverter +} + +/** +INC056019 SS NTT - Character set recognition is not optimized. +To improve a performace old static autodetection method was deprecated +and a new AutoDetectCharSet method introduced. + +@SYMTestCaseID SYSLIB-CHARCONV-CT-1308 +@SYMTestCaseDesc Performance test for auto detection of characters set +@SYMTestPriority Medium +@SYMTestActions Tests for the new AutoDetectCharSet() function +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_AUTODETECT::TestAutoDetectionPerformanceL( + const CArrayFix* aArrayOfCharacterSetsAvailable) + { + TInt i; + + ///////////////////////////////////////////////////////////////// + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-1308 Testing ten calls to Static AutoDetection ")); + TTime starttime; + starttime.UniversalTime(); + for (i=0; i<10; i++) + { + INFO_PRINTF2(_L("\n%d run "),i+1); + TestAutodetectL(*aArrayOfCharacterSetsAvailable,KSomeISO, KCharacterSetIdentifierIso88591); + } + TTime endtime; + endtime.UniversalTime(); + TTimeIntervalMicroSeconds difftime=endtime.MicroSecondsFrom(starttime); + INFO_PRINTF2(_L("\nTen Static calls duration =%d microseconds\n\n"), difftime.Int64()); + + ///////////////////////////////////////////////////////////////// + TInt charsetCnvCount = aArrayOfCharacterSetsAvailable->Count(); + TInt dllCharsetCnvCount = 0; + //Count the number of character set converter dlls. + for(i=0;iAt(i); + if(charset.NameIsFileName()) + { + ++dllCharsetCnvCount; + } + } + if(dllCharsetCnvCount == 0) + { + INFO_PRINTF1(_L("No character set converter dlls! Exit subtest.\n")); + return; + } + + ///////////////////////////////////////////////////////////////// + CCnvCharacterSetConverter* converter = CCnvCharacterSetConverter::NewLC(); + + ///////////////////////////////////////////////////////////////// + INFO_PRINTF1(_L("Testing ten calls to optimized AutoDetection. Non-optimal cache size.")); + converter->SetMaxCacheSize(dllCharsetCnvCount / 2 + 1); + //Fill the cache + TestAutodetect1L(*aArrayOfCharacterSetsAvailable,KSomeISO, KCharacterSetIdentifierIso88591,converter); + // + starttime.UniversalTime(); + for (i=0; i<10; i++) + { + INFO_PRINTF2(_L("\n%d run "),i+1); + TestAutodetect1L(*aArrayOfCharacterSetsAvailable,KSomeISO, KCharacterSetIdentifierIso88591,converter); + } + endtime.UniversalTime(); + difftime=endtime.MicroSecondsFrom(starttime); + INFO_PRINTF2(_L("\nTen non-static calls duration =%d microseconds\n\n"), difftime.Int64()); + + ///////////////////////////////////////////////////////////////// + INFO_PRINTF1(_L("Testing ten calls to optimized AutoDetection. Optimal cache size.")); + converter->SetMaxCacheSize(dllCharsetCnvCount + 1); + //Fill the cache + TestAutodetect1L(*aArrayOfCharacterSetsAvailable,KSomeISO, KCharacterSetIdentifierIso88591,converter); + // + starttime.UniversalTime(); + for (i=0; i<10; i++) + { + INFO_PRINTF2(_L("\n%d run "),i+1); + TestAutodetect1L(*aArrayOfCharacterSetsAvailable,KSomeISO, KCharacterSetIdentifierIso88591,converter); + } + endtime.UniversalTime(); + difftime=endtime.MicroSecondsFrom(starttime); + INFO_PRINTF2(_L("\nTen non-static calls duration =%d microseconds\n\n"), difftime.Int64()); + + ///////////////////////////////////////////////////////////////// + CleanupStack::PopAndDestroy(converter); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4002 +@SYMTestCaseDesc Test detection of a UTF-8 character set with and without a BOM. +@SYMTestPriority Medium +@SYMTestActions Tests for IsCharacterSetUTF8() function +@SYMTestExpectedResults Tests must not fail +@SYMREQ REQ0000 +*/ +//INC118714L +void CT_AUTODETECT::TestForUtf8BomL() + { + INFO_PRINTF1(_L("@SYMTestCaseID:SYSLIB-CHARCONV-UT-4002 Testing BOM in UTF-8")); + + RFs fs; + test(fs.Connect() == KErrNone); + CleanupClosePushL(fs); + + TInt confidenceLevel = 0; + TBuf8<255> testData; + CArrayFix* charsets = + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fs); + CCnvCharacterSetConverter* converter = CCnvCharacterSetConverter::NewLC(); + + //No BOM + + // Ensure that UTF-8 doesn't run over ASCII. + INFO_PRINTF1(_L("No BOM, Valid UTF-8 and ASCII String.")); + TestAutodetect1L(*charsets,_L8("\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64"), + KCharacterSetIdentifierAscii,converter); + + //Length + // Verify our original length issue is still gone. + INFO_PRINTF1(_L("No BOM, valid UTF-8 string, > 100 chars.")); + // must be >= 100 characters. + testData = _L8("\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\xce\x9f"); + TestAutodetect1L(*charsets, testData , + KCharacterSetIdentifierUtf8,converter); + confidenceLevel = TestConvertibleToCharacterReturnResultL(KCharacterSetIdentifierUtf8, + *charsets,testData ); + test(confidenceLevel == KUtf8NoBomMaxSuccessConfidenceLevel); + + INFO_PRINTF1(_L("No BOM, valid UTF-8 string, < 100 chars.")); + testData = _L8("\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\xce\x9f"); + TestAutodetect1L(*charsets,testData, + KCharacterSetIdentifierUtf8,converter); + TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, + *charsets,testData,KUtf8NoBomMinSuccessConfidenceLevel); + + // Then get a bit more concerned. + // One one-byte character overlaps several encodings. + INFO_PRINTF1(_L("No BOM, valid UTF-8 string, 1 char.")); + testData = _L8("\x7D"); + TestAutodetect1L(*charsets,testData, + KCharacterSetIdentifierAscii,converter); + TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, + *charsets,testData, KUtf8NoBomMinSuccessConfidenceLevel); + + INFO_PRINTF1(_L("No BOM, valid UTF-8 string, 0 chars.")); + testData = _L8(""); + TestAutodetect1L(*charsets,testData, + KCharacterSetIdentifierAscii,converter); + TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, + *charsets,testData, KUtf8NoStringConfidenceLevel ); + + INFO_PRINTF1(_L("No BOM (i.e. BOM in middle of string), valid UTF-8 string.")); + // string is both UTF-8 and ISO 8895-1. + testData = _L8("00000000:\xef\xbb\xbf\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64"); + TestAutodetect1L(*charsets,testData, + KCharacterSetIdentifierIso88591,converter); + TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, + *charsets,testData, KUtf8NoBomMinSuccessConfidenceLevel); + + + //BOM tests + + // This text is both GBK and UTF-8 compliant. As it stands now we search + // the plug-ins first (incl. GBK). So although it may seem counter-intuititve + // it is a correct test. + INFO_PRINTF1(_L("With BOM, UTF-8 and GBK string.")); + testData = _L8("\xef\xbb\xbf\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64"); + TestAutodetect1L(*charsets,testData, + KCharacterSetIdentifierGb18030,converter); + TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, + *charsets,testData, KUtf8BomConfidenceLevel); + + INFO_PRINTF1(_L("With BOM, UTF-8 and GBK string, 4 chars.")); + testData = _L8("\xef\xbb\xbf\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64"); + TestAutodetect1L(*charsets,testData, + KCharacterSetIdentifierGb18030,converter); + TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, + *charsets,testData, KUtf8BomConfidenceLevel); + + INFO_PRINTF1(_L("BOM, valid UTF-8.")); + testData = _L8("\xef\xbb\xbf\x7F\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64"); + TestAutodetect1L(*charsets,testData, + KCharacterSetIdentifierUtf8,converter); + TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, + *charsets,testData, KUtf8BomConfidenceLevel); + + INFO_PRINTF1(_L("BOM, valid UTF-8, 4 chars.")); + testData = _L8("\xef\xbb\xbf\x7F"); + TestAutodetect1L(*charsets,testData, + KCharacterSetIdentifierUtf8,converter); + TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, + *charsets,testData, KUtf8BomConfidenceLevel); + + INFO_PRINTF1(_L("BOM, valid UTF-8, 3 chars.")); + testData = _L8("\xef\xbb\xbf"); + TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, + *charsets,testData, KUtf8BomConfidenceLevel); + + INFO_PRINTF1(_L("BOM, valid UTF-8, 2 chars.")); + testData = _L8("\xef\xbb"); + TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, + *charsets,testData, KUtf8NoBomMinSuccessConfidenceLevel); + + INFO_PRINTF1(_L("BOM, valid UTF-8, 1 char.")); + testData = _L8("\xef"); + TestAutodetect1L(*charsets,testData, + KCharacterSetIdentifierIso88591,converter); + TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, + *charsets,testData, KUtf8NoBomMinSuccessConfidenceLevel); + + INFO_PRINTF1(_L("Invalid BOM, valid UTF-8.")); + testData = _L8("\xfe\xff\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64"); + TestAutodetect1L(*charsets,testData, + KCharacterSetIdentifierUnicodeBig,converter); + TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, + *charsets,testData, KUtf8ConfidenceFailure); + + + CleanupStack::Pop(3); //charsets, converter, fs + delete converter; + delete charsets; + fs.Close(); + + } + + +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0552 +@SYMTestCaseDesc AutoDetection of character tests +@SYMTestPriority Medium +@SYMTestActions Calls up auto detection conversion test functions +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_AUTODETECT::DoE32MainL() + { + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + const CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + + INFO_PRINTF1(_L("@SYMTestCaseID:SYSLIB-CHARCONV-CT-0552 About to start the AutoDetection\n")); + INFO_PRINTF1(_L("Embedded Test Tag\n")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-307 Tests for CCnvCharacterSetConverter::AutoDetectCharSetL() \n")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0548 Test for CCnvCharacterSetConverter::AutoDetectCharacterSetL() \n")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0549 Tests for CCnvCharacterSetConverter::ConvertibleToCharacterSetL() function \n")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0550 Tests to autodetect a character read from file \n")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0551 Tests for conversion of characters read from a file to Unicode \n")); + + TestConvertibleToCharacterL(KCharacterSetIdentifierUtf8,*arrayOfCharacterSetsAvailable,KUTF8,1); + TestConvertibleToCharacterL(KCharacterSetIdentifierAscii,*arrayOfCharacterSetsAvailable,KASCII,1); + TestConvertibleToCharacterL(KCharacterSetIdentifierUnicodeBig,*arrayOfCharacterSetsAvailable,KUnicode,1); + TestConvertibleToCharacterL(KCharacterSetIdentifierUnicodeBig,*arrayOfCharacterSetsAvailable,KUnicode3,1); + TestConvertibleToCharacterL(KCharacterSetIdentifierShiftJis,*arrayOfCharacterSetsAvailable,KSJISPhrase,1); + TestConvertibleToCharacterL(KCharacterSetIdentifierShiftJis,*arrayOfCharacterSetsAvailable,KSJISPhrase,1); + TestConvertibleToCharacterL(KCharacterSetIdentifierGb2312,*arrayOfCharacterSetsAvailable,GB2312B,1); + TestConvertibleToCharacterL(KCharacterSetIdentifierEucJpPacked,*arrayOfCharacterSetsAvailable,KEUC2,1); + TestConvertibleToCharacterL(KCharacterSetIdentifierEucJpPacked,*arrayOfCharacterSetsAvailable,KEUP,1); + + TestConvertibleToCharacterL(KCharacterSetIdentifierIso88591,*arrayOfCharacterSetsAvailable,KSomeISO,1); + TestConvertibleToCharacterL(KCharacterSetIdentifierIso88591,*arrayOfCharacterSetsAvailable,KISODEF,1); + TestConvertibleToCharacterL(KCharacterSetIdentifierCodePage1252,*arrayOfCharacterSetsAvailable,KISODEF,0); + + + TestConvertibleToCharacterL(KCharacterSetIdentifierEucJpPacked,*arrayOfCharacterSetsAvailable,KUTF8,0); + TestConvertibleToCharacterL(KCharacterSetIdentifierHz,*arrayOfCharacterSetsAvailable,KASCII,0); + TestConvertibleToCharacterL(KCharacterSetIdentifierCodePage1252,*arrayOfCharacterSetsAvailable,KUnicode,0); + TestConvertibleToCharacterL(KCharacterSetIdentifierSms7Bit,*arrayOfCharacterSetsAvailable,KUnicode3,0); + TestConvertibleToCharacterL(KCharacterSetIdentifierSms7Bit,*arrayOfCharacterSetsAvailable,KSJISPhrase,0); + TestConvertibleToCharacterL(KCharacterSetIdentifierSms7Bit,*arrayOfCharacterSetsAvailable,KSMS7InvalidEmail,0); + TestConvertibleToCharacterL(KCharacterSetIdentifierSms7Bit,*arrayOfCharacterSetsAvailable,KSMS7ValidEmail,1); + TestConvertibleToCharacterL(KCharacterSetIdentifierIso2022Jp,*arrayOfCharacterSetsAvailable,KSJISPhrase,0); + TestConvertibleToCharacterL(KCharacterSetIdentifierIso2022Jp,*arrayOfCharacterSetsAvailable,GB2312B,0); + TestConvertibleToCharacterL(KCharacterSetIdentifierIso2022Jp,*arrayOfCharacterSetsAvailable,KEUC2,0); + TestConvertibleToCharacterL(KCharacterSetIdentifierIso2022Jp,*arrayOfCharacterSetsAvailable,KEUP,0); + TestConvertibleToCharacterL(KCharacterSetIdentifierEucJpPacked,*arrayOfCharacterSetsAvailable,KSomeISO,0); + TestConvertibleToCharacterL(KCharacterSetIdentifierEucJpPacked,*arrayOfCharacterSetsAvailable,KUnicodeFail,0); + + TestAutodetectL(*arrayOfCharacterSetsAvailable,KEUP,KCharacterSetIdentifierEucJpPacked); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KEUC2,KCharacterSetIdentifierEucJpPacked); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KUnicode,KCharacterSetIdentifierUnicodeLittle); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KUnicode2,KCharacterSetIdentifierUnicodeLittle); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KUnicode3,KCharacterSetIdentifierUnicodeBig); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KSJISPhrase,KCharacterSetIdentifierShiftJis); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KDodgyShiftJIS,KCharacterSetIdentifierShiftJis); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KDodgyShiftJIS2,KCharacterSetIdentifierShiftJis); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KDodgyShiftJIS3,KCharacterSetIdentifierShiftJis); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KBig5,KCharacterSetIdentifierBig5); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KSJIS,KCharacterSetIdentifierShiftJis); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KASCII,KCharacterSetIdentifierAscii); + TestAutodetectL(*arrayOfCharacterSetsAvailable,SJISNET,KCharacterSetIdentifierShiftJis); + TestAutodetectL(*arrayOfCharacterSetsAvailable,BIG5A,KCharacterSetIdentifierBig5); + TestAutodetectL(*arrayOfCharacterSetsAvailable,BIG5C,KCharacterSetIdentifierBig5); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KUTF8,KCharacterSetIdentifierUtf8); + TestAutodetectL(*arrayOfCharacterSetsAvailable,BIG5Corrupt,KCharacterSetIdentifierBig5); + TestAutodetectL(*arrayOfCharacterSetsAvailable,BIG5Ahalf,KCharacterSetIdentifierBig5); + TestAutodetectL(*arrayOfCharacterSetsAvailable,GB2312B,KCharacterSetIdentifierGb18030); + TestAutodetectL(*arrayOfCharacterSetsAvailable,GB2312C,KCharacterSetIdentifierGb18030); + TestAutodetectL(*arrayOfCharacterSetsAvailable,GB2312Corrupt,KCharacterSetIdentifierGb18030); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KISO, KCharacterSetIdentifierIso88591); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KSomeISO, KCharacterSetIdentifierIso88591); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KShortUnicode1,KCharacterSetIdentifierUnicodeLittle); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KShortUnicode2,KCharacterSetIdentifierUnicodeLittle); + + // INC086007 (and PDEF088039) - start + _LIT8(Kexport,"https://espmg002.ext.nokia.com/push/unifi \nhttps://nam.ext.nokia.com/ \n\nhttp://gutenberg.spiegel.de/doyle/napoleon/Druckversion_napoleon.htm\nhttp://gutenberg.spiegel.de/doyle/baskervi/Druckversion_baske-de.htm\n\nhttp://www.heise.de/newsticker/heise.rdf\nhttp://www.teltarif.de/db/news.rss\nhttp://www.linuxdevices.com/backend/headlines10.rdf\nhttp://www.dpreview.com/news/dpr.rdf\nhttp://planet.maemo.org/rss10.xml\nhttp://www.macnews.de/index.php?_mcnpage=71148\nhttp://www.tecchannel.de/news/feed/complete.rss\nhttp://www.n-tv.de/23.rss\nhttp://www.br-online.de/global/export/dynRdf.jsp?channel=\nhttp://www.wdr.de/xml/newsticker.rdf\nhttp://www.tagesschau.de/newsticker.rdf\nhttp://www.n24.de/rss/?rubrik=home\nhttp://www.n24.de/rss/?rubrik=wirtschaft\nhttp://www.n24.de/rss/?rubrik=politik\nhttp://www.welt.de/z/newsticker/ticker_welt.xml\nhttp://www.ftd.de/static/ticker/ftd-topnews.rdf\nhttp://www.ftd.de/static/container/rss/ftd-rss-1200.rdf\nhttp://www.ftd.de/static/container/rss/ftd-rss-200.rdf\nhttp://www.ftd.de/static/container/rss/ftd-rss-300.rdf\nhttp://rss.cnn.com/rss/cnn_world.rss\nhttp://rss.cnn.com/rss/cnn_tech.rss\nhttp://rss.cnn.com/rss/money_topstories.rss\nhttp://rss.cnn.com/rss/cnn_space.rss\nhttp://news.yandex.ru/index.rss\nhttp://news.yandex.ru/world.rss\nhttp://news.yandex.ru/politics.rss\nhttp://news.yandex.ru/science.rss\nhttp://www.jpost.com/servlet/Satellite?pagename=JPost/Page/RSS&cid=1123495333389\n\n\n\n"); + TestAutodetectL(*arrayOfCharacterSetsAvailable, Kexport, KCharacterSetIdentifierAscii); + + // test for DEF089572 - ONB: TAUTODETECT failing on Coverage builds + TBuf8<300> buf; + ReadDesc(buf, KSMS7bitFilename, fileServerSession); + TestAutodetectL(*arrayOfCharacterSetsAvailable, buf, KCharacterSetIdentifierSms7Bit); + + // INC086007 (and PDEF088039) - end + + //test for INC037743 - Charconv recognises Little Endian as Big Endian + + // Fix for DEF063276. + + ReadDesc(buf, KLittleEndianFilename, fileServerSession); + TestAutodetectL(*arrayOfCharacterSetsAvailable,buf, KCharacterSetIdentifierUnicodeLittle); + + ReadDesc(buf, KBigEndianFilename, fileServerSession); + TestAutodetectL(*arrayOfCharacterSetsAvailable,buf, KCharacterSetIdentifierUnicodeBig); + + // End fix + + // tests for INC037581 - SS66 - Long .txt note fails to open in msg centre inbox + TestAutodetectL(*arrayOfCharacterSetsAvailable,KFinnish, KCharacterSetIdentifierIso88591); + TestAutodetectL(*arrayOfCharacterSetsAvailable,KSwedish, KCharacterSetIdentifierIso88591); + + // tests for INC043016 - AV21 via BTH received TXT file could not be opened + TestAutodetectL(*arrayOfCharacterSetsAvailable,KGotcha, KCharacterSetIdentifierAscii); // changed to Ascii from Utf8 as part of INC086007 + + //test for INC037705 read in file and try to autodetect() +#ifdef __WINS__ + TestAutoDetectFromFileL(_L("C:\\test\\data\\finnish.txt"), KCharacterSetIdentifierIso88591); + TestAutoDetectFromFileL(_L("C:\\test\\data\\swedish.txt"), KCharacterSetIdentifierIso88591); +#else + TestAutoDetectFromFileL(_L("Z:\\test\\data\\finnish.txt"), KCharacterSetIdentifierIso88591); + TestAutoDetectFromFileL(_L("Z:\\test\\data\\swedish.txt"), KCharacterSetIdentifierIso88591); +#endif + + + //test for INC037705: read in file and try to convertToUnicode() +#ifdef __WINS__ + TestConvertFromFileL(_L("C:\\test\\data\\finnish.txt"), KCharacterSetIdentifierIso88591); + TestConvertFromFileL(_L("C:\\test\\data\\swedish.txt"), KCharacterSetIdentifierIso88591); +#else + TestConvertFromFileL(_L("Z:\\test\\data\\finnish.txt"), KCharacterSetIdentifierIso88591); + TestConvertFromFileL(_L("Z:\\test\\data\\swedish.txt"), KCharacterSetIdentifierIso88591); +#endif + + TestAutoDetectionPerformanceL(arrayOfCharacterSetsAvailable); + + TestForUtf8BomL(); + + INFO_PRINTF1(_L("\n")); + CleanupStack::PopAndDestroy(2); + } + + +CT_AUTODETECT::CT_AUTODETECT() + { + SetTestStepName(KTestStep_T_AUTODETECT); + } + +TVerdict CT_AUTODETECT::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_autodetect.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_autodetect.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,50 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_AUTODETECT_H__ +#define __T_AUTODETECT_H__ + +//#include +#include +#include + +class CT_AUTODETECT : public CTestStep + { +public: + CT_AUTODETECT(); +protected: + TVerdict doTestStepL(); +private: + void ReadDesc(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + void TestAutodetectL(const CArrayFix& aArrayOfCharacterSetsAvailable, const TDesC8& aSample, const TUint& aResult); + void TestAutodetect1L( + const CArrayFix& aArrayOfCharacterSetsAvailable, + const TDesC8& aSample, + const TUint& aResult, + CCnvCharacterSetConverter* aConverter); + void TestConvertibleToCharacterL(const TUint aCharsetIdentifier, const CArrayFix& aArrayOfCharacterSetsAvailable, const TDesC8& aSample, const TInt flag); + TInt TestConvertibleToCharacterReturnResultL(const TUint aCharsetIdentifier, const CArrayFix& aArrayOfCharacterSetsAvailable, const TDesC8& aSample); + void TestConvertibleToCharacterWithSpecificResultL(const TUint aCharsetIdentifier, const CArrayFix& aArrayOfCharacterSetsAvailable, const TDesC8& aSample, const TInt aResult); + void TestAutoDetectFromFileL(const TDesC16& aFileName, const TUint& aResult ); + void TestConvertFromFileL(const TDesC16& aFileName, const TUint& aCharacterSetIdentifier ); + void TestAutoDetectionPerformanceL(const CArrayFix* aArrayOfCharacterSetsAvailable); + void TestForUtf8BomL(); + void DoE32MainL(); + }; + +_LIT(KTestStep_T_AUTODETECT, "T_AUTODETECT"); + +#endif //__T_AUTODETECT_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_autodetect.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_autodetect.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_AUTODETECT tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_AUTODETECT \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_big5.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_big5.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,92 @@ +/* +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_big5.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0515 +@SYMTestCaseDesc Tests for defect number EDNSHAY-45VJAU +@SYMTestPriority Medium +@SYMTestActions Tests for CCnvCharacterSetConverter::ConvertToUnicode() function +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_BIG5::DoE32MainL() + { + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0515 Available:\n ")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + TInt state=CCnvCharacterSetConverter::KStateDefault; + INFO_PRINTF1(_L("Testing fix for defect number EDNSHAY-45VJAU")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierBig5, *arrayOfCharacterSetsAvailable, fileServerSession); + TBuf16<28> generatedUnicode; + test(characterSetConverter->ConvertToUnicode(generatedUnicode, _L8("++ ZAC"), state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +CT_BIG5::CT_BIG5() + { + SetTestStepName(KTestStep_T_BIG5); + } + +TVerdict CT_BIG5::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_big5.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_big5.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,36 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_BIG5_H__ +#define __T_BIG5_H__ + +//#include +#include + +class CT_BIG5 : public CTestStep + { +public: + CT_BIG5(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + }; + +_LIT(KTestStep_T_BIG5, "T_BIG5"); + +#endif //__T_BIG5_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_big5.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_big5.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_BIG5 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_BIG5 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_builtin.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_builtin.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,832 @@ +/* +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_builtin.h" + +/** +* Work around for DEF063276. +* This literal is now loaded from a z:\test\data\KOriginalSms7Bit.dat +* Bullseye Coverage corrupts this literal at position \x1b\x30 to \x1b\x37 +* to avoid this literal is stored in a file as to not be touched by Bullseye Coverage. +*/ + +/* +_LIT8(KOriginalSms7Bit, "\ +\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\ +\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a \x1c\x1d\x1e\x1f\ +\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\ +\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\ +\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\ +\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\ +\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\ +\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\ +\x1b\x00\x1b\x01\x1b\x02\x1b\x03\x1b\x04\x1b\x05\x1b\x06\x1b\x07\x1b\x08\x1b\x09\x1b\x0a\x1b\x0b\x1b\x0c\x1b\x0d\x1b\x0e\x1b\x0f\ +\x1b\x10\x1b\x11\x1b\x12\x1b\x13\x1b\x14\x1b\x15\x1b\x16\x1b\x17\x1b\x18\x1b\x19\x1b\x1a\x1b\x1b\x1b\x1c\x1b\x1d\x1b\x1e\x1b\x1f\ +\x1b\x20\x1b\x21\x1b\x22\x1b\x23\x1b\x24\x1b\x25\x1b\x26\x1b\x27\x1b\x28\x1b\x29\x1b\x2a\x1b\x2b\x1b\x2c\x1b\x2d\x1b\x2e\x1b\x2f\ +\x1b\x30\x1b\x31\x1b\x32\x1b\x33\x1b\x34\x1b\x35\x1b\x36\x1b\x37\x1b\x38\x1b\x39\x1b\x3a\x1b\x3b\x1b\x3c\x1b\x3d\x1b\x3e\x1b\x3f\ +\x1b\x40\x1b\x41\x1b\x42\x1b\x43\x1b\x44\x1b\x45\x1b\x46\x1b\x47\x1b\x48\x1b\x49\x1b\x4a\x1b\x4b\x1b\x4c\x1b\x4d\x1b\x4e\x1b\x4f\ +\x1b\x50\x1b\x51\x1b\x52\x1b\x53\x1b\x54\x1b\x55\x1b\x56\x1b\x57\x1b\x58\x1b\x59\x1b\x5a\x1b\x5b\x1b\x5c\x1b\x5d\x1b\x5e\x1b\x5f\ +\x1b\x60\x1b\x61\x1b\x62\x1b\x63\x1b\x64\x1b\x65\x1b\x67\x1b\x67\x1b\x68\x1b\x69\x1b\x6a\x1b\x6b\x1b\x6c\x1b\x6d\x1b\x6e\x1b\x6f\ +\x1b\x70\x1b\x71\x1b\x72\x1b\x73\x1b\x74\x1b\x75\x1b\x76\x1b\x77\x1b\x78\x1b\x79\x1b\x7a\x1b\x7b\x1b\x7c\x1b\x7d\x1b\x7e\x1b\x7f"); +*/ + + +_LIT8(KExpectedSms7Bit, "\ +\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\ +\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a \x1c\x1d\x1e\x1f\ +\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\ +\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\ +\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\ +\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\ +\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\ +\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\ +\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x1b\x0a\x0b\x0c\x0d\x0e\x0f\ +\x10\x11\x12\x13\x1b\x14\x15\x16\x17\x18\x19\x1a\x3f\x1c\x1d\x1e\x1f\ +\x20\x21\x22\x23\x24\x25\x26\x27\x1b\x28\x1b\x29\x2a\x2b\x2c\x2d\x2e\x1b\x2f\ +\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x1b\x3c\x1b\x3d\x1b\x3e\x3f\ +\x1b\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\ +\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\ +\x60\x61\x62\x63\x64\x1b\x65\x67\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\ +\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"); +_LIT16(KExpectedUnicodeFromSms7Bit, "\ +\x0040\x00a3$\x00a5\x00e8\x00e9\x00f9\x00ec\x00f2\x00e7\x000a\x00d8\x00f8\x000d\x00c5\x00e5\ +\x0394\x005f\x03a6\x0393\x039b\x03a9\x03a0\x03a8\x03a3\x0398\x039e \x00c6\x00e6\x00df\x00c9\ +\x0020!\"#\x00a4%&'()*+,-./0123456789:;<=>?\ +\x00a1\x0041\x0042\x0043\x0044\x0045\x0046GHIJKLMNOPQRSTUVWXYZ\x00c4\x00d6\x00d1\x00dc\x00a7\ +\x00bf\x0061\x0062\x0063\x0064\x0065\x0066ghijklmnopqrstuvwxyz\x00e4\x00f6\x00f1\x00fc\x00e0\ +\x0040\x00a3$\x00a5\x00e8\x00e9\x00f9\x00ec\x00f2\x00c7\x000c\x00d8\x00f8\x000d\x00c5\x00e5\ +\x0394\x005f\x03a6\x0393\x005e\x03a9\x03a0\x03a8\x03a3\x0398\x039e\xfffd\x00c6\x00e6\x00df\x00c9\ +\x0020!\"#\x00a4%&'{}*+,-.\\0123456789:;[~]?\ +|\x0041\x0042\x0043\x0044\x0045\x0046GHIJKLMNOPQRSTUVWXYZ\x00c4\x00d6\x00d1\x00dc\x00a7\ +\x00bf\x0061\x0062\x0063\x0064\x20ac\x0067ghijklmnopqrstuvwxyz\x00e4\x00f6\x00f1\x00fc\x00e0"); + + + +// 1 line of the original defect data from email in unicode + _LIT16(KEmailToConvert, "\ +\x006C\x0069\x006E\x0065\x0020\x0065\x006E\x0064\x0073\x0020\x0069\ +\x006E\x0020\x006A\x0061\x0070\x0061\x006E\x0065\x0073\x0065\x0020\ +\x3075\x3064\x3059\x3057\x306B\x3072\x3080\x000d\x000a"); + + + + // the expected result when converted to ISO2022JP +_LIT8(KExpectedIso2022jp, "\ +\x6C\x69\x6E\x65\x20\x65\x6E\x64\x73\x20\x69\x6E\x20\ +\x6A\x61\x70\x61\x6E\x65\x73\x65\x20\x1B\x24\x42\x24\x55\x24\x44\ +\x24\x39\x24\x37\x24\x4B\x24\x52\x24\x60\x1B\x28\x42\x0D\x0A"); +//\x1B\x28\x4A"); + +// 1 line of the original defect data from email in unicode + _LIT16(KEmailEndingInJapanese, "\ +\x006C\x0069\x006E\x0065\x0020\x0065\x006E\x0064\x0073\x0020\x0069\ +\x006E\x0020\x006A\x0061\x0070\x0061\x006E\x0065\x0073\x0065\x0020\ +\x3075\x3064\x3059\x3057\x306B\x3072\x3080"); + + // the expected result when converted to ISO2022JP +_LIT8(KExpectedEmailEndingInJapanese, "\ +\x6C\x69\x6E\x65\x20\x65\x6E\x64\x73\x20\x69\x6E\x20\ +\x6A\x61\x70\x61\x6E\x65\x73\x65\x20\x1B\x24\x42\x24\x55\x24\x44\ +\x24\x39\x24\x37\x24\x4B\x24\x52\x24\x60\x1B\x28\x42"); + +_LIT(KOriginalSms7BitFile, "z:\\test\\data\\KOriginalSms7Bit.dat"); + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +// this is the test plugin implementation ID in rather than KCharacterSetIdentifierShiftJis +const TUint KCharacterSetTestShiftJisKddiau=0x01000001; + +/** +* Utility for DEF063276 fix. +*/ + +void CT_BUILTIN::ReadDesc(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +/////////////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////////////// +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0499 +@SYMTestCaseDesc Tests for conversion of SMS 7 bit data to Unicode, and from Unicode to original data +@SYMTestPriority Medium +@SYMTestActions Tests for CCnvCharacterSetConverter::ConvertToUnicode(),CCnvCharacterSetConverter::ConvertFromUnicode() +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_BUILTIN::TestFix_EDNJJUN_4RWH2A(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession, CArrayFix& aArrayOfCharacterSetsAvailable) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0499 ")); + TBuf16<300> generatedUnicode; + TBuf8<300> generatedSms7Bit; + TRAPD(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, aArrayOfCharacterSetsAvailable, aFileServerSession)); + test(errCode == KErrNone); + TInt state=CCnvCharacterSetConverter::KStateDefault; + + // Fix for DEF063276. + + TBuf8<400> buf; + ReadDesc(buf, KOriginalSms7BitFile, aFileServerSession); + + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, buf, state)==0); + // End fix. + + test(generatedUnicode.Length()==259); + test(generatedUnicode==KExpectedUnicodeFromSms7Bit); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(aCharacterSetConverter.ConvertFromUnicode(generatedSms7Bit, generatedUnicode)==0); + test(generatedSms7Bit.Length()==269); + test(generatedSms7Bit==KExpectedSms7Bit); + } + +/** +Test_DEF049749 test code for DEF049749 - Char convs don t handle correcly Shift JIS emoji + +@SYMTestCaseID SYSLIB-CHARCONV-CT-0500 +@SYMTestCaseDesc Tests for defect number DEF049749 +@SYMTestPriority Medium +@SYMTestActions Tests for conversion from Shift JIS Emoji character set to Unicode + Tests for CCnvCharacterSetConverter::EErrorIllFormedInput error flag +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_BUILTIN::Test_DEF049749(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession, CArrayFix& aArrayOfCharacterSetsAvailable) + { + // original defect data + _LIT8(KCodeToConvert, "\xF8\x9F\xF8\x9F\x81\x40\x3B\x3B\x3B\x3B"); + _LIT16(KExpectedUnicode, "\xFFFD\xFFFD\x3000\x003b\x003b\x003b\x003b"); + TBuf16<300> generatedUnicode; + + // check now able to convert the original defect data + TRAPD(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); + test(errCode == KErrNone); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TInt ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KCodeToConvert, state); + + // in DEF049749 CCnvCharacterSetConverter::EErrorIllFormedInput was incorrectly returned. + // rather than the number of unconverted bytes left, which should be 0 + test(ret ==0); + test(generatedUnicode==KExpectedUnicode); + + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0500 User-defined ShiftJIS region->FFFD ")); + /* check the user defined region (ref CJKV Ken Lunde page206) + F040-F97E and F080-F9FC */ + TBuf8<300> sampleUserDefined; + for (TInt leadByte = 0xF0; leadByte != 0xF9; leadByte++) + { + // a leadbyte missing the trail byte then another character + sampleUserDefined.Format(_L8("%c\x3F"), leadByte); + _LIT16(KExpectedUnicode4, "\xFFFD\x3F"); + TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); + test(errCode == KErrNone); + ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); + test(ret ==0); + test(generatedUnicode==KExpectedUnicode4); + + // a single leadbyte missing the trail byte + sampleUserDefined.Format(_L8("%c"), leadByte); + TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); + test(errCode == KErrNone); + ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); + test(ret == CCnvCharacterSetConverter::EErrorIllFormedInput); + + // Default version of Shift-JIS converter now contains mappings for ezweb private use + // in range 0xF7BC to 0xF7FC so following tests would fail in this area - JG 30/06/2005 + if ((leadByte < 0xF3) || (leadByte > 0xF7)) + { + for (TInt trailbyte = 0x40; trailbyte != 0xFD; + trailbyte += (trailbyte == 0x7E? 2 : 1)) + { + TInt errCode = KErrNone; + + // emoji character on its own + sampleUserDefined.Format(_L8("%c%c"), leadByte, trailbyte); + _LIT16(KExpectedUnicode1, "\xFFFD"); + TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); + test(errCode == KErrNone); + ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); + test(ret ==0); + test(generatedUnicode==KExpectedUnicode1); + + // followed by a single character + sampleUserDefined.Format(_L8("%c%cx"), leadByte, trailbyte); + _LIT16(KExpectedUnicode2, "\xFFFDx"); + TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); + test(errCode == KErrNone); + ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); + test(ret ==0); + test(generatedUnicode==KExpectedUnicode2); + + // preceeded by a single character + sampleUserDefined.Format(_L8("x%c%c"), leadByte, trailbyte); + _LIT16(KExpectedUnicode3, "x\xFFFD"); + TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); + test(errCode == KErrNone); + ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); + test(ret ==0); + test(generatedUnicode==KExpectedUnicode3); + } + } + } + + INFO_PRINTF1(_L("All double-byte characters convert to single Unicode")); + TText8 LeadBytes[] = { 0x81, 0x9F, 0xE0, 0xEA, 0xEB, 0xF9, 0xFA, 0xFC }; + TText8 TrailBytes[] = { 0x40, 0x7E, 0x80, 0xFC }; + TText8* leadp; + for (leadp = LeadBytes; + leadp != LeadBytes + sizeof(LeadBytes)/sizeof(LeadBytes[0]); + ++leadp) + { + // a single leadbyte missing the trail byte + sampleUserDefined.Format(_L8("%c"), *leadp); + TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); + test(errCode == KErrNone); + ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); + test(ret == CCnvCharacterSetConverter::EErrorIllFormedInput); + + // lead byte then illegal trail byte, which is a legal byte on its own + sampleUserDefined.Format(_L8("%c%c"), *leadp, 0x3F); + TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); + test(errCode == KErrNone); + ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); + test(ret == 0); + test(generatedUnicode == _L16("\xFFFD\x3F")); + + for (TText8* trailp = TrailBytes; + trailp != TrailBytes + sizeof(TrailBytes)/sizeof(TrailBytes[0]); + ++trailp) + { + sampleUserDefined.Format(_L8("%c%c"), *leadp, *trailp); + TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); + test(errCode == KErrNone); + ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); + test(ret == 0); + test(generatedUnicode.Length() == 1); + } + } + + INFO_PRINTF1(_L("All single-byte characters convert to single Unicode")); + TText8 SingleBytes[] = { 0, 0x7F, 0x80, 0xA0, 0xA1, 0xFD, 0xFE, 0xFF }; + for (TText8* singlep = SingleBytes; + singlep != SingleBytes + sizeof(SingleBytes)/sizeof(SingleBytes[0]); + ++singlep) + { + // a single leadbyte missing the trail byte + sampleUserDefined.Format(_L8("%c"), *singlep); + TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); + test(errCode == KErrNone); + ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); + test(ret == 0); + test(generatedUnicode.Length() == 1); + } + + INFO_PRINTF1(_L("Valid lead byte + invalid trail byte -> FFFD + something")); + TText8 NotTrailBytes[] = { 0x3F, 0x7F, 0xFD, 0xFE, 0xFF }; + for (leadp = LeadBytes; + leadp != LeadBytes + sizeof(LeadBytes)/sizeof(LeadBytes[0]); + ++leadp) + { + for (TText8* trailp = NotTrailBytes; + trailp != NotTrailBytes + sizeof(NotTrailBytes)/sizeof(NotTrailBytes[0]); + ++trailp) + { + sampleUserDefined.Format(_L8("%c%c"), *leadp, *trailp); + TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); + test(errCode == KErrNone); + ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); + test(ret == 0); + test(generatedUnicode.Length() == 2); + test(generatedUnicode[0] == 0xFFFD); + } + } + } + +/** +Test_DEF053900 test code for DEF053900 - Problems encoding Japanese emails to ISO-2022-JP + +@SYMTestCaseID SYSLIB-CHARCONV-CT-1306 +@SYMTestCaseDesc Tests for defect number DEF053900 +@SYMTestPriority Medium +@SYMTestActions Attempt for converting from Japanese character set email to Unicode. +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_BUILTIN::Test_DEF053900(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession, CArrayFix& aArrayOfCharacterSetsAvailable) + { + // check now able to convert the original defect data + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-1306 ")); + TBuf8<300> generatedIso2022; + TRAPD(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022Jp, aArrayOfCharacterSetsAvailable, aFileServerSession)); + test(errCode == KErrNone); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TInt ret = aCharacterSetConverter.ConvertFromUnicode(generatedIso2022, KEmailToConvert, state); + // check the converted data is as expected + test(ret ==0); + test(generatedIso2022==KExpectedIso2022jp); + ret = aCharacterSetConverter.ConvertFromUnicode(generatedIso2022, KEmailEndingInJapanese, state); + test(ret ==0); + test(generatedIso2022==KExpectedEmailEndingInJapanese); +} + +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0501 +@SYMTestCaseDesc Tests for CCnvCharacterSetConverter class +@SYMTestPriority Medium +@SYMTestActions Tests for conversion from empty descriptors to different character sets +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_BUILTIN::DoE32MainL() + { + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + TBuf16<128> originalUnicode; + TBuf8<128> generatedForeign; + TBuf16<128> generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + TUint characterCode; + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0501 Testing empty descriptors (Code Page 1252) ")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierCodePage1252, *arrayOfCharacterSetsAvailable, fileServerSession); + originalUnicode=KNullDesC16; + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==KNullDesC8); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("Testing empty descriptors (ISO-8859-1)")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso88591, *arrayOfCharacterSetsAvailable, fileServerSession); + originalUnicode=KNullDesC16; + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==KNullDesC8); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("Testing empty descriptors (ASCII)")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierAscii, *arrayOfCharacterSetsAvailable, fileServerSession); + originalUnicode=KNullDesC16; + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==KNullDesC8); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("Testing empty descriptors (SMS 7-bit)")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, *arrayOfCharacterSetsAvailable, fileServerSession); + originalUnicode=KNullDesC16; + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==KNullDesC8); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("Testing exhaustive single-character Code Page 1252 round trips")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierCodePage1252, *arrayOfCharacterSetsAvailable, fileServerSession); + for (characterCode=0x00; characterCode<=0x7f; ++characterCode) + { + originalUnicode.Format(_L16("%c"), characterCode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + TBuf8<1> expectedForeign; + expectedForeign.Format(_L8("%c"), characterCode); + test(generatedForeign==expectedForeign); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + } + originalUnicode.Format(_L16("%c"), 0x20ac); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x80")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x201a); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x82")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x0192); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x83")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x201e); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x84")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x2026); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x85")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x2020); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x86")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x2021); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x87")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x02c6); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x88")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x2030); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x89")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x0160); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x8a")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x2039); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x8b")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x0152); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x8c")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x017d); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x8e")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x017e); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x9e")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x2018); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x91")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x2019); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x92")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x201c); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x93")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x201d); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x94")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x2022); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x95")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x2013); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x96")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x2014); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x97")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x02dc); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x98")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x2122); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x99")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x0161); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x9a")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x203a); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x9b")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x0153); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x9c")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + originalUnicode.Format(_L16("%c"), 0x0178); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x9f")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + for (characterCode=0xa0; characterCode<0xff; ++characterCode) + { + originalUnicode.Format(_L16("%c"), characterCode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + TBuf8<1> expectedForeign; + expectedForeign.Format(_L8("%c"), characterCode); + test(generatedForeign==expectedForeign); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + } + INFO_PRINTF1(_L("Testing exhaustive single-character ISO-8859-1 round trips")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso88591, *arrayOfCharacterSetsAvailable, fileServerSession); + for (characterCode=0x00; characterCode<=0xff; ++characterCode) + { + const TBool unconvertibleCharacter=(characterCode==0x80); + TInt numberOfUnconvertibleCharacters; + TInt indexOfFirstUnconvertibleCharacter; + originalUnicode.Format(_L16("%c"), characterCode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter)==0); + if (characterCode != 0x80) + test(numberOfUnconvertibleCharacters==(unconvertibleCharacter? 1: 0)); + if (numberOfUnconvertibleCharacters>0) + { + test(indexOfFirstUnconvertibleCharacter==0); + } + TBuf8<1> expectedForeign; + expectedForeign.Format(_L8("%c"), unconvertibleCharacter? 0x1a: characterCode); + test(generatedForeign==expectedForeign); + TBuf8<1> originalForeign; + originalForeign.Format(_L8("%c"), characterCode); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + if (characterCode != 0x80) + test(numberOfUnconvertibleCharacters==(unconvertibleCharacter? 1: 0)); + if (numberOfUnconvertibleCharacters>0) + { + test(indexOfFirstUnconvertibleCharacter==0); + } + if (unconvertibleCharacter) + { + test(generatedUnicode.Length()==1); + if (characterCode==0x80) + { + test(generatedUnicode[0]==0x20ac); + } + else + { + test(generatedUnicode[0]==0xfffd); + } + } + else + { + test(generatedUnicode==originalUnicode); + } + } + INFO_PRINTF1(_L("Testing exhaustive single-character ASCII round trips")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierAscii, *arrayOfCharacterSetsAvailable, fileServerSession); + for (characterCode=0x00; characterCode<=0xff; ++characterCode) + { + const TBool unconvertibleCharacter=(characterCode>=0x80); + TInt numberOfUnconvertibleCharacters; + originalUnicode.Format(_L16("%c"), characterCode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters)==0); + test(numberOfUnconvertibleCharacters==(unconvertibleCharacter? 1: 0)); + TBuf8<1> expectedForeign; + expectedForeign.Format(_L8("%c"), unconvertibleCharacter? 0x1a: characterCode); + test(generatedForeign==expectedForeign); + TBuf8<1> originalForeign; + originalForeign.Format(_L8("%c"), characterCode); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state, numberOfUnconvertibleCharacters)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(numberOfUnconvertibleCharacters==(unconvertibleCharacter? 1: 0)); + if (unconvertibleCharacter) + { + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0xfffd); + } + else + { + test(generatedUnicode==originalUnicode); + } + } + INFO_PRINTF1(_L("Testing exhaustive SMS 7-bit round trip (default table)")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, fileServerSession); + originalUnicode.SetLength(0); + const TPtrC16 formatOfSixteenCharacters=_L16("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"); + originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x0040, 0x00a3, 0x0024, 0x00a5, 0x00e8, 0x00e9, 0x00f9, 0x00ec, 0x00f2, 0x00e7, 0x000a, 0x00d8, 0x00f8, 0x000d, 0x00c5, 0x00e5); + originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x0394, 0x005f, 0x03a6, 0x0393, 0x039b, 0x03a9, 0x03a0, 0x03a8, 0x03a3, 0x0398, 0x039e, '!', 0x00c6, 0x00e6, 0x00df, 0x00c9); + originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x0020, 0x0021, 0x0022, 0x0023, 0x00a4, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f); + originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f); + originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x00a1, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f); + originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00c4, 0x00d6, 0x00d1, 0x00dc, 0x00a7); + originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x00bf, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f); + originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00e4, 0x00f6, 0x00f1, 0x00fc, 0x00e0); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign.Length()==0x80); + for (characterCode=0x00; characterCode<0x80; ++characterCode) + { + test(generatedForeign[characterCode]==(characterCode==0x1b)? '!': characterCode); + } + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("Testing Greek range of SMS 7-bit")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, *arrayOfCharacterSetsAvailable, fileServerSession); + TBuf16<16> expectedUnicode; + originalUnicode.Format(formatOfSixteenCharacters.Left(7*2), 0x0386, 0x0388, 0x0389, 0x038a, 0x038c, 0x038e, 0x038f); + expectedUnicode.Format(formatOfSixteenCharacters.Left(7*2), 0x0041, 0x0045, 0x0048, 0x0049, 0x004f, 0x0059, 0x03a9); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x41\x45\x48\x49\x4f\x59\x15")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==expectedUnicode); + originalUnicode.Format(formatOfSixteenCharacters, 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f); + expectedUnicode.Format(formatOfSixteenCharacters, 0x0049, 0x0041, 0x0042, 0x0393, 0x0394, 0x0045, 0x005a, 0x0048, 0x0398, 0x0049, 0x004b, 0x039b, 0x004d, 0x004e, 0x039e, 0x004f); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x49\x41\x42\x13\x10\x45\x5a\x48\x19\x49\x4b\x14\x4d\x4e\x1a\x4f")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==expectedUnicode); + originalUnicode.Format(formatOfSixteenCharacters.Left(15*2), 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af); + expectedUnicode.Format(formatOfSixteenCharacters.Left(15*2), 0x03a0, 0x0050, 0x03a3, 0x0054, 0x0059, 0x03a6, 0x0058, 0x03a8, 0x03a9, 0x0049, 0x0059, 0x0041, 0x0045, 0x0048, 0x0049); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x16\x50\x18\x54\x59\x12\x58\x17\x15\x49\x59\x41\x45\x48\x49")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==expectedUnicode); + originalUnicode.Format(formatOfSixteenCharacters, 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf); + expectedUnicode.Format(formatOfSixteenCharacters, 0x0059, 0x0041, 0x0042, 0x0393, 0x0394, 0x0045, 0x005a, 0x0048, 0x0398, 0x0049, 0x004b, 0x039b, 0x004d, 0x004e, 0x039e, 0x004f); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x59\x41\x42\x13\x10\x45\x5a\x48\x19\x49\x4b\x14\x4d\x4e\x1a\x4f")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==expectedUnicode); + originalUnicode.Format(formatOfSixteenCharacters.Left(15*2), 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce); + expectedUnicode.Format(formatOfSixteenCharacters.Left(15*2), 0x03a0, 0x0050, 0x03a3, 0x03a3, 0x0054, 0x0059, 0x03a6, 0x0058, 0x03a8, 0x03a9, 0x0049, 0x0059, 0x004f, 0x0059, 0x03a9); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x16\x50\x18\x18\x54\x59\x12\x58\x17\x15\x49\x59\x4f\x59\x15")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==expectedUnicode); + originalUnicode.Format(formatOfSixteenCharacters.Left(6*2), 0x03d0, 0x03d1, 0x03d2, 0x03d3, 0x03d4, 0x03d5); + expectedUnicode.Format(formatOfSixteenCharacters.Left(6*2), 0x0042, 0x0398, 0x0059, 0x0059, 0x0059, 0x03a6); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x42\x19\x59\x59\x59\x12")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==expectedUnicode); + { + INFO_PRINTF1(_L("Testing converting from Internet-standard names to UIDs")); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("US-ASCII"), fileServerSession)==KCharacterSetIdentifierAscii); + HBufC8* standardName=characterSetConverter->ConvertCharacterSetIdentifierToStandardNameL(KCharacterSetIdentifierAscii, fileServerSession); + test(*standardName==_L8("US-ASCII")); + delete standardName; + } + { + INFO_PRINTF1(_L("Testing fix for defect EDNEMUA-4KGFEY in \"Symbian Defect Tracking v3.0\"")); + CCnvCharacterSetConverter* characterSetConverter2=CCnvCharacterSetConverter::NewLC(); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, *arrayOfCharacterSetsAvailable, fileServerSession); + characterSetConverter2->PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, *arrayOfCharacterSetsAvailable, fileServerSession); + characterSetConverter2->SetDowngradeForExoticLineTerminatingCharacters(CCnvCharacterSetConverter::EDowngradeExoticLineTerminatingCharactersToJustLineFeed); + originalUnicode.Format(_L16("Line1%cLine2%cLine3\x0aLine4\x0d\x0a"), 0x2029, 0x2028); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("Line1\x0d\x0aLine2\x0d\x0aLine3\x0aLine4\x0d\x0a")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==_L16("Line1\x0d\x0aLine2\x0d\x0aLine3\x0aLine4\x0d\x0a")); + test(characterSetConverter2->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==_L16("Line1\x0d\x0aLine2\x0d\x0aLine3\x0aLine4\x0d\x0a")); + test(characterSetConverter2->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("Line1\x0aLine2\x0aLine3\x0aLine4\x0d\x0a")); + test(characterSetConverter2->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==_L16("Line1\x0aLine2\x0aLine3\x0aLine4\x0d\x0a")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==_L16("Line1\x0aLine2\x0aLine3\x0aLine4\x0d\x0a")); + CleanupStack::PopAndDestroy(); // characterSetConverter2 + } + { + INFO_PRINTF1(_L("Testing fix for defect EDNPSTN-4L5K2G in \"Symbian Defect Tracking v3.0\" (i.e. the extension table)")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, *arrayOfCharacterSetsAvailable, fileServerSession); + originalUnicode.Format(_L16("%c^{}\\abc[~]|%c"), 0x000c, 0x20ac); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x1b\x0a\x1b\x14\x1b\x28\x1b\x29\x1b\x2f""abc\x1b\x3c\x1b\x3d\x1b\x3e\x1b\x40\x1b\x65")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + } + { + INFO_PRINTF1(_L("Testing fix for defect EDNJJUN-4RWH2A in \"Symbian Defect Tracking v3.0\" (SMS 7-bit [0x1b, 0x41] should be converted to 0x0041, etc.)")); + TestFix_EDNJJUN_4RWH2A(*characterSetConverter, fileServerSession, *arrayOfCharacterSetsAvailable); + } + + // + INFO_PRINTF1(_L("Testing fix for defect DEF049749")); + Test_DEF049749(*characterSetConverter, fileServerSession, *arrayOfCharacterSetsAvailable); + + INFO_PRINTF1(_L("Testing fix for defect DEF053900")); + Test_DEF053900(*characterSetConverter, fileServerSession, *arrayOfCharacterSetsAvailable); + + CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +CT_BUILTIN::CT_BUILTIN() + { + SetTestStepName(KTestStep_T_BUILTIN); + } + +TVerdict CT_BUILTIN::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_builtin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_builtin.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_BUILTIN_H__ +#define __T_BUILTIN_H__ + +//#include +#include +#include + +class CT_BUILTIN : public CTestStep + { +public: + CT_BUILTIN(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ReadDesc(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + void TestFix_EDNJJUN_4RWH2A(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession, CArrayFix& aArrayOfCharacterSetsAvailable); + void Test_DEF049749(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession, CArrayFix& aArrayOfCharacterSetsAvailable); + void Test_DEF053900(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession, CArrayFix& aArrayOfCharacterSetsAvailable); + + + }; + +_LIT(KTestStep_T_BUILTIN, "T_BUILTIN"); + +#endif //__T_BUILTIN_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_builtin.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_builtin.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_BUILTIN tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_BUILTIN \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_charconvpluginserver.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_charconvpluginserver.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,321 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include "t_charconvpluginserver.h" +#include "t_big5.h" +#include "t_cp949.h" +#include "t_autodetect.h" +#include "t_win1250.h" +#include "t_win1251.h" +#include "t_win1253.h" +#include "t_win1254.h" +#include "t_win1255.h" +#include "t_win1256.h" +#include "t_win1257.h" +#include "t_win1258.h" +#include "t_win874.h" +#include "t_ucs2.h" +#include "t_turkishsingle.h" +#include "t_turkishlockingsingle.h" +#include "t_turkishlocking.h" +#include "t_tis_620.h" +#include "t_spanishgsmsingle.h" +#include "t_snm.h" +#include "t_replacement.h" +#include "t_portugueselockingsingle.h" +#include "t_portugueselocking.h" +#include "t_portuguesesingle.h" +#include "t_iso8859x.h" +#include "t_iscii.h" +#include "t_gb2312.h" +#include "t_gbk.h" +#include "t_hz.h" +#include "t_extendedsms.h" +#include "t_koi8r.h" +#include "t_koi8u.h" +#include "t_gb18030.h" +#include "t_multi_plugins.h" +#include "t_generalforeign.h" +#include "t_jis.h" +#include "t_builtin.h" +#include "t_j5_kddiau.h" +#include "t_j5_docomo.h" +#include "t_eucjpdirectmap.h" +#include "t_shiftjisdirectmap.h" +#include "t_eucjp_packed.h" +#include "t_eucjp_packed_2.h" +#include "t_iso2022jp.h" +#include "t_iso2022jp_2.h" +#include "t_iso2022jp1_2.h" +#include "t_shiftjis_kddiau.h" +#include "t_shiftjis_docomo.h" + +/* Path to the script + +c:\z:\t_TEF\t_TEF_All.script + +*/ + +_LIT(KServerName,"t_charconvpluginserver"); + +CT_CharconvPluginsServer *CT_CharconvPluginsServer::NewL() + { + CT_CharconvPluginsServer * server = new (ELeave) CT_CharconvPluginsServer(); + CleanupStack::PushL(server); + server->StartL(KServerName); + CleanupStack::Pop(server); + return server; + } + + +LOCAL_C void MainL() + { +#if (defined __DATA_CAGING__) + RProcess().DataCaging(RProcess::EDataCagingOn); + RProcess().SecureApi(RProcess::ESecureApiOn); +#endif + CActiveScheduler* sched=NULL; + sched=new(ELeave) CActiveScheduler; + CActiveScheduler::Install(sched); + CT_CharconvPluginsServer *server = NULL; + TRAPD(err,server = CT_CharconvPluginsServer::NewL()); + if(!err) + { + // Sync with the client and enter the active scheduler + RProcess::Rendezvous(KErrNone); + sched->Start(); + } + delete server; + delete sched; + } + + +GLDEF_C TInt E32Main() + { + __UHEAP_MARK; + CTrapCleanup* cleanup = CTrapCleanup::New(); + if(cleanup == NULL) + { + return KErrNoMemory; + } + TRAPD(err,MainL()); + // This if statement is here just to shut up RVCT, which would otherwise warn + // that err was set but never used + if (err) + { + err = KErrNone; + } + delete cleanup; + __UHEAP_MARKEND; + return KErrNone; + } + +CTestStep *CT_CharconvPluginsServer::CreateTestStep(const TDesC& aStepName) + { + if(aStepName == KTestStep_T_BIG5) + { + return new CT_BIG5(); + } + else if(aStepName == KTestStep_T_CP949) + { + return new CT_CP949(); + } + else if(aStepName == KTestStep_T_AUTODETECT) + { + return new CT_AUTODETECT(); + } + + else if(aStepName == KTestStep_T_WIN1250) + { + return new CT_WIN1250(); + } + else if(aStepName == KTestStep_T_WIN1251) + { + return new CT_WIN1251(); + } + else if(aStepName == KTestStep_T_WIN1253) + { + return new CT_WIN1253(); + } + else if(aStepName == KTestStep_T_WIN1254) + { + return new CT_WIN1254(); + } + else if(aStepName == KTestStep_T_WIN1255) + { + return new CT_WIN1255(); + } + else if(aStepName == KTestStep_T_WIN1256) + { + return new CT_WIN1256(); + } + else if(aStepName == KTestStep_T_WIN1257) + { + return new CT_WIN1257(); + } + else if(aStepName == KTestStep_T_WIN1258) + { + return new CT_WIN1258(); + } + else if(aStepName == KTestStep_T_WIN874) + { + return new CT_WIN874(); + } + else if(aStepName == KTestStep_T_UCS2) + { + return new CT_UCS2(); + } + else if(aStepName == KTestStep_T_TURKISHSINGLE) + { + return new CT_TURKISHSINGLE(); + } + else if(aStepName == KTestStep_T_TURKISHLOCKINGSINGLE) + { + return new CT_TURKISHLOCKINGSINGLE(); + } + else if(aStepName == KTestStep_T_TURKISHLOCKING) + { + return new CT_TURKISHLOCKING(); + } + else if(aStepName == KTestStep_T_TIS_620) + { + return new CT_TIS_620(); + } + else if(aStepName == KTestStep_T_SPANISHGSMSINGLE) + { + return new CT_SPANISHGSMSINGLE(); + } + else if(aStepName == KTestStep_T_SNM) + { + return new CT_SNM(); + } + else if(aStepName == KTestStep_T_REPLACEMENT) + { + return new CT_REPLACEMENT(); + } + else if(aStepName == KTestStep_T_PORTUGUESELOCKINGSINGLE) + { + return new CT_PORTUGUESELOCKINGSINGLE(); + } + else if(aStepName == KTestStep_T_PORTUGUESELOCKING) + { + return new CT_PORTUGUESELOCKING(); + } + else if(aStepName == KTestStep_T_PORTUGUESESINGLE) + { + return new CT_PORTUGUESESINGLE(); + } + else if(aStepName == KTestStep_T_ISO8859X) + { + return new CT_ISO8859X(); + } + else if(aStepName == KTestStep_T_ISCII) + { + return new CT_ISCII(); + } + else if(aStepName == KTestStep_T_GB2312) + { + return new CT_GB2312(); + } + else if(aStepName == KTestStep_T_GBK) + { + return new CT_GBK(); + } + else if(aStepName == KTestStep_T_HZ) + { + return new CT_HZ(); + } + else if(aStepName == KTestStep_T_EXTENDEDSMS) + { + return new CT_EXTENDEDSMS(); + } + else if(aStepName == KTestStep_T_KOI8R) + { + return new CT_KOI8R(); + } + else if(aStepName == KTestStep_T_KOI8U) + { + return new CT_KOI8U(); + } + else if(aStepName == KTestStep_T_GB18030) + { + return new CT_GB18030(); + } + else if(aStepName == KTestStep_T_MULTI_PLUGINS) + { + return new CT_MULTI_PLUGINS(); + } + else if(aStepName == KTestStep_T_GENERALFOREIGN) + { + return new CT_GENERALFOREIGN(); + } + else if(aStepName == KTestStep_T_JIS) + { + return new CT_JIS(); + } + else if(aStepName == KTestStep_T_BUILTIN) + { + return new CT_BUILTIN(); + } + else if(aStepName == KTestStep_T_J5_KDDIAU) + { + return new CT_J5_KDDIAU(); + } + else if(aStepName == KTestStep_T_J5_DOCOMO) + { + return new CT_J5_DOCOMO(); + } + else if(aStepName == KTestStep_T_EUCJPDIRECTMAP) + { + return new CT_EUCJPDIRECTMAP(); + } + else if(aStepName == KTestStep_T_SHIFTJISDIRECTMAP) + { + return new CT_SHIFTJISDIRECTMAP(); + } + else if(aStepName == KTestStep_T_EUCJP_PACKED) + { + return new CT_EUCJP_PACKED(); + } + else if(aStepName == KTestStep_T_EUCJP_PACKED_2) + { + return new CT_EUCJP_PACKED_2(); + } + else if(aStepName == KTestStep_T_ISO2022JP) + { + return new CT_ISO2022JP(); + } + else if(aStepName == KTestStep_T_ISO2022JP_2) + { + return new CT_ISO2022JP_2(); + } + else if(aStepName == KTestStep_T_ISO2022JP1_2) + { + return new CT_ISO2022JP1_2(); + } + else if(aStepName == KTestStep_T_SHIFTJIS_KDDIAU) + { + return new CT_SHIFTJIS_KDDIAU(); + } + else if(aStepName == KTestStep_T_SHIFTJIS_DOCOMO) + { + return new CT_SHIFTJIS_DOCOMO(); + } + return NULL; + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_charconvpluginserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_charconvpluginserver.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_CHARCONVPLUGINSERVER_H__ +#define __T_CHARCONVPLUGINSERVER_H__ + +// Include Files + +#include + +class CT_CharconvPluginsServer : public CTestServer + { +public: + static CT_CharconvPluginsServer* NewL(); +//from CTestServer + virtual CTestStep* CreateTestStep(const TDesC& aStepName); + }; + +#endif // __T_CHARCONVPLUGINSERVER_H__ + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_cp949.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_cp949.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,147 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_cp949.h" + +// Local Functions +/////////////////////////////////////////////////////////////////////////////////////// +/* +Below four plugins all use cp949table.dll, and first three are same converter. +cp949 (code page 949) 0x200100FF +ksc5601 (Korean) 0x200113CD +EUCKR (EUC-KR) 0x2000E526 +iso2022kr (Korean) 0x20010101 + */ + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +const TInt KBufferLength=100; + +void CT_CP949::TestConversionToUnicodeFromCP949(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalCP949, TInt aExpectedResult) + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalCP949, state); + test(returnValue == aExpectedResult ); + test(generatedUnicode==aExpectedUnicode); + } + +void CT_CP949::TestConversionFromUnicodeToCP949(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, const TDesC8& aExpectedCP949, TInt aExpectedResult) + { + TBuf8 generatedCP949; + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedCP949, aOriginalUnicode); + test(returnValue == aExpectedResult); + test(generatedCP949==aExpectedCP949); + } + +void CT_CP949::TestConversion( CCnvCharacterSetConverter& aCharacterSetConverter ) +{ + TestConversionFromUnicodeToCP949(aCharacterSetConverter, _L16("\x0079"), _L8("\x79")); + TestConversionToUnicodeFromCP949(aCharacterSetConverter, _L16("\x0079"), _L8("\x79")); + + TestConversionFromUnicodeToCP949(aCharacterSetConverter, _L16("\xAC02"), _L8("\x81\x41")); + TestConversionToUnicodeFromCP949(aCharacterSetConverter, _L16("\xAC02"), _L8("\x81\x41")); +} + +void CT_CP949::TestConversionIso2022kr( CCnvCharacterSetConverter& aCharacterSetConverter ) +{ + TestConversionFromUnicodeToCP949(aCharacterSetConverter, _L16("\x0079"), _L8("\x1b\x24\x43\x0f\x79")); + TestConversionToUnicodeFromCP949(aCharacterSetConverter, _L16("\x0079"), _L8("\x1b\x24\x43\x0f\x79")); + + TestConversionFromUnicodeToCP949(aCharacterSetConverter, _L16("\xc7b8"), _L8("\x1b\x24\x43\x0e\x20\x0f\x41")); + TestConversionToUnicodeFromCP949(aCharacterSetConverter, _L16("\xc7b8\x0079"), _L8("\x1b\x24\x43\x0f\xa0\x41\x79")); + + TestConversionFromUnicodeToCP949(aCharacterSetConverter, _L16("\xAC02"), _L8("\x1b\x24\x43\x0f\x81\x41")); + TestConversionToUnicodeFromCP949(aCharacterSetConverter, _L16("\xAC02"), _L8("\x1b\x24\x43\x0f\x81\x41")); +} + +void CT_CP949::DoE32MainL() + { + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + CArrayFix* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + INFO_PRINTF1(_L("Testing CP949")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierCP949, *arrayOfCharacterSetsAvailable, fileServerSession); + TestConversion( *characterSetConverter ); + + INFO_PRINTF1(_L("Testing ksc5601")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierKsc5601, *arrayOfCharacterSetsAvailable, fileServerSession); + TestConversion( *characterSetConverter ); + + INFO_PRINTF1(_L("Testing EUCKR")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierEUCKR, *arrayOfCharacterSetsAvailable, fileServerSession); + TestConversion( *characterSetConverter ); + + INFO_PRINTF1(_L("Testing Iso2022kr")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022kr, *arrayOfCharacterSetsAvailable, fileServerSession); + TestConversionIso2022kr( *characterSetConverter ); + + CleanupStack::PopAndDestroy(3); + } + +CT_CP949::CT_CP949() + { + SetTestStepName(KTestStep_T_CP949); + } + +TVerdict CT_CP949::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_cp949.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_cp949.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_CP949_H__ +#define __T_CP949_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_CP949 : public CTestStep + { +public: + CT_CP949(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void TestConversionToUnicodeFromCP949(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalCP949, TInt aExpectedResult = 0); + void TestConversionFromUnicodeToCP949(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, const TDesC8& aExpectedCP949, TInt aExpectedResult = 0); + void TestConversion( CCnvCharacterSetConverter& aCharacterSetConverter ); + void TestConversionIso2022kr( CCnvCharacterSetConverter& aCharacterSetConverter ); + + }; + +_LIT(KTestStep_T_CP949, "T_CP949"); + +#endif //__T_CP949_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_cp949.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_cp949.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_CP949 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_CP949 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjp_packed.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjp_packed.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,309 @@ +/* +* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_eucjp_packed.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +const TInt KBufferLength=100; +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0535 +@SYMTestCaseDesc Tests for truncated conversion from Unicode to EucJpPacked +@SYMTestPriority Medium +@SYMTestActions Tests for truncated conversion from Unicode to EucJpPacked and back to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_EUCJP_PACKED::TestTruncatedConversionFromUnicodeToEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0535 ")); + for (TInt i=aOriginalUnicode.Length(); i>=0; --i) + { + TBuf8 generatedEucJpPacked; + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedEucJpPacked, aOriginalUnicode.Left(i)); + test(returnValue>=0); + TBuf8 generatedsecondPartOfEucJpPacked; + test(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfEucJpPacked, aOriginalUnicode.Mid(i-returnValue))==0); + generatedEucJpPacked.Append(generatedsecondPartOfEucJpPacked); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedEucJpPacked, state)==0); + test(generatedUnicode==aOriginalUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0536 +@SYMTestCaseDesc Splitting and converting from Unicode to EucJpPacked test +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting, from Unicode to EucJpPacked and back to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_EUCJP_PACKED::TestSplittingConvertingFromUnicodeToEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfEucJpPacked, const TDesC8& aExpectedEucJpPacked, const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0536 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint8 eucJpPackedBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr8 generatedFirstPartOfEucJpPacked(eucJpPackedBuffer, i); + test(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfEucJpPacked, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); + test(generatedFirstPartOfEucJpPacked==aExpectedEucJpPacked.Left(aExpectedLengthOfFirstPartOfEucJpPacked)); + TBuf8 generatedSecondPartOfEucJpPacked; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfEucJpPacked, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); + test(generatedSecondPartOfEucJpPacked==aExpectedEucJpPacked.Mid(aExpectedLengthOfFirstPartOfEucJpPacked)); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfEucJpPacked, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfEucJpPacked, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + generatedUnicode.Append(generatedSecondPartOfUnicode); + test(generatedUnicode==aOriginalUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0537 +@SYMTestCaseDesc Tests for truncated conversion from EucJpPacked to Unicode +@SYMTestPriority Medium +@SYMTestActions Tests for truncated conversion from EucJpPacked to Unicode and back to EucJpPacked +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_EUCJP_PACKED::TestTruncatedConversionToUnicodeFromEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpPacked) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0537 ")); + for (TInt i=aOriginalEucJpPacked.Length(); i>=3; --i) // 3 is the length of GBK's longest multi-byte characters + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalEucJpPacked.Left(i), state); + test(returnValue>=0); + TBuf16 generatedsecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalEucJpPacked.Mid(i-returnValue), state)==0); + generatedUnicode.Append(generatedsecondPartOfUnicode); + test(generatedUnicode==aExpectedUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0538 +@SYMTestCaseDesc Splitting and converting from EucJpPacked to Unicode test +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting, from EucJpPacked to Unicode and back to EucJpPacked +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_EUCJP_PACKED::TestSplittingConvertingToUnicodeFromEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfEucJpPackedBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpPacked) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0538 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint16 unicodeBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalEucJpPacked, state)==aExpectedNumberOfEucJpPackedBytesNotConvertedAtSplit); + test(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalEucJpPacked.Right(aExpectedNumberOfEucJpPackedBytesNotConvertedAtSplit), state)==0); + test(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf8 generatedEucJpPacked; + test(aCharacterSetConverter.ConvertFromUnicode(generatedEucJpPacked, generatedFirstPartOfUnicode)==0); + TBuf8 generatedSecondPartOfEucJpPacked; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfEucJpPacked, generatedSecondPartOfUnicode)==0); + generatedEucJpPacked.Append(generatedSecondPartOfEucJpPacked); + test(generatedEucJpPacked==aOriginalEucJpPacked); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0539 +@SYMTestCaseDesc Conversion of bad EucJpPacked format to Unicode test +@SYMTestPriority Medium +@SYMTestActions Tests to convert Ill formed EucJpPacked input to Unicode. +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_EUCJP_PACKED::TestIsIllFormedEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aEucJpPacked) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0539 ")); + TBuf16<50> generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + TPtrC8 remainderOfEucJpPacked(aEucJpPacked); + TInt lastReturnValue=KMaxTInt; + FOREVER + { + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfEucJpPacked, state); + if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) + { + break; + } + test(returnValue>0); + test(returnValue* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + TInt i; + for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0540 Testing EUC-JP (packed) conversions ")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierEucJpPacked, *arrayOfCharacterSetsAvailable, fileServerSession); + // + INFO_PRINTF1(_L("Empty descriptor")); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 0, 10, 0, 0, KNullDesC8, KNullDesC16); + TestSplittingConvertingToUnicodeFromEucJpPacked(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); + INFO_PRINTF1(_L("Testing converting to EUC-JP (packed)")); + TBuf16<50> originalUnicode; + originalUnicode.Format(_L16("Some %c%c%c%c%c%c"), 0xff9a, 0xff70, 0x6f22, 0x5b57, 0x5379, 0x5dce); + const TPtrC8 expectedEucJpPacked(_S8("Some \x8e\xda\x8e\xb0\xb4\xc1\xbb\xfa\x8f\xb4\xc1\x8f\xbb\xfa")); + TestTruncatedConversionFromUnicodeToEucJpPacked(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 0, 0, 11, 0, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 1, 1, 10, 1, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 2, 2, 9, 2, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 3, 3, 8, 3, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 4, 4, 7, 4, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 5, 6, 6, 5, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 7, 8, 5, 7, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 9, 10, 4, 9, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 11, 12, 3, 11, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 13, 15, 2, 13, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 16, 18, 1, 16, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 19, 30, 0, 19, expectedEucJpPacked, originalUnicode); + INFO_PRINTF1(_L("Testing converting to Unicode")); + const TPtrC8 originalEucJpPacked(_S8("pool\xbe\xae\xc3\xd3\x8e\xcc\x8e\xdf\x8e\xd9\x8f\xc0\xcd\x8f\xc8\xc5pool\x8e\xcc\x8e\xdf\x8e\xd9\xbe\xae\xc3\xd3\x8f\xc0\xcd\x8f\xc8\xc5\xbe\xae\xc3\xd3pool\x8f\xc0\xcd\x8f\xc8\xc5\x8e\xcc\x8e\xdf\x8e\xd9pool")); + TBuf16<50> expectedUnicode; + expectedUnicode.Format(_L16("pool%c%c%c%c%c%c%cpool%c%c%c%c%c%c%c%c%cpool%c%c%c%c%cpool"), 0x5c0f, 0x6c60, 0xff8c, 0xff9f, 0xff99, 0x641e, 0x6f0d, 0xff8c, 0xff9f, 0xff99, 0x5c0f, 0x6c60, 0x641e, 0x6f0d, 0x5c0f, 0x6c60, 0x641e, 0x6f0d, 0xff8c, 0xff9f, 0xff99); + TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode, originalEucJpPacked); + TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode.Mid(4, 2), originalEucJpPacked.Mid(4, 4)); + TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode.Mid(6, 3), originalEucJpPacked.Mid(8, 6)); + TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode.Mid(9, 2), originalEucJpPacked.Mid(14, 6)); + static const TInt numberOfCharactersInEachHomogeneousRun[13]={4, 2, 3, 2, 4, 3, 2, 2, 2, 4, 2, 3, 4}; + static const TInt numberOfBytesPerCharacterInEachHomogeneousRun[13]={1, 2, 2, 3, 1, 2, 2, 3, 2, 1, 3, 2, 1}; + TInt e=64; + TInt u=0; + for (i=0; i<13; ++i) + { + TInt j; + for (j=0; j +#include + +class CT_EUCJP_PACKED : public CTestStep + { +public: + CT_EUCJP_PACKED(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void TestTruncatedConversionFromUnicodeToEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode); + void TestSplittingConvertingFromUnicodeToEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfEucJpPacked, const TDesC8& aExpectedEucJpPacked, const TDesC16& aOriginalUnicode); + void TestTruncatedConversionToUnicodeFromEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpPacked); + void TestSplittingConvertingToUnicodeFromEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfEucJpPackedBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpPacked); + void TestIsIllFormedEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aEucJpPacked); + + + + + }; + +_LIT(KTestStep_T_EUCJP_PACKED, "T_EUCJP_PACKED"); + +#endif //__T_EUCJP_PACKED_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjp_packed.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjp_packed.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_EUCJP_PACKED tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_EUCJP_PACKED \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjp_packed_2.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjp_packed_2.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,321 @@ +/* +* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include +#include +#include +#include +#include "t_eucjp_packed_2.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +// this is the test plug implementation ID in rather than KCharacterSetIdentifierEucJpPacked +const TUint KCharacterSetTestEucjpPacked_2=0x01000005; + +const TInt KBufferLength=100; +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0535 +@SYMTestCaseDesc Tests for truncated conversion from Unicode to EucJpPacked +@SYMTestPriority Medium +@SYMTestActions Tests for truncated conversion from Unicode to EucJpPacked and back to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_EUCJP_PACKED_2::TestTruncatedConversionFromUnicodeToEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0535 ")); + for (TInt i=aOriginalUnicode.Length(); i>=0; --i) + { + TBuf8 generatedEucJpPacked; + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedEucJpPacked, aOriginalUnicode.Left(i)); + test(returnValue>=0); + TBuf8 generatedsecondPartOfEucJpPacked; + test(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfEucJpPacked, aOriginalUnicode.Mid(i-returnValue))==0); + generatedEucJpPacked.Append(generatedsecondPartOfEucJpPacked); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedEucJpPacked, state)==0); + test(generatedUnicode==aOriginalUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0536 +@SYMTestCaseDesc Splitting and converting from Unicode to EucJpPacked test +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting, from Unicode to EucJpPacked and back to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_EUCJP_PACKED_2::TestSplittingConvertingFromUnicodeToEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfEucJpPacked, const TDesC8& aExpectedEucJpPacked, const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0536 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint8 eucJpPackedBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr8 generatedFirstPartOfEucJpPacked(eucJpPackedBuffer, i); + test(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfEucJpPacked, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); + test(generatedFirstPartOfEucJpPacked==aExpectedEucJpPacked.Left(aExpectedLengthOfFirstPartOfEucJpPacked)); + TBuf8 generatedSecondPartOfEucJpPacked; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfEucJpPacked, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); + test(generatedSecondPartOfEucJpPacked==aExpectedEucJpPacked.Mid(aExpectedLengthOfFirstPartOfEucJpPacked)); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfEucJpPacked, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfEucJpPacked, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + generatedUnicode.Append(generatedSecondPartOfUnicode); + test(generatedUnicode==aOriginalUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0537 +@SYMTestCaseDesc Tests for truncated conversion from EucJpPacked to Unicode +@SYMTestPriority Medium +@SYMTestActions Tests for truncated conversion from EucJpPacked to Unicode and back to EucJpPacked +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_EUCJP_PACKED_2::TestTruncatedConversionToUnicodeFromEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpPacked) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0537 ")); + for (TInt i=aOriginalEucJpPacked.Length(); i>=3; --i) // 3 is the length of GBK's longest multi-byte characters + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalEucJpPacked.Left(i), state); + test(returnValue>=0); + TBuf16 generatedsecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalEucJpPacked.Mid(i-returnValue), state)==0); + generatedUnicode.Append(generatedsecondPartOfUnicode); + test(generatedUnicode==aExpectedUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0538 +@SYMTestCaseDesc Splitting and converting from EucJpPacked to Unicode test +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting, from EucJpPacked to Unicode and back to EucJpPacked +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_EUCJP_PACKED_2::TestSplittingConvertingToUnicodeFromEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfEucJpPackedBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpPacked) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0538 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint16 unicodeBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalEucJpPacked, state)==aExpectedNumberOfEucJpPackedBytesNotConvertedAtSplit); + test(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalEucJpPacked.Right(aExpectedNumberOfEucJpPackedBytesNotConvertedAtSplit), state)==0); + test(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf8 generatedEucJpPacked; + test(aCharacterSetConverter.ConvertFromUnicode(generatedEucJpPacked, generatedFirstPartOfUnicode)==0); + TBuf8 generatedSecondPartOfEucJpPacked; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfEucJpPacked, generatedSecondPartOfUnicode)==0); + generatedEucJpPacked.Append(generatedSecondPartOfEucJpPacked); + test(generatedEucJpPacked==aOriginalEucJpPacked); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0539 +@SYMTestCaseDesc Conversion of bad EucJpPacked format to Unicode test +@SYMTestPriority Medium +@SYMTestActions Tests to convert Ill formed EucJpPacked input to Unicode. +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_EUCJP_PACKED_2::TestIsIllFormedEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aEucJpPacked) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0539 ")); + TBuf16<50> generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + TPtrC8 remainderOfEucJpPacked(aEucJpPacked); + TInt lastReturnValue=KMaxTInt; + FOREVER + { + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfEucJpPacked, state); + if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) + { + break; + } + test(returnValue>0); + test(returnValue* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + TInt i; + for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0540 Testing EUC-JP (packed) conversions ")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetTestEucjpPacked_2, *arrayOfCharacterSetsAvailable, fileServerSession); + // + INFO_PRINTF1(_L("Empty descriptor")); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 0, 10, 0, 0, KNullDesC8, KNullDesC16); + TestSplittingConvertingToUnicodeFromEucJpPacked(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); + INFO_PRINTF1(_L("Testing converting to EUC-JP (packed)")); + TBuf16<50> originalUnicode; + originalUnicode.Format(_L16("Some %c%c%c%c%c%c"), 0xff9a, 0xff70, 0x6f22, 0x5b57, 0x5379, 0x5dce); + const TPtrC8 expectedEucJpPacked(_S8("Some \x8e\xda\x8e\xb0\xb4\xc1\xbb\xfa\x8f\xb4\xc1\x8f\xbb\xfa")); + TestTruncatedConversionFromUnicodeToEucJpPacked(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 0, 0, 11, 0, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 1, 1, 10, 1, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 2, 2, 9, 2, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 3, 3, 8, 3, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 4, 4, 7, 4, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 5, 6, 6, 5, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 7, 8, 5, 7, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 9, 10, 4, 9, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 11, 12, 3, 11, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 13, 15, 2, 13, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 16, 18, 1, 16, expectedEucJpPacked, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 19, 30, 0, 19, expectedEucJpPacked, originalUnicode); + INFO_PRINTF1(_L("Testing converting to Unicode")); + const TPtrC8 originalEucJpPacked(_S8("pool\xbe\xae\xc3\xd3\x8e\xcc\x8e\xdf\x8e\xd9\x8f\xc0\xcd\x8f\xc8\xc5pool\x8e\xcc\x8e\xdf\x8e\xd9\xbe\xae\xc3\xd3\x8f\xc0\xcd\x8f\xc8\xc5\xbe\xae\xc3\xd3pool\x8f\xc0\xcd\x8f\xc8\xc5\x8e\xcc\x8e\xdf\x8e\xd9pool")); + TBuf16<50> expectedUnicode; + expectedUnicode.Format(_L16("pool%c%c%c%c%c%c%cpool%c%c%c%c%c%c%c%c%cpool%c%c%c%c%cpool"), 0x5c0f, 0x6c60, 0xff8c, 0xff9f, 0xff99, 0x641e, 0x6f0d, 0xff8c, 0xff9f, 0xff99, 0x5c0f, 0x6c60, 0x641e, 0x6f0d, 0x5c0f, 0x6c60, 0x641e, 0x6f0d, 0xff8c, 0xff9f, 0xff99); + TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode, originalEucJpPacked); + TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode.Mid(4, 2), originalEucJpPacked.Mid(4, 4)); + TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode.Mid(6, 3), originalEucJpPacked.Mid(8, 6)); + TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode.Mid(9, 2), originalEucJpPacked.Mid(14, 6)); + static const TInt numberOfCharactersInEachHomogeneousRun[13]={4, 2, 3, 2, 4, 3, 2, 2, 2, 4, 2, 3, 4}; + static const TInt numberOfBytesPerCharacterInEachHomogeneousRun[13]={1, 2, 2, 3, 1, 2, 2, 3, 2, 1, 3, 2, 1}; + TInt e=64; + TInt u=0; + for (i=0; i<13; ++i) + { + TInt j; + for (j=0; j expectedUnicodeBackSlash; + expectedUnicodeBackSlash.Format(_L16("pool%c"), 0x005c); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicodeBackSlash; + test(characterSetConverter->ConvertToUnicode(generatedUnicodeBackSlash, originalEucJpPackedYen, state) == 0); + test(generatedUnicodeBackSlash==expectedUnicodeBackSlash); + + CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +CT_EUCJP_PACKED_2::CT_EUCJP_PACKED_2() + { + SetTestStepName(KTestStep_T_EUCJP_PACKED_2); + } + +TVerdict CT_EUCJP_PACKED_2::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjp_packed_2.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjp_packed_2.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,45 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_EUCJP_PACKED_2_H__ +#define __T_EUCJP_PACKED_2_H__ + +//#include +#include + +class CT_EUCJP_PACKED_2 : public CTestStep + { +public: + CT_EUCJP_PACKED_2(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void TestTruncatedConversionFromUnicodeToEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode); + void TestSplittingConvertingFromUnicodeToEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfEucJpPacked, const TDesC8& aExpectedEucJpPacked, const TDesC16& aOriginalUnicode); + void TestTruncatedConversionToUnicodeFromEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpPacked); + void TestSplittingConvertingToUnicodeFromEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfEucJpPackedBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpPacked); + void TestIsIllFormedEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aEucJpPacked); + + + + + }; + +_LIT(KTestStep_T_EUCJP_PACKED_2, "T_EUCJP_PACKED_2"); + +#endif //__T_EUCJP_PACKED_2_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjp_packed_2.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjp_packed_2.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_EUCJP_PACKED_2 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_EUCJP_PACKED_2 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjpdirectmap.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjpdirectmap.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,270 @@ +/* +* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include +#include +#include +#include +#include "t_eucjpdirectmap.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +const TInt KBufferLength=100; + +void CT_EUCJPDIRECTMAP::TestTruncatedConversionFromUnicodeToEucJpDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) + { + for (TInt i=aOriginalUnicode.Length(); i>=0; --i) + { + TBuf8 generatedEucJpDirectmap; + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedEucJpDirectmap, aOriginalUnicode.Left(i)); + test(returnValue>=0); + TBuf8 generatedsecondPartOfEucJpDirectmap; + test(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfEucJpDirectmap, aOriginalUnicode.Mid(i-returnValue))==0); + generatedEucJpDirectmap.Append(generatedsecondPartOfEucJpDirectmap); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedEucJpDirectmap, state)==0); + test(generatedUnicode==aOriginalUnicode); + } + } + +void CT_EUCJPDIRECTMAP::TestSplittingConvertingFromUnicodeToEucJpDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfEucJpDirectmap, const TDesC8& aExpectedEucJpDirectmap, const TDesC16& aOriginalUnicode) + { + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint8 eucJpDirectmapBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr8 generatedFirstPartOfEucJpDirectmap(eucJpDirectmapBuffer, i); + test(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfEucJpDirectmap, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); + test(generatedFirstPartOfEucJpDirectmap==aExpectedEucJpDirectmap.Left(aExpectedLengthOfFirstPartOfEucJpDirectmap)); + TBuf8 generatedSecondPartOfEucJpDirectmap; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfEucJpDirectmap, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); + test(generatedSecondPartOfEucJpDirectmap==aExpectedEucJpDirectmap.Mid(aExpectedLengthOfFirstPartOfEucJpDirectmap)); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfEucJpDirectmap, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfEucJpDirectmap, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + generatedUnicode.Append(generatedSecondPartOfUnicode); + test(generatedUnicode==aOriginalUnicode); + } + } + +void CT_EUCJPDIRECTMAP::TestTruncatedConversionToUnicodeFromEucJpDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpDirectmap) + { + for (TInt i=aOriginalEucJpDirectmap.Length(); i>=3; --i) + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalEucJpDirectmap.Left(i), state); + test(returnValue>=0); + TBuf16 generatedsecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalEucJpDirectmap.Mid(i-returnValue), state)==0); + generatedUnicode.Append(generatedsecondPartOfUnicode); + test(generatedUnicode==aExpectedUnicode); + } + } + +void CT_EUCJPDIRECTMAP::TestSplittingConvertingToUnicodeFromEucJpDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfEucJpDirectmapBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpDirectmap) + { + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint16 unicodeBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalEucJpDirectmap, state)==aExpectedNumberOfEucJpDirectmapBytesNotConvertedAtSplit); + test(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalEucJpDirectmap.Right(aExpectedNumberOfEucJpDirectmapBytesNotConvertedAtSplit), state)==0); + test(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf8 generatedEucJpDirectmap; + test(aCharacterSetConverter.ConvertFromUnicode(generatedEucJpDirectmap, generatedFirstPartOfUnicode)==0); + TBuf8 generatedSecondPartOfEucJpDirectmap; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfEucJpDirectmap, generatedSecondPartOfUnicode)==0); + generatedEucJpDirectmap.Append(generatedSecondPartOfEucJpDirectmap); + test(generatedEucJpDirectmap==aOriginalEucJpDirectmap); + } + } + +void CT_EUCJPDIRECTMAP::TestIsIllFormedEucJpDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aEucJpDirectmap) + { + TBuf16<50> generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + TPtrC8 remainderOfEucJpDirectmap(aEucJpDirectmap); + TInt lastReturnValue=KMaxTInt; + FOREVER + { + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfEucJpDirectmap, state); + if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) + { + break; + } + test(returnValue>0); + test(returnValue* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + TInt i; + for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + INFO_PRINTF1(_L("Testing EUC-JP (DirectMap) conversions ")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierEucJpDirectmap, *arrayOfCharacterSetsAvailable, fileServerSession); + // + INFO_PRINTF1(_L("Empty descriptor")); + TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 0, 10, 0, 0, KNullDesC8, KNullDesC16); + TestSplittingConvertingToUnicodeFromEucJpDirectmap(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); + INFO_PRINTF1(_L("Testing converting to EUC-JP (DirectMap)")); + TBuf16<50> originalUnicode; + originalUnicode.Format(_L16("Some %c%c%c%c%c%c"), 0xff9a, 0xff70, 0x6f22, 0x5b57, 0x5379, 0x5dce); + const TPtrC8 expectedEucJpDirectmap(_S8("Some \x8e\xda\x8e\xb0\xb4\xc1\xbb\xfa\x8f\xb4\xc1\x8f\xbb\xfa")); + TestTruncatedConversionFromUnicodeToEucJpDirectmap(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 0, 0, 11, 0, expectedEucJpDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 1, 1, 10, 1, expectedEucJpDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 2, 2, 9, 2, expectedEucJpDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 3, 3, 8, 3, expectedEucJpDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 4, 4, 7, 4, expectedEucJpDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 5, 6, 6, 5, expectedEucJpDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 7, 8, 5, 7, expectedEucJpDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 9, 10, 4, 9, expectedEucJpDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 11, 12, 3, 11, expectedEucJpDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 13, 15, 2, 13, expectedEucJpDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 16, 18, 1, 16, expectedEucJpDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 19, 30, 0, 19, expectedEucJpDirectmap, originalUnicode); + INFO_PRINTF1(_L("Testing converting to Unicode")); + const TPtrC8 originalEucJpDirectmap(_S8("pool\xbe\xae\xc3\xd3\x8e\xcc\x8e\xdf\x8e\xd9\x8f\xc0\xcd\x8f\xc8\xc5pool\x8e\xcc\x8e\xdf\x8e\xd9\xbe\xae\xc3\xd3\x8f\xc0\xcd\x8f\xc8\xc5\xbe\xae\xc3\xd3pool\x8f\xc0\xcd\x8f\xc8\xc5\x8e\xcc\x8e\xdf\x8e\xd9pool")); + TBuf16<50> expectedUnicode; + expectedUnicode.Format(_L16("pool%c%c%c%c%c%c%cpool%c%c%c%c%c%c%c%c%cpool%c%c%c%c%cpool"), 0x5c0f, 0x6c60, 0xff8c, 0xff9f, 0xff99, 0x641e, 0x6f0d, 0xff8c, 0xff9f, 0xff99, 0x5c0f, 0x6c60, 0x641e, 0x6f0d, 0x5c0f, 0x6c60, 0x641e, 0x6f0d, 0xff8c, 0xff9f, 0xff99); + TestTruncatedConversionToUnicodeFromEucJpDirectmap(*characterSetConverter, expectedUnicode, originalEucJpDirectmap); + TestTruncatedConversionToUnicodeFromEucJpDirectmap(*characterSetConverter, expectedUnicode.Mid(4, 2), originalEucJpDirectmap.Mid(4, 4)); + TestTruncatedConversionToUnicodeFromEucJpDirectmap(*characterSetConverter, expectedUnicode.Mid(6, 3), originalEucJpDirectmap.Mid(8, 6)); + TestTruncatedConversionToUnicodeFromEucJpDirectmap(*characterSetConverter, expectedUnicode.Mid(9, 2), originalEucJpDirectmap.Mid(14, 6)); + static const TInt numberOfCharactersInEachHomogeneousRun[13]={4, 2, 3, 2, 4, 3, 2, 2, 2, 4, 2, 3, 4}; + static const TInt numberOfBytesPerCharacterInEachHomogeneousRun[13]={1, 2, 2, 3, 1, 2, 2, 3, 2, 1, 3, 2, 1}; + TInt e=64; + TInt u=0; + for (i=0; i<13; ++i) + { + TInt j; + for (j=0; j expectedUnicodeBackSlash; + expectedUnicodeBackSlash.Format(_L16("pool%c"), 0x005c); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicodeBackSlash; + test(characterSetConverter->ConvertToUnicode(generatedUnicodeBackSlash, originalEucJpDirectmapYen, state) == 0); + test(generatedUnicodeBackSlash==expectedUnicodeBackSlash); + + CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +CT_EUCJPDIRECTMAP::CT_EUCJPDIRECTMAP() + { + SetTestStepName(KTestStep_T_EUCJPDIRECTMAP); + } + +TVerdict CT_EUCJPDIRECTMAP::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjpdirectmap.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjpdirectmap.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,43 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_EUCJPDIRECTMAPS_H__ +#define __T_EUCJPDIRECTMAP_H__ + +//#include +#include + +class CT_EUCJPDIRECTMAP : public CTestStep + { +public: + CT_EUCJPDIRECTMAP(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void TestIsIllFormedEucJpDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aEucJpDirectmap); + void TestSplittingConvertingToUnicodeFromEucJpDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfEucJpDirectmapBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpDirectmap); + void TestTruncatedConversionToUnicodeFromEucJpDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpDirectmap); + void TestSplittingConvertingFromUnicodeToEucJpDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfEucJpDirectmap, const TDesC8& aExpectedEucJpDirectmap, const TDesC16& aOriginalUnicode); + void TestTruncatedConversionFromUnicodeToEucJpDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode); + + + }; + +_LIT(KTestStep_T_EUCJPDIRECTMAP, "T_EUCJPDIRECTMAP"); + +#endif //__T_EUCJPDIRECTMAP_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjpdirectmap.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_eucjpdirectmap.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_EUCJPDIRECTMAP tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_EUCJPDIRECTMAP \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_extendedsms.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_extendedsms.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,239 @@ +/* +* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_extendedsms.h" + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\extendedsms_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\extendedsms_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\extendedsms_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\extendedsms_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\extendedsms_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\extendedsms_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\extendedsms_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\extendedsms_for_expect.dat"); +#endif + +static CCnvCharacterSetConverter* characterSetConverter; +static RFs fileServerSession; +static TBuf8<1254> temp; +static TBuf16<627> originalUnicode; +static TBuf8<627> generatedForeign; +static TBuf16<627> generatedUnicode; + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +//read test data from file +void CT_EXTENDEDSMS::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +//translate from unicode big endian TDesC8 to TDes16 +void CT_EXTENDEDSMS::Unicode_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4003 Available Converters\n ")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4004 +@SYMTestCaseDesc Testcase to test new converter name can be prepared for converting +@SYMTestPriority High +@SYMTestActions Test for PrepareToConvertToOrFromL() +@SYMTestExpectedResults The test passed, If EAvailable is returned +@SYMPREQ PREQ2090 +@SYMREQ REQ10364 +*/ +void CT_EXTENDEDSMS::PrepareNewConverterL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4004 Preparing the new converter ")); + CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierExtendedSms7Bit, fileServerSession); + test( CCnvCharacterSetConverter::EAvailable == avaible ); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4005 +@SYMTestCaseDesc Convert Unicode code to foreign character set +@SYMTestPriority High +@SYMTestActions Test for ConvertFromUnicode() +@SYMTestExpectedResults Test is passed if the generated cod and Expected code is same +@SYMPREQ PREQ2090 +@SYMREQ REQ10364 +*/ +void CT_EXTENDEDSMS::ConvertFromUnicodeToForeignL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4005 Encoding from Unicode to Foreign ")); + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Unicode_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4006 +@SYMTestCaseDesc Convert foreign character set to Unicode code +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F +@SYMTestExpectedResults Test is passed if contents of generatedUnicode buffer with OriginalUnicode buffer are same. +@SYMPREQ PREQ2090 +@SYMREQ REQ10364 +*/ +void CT_EXTENDEDSMS::ConvertFromForeignToUnicodeL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4006 Encoding from Foreign to Unicode ")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Unicode_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4007 +@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF +@SYMTestExpectedResults The test is passed if generated code is same as expected code +@SYMPREQ PREQ2090 +@SYMREQ REQ10364 +*/ +void CT_EXTENDEDSMS::ConvertOutOfRangeForeignCharacters() + { + //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4007 Testing Characters not in the Scope ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x81; + TInt state=CCnvCharacterSetConverter::KStateDefault; + _LIT16(KExpected2, "\xfffd"); //the expected foreign + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + test( generatedUnicode == KExpected2 ); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4008 +@SYMTestCaseDesc Convert illegal character from foreign character set to unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B +@SYMTestExpectedResults Test is passed if KErrCorrupt is returned +@SYMPREQ PREQ2090 +@SYMREQ REQ10364 +*/ +void CT_EXTENDEDSMS::ConvertIllegalForeignCharacter() + { + //test 0x1b + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4008 Testing EErrorIllFormedInput ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x1b; //the escape character + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( KErrCorrupt == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + } + +void CT_EXTENDEDSMS::DoE32MainL() + { + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + characterSetConverter=CCnvCharacterSetConverter::NewLC(); + + ListAlltheConvertersL(); + PrepareNewConverterL(); + ConvertFromUnicodeToForeignL(); + ConvertFromForeignToUnicodeL(); + ConvertOutOfRangeForeignCharacters(); + ConvertIllegalForeignCharacter(); + + CleanupStack::PopAndDestroy(2); + } + +CT_EXTENDEDSMS::CT_EXTENDEDSMS() + { + SetTestStepName(KTestStep_T_EXTENDEDSMS); + } + +TVerdict CT_EXTENDEDSMS::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_extendedsms.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_extendedsms.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_EXTENDEDSMS_H__ +#define __T_EXTENDEDSMS_H__ + +//#include +#include + +class CT_EXTENDEDSMS : public CTestStep + { +public: + CT_EXTENDEDSMS(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ConvertOutOfRangeForeignCharacters(); + void ConvertIllegalForeignCharacter(); + void ConvertFromForeignToUnicodeL(); + void ConvertFromUnicodeToForeignL(); + void PrepareNewConverterL(); + void ListAlltheConvertersL(); + void Unicode_Big(TDesC8& aSource, TDes16& aTarget); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + }; + +_LIT(KTestStep_T_EXTENDEDSMS, "T_EXTENDEDSMS"); + +#endif //__T_EXTENDEDSMS_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_extendedsms.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_extendedsms.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_EXTENDEDSMS tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_EXTENDEDSMS \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_gb18030.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_gb18030.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,723 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_gb18030.h" +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +const TInt KMibValue = 114; +const TInt KBufferLength=100; + +void CT_GB18030::TestTruncatedConversionFromUnicodeToGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) + { + for (TInt i=aOriginalUnicode.Length(); i>=0; --i) + { + TBuf8 generatedGb18030; + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedGb18030, aOriginalUnicode.Left(i)); + test(returnValue>=0); + TBuf8 generatedsecondPartOfGb18030; + test(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfGb18030, aOriginalUnicode.Mid(i-returnValue))==0); + generatedGb18030.Append(generatedsecondPartOfGb18030); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedGb18030, state)==0); + test(generatedUnicode==aOriginalUnicode); + } + } + +void CT_GB18030::TestSplittingConvertingFromUnicodeToGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, + TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfGb18030, + const TDesC8& aExpectedGb18030, const TDesC16& aOriginalUnicode) + { + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint8 gb18030Buffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr8 generatedFirstPartOfGb18030(gb18030Buffer, i); + test(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfGb18030, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); + test(generatedFirstPartOfGb18030==aExpectedGb18030.Left(aExpectedLengthOfFirstPartOfGb18030)); + TBuf8 generatedSecondPartOfGb18030; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfGb18030, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); + test(generatedSecondPartOfGb18030==aExpectedGb18030.Mid(aExpectedLengthOfFirstPartOfGb18030)); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfGb18030, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfGb18030, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + generatedUnicode.Append(generatedSecondPartOfUnicode); + test(generatedUnicode==aOriginalUnicode); + } + } + +void CT_GB18030::TestTruncatedConversionToUnicodeFromGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalGb18030) + { + for (TInt i=aOriginalGb18030.Length(); i>=4; --i) // 4 is the length of GB18030's longest multi-byte characters + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalGb18030.Left(i), state); + test(returnValue>=0); + TBuf16 generatedsecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalGb18030.Mid(i-returnValue), state)==0); + generatedUnicode.Append(generatedsecondPartOfUnicode); + test(generatedUnicode==aExpectedUnicode); + } + } + +void CT_GB18030::TestSplittingConvertingToUnicodeFromGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, + + TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfGb18030BytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, + const TDesC16& aExpectedUnicode, const TDesC8& aOriginalGb18030) + { + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint16 unicodeBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalGb18030, state)==aExpectedNumberOfGb18030BytesNotConvertedAtSplit); + test(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalGb18030.Right(aExpectedNumberOfGb18030BytesNotConvertedAtSplit), state)==0); + test(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf8 generatedGb18030; + test(aCharacterSetConverter.ConvertFromUnicode(generatedGb18030, generatedFirstPartOfUnicode)==0); + TBuf8 generatedSecondPartOfGb18030; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfGb18030, generatedSecondPartOfUnicode)==0); + generatedGb18030.Append(generatedSecondPartOfGb18030); + test(generatedGb18030==aOriginalGb18030); + } + } + + +void CT_GB18030::CharacterSetValueAndMIBTests(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession) +{ + // check that the character set value of '114' is converted to the GB18030 UID (0x10287038) + test(aCharacterSetConverter.ConvertMibEnumOfCharacterSetToIdentifierL(KMibValue,aFileServerSession)==KCharacterSetIdentifierGb18030); + INFO_PRINTF1(_L("\nMIB->Char Set UID - OK")); + + // check that the UCS2 GUID (0x10287038) is converted to the character set value of '114' + test(aCharacterSetConverter.ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierGb18030,aFileServerSession)==KMibValue); + INFO_PRINTF1(_L("\nChar Set UID->MIB - OK")); +} + + +/** +*/ +void CT_GB18030::TestConversionToUnicodeFromGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalGb18030, TInt aExpectedResult) + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalGb18030, state); + test(returnValue == aExpectedResult ); + test(generatedUnicode==aExpectedUnicode); + } + + +/** +*/ +void CT_GB18030::TestConversionFromUnicodeToGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, TInt aExpectedResult) + { + TBuf8 generatedGb18030; + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedGb18030, aOriginalUnicode); + test(returnValue == aExpectedResult); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedGb18030, state)==0); + test(generatedUnicode==aOriginalUnicode); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-CT-4051 +@SYMTestCaseDesc Check GB18030 plugin support conversion between one byte GB18030 character and Unicode +@SYMTestPriority High +@SYMTestActions 1. Select characters from one-byte character set of GB2312-80 + 2. Pass it to charconv and convert it to Unicode + 3. Pass the above Unicode to charconv and convert it to GB18030 +@SYMTestExpectedResults Conversion is successful, and the returned Unicode/GB18030 is as defined +@SYMREQ REQ12065 PREQ12066 +*/ + +void CT_GB18030::OneByteConversion( CCnvCharacterSetConverter& aCharacterSetConverter ) +{ + TPtrC8 originalGb18030; + TBuf16 originalUnicode; + + // One-byte gb + originalGb18030.Set(_L8("\x40")); + originalUnicode.Format(_L16("%c"), 0x40); + + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); + + // one-byte uincode + _LIT16(Uni_0, "\x0000"); + _LIT8(Gb_0, "\x00"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_0); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_0, Gb_0); + + _LIT16(Uni_1, "\x0079"); + _LIT8(Gb_1, "\x79"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_1); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_1, Gb_1); + + _LIT16(Uni_2, "\x0080"); + _LIT8(Gb_2, "\x81\x30\x81\x30"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_2); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_2, Gb_2); + + _LIT16(Uni_3, "\x0081"); + _LIT8(Gb_3, "\x81\x30\x81\x31"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_3); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_3, Gb_3); + + _LIT16(Uni_4, "\x00fe"); + _LIT8(Gb_4, "\x81\x30\x8B\x36"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_4); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_4, Gb_4); + + _LIT16(Uni_5, "\x00ff"); + _LIT8(Gb_5, "\x81\x30\x8B\x37"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_5); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_5, Gb_5); +} + + +/** +@SYMTestCaseID TI18N-CHARCONV-CT-4052 +@SYMTestCaseDesc Check GB18030 plug-in support conversion between two-byte GB18030 character and Unicode +@SYMTestPriority High +@SYMTestActions 1. Select characters from two-byte character set from GB2312-80 + 2. Pass it to charconv and convert it to Unicode + 3. Pass the above Unicode to charconv and convert it to GB18030 + 4. Select characters from two-byte characters set from GBK, outside of GB2312-80, same with GBK + 5. Pass to charconv and convert to Unicode + 6. Pass the above Unicode to charconv, and conver it to GB18030 + 7. Select characters from two-byte characters set from GBK, outside of GB2312-80, different from GBK + 8. Pass to charconv and convert to Unicode + 9. Pass the above Unicode to charconv, and conver it to GB18030 +@SYMTestExpectedResults Conversion is successful, and the returned Unicode/GB18030 is as defined +@SYMREQ REQ12065 REQ12066 +*/ + +void CT_GB18030::TwoByteConversion( CCnvCharacterSetConverter& aCharacterSetConverter ) +{ + TPtrC8 originalGb18030; + TBuf16 originalUnicode; + + // two-byte gb + originalGb18030.Set(_L8("\xec\xe1")); + originalUnicode.Format(_L16("%c"), 0x706c); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); + + originalGb18030.Set(_L8("\x81\x81")); + originalUnicode.Format(_L16("%c"), 0x4e96); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); + + originalGb18030.Set(_L8("\xa2\xe3")); + originalUnicode.Format(_L16("%c"), 0x20ac); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); + originalGb18030.Set(_L8("\xa6\xd9")); + originalUnicode.Format(_L16("%c"), 0xe78d); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); + originalGb18030.Set(_L8("\xa8\xbc")); + originalUnicode.Format(_L16("%c"), 0x1e3f); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); + + + // two-byte unicode + _LIT16(Uni_6, "\x0100"); + _LIT8(Gb_6, "\x81\x30\x8B\x38"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_6); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_6, Gb_6); + + _LIT16(Uni_7, "\x0101"); + _LIT8(Gb_7, "\xA8\xA1"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_7); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_7, Gb_7); + + _LIT16(Uni_8, "\x0ffe"); + _LIT8(Gb_8, "\x81\x33\x83\x38"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_8); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_8, Gb_8); + + _LIT16(Uni_9, "\x0fff"); + _LIT8(Gb_9, "\x81\x33\x83\x39"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_9); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_9, Gb_9); + + _LIT16(Uni_10, "\x1000"); + _LIT8(Gb_10, "\x81\x33\x84\x30"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_10); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_10, Gb_10); + + _LIT16(Uni_11, "\x1001"); + _LIT8(Gb_11, "\x81\x33\x84\x31"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_11); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_11, Gb_11); + + _LIT16(Uni_12, "\xfffe"); + _LIT8(Gb_12, "\x84\x31\xA4\x38"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_12); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_12, Gb_12); + + _LIT16(Uni_13, "\xffff"); + _LIT8(Gb_13, "\x84\x31\xA4\x39"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_13); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_13, Gb_13); +} + +/** +@SYMTestCaseID TI18N-CHARCONV-CT-4056 +@SYMTestCaseDesc Check GB18030 plug-in support conversion between four-byte GB18030 character and Unicode +@SYMTestPriority High +@SYMTestActions 1. Select characters from CJK A + 2. Pass it to charconv and convert it to Unicode + 3. Pass the above Unicode to charconv and convert it to GB18030 + 4. Select characters from CJK B + 5. Pass it to charconv and convert it to Unicode + 6. Pass the above Unicode to charconv and convert it to GB18030 +@SYMTestExpectedResults Conversion is successful, and the returned Unicode/GB18030 is as defined +@SYMREQ REQ12065 REQ12066 +*/ + +void CT_GB18030::FourByteConversion( CCnvCharacterSetConverter& aCharacterSetConverter ) +{ + TPtrC8 originalGb18030; + TBuf16 originalUnicode; + + // four-byte gb + originalGb18030.Set(_L8("\x82\x30\xA7\x30")); + originalUnicode.Format(_L16("%c"), 0x3622); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); + + originalGb18030.Set(_L8("\x95\x32\xad\x35")); + originalUnicode.Format(_L16("%c%c"), 0xd840, 0xddad );//0x201ad) + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); + + // four-byte unicode + _LIT16(Uni_14, "\xd840\xdc00"); + _LIT8(gb_14, "\x95\x32\x82\x36"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_14); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_14, gb_14); + + _LIT16(Uni_15, "\xd840\xdc01"); + _LIT8(gb_15, "\x95\x32\x82\x37"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_15); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_15, gb_15); + + _LIT16(Uni_16, "\xD87F\xdffe"); + _LIT8(gb_16, "\x9a\x34\x84\x30"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_16); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_16, gb_16); + + _LIT16(Uni_17, "\xD87F\xdfff"); + _LIT8(gb_17, "\x9a\x34\x84\x31"); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_17); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_17, gb_17); +} + + +/** +@SYMTestCaseID TI18N-CHARCONV-CT-4054 +@SYMTestCaseDesc Check GB18030 plug-in support conversion between one-byte GB18030 character and Unicode, negative input +@SYMTestPriority High +@SYMTestActions 1. Select one-byte characters which are not mapped to Unicode + 2. Pass it to charconv and convert it to Unicode + 3. Select one-byte code point which is not valid in GB18030 + 4. Pass it to charconv and convert it to Unicode +@SYMTestExpectedResults No side effect +@SYMREQ REQ12065 REQ12066 +*/ + +void CT_GB18030::OneByteConversionNegative( CCnvCharacterSetConverter& aCharacterSetConverter ) +{ + TPtrC8 originalGb18030; + TBuf16 originalUnicode; + + originalGb18030.Set(_L8("\x0e")); + originalUnicode.Format(_L16("%c"), 0x0e); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); + + originalGb18030.Set(_L8("\xa0")); + originalUnicode.Copy( _L("") ); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030, CCnvCharacterSetConverter::EErrorIllFormedInput ); +} + + +/** +@SYMTestCaseID TI18N-CHARCONV-CT-4055 +@SYMTestCaseDesc Check GB18030 plug-in support conversion between two-byte GB18030 character and Unicode, negative input +@SYMTestPriority High +@SYMTestActions 1. Select two-byte characters which are not mapped to Unicode + 2. Pass it to charconv and convert it to Unicode + 3. Select two-byte code points which are not valid in GB18030 + 4. Pass it to charconv and convert it to Unicode +@SYMTestExpectedResults No side effect +@SYMREQ REQ12065 REQ12066 +*/ + +void CT_GB18030::TwoByteConversionNegative( CCnvCharacterSetConverter& aCharacterSetConverter ) +{ + TPtrC8 originalGb18030; + TBuf16 originalUnicode; + + originalGb18030.Set(_L8("\xa0\x7f")); + originalUnicode.Copy( _L("") ); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030, CCnvCharacterSetConverter::EErrorIllFormedInput ); +} + + +/** +@SYMTestCaseID TI18N-CHARCONV-CT-4056 +@SYMTestCaseDesc Check GB18030 plug-in support conversion between four-byte GB18030 character and Unicode, negative input +@SYMTestPriority High +@SYMTestActions 1. Select four-byte characters which are not mapped to Unicode + 2. Pass it to charconv and convert it to Unicode + 3. Select four-byte code points which are not valid in GB18030 + 4. Pass it to charconv and convert it to Unicode +@SYMTestExpectedResults No side effect +@SYMREQ REQ12065 REQ12066 +*/ + +void CT_GB18030::FourByteConversionNegative( CCnvCharacterSetConverter& aCharacterSetConverter ) +{ + TPtrC8 originalGb18030; + TBuf16 originalUnicode; + + originalGb18030.Set(_L8("\x81\x30\x81\x3a")); + originalUnicode.Copy( _L("") ); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030, CCnvCharacterSetConverter::EErrorIllFormedInput ); +} + + +/** +@SYMTestCaseID TI18N-CHARCONV-CT-4053 +@SYMTestCaseDesc Check GB18030 plug-in support conversion between problematic GB18030 character and Unicode, negative input +@SYMTestPriority High +@SYMTestActions 1. Select characters whose trailing byte is in the range of leading bytes + 2. Pass it to charconv and convert it to Unicode + 3. Select Unicode whose leading/trailing byte is in the range of low-ANSI + 4. Pass it to charconv and convert it to GB18030 + 5. Select characters whose trailing byte is special symbol like backslash + 6. Pass it to charconv and convert it to Unicode +@SYMTestExpectedResults No side effect +@SYMREQ REQ12065 REQ12066 +*/ + +void CT_GB18030::ProblemProneCharcters( CCnvCharacterSetConverter& aCharacterSetConverter ) +{ + TPtrC8 originalGb18030; + TBuf16 originalUnicode; + + originalGb18030.Set(_L8("\x81\x81\xba\xba\xa0\xa0\xf7\xf7")); + originalUnicode.Format(_L16("%c%c%c%c"), 0x4e96, 0x6c49, 0x724b, 0x9f22); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030 ); + + originalGb18030.Set(_L8("\xc4\x40\x83\xa0\xa0\x7c\xa0\x86")); + originalUnicode.Format(_L16("%c%c%c%c"), 0x8140, 0x512c, 0x7218, 0x7222); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030 ); + + originalGb18030.Set(_L8("\x81\x43\x81\x63\xf7\x4d\xf7\x6d\xa0\x53\xa0\x73")); + originalUnicode.Format(_L16("%c%c%c%c%c%c"), 0x4E06, 0x4E67, 0x9C49, 0x9C69, 0x71EC, 0x720F); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030 ); + + originalGb18030.Set(_L8("\x9f\xaa\x81\xae\xf7\xbf\xbf\xaa\xb0\x5b\xb1\x5b\xb1\x5c\xb2\x5c\xb2\x5d\xc3\x5d\xd4\x5f\xe5\x5f\xd6\x7b\xe7\x7b\xF7\x7C\xFD\x7C\xAA\x7D\xFE\x7D")); + originalUnicode.Format(_L16("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"), 0x716A, 0x4F04, 0x9ABA, 0x5F00, 0x7667, 0x76F5, 0x76F6, 0x7788, 0x7789, 0x80C5, 0x8a3D, 0x9329, 0x8B20, 0x940A, 0x9C78, 0x9F76, 0x7347, 0x464c); + TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); + TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030 ); +} + + +void CT_GB18030::DoE32MainL() + { + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + TPtrC8 originalGb18030; + TBuf16 originalUnicode; + TBuf8 generatedGb18030; + TBuf16 generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + + // test that we can get MIB and Charset values + CharacterSetValueAndMIBTests(*characterSetConverter, fileServerSession); + + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb18030, *arrayOfCharacterSetsAvailable, fileServerSession); + + INFO_PRINTF1( _L("GB18030 one byte support") ); + OneByteConversion( *characterSetConverter ); + + INFO_PRINTF1( _L("GB18030 two byte support") ); + TwoByteConversion( *characterSetConverter ); + + INFO_PRINTF1( _L("GB18030 four byte support") ); + FourByteConversion( *characterSetConverter ); + + INFO_PRINTF1( _L("GB18030 one byte support with negative input") ); + OneByteConversionNegative( *characterSetConverter ); + + INFO_PRINTF1( _L("GB18030 two byte support with negative input") ); + TwoByteConversionNegative( *characterSetConverter ); + + INFO_PRINTF1( _L("GB18030 four byte support with negative input") ); + FourByteConversionNegative( *characterSetConverter ); + + INFO_PRINTF1( _L("Problem prone characters") ); + ProblemProneCharcters( *characterSetConverter ); + + INFO_PRINTF1(_L("Testing characters shared with GB 2312-80 and characters only in GBK")); + + originalGb18030.Set(_L8("A\xfd\x7d\xdd\xb6\xb1\xc9\xe9\x8e\xe8\x9d""E b\xd3\x59\xd2\x40\x95\xc0")); // 20 byte, 12 char + originalUnicode.Format(_L16("A%c%c%c%c%cE b%c%c%c"), 0x9f77, 0x837b, 0x9119, 0x95b9, 0x94e6, 0x89bb, 0x8938, 0x66b2); + TestTruncatedConversionFromUnicodeToGb18030(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 0, 0, 12, 0, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 1, 2, 11, 1, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 3, 4, 10, 3, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 5, 6, 9, 5, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 7, 8, 8, 7, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 9, 10, 7, 9, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 11, 11, 6, 11, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 12, 12, 5, 12, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 13, 13, 4, 13, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 14, 15, 3, 14, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 16, 17, 2, 16, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 18, 19, 1, 18, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 20, 40, 0, 20, originalGb18030, originalUnicode); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode, originalGb18030); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(1, 2), originalGb18030.Mid(1, 4)); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 0, 0, 20, 0, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 1, 1, 19, 1, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 2, 2, 17, 2, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 3, 3, 15, 3, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 4, 4, 13, 4, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 5, 5, 11, 5, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 6, 6, 9, 6, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 7, 7, 8, 7, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 8, 8, 7, 8, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 9, 9, 6, 9, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 10, 10, 4, 10, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 11, 11, 2, 11, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 12, 30, 0, 12, originalUnicode, originalGb18030); + + INFO_PRINTF1(_L("Testing GB18030 characters where the first byte has the high-bit set and the second byte doesn't")); + originalGb18030.Set(_L8("\x20\x5d\xa0\x5d\xa0\xdd")); + originalUnicode.Format(_L16(" ]%c%c"), 0x71f7, 0x72a6); + TestTruncatedConversionFromUnicodeToGb18030(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 0, 0, 4, 0, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 1, 1, 3, 1, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 2, 3, 2, 2, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 4, 5, 1, 4, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 6, 20, 0, 6, originalGb18030, originalUnicode); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 0, 0, 6, 0, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 1, 1, 5, 1, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 2, 2, 4, 2, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 3, 3, 2, 3, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 4, 20, 0, 4, originalUnicode, originalGb18030); + + INFO_PRINTF1(_L("Testing truncated GB18030 sequences")); + originalGb18030.Set(_L8("qwe\xb5")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGb18030, state)==1); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==_L16("qwe")); + + originalGb18030.Set(_L8("qwe\x81\x30")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGb18030, state)==2); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==_L16("qwe")); + + INFO_PRINTF1(_L("Testing 4 byte characters, including surrogate pair")); + originalGb18030.Set(_L8("C\x81\x30\x81\x30\x82\x30\x81\x30\x95\x32\x82\x36")); // 13 byte + originalUnicode.Format(_L16("C%c%c%c%c"), 0x0080, 0x34A3, 0xD840, 0xDC00); // 4 Char (3 UCS2, 1 surrogate pair) + TestTruncatedConversionFromUnicodeToGb18030(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 0, 0, 5, 0, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 1, 4, 4, 1, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 5, 8, 3, 5, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 9, 12, 2, 9, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 13, 40, 0, 13, originalGb18030, originalUnicode); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode, originalGb18030); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(1, 2), originalGb18030.Mid(1, 8)); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(3, 2), originalGb18030.Mid(9, 4)); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 0, 0, 13, 0, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 1, 1, 12, 1, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 2, 2, 8, 2, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 3, 4, 4, 3, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 5, 30, 0, 5, originalUnicode, originalGb18030); + + INFO_PRINTF1(_L("Testing GB18030 characters which have different mapping with GB2312-80")); + originalGb18030.Set(_L8("\xa1\xaa\xa1\xa4\xa8\x44\x81\x39\xa7\x39")); // 10 byte + originalUnicode.Format(_L16("%c%c%c%c"), 0x2014, 0x00B7, 0x2015, 0x30FB); // 4 char (UCS2) + TestTruncatedConversionFromUnicodeToGb18030(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 0, 1, 4, 0, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 2, 3, 3, 2, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 4, 5, 2, 4, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 6, 9, 1, 6, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 10, 20, 0, 10, originalGb18030, originalUnicode); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode, originalGb18030); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(0, 2), originalGb18030.Mid(0, 4)); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(2, 2), originalGb18030.Mid(4, 6)); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 0, 0, 10, 0, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 1, 1, 8, 1, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 2, 2, 6, 2, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 3, 3, 4, 3, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 4, 10, 0, 4, originalUnicode, originalGb18030); + + INFO_PRINTF1(_L("Testing 2 byte GB18030 characters which have different mapping with GBK")); + originalGb18030.Set(_L8("\xa1\xa4\xa1\xaa\xa8\xbc\xa8\xbf\xa9\x8a")); // 10 byte + originalUnicode.Format(_L16("%c%c%c%c%c"), 0x00b7, 0x2014, 0x1e3f, 0x01f9, 0x2ff0); // 5 char (UCS2) + TestTruncatedConversionFromUnicodeToGb18030(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 0, 1, 5, 0, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 2, 3, 4, 2, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 4, 5, 3, 4, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 10, 20, 0, 10, originalGb18030, originalUnicode); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode, originalGb18030); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(0, 2), originalGb18030.Mid(0, 4)); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(2, 3), originalGb18030.Mid(4, 6)); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 0, 0, 10, 0, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 1, 1, 8, 1, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 2, 2, 6, 2, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 5, 10, 0, 5, originalUnicode, originalGb18030); + + INFO_PRINTF1(_L("Testing 2/4 byte GB18030 characters mapping to PUA codes")); + originalGb18030.Set(_L8("\xFE\xFE\xFE\xD4\xFD\xE8\xA7\xFE\xA3\xEB\x84\x31\xA4\x39\x83\x36\xF0\x37\xA3\xB1")); // 20 byte + originalUnicode.Format(_L16("%c%c%c%c%c%c%c%c"), 0xE4C5, 0xE49B, 0xE451, 0xE7BB, 0xFF4B, 0xFFFF, 0xE9AC, 0xFF11); // 8 char (UCS2) + TestTruncatedConversionFromUnicodeToGb18030(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 0, 1, 8, 0, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 2, 3, 7, 2, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 4, 5, 6, 4, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 10, 13, 3, 10, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 14, 17, 2, 14, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 18, 19, 1, 18, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 20, 40, 0, 20, originalGb18030, originalUnicode); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode, originalGb18030); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(0, 2), originalGb18030.Mid(0, 4)); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(2, 3), originalGb18030.Mid(4, 6)); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(5, 2), originalGb18030.Mid(10, 8)); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(7, 1), originalGb18030.Mid(18, 2)); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 0, 0, 20, 0, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 1, 1, 18, 1, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 2, 2, 16, 2, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 6, 6, 6, 6, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 7, 7, 2, 7, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 8, 10, 0, 8, originalUnicode, originalGb18030); + + INFO_PRINTF1(_L("Testing combined GB18030 characters including 1/2/4 byte")); + originalGb18030.Set(_L8("A\x95\x32\x82\x36\x32\x81\x40\xC2\xB7\x8E\xEB\x95\x33\x96\x30\x81\x37\x81\x30\xFE\xF1")); //22 bytes + originalUnicode.Format(_L16("A%c%c%c%c%c%c%c%c%c%c"), 0xD840, 0xDC00, 0x0032, 0x4E02, 0x8DEF, 0x5EAA, 0xD841, 0xDDAE, 0x23EC, 0xE4B8 ); //11 chars (UCS2) + TestTruncatedConversionFromUnicodeToGb18030(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 0, 0, 11, 0, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 1, 4, 10, 1, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 5, 5, 8, 5, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 6, 6, 7, 6, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 8, 9, 6, 8, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 10, 11, 5, 10, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 12, 15, 4, 12, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 16, 19, 2, 16, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 20, 21, 1, 20, originalGb18030, originalUnicode); + TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 22, 30, 0, 22, originalGb18030, originalUnicode); + + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode, originalGb18030); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(0, 1), originalGb18030.Mid(0, 1)); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(1, 2), originalGb18030.Mid(1, 4)); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(3, 1), originalGb18030.Mid(5, 1)); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(4, 3), originalGb18030.Mid(6, 6)); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(7, 3), originalGb18030.Mid(12, 8)); + TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(10, 1), originalGb18030.Mid(20, 2)); + + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 0, 0, 22, 0, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 1, 2, 21, 1, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 3, 3, 17, 3, originalUnicode, originalGb18030); + + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 4, 4, 16, 4, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 7, 8, 10, 7, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 9, 9, 6, 9, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 10, 10, 2, 10, originalUnicode, originalGb18030); + TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 11, 20, 0, 11, originalUnicode, originalGb18030); + + CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +CT_GB18030::CT_GB18030() + { + SetTestStepName(KTestStep_T_GB18030); + } + +TVerdict CT_GB18030::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_gb18030.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_gb18030.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,60 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_GB18030_H__ +#define __T_GB18030_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_GB18030 : public CTestStep + { +public: + CT_GB18030(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void TestTruncatedConversionFromUnicodeToGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode); + void TestSplittingConvertingFromUnicodeToGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, + TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfGb18030, + const TDesC8& aExpectedGb18030, const TDesC16& aOriginalUnicode); + void TestTruncatedConversionToUnicodeFromGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalGb18030); + void TestSplittingConvertingToUnicodeFromGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, + TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfGb18030BytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, + const TDesC16& aExpectedUnicode, const TDesC8& aOriginalGb18030); + void CharacterSetValueAndMIBTests(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession); + void TestConversionToUnicodeFromGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalGb18030, TInt aExpectedResult = 0); + void TestConversionFromUnicodeToGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, TInt aExpectedResult = 0); + void OneByteConversion( CCnvCharacterSetConverter& aCharacterSetConverter ); + void TwoByteConversion( CCnvCharacterSetConverter& aCharacterSetConverter ); + void FourByteConversion( CCnvCharacterSetConverter& aCharacterSetConverter ); + void OneByteConversionNegative( CCnvCharacterSetConverter& aCharacterSetConverter ); + void TwoByteConversionNegative( CCnvCharacterSetConverter& aCharacterSetConverter ); + void FourByteConversionNegative( CCnvCharacterSetConverter& aCharacterSetConverter ); + void ProblemProneCharcters( CCnvCharacterSetConverter& aCharacterSetConverter ); + + + + }; + +_LIT(KTestStep_T_GB18030, "T_GB18030"); + +#endif //__T_GB18030_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_gb18030.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_gb18030.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_GB18030 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_GB18030 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_gb2312.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_gb2312.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,168 @@ +/* +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_gb2312.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0502 +@SYMTestCaseDesc Tests for converting GB 2312-80 character set to Unicode +@SYMTestPriority Medium +@SYMTestActions Tests for simple GB 2312-80 round trips, + Tests for varying the default Endianness +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_GB2312::DoE32MainL() + { + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0502 Testing simple GB 2312-80 round trips ")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312, *arrayOfCharacterSetsAvailable, fileServerSession); + TBuf8<256> originalGb2312; + TBuf16<256> originalUnicode; + TBuf8<256> generatedGb2312; + TBuf16<256> generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + // + INFO_PRINTF1(_L("Empty descriptor")); + originalUnicode=_L16(""); + test(characterSetConverter->ConvertFromUnicode(generatedGb2312, originalUnicode)==0); + test(generatedGb2312==_L8("")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedGb2312, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==originalUnicode); + INFO_PRINTF1(_L("A couple of sample characters")); + originalGb2312=_L8("\xb9\xa4\xc8\xcb"); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGb2312, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode.Length()==2); + test(generatedUnicode[0]==0x5de5); + test(generatedUnicode[1]==0x4eba); + test(characterSetConverter->ConvertFromUnicode(generatedGb2312, generatedUnicode)==0); + test(generatedGb2312==originalGb2312); + INFO_PRINTF1(_L("Converting trunctated GB 2312-80 which ends half-way through a multi-byte character")); + originalGb2312=_L8("\xb9\xa4\xc8"); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGb2312, state)==1); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0x5de5); + originalGb2312=_L8("\xc8"); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGb2312, state)==CCnvCharacterSetConverter::EErrorIllFormedInput); + INFO_PRINTF1(_L("Testing varying the default endianness")); + originalGb2312=_L8("\xb4\xf2"); + characterSetConverter->SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::ELittleEndian); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGb2312, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0x6253); + test(characterSetConverter->ConvertFromUnicode(generatedGb2312, generatedUnicode)==0); + test(generatedGb2312==originalGb2312); + characterSetConverter->SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::EBigEndian); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGb2312, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode.Length()==1); + test(generatedUnicode[0]==0x6253); + test(characterSetConverter->ConvertFromUnicode(generatedGb2312, generatedUnicode)==0); + test(generatedGb2312==originalGb2312); + INFO_PRINTF1(_L("Testing a many-to-one conversion")); + originalUnicode.SetLength(4); + originalUnicode[0]=0x30fb; + originalUnicode[1]=0x00b7; + originalUnicode[2]=0x2014; + originalUnicode[3]=0x2015; + test(characterSetConverter->ConvertFromUnicode(generatedGb2312, originalUnicode)==0); + test(generatedGb2312==_L8("\xa1\xa4\xa1\xa4\xa1\xaa\xa1\xaa")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedGb2312, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode.Length()==4); + test(generatedUnicode[0]==0x00b7); + test(generatedUnicode[1]==0x00b7); + test(generatedUnicode[2]==0x2015); + test(generatedUnicode[3]==0x2015); + INFO_PRINTF1(_L("Testing GB2312 being aliased to GBK")); + TUint charSetId = characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("GB2312"), fileServerSession); + test(charSetId==KCharacterSetIdentifierGbk); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("csGB2312"), fileServerSession)==KCharacterSetIdentifierGbk); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("iso-ir-58"), fileServerSession)==KCharacterSetIdentifierGbk); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("chinese"), fileServerSession)==KCharacterSetIdentifierGbk); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("csISO58GB231280"), fileServerSession)==KCharacterSetIdentifierGbk); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(57, fileServerSession)==KCharacterSetIdentifierGbk); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(2025, fileServerSession)==KCharacterSetIdentifierGbk); + characterSetConverter->PrepareToConvertToOrFromL(charSetId, *arrayOfCharacterSetsAvailable, fileServerSession); + originalUnicode.SetLength(3); + originalUnicode[0]=0x9556; // this has a corresponding GB2312 character + originalUnicode[1]=0x9555; // this has a corresponding GBK character not in GB2312... + originalUnicode[2]=0x9394; // ... as does this + test(characterSetConverter->ConvertFromUnicode(generatedGb2312, originalUnicode)==0); + test(generatedGb2312.Length()==6); + test(generatedGb2312==_L8("\xef\xda\xe9\x46\xe6\x67")); + CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +CT_GB2312::CT_GB2312() + { + SetTestStepName(KTestStep_T_GB2312); + } + +TVerdict CT_GB2312::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_gb2312.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_gb2312.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_GB2312_H__ +#define __T_GB2312_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_GB2312 : public CTestStep + { +public: + CT_GB2312(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + + }; + +_LIT(KTestStep_T_GB2312, "T_GB2312"); + +#endif //__T_GB2312_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_gb2312.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_gb2312.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_GB2312 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_GB2312 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_gbk.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_gbk.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,311 @@ +/* +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_gbk.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +const TInt KMibValue = 113; +const TInt KBufferLength=100; +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0509 +@SYMTestCaseDesc Tests for truncated conversion from Unicode to GBK +@SYMTestPriority Medium +@SYMTestActions Tests for truncated conversion from Unicode to Gbk and back to Unicode. + Tests for the generated Unicode with original Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_GBK::TestTruncatedConversionFromUnicodeToGbk(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0509 ")); + for (TInt i=aOriginalUnicode.Length(); i>=0; --i) + { + TBuf8 generatedGbk; + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedGbk, aOriginalUnicode.Left(i)); + test(returnValue>=0); + TBuf8 generatedsecondPartOfGbk; + test(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfGbk, aOriginalUnicode.Mid(i-returnValue))==0); + generatedGbk.Append(generatedsecondPartOfGbk); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedGbk, state)==0); + test(generatedUnicode==aOriginalUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0510 +@SYMTestCaseDesc Splitting and converting from Unicode to GBK test +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting from Unicode to Gbk and back to Unicode + Tests for the generated Unicode with original Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_GBK::TestSplittingConvertingFromUnicodeToGbk(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfGbk, const TDesC8& aExpectedGbk, const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0510 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint8 gbkBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr8 generatedFirstPartOfGbk(gbkBuffer, i); + test(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfGbk, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); + test(generatedFirstPartOfGbk==aExpectedGbk.Left(aExpectedLengthOfFirstPartOfGbk)); + TBuf8 generatedSecondPartOfGbk; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfGbk, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); + test(generatedSecondPartOfGbk==aExpectedGbk.Mid(aExpectedLengthOfFirstPartOfGbk)); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfGbk, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfGbk, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + generatedUnicode.Append(generatedSecondPartOfUnicode); + test(generatedUnicode==aOriginalUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0511 +@SYMTestCaseDesc Tests for truncated conversion from GBK to Unicode +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after truncation from Unicode to Hz and back to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_GBK::TestTruncatedConversionToUnicodeFromGbk(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalGbk) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0511 ")); + for (TInt i=aOriginalGbk.Length(); i>=2; --i) // 2 is the length of GBK's longest multi-byte characters + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalGbk.Left(i), state); + test(returnValue>=0); + TBuf16 generatedsecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalGbk.Mid(i-returnValue), state)==0); + generatedUnicode.Append(generatedsecondPartOfUnicode); + test(generatedUnicode==aExpectedUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0512 +@SYMTestCaseDesc Splitting and converting from GBK to Unicode test +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting from Hz to Unicode and back to Hz +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_GBK::TestSplittingConvertingToUnicodeFromGbk(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfGbkBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalGbk) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0512 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint16 unicodeBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalGbk, state)==aExpectedNumberOfGbkBytesNotConvertedAtSplit); + test(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalGbk.Right(aExpectedNumberOfGbkBytesNotConvertedAtSplit), state)==0); + test(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf8 generatedGbk; + test(aCharacterSetConverter.ConvertFromUnicode(generatedGbk, generatedFirstPartOfUnicode)==0); + TBuf8 generatedSecondPartOfGbk; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfGbk, generatedSecondPartOfUnicode)==0); + generatedGbk.Append(generatedSecondPartOfGbk); + test(generatedGbk==aOriginalGbk); + } + } + + +/** +Tests retreiving the MIB value from the GBK UID +Tests retreiving the GBK UID from the MIB value + +@SYMTestCaseID SYSLIB-CHARCONV-CT-0513 +@SYMTestCaseDesc Tests for conversion from MIB to UID and UID to MIB +@SYMTestPriority Medium +@SYMTestActions Tests CCnvCharacterSetConverter::ConvertMibEnumOfCharacterSetToIdentifierL(), + CCnvCharacterSetConverter::ConvertCharacterSetIdentifierToMibEnumL() functions +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_GBK::CharacterSetValueAndMIBTests(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession) +{ + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0513 ")); + // check that the character set value of '113' is converted to the GBK UID (0x10003ecb) + test(aCharacterSetConverter.ConvertMibEnumOfCharacterSetToIdentifierL(KMibValue,aFileServerSession)==KCharacterSetIdentifierGbk); + INFO_PRINTF1(_L("\nMIB->Char Set UID - OK")); + + // check that the UCS2 GUID (0x10003ecb) is converted to the character set value of '113' + test(aCharacterSetConverter.ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierGbk,aFileServerSession)==KMibValue); + INFO_PRINTF1(_L("\nChar Set UID->MIB - OK")); +} +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0514 +@SYMTestCaseDesc Conversion tests for GBK to Unicode +@SYMTestPriority Medium +@SYMTestActions Tests for conversion from GBK to Unicode and vice versa. +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_GBK::DoE32MainL() + { + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + TPtrC8 originalGbk; + TBuf16 originalUnicode; + TBuf8 generatedGbk; + TBuf16 generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + + // test that we can get MIB and Charset values + CharacterSetValueAndMIBTests(*characterSetConverter, fileServerSession); + + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk, *arrayOfCharacterSetsAvailable, fileServerSession); + + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0514 Testing characters shared with GB 2312-80 and characters only in GBK ")); + originalGbk.Set(_L8("A\xfd\x7d\xdd\xb6\xb1\xc9\xe9\x8e\xe8\x9d""E b\xd3\x59\xd2\x40\x95\xc0")); + originalUnicode.Format(_L16("A%c%c%c%c%cE b%c%c%c"), 0x9f77, 0x837b, 0x9119, 0x95b9, 0x94e6, 0x89bb, 0x8938, 0x66b2); + TestTruncatedConversionFromUnicodeToGbk(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 0, 0, 12, 0, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 1, 2, 11, 1, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 3, 4, 10, 3, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 5, 6, 9, 5, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 7, 8, 8, 7, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 9, 10, 7, 9, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 11, 11, 6, 11, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 12, 12, 5, 12, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 13, 13, 4, 13, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 14, 15, 3, 14, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 16, 17, 2, 16, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 18, 19, 1, 18, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 20, 40, 0, 20, originalGbk, originalUnicode); + TestTruncatedConversionToUnicodeFromGbk(*characterSetConverter, originalUnicode, originalGbk); + TestTruncatedConversionToUnicodeFromGbk(*characterSetConverter, originalUnicode.Mid(1, 2), originalGbk.Mid(1, 4)); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 0, 0, 20, 0, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 1, 1, 19, 1, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 2, 2, 17, 2, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 3, 3, 15, 3, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 4, 4, 13, 4, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 5, 5, 11, 5, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 6, 6, 9, 6, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 7, 7, 8, 7, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 8, 8, 7, 8, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 9, 9, 6, 9, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 10, 10, 4, 10, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 11, 11, 2, 11, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 12, 30, 0, 12, originalUnicode, originalGbk); + + INFO_PRINTF1(_L("Testing GBK characters where the first byte has the high-bit set and the second byte doesn't")); + originalGbk.Set(_L8("\x20\x5d\xa0\x5d\xa0\xdd")); + originalUnicode.Format(_L16(" ]%c%c"), 0x71f7, 0x72a6); + TestTruncatedConversionFromUnicodeToGbk(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 0, 0, 4, 0, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 1, 1, 3, 1, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 2, 3, 2, 2, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 4, 5, 1, 4, originalGbk, originalUnicode); + TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 6, 20, 0, 6, originalGbk, originalUnicode); + TestTruncatedConversionToUnicodeFromGbk(*characterSetConverter, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 0, 0, 6, 0, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 1, 1, 5, 1, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 2, 2, 4, 2, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 3, 3, 2, 3, originalUnicode, originalGbk); + TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 4, 20, 0, 4, originalUnicode, originalGbk); + + INFO_PRINTF1(_L("Testing the many-to-many mapping in GBK")); + originalGbk.Set(_L8("\xa8\x44\xa1\xaa")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGbk, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode.Length()==2); + test(generatedUnicode[0]==0x2015); + test(generatedUnicode[1]==0x2015); + originalUnicode.SetLength(2); + originalUnicode[0]=0x2014; + originalUnicode[1]=0x2015; + test(characterSetConverter->ConvertFromUnicode(generatedGbk, originalUnicode)==0); + test(generatedGbk==_L8("\xa1\xaa\xa1\xaa")); + + INFO_PRINTF1(_L("Testing truncated GBK sequences")); + originalGbk.Set(_L8("qwe\xb5")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGbk, state)==1); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==_L16("qwe")); + originalGbk.Set(_L8("qwe\x80")); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGbk, state)==1); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedUnicode==_L16("qwe")); + CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +CT_GBK::CT_GBK() + { + SetTestStepName(KTestStep_T_GBK); + } + +TVerdict CT_GBK::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_gbk.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_gbk.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_GBK_H__ +#define __T_GBK_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_GBK : public CTestStep + { +public: + CT_GBK(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void CharacterSetValueAndMIBTests(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession); + void TestSplittingConvertingToUnicodeFromGbk(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfGbkBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalGbk); + void TestTruncatedConversionToUnicodeFromGbk(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalGbk); + void TestSplittingConvertingFromUnicodeToGbk(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfGbk, const TDesC8& aExpectedGbk, const TDesC16& aOriginalUnicode); + void TestTruncatedConversionFromUnicodeToGbk(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode); + + + }; + +_LIT(KTestStep_T_GBK, "T_GBK"); + +#endif //__T_GBK_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_gbk.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_gbk.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_GBK tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_GBK \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_generalforeign.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_generalforeign.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,808 @@ +/* +* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_generalforeign.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +const TUint KTibetanCharacter=0x0f65; +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0498 +@SYMTestCaseDesc Tests for CCnvCharacterSetConverter::ConvertToUnicode(), + CCnvCharacterSetConverter::ConvertFromUnicode() functions +@SYMTestPriority Medium +@SYMTestActions Tests for converting various character sets to Unicode and from Unicode back to original character set. +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_GENERALFOREIGN::DoE32MainL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0498 ")); + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF2(_L("No of CharacterSets available:%d\n"),sizeof(arrayOfCharacterSetsAvailable )); + + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + TPtrC8 originalForeign; + + HBufC * originalUnicodeHBuf = HBufC::NewLC(128); + TPtr16 originalUnicode = originalUnicodeHBuf->Des(); + + HBufC * generatedUnicodeHBuf = HBufC::NewLC(128); + TPtr16 generatedUnicode = generatedUnicodeHBuf->Des(); + + HBufC * expectedUnicodeHBuf = HBufC::NewLC(128); + TPtr16 expectedUnicode = expectedUnicodeHBuf->Des(); + + HBufC8 * generatedForeignHBuf = HBufC8::NewLC(128); + TPtr8 generatedForeign = generatedForeignHBuf->Des(); + + TInt state=CCnvCharacterSetConverter::KStateDefault; + + INFO_PRINTF1(_L("Big-5")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierBig5, *arrayOfCharacterSetsAvailable, fileServerSession); + originalForeign.Set(_L8("\xa2\xaf\xa1\x40\xc7\xcd\xc7\xce\xc7\xcfk\xa3\x7e")); + expectedUnicode.Format(_L16("%c%c%c%c%ck%c"), 0xff10, 0x3000, 0x0435, 0x0451, 0x0436, 0x310f); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); + test(generatedForeign==originalForeign); + + INFO_PRINTF1(_L("CP850 - Test fix for defect DEF083102")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierCP850, *arrayOfCharacterSetsAvailable, fileServerSession); + originalForeign.Set(_L8("\x80\x9e\xa9\x9f\xfe\xe0")); + expectedUnicode.Format(_L16("%c%c%c%c%c%c"), 0x00c7, 0x20a7, 0x2310, 0x0192, 0x25a0, 0x03b1); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); + test(generatedForeign==originalForeign); + + INFO_PRINTF1(_L("GB-12345-90")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb12345, *arrayOfCharacterSetsAvailable, fileServerSession); + 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")); + 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); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); + test(generatedForeign==originalForeign); + + INFO_PRINTF1(_L("GB-2312-80")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312, *arrayOfCharacterSetsAvailable, fileServerSession); + originalForeign.Set(_L8("4\x27\x26\x27\x27\x27\x28\x29\x6e\x29\x6f\x30\x21\x30\x22\x77\x7e")); + expectedUnicode.Format(_L16("4%c%c%c%c%c%c%c%c"), 0x0415, 0x0401, 0x0416, 0x254a, 0x254b, 0x554a, 0x963f, 0x9f44); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); + test(generatedForeign==originalForeign); + + INFO_PRINTF1(_L("GBK")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk, *arrayOfCharacterSetsAvailable, fileServerSession); + 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:")); + 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); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); + test(generatedForeign==originalForeign); + + INFO_PRINTF1(_L("JIS X 0208")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, *arrayOfCharacterSetsAvailable, fileServerSession); + originalForeign.Set(_L8("\x81\xf6\x81\xf7\x81\xfc\x82\x4f\x82\x50+\x81\x40\xa1\xdf\xea\xa4")); + expectedUnicode.Format(_L16("%c%c%c%c%c+%c%c"), 0x2021, 0x00b6, 0x25ef, 0xff10, 0xff11, 0x3000, 0xff61, 0xff9f, 0x7199); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); + test(generatedForeign==originalForeign); + + INFO_PRINTF1(_L("JIS X 0212")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierEucJpPacked, *arrayOfCharacterSetsAvailable, fileServerSession); + 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")); + expectedUnicode.Format(_L16("%c%c%c%c%c&%c%c%c%c%c"), 0x0166, 0xff8d, 0x00de, 0x8f9c, 0x00e6, 0x0111, 0x9fa5, 0x7fc3, 0x02d8, 0x02dd); + test(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); + test(generatedForeign==originalForeign); + + INFO_PRINTF1(_L("Testing unconvertible characters")); + TInt numberOfUnconvertibleCharacters; + TInt indexOfFirstUnconvertibleCharacter; + CCnvCharacterSetConverter::TArrayOfAscendingIndices indicesOfUnconvertibleCharacters; + originalUnicode.Format(_L16("%c"), KTibetanCharacter); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022Jp, *arrayOfCharacterSetsAvailable, fileServerSession); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x1b\x24\x42\x21\x29")); + characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("amb")); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("amb")); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("amb")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierAscii, *arrayOfCharacterSetsAvailable, fileServerSession); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022Jp, *arrayOfCharacterSetsAvailable, fileServerSession); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); + test(generatedForeign==_L8("\x1b\x24\x42\x21\x29")); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters)==0); + test(generatedForeign==_L8("\x1b\x24\x42\x21\x29")); + test(numberOfUnconvertibleCharacters==1); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter)==0); + test(generatedForeign==_L8("\x1b\x24\x42\x21\x29")); + test(numberOfUnconvertibleCharacters==1); + test(indexOfFirstUnconvertibleCharacter==0); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(generatedForeign==_L8("\x1b\x24\x42\x21\x29")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); + test(indicesOfUnconvertibleCharacters[0]==0); + indicesOfUnconvertibleCharacters.RemoveAll(); + characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("amb")); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters)==0); + test(generatedForeign==_L8("amb")); + test(numberOfUnconvertibleCharacters==1); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter)==0); + test(generatedForeign==_L8("amb")); + test(numberOfUnconvertibleCharacters==1); + test(indexOfFirstUnconvertibleCharacter==0); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(generatedForeign==_L8("amb")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); + test(indicesOfUnconvertibleCharacters[0]==0); + indicesOfUnconvertibleCharacters.RemoveAll(); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, _L16("amb"), numberOfUnconvertibleCharacters)==0); + test(generatedForeign==_L8("amb")); + test(numberOfUnconvertibleCharacters==0); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, _L16("amb"), numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter)==0); + test(generatedForeign==_L8("amb")); + test(numberOfUnconvertibleCharacters==0); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, _L16("amb"), indicesOfUnconvertibleCharacters)==0); + test(generatedForeign==_L8("amb")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); + indicesOfUnconvertibleCharacters.RemoveAll(); + originalUnicode.Format(_L16("Red, %cer, green. Je voudrais du j%con."), KTibetanCharacter, KTibetanCharacter); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(generatedForeign==_L8("Red, amb""er, green. Je voudrais du jambon.")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); + test(indicesOfUnconvertibleCharacters[0]==5); + test(indicesOfUnconvertibleCharacters[1]==33); + indicesOfUnconvertibleCharacters.RemoveAll(); + originalUnicode.Format(_L16("Red, amber, green%c Je voudrais du jambon%c"), KTibetanCharacter, KTibetanCharacter); + characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8(".")); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(generatedForeign==_L8("Red, amber, green. Je voudrais du jambon.")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); + test(indicesOfUnconvertibleCharacters[0]==17); + test(indicesOfUnconvertibleCharacters[1]==40); + indicesOfUnconvertibleCharacters.RemoveAll(); + originalUnicode.Format(_L16("%ced, amber, green. Je voudrais du jambon."), KTibetanCharacter); + characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("R")); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(generatedForeign==_L8("R""ed, amber, green. Je voudrais du jambon.")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); + test(indicesOfUnconvertibleCharacters[0]==0); + indicesOfUnconvertibleCharacters.RemoveAll(); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312, *arrayOfCharacterSetsAvailable, fileServerSession); + characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("e")); + originalUnicode.Format(_L16("R%cd, amb%cr, gr%c%cn. J%c voudrais du jambon."), KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(generatedForeign==_L8("Red, amber, green. Je voudrais du jambon.")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==5); + test(indicesOfUnconvertibleCharacters[0]==1); + test(indicesOfUnconvertibleCharacters[1]==8); + test(indicesOfUnconvertibleCharacters[2]==14); + test(indicesOfUnconvertibleCharacters[3]==15); + test(indicesOfUnconvertibleCharacters[4]==20); + indicesOfUnconvertibleCharacters.RemoveAll(); + originalUnicode.Format(_L16("Red, amber, green%c Je voudrais du jambon%c"), KTibetanCharacter, KTibetanCharacter); + characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8(".")); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(generatedForeign==_L8("Red, amber, green. Je voudrais du jambon.")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); + test(indicesOfUnconvertibleCharacters[0]==17); + test(indicesOfUnconvertibleCharacters[1]==40); + indicesOfUnconvertibleCharacters.RemoveAll(); + originalUnicode.Format(_L16("%ced, amber, green. Je voudrais du jambon."), KTibetanCharacter); + characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("R")); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(generatedForeign==_L8("Red, amber, green. Je voudrais du jambon.")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); + test(indicesOfUnconvertibleCharacters[0]==0); + indicesOfUnconvertibleCharacters.RemoveAll(); + + originalUnicode.Format(_L16("T %c%c%c%c%c %c%c%c%c%c %c%c%c%c%c %c%c%c%c%c %c%c%c%c%c %cT."), KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter,KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter,KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter,KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter); + characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("R")); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(generatedForeign==_L8("T RRRRR RRRRR RRRRR RRRRR RRRRR RT.")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==25); + test(indicesOfUnconvertibleCharacters[0]==2); + test(indicesOfUnconvertibleCharacters[1]==3); + test(indicesOfUnconvertibleCharacters[2]==4); + test(indicesOfUnconvertibleCharacters[3]==5); + test(indicesOfUnconvertibleCharacters[4]==6); + + test(indicesOfUnconvertibleCharacters[5]==8); + test(indicesOfUnconvertibleCharacters[6]==9); + test(indicesOfUnconvertibleCharacters[7]==10); + test(indicesOfUnconvertibleCharacters[8]==11); + test(indicesOfUnconvertibleCharacters[9]==12); + + test(indicesOfUnconvertibleCharacters[10]==14); + test(indicesOfUnconvertibleCharacters[11]==15); + test(indicesOfUnconvertibleCharacters[12]==16); + test(indicesOfUnconvertibleCharacters[13]==17); + test(indicesOfUnconvertibleCharacters[14]==18); + + test(indicesOfUnconvertibleCharacters[15]==20); + test(indicesOfUnconvertibleCharacters[16]==21); + test(indicesOfUnconvertibleCharacters[17]==22); + test(indicesOfUnconvertibleCharacters[18]==23); + test(indicesOfUnconvertibleCharacters[19]==24); + + test(indicesOfUnconvertibleCharacters[20]==26); + test(indicesOfUnconvertibleCharacters[21]==27); + test(indicesOfUnconvertibleCharacters[22]==28); + test(indicesOfUnconvertibleCharacters[23]==29); + test(indicesOfUnconvertibleCharacters[24]==30); + indicesOfUnconvertibleCharacters.RemoveAll(); + + + TUint8* const foreignBuffer=CONST_CAST(TUint8*, generatedForeign.Ptr()); + TPtr8 shortForeignOutputBuffer(NULL, 0, 0); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJis, *arrayOfCharacterSetsAvailable, fileServerSession); + originalUnicode.Format(_L16("%c%c%c%c%cT%c%c%c%c"), KTibetanCharacter, 0x7a83, KTibetanCharacter, 0xff78, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, 0x68e5, KTibetanCharacter); + _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"); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 49); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(shortForeignOutputBuffer==KLit8ExpectedJis_1); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==6); + test(indicesOfUnconvertibleCharacters[0]==0); + test(indicesOfUnconvertibleCharacters[1]==2); + test(indicesOfUnconvertibleCharacters[2]==4); + test(indicesOfUnconvertibleCharacters[3]==6); + test(indicesOfUnconvertibleCharacters[4]==7); + test(indicesOfUnconvertibleCharacters[5]==9); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 48); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); + test(shortForeignOutputBuffer==KLit8ExpectedJis_1().Left(44)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==5); + test(indicesOfUnconvertibleCharacters[0]==0); + test(indicesOfUnconvertibleCharacters[1]==2); + test(indicesOfUnconvertibleCharacters[2]==4); + test(indicesOfUnconvertibleCharacters[3]==6); + test(indicesOfUnconvertibleCharacters[4]==7); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 37); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); + test(shortForeignOutputBuffer==KLit8ExpectedJis_1().Left(33)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==4); + test(indicesOfUnconvertibleCharacters[0]==0); + test(indicesOfUnconvertibleCharacters[1]==2); + test(indicesOfUnconvertibleCharacters[2]==4); + test(indicesOfUnconvertibleCharacters[3]==6); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 32); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==4); + test(shortForeignOutputBuffer==KLit8ExpectedJis_1().Left(28)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); + test(indicesOfUnconvertibleCharacters[0]==0); + test(indicesOfUnconvertibleCharacters[1]==2); + test(indicesOfUnconvertibleCharacters[2]==4); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 23); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==6); + test(shortForeignOutputBuffer==KLit8ExpectedJis_1().Left(19)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); + test(indicesOfUnconvertibleCharacters[0]==0); + test(indicesOfUnconvertibleCharacters[1]==2); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 14); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==8); + test(shortForeignOutputBuffer==KLit8ExpectedJis_1().Left(10)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); + test(indicesOfUnconvertibleCharacters[0]==0); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 4); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==10); + test(shortForeignOutputBuffer==KNullDesC8); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); + indicesOfUnconvertibleCharacters.RemoveAll(); + characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("\x1b\x28\x42_")); + _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_"); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 43); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(shortForeignOutputBuffer==KLit8ExpectedJis_2); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==6); + test(indicesOfUnconvertibleCharacters[0]==0); + test(indicesOfUnconvertibleCharacters[1]==2); + test(indicesOfUnconvertibleCharacters[2]==4); + test(indicesOfUnconvertibleCharacters[3]==6); + test(indicesOfUnconvertibleCharacters[4]==7); + test(indicesOfUnconvertibleCharacters[5]==9); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 42); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); + test(shortForeignOutputBuffer==KLit8ExpectedJis_2().Left(39)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==5); + test(indicesOfUnconvertibleCharacters[0]==0); + test(indicesOfUnconvertibleCharacters[1]==2); + test(indicesOfUnconvertibleCharacters[2]==4); + test(indicesOfUnconvertibleCharacters[3]==6); + test(indicesOfUnconvertibleCharacters[4]==7); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 32); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); + test(shortForeignOutputBuffer==KLit8ExpectedJis_2().Left(29)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==4); + test(indicesOfUnconvertibleCharacters[0]==0); + test(indicesOfUnconvertibleCharacters[1]==2); + test(indicesOfUnconvertibleCharacters[2]==4); + test(indicesOfUnconvertibleCharacters[3]==6); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 28); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==4); + test(shortForeignOutputBuffer==KLit8ExpectedJis_2().Left(25)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); + test(indicesOfUnconvertibleCharacters[0]==0); + test(indicesOfUnconvertibleCharacters[1]==2); + test(indicesOfUnconvertibleCharacters[2]==4); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 20); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==6); + test(shortForeignOutputBuffer==KLit8ExpectedJis_2().Left(17)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); + test(indicesOfUnconvertibleCharacters[0]==0); + test(indicesOfUnconvertibleCharacters[1]==2); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 12); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==8); + test(shortForeignOutputBuffer==KLit8ExpectedJis_2().Left(9)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); + test(indicesOfUnconvertibleCharacters[0]==0); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 3); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==10); + test(shortForeignOutputBuffer==KNullDesC8); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); + indicesOfUnconvertibleCharacters.RemoveAll(); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312, *arrayOfCharacterSetsAvailable, fileServerSession); + originalUnicode.Format(_L16("%c%c!%c%c%c"), 0x4e2d, KTibetanCharacter, KTibetanCharacter, 0x56fd, KTibetanCharacter); + _LIT8(KLit8ExpectedGb2312_1, "\xd6\xd0\xa3\xbf!\xa3\xbf\xb9\xfa\xa3\xbf"); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 11); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(shortForeignOutputBuffer==KLit8ExpectedGb2312_1); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); + test(indicesOfUnconvertibleCharacters[0]==1); + test(indicesOfUnconvertibleCharacters[1]==3); + test(indicesOfUnconvertibleCharacters[2]==5); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 10); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); + test(shortForeignOutputBuffer==KLit8ExpectedGb2312_1().Left(9)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); + test(indicesOfUnconvertibleCharacters[0]==1); + test(indicesOfUnconvertibleCharacters[1]==3); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 6); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); + test(shortForeignOutputBuffer==KLit8ExpectedGb2312_1().Left(5)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); + test(indicesOfUnconvertibleCharacters[0]==1); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 3); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==5); + test(shortForeignOutputBuffer==KLit8ExpectedGb2312_1().Left(2)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); + indicesOfUnconvertibleCharacters.RemoveAll(); + characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("_")); + _LIT8(KLit8ExpectedGb2312_2, "\xd6\xd0_!_\xb9\xfa_"); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 8); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(shortForeignOutputBuffer==KLit8ExpectedGb2312_2); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); + test(indicesOfUnconvertibleCharacters[0]==1); + test(indicesOfUnconvertibleCharacters[1]==3); + test(indicesOfUnconvertibleCharacters[2]==5); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 7); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); + test(shortForeignOutputBuffer==KLit8ExpectedGb2312_2().Left(7)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); + test(indicesOfUnconvertibleCharacters[0]==1); + test(indicesOfUnconvertibleCharacters[1]==3); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 4); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); + test(shortForeignOutputBuffer==KLit8ExpectedGb2312_2().Left(4)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); + test(indicesOfUnconvertibleCharacters[0]==1); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 2); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==5); + test(shortForeignOutputBuffer==KLit8ExpectedGb2312_2().Left(2)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); + indicesOfUnconvertibleCharacters.RemoveAll(); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierHz, *arrayOfCharacterSetsAvailable, fileServerSession); + originalUnicode.Format(_L16("%c%c%c%c^%cZ%c"), 0x6ee1, KTibetanCharacter, 0x80ea, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter); + _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 + shortForeignOutputBuffer.Set(foreignBuffer, 0, 26); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(shortForeignOutputBuffer==KLit8ExpectedHz_1); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==4); + test(indicesOfUnconvertibleCharacters[0]==1); + test(indicesOfUnconvertibleCharacters[1]==3); + test(indicesOfUnconvertibleCharacters[2]==5); + test(indicesOfUnconvertibleCharacters[3]==7); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 25); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); + test(shortForeignOutputBuffer==KLit8ExpectedHz_1().Left(20)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); + test(indicesOfUnconvertibleCharacters[0]==1); + test(indicesOfUnconvertibleCharacters[1]==3); + test(indicesOfUnconvertibleCharacters[2]==5); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 18); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); + test(shortForeignOutputBuffer==KLit8ExpectedHz_1().Left(13)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); + test(indicesOfUnconvertibleCharacters[0]==1); + test(indicesOfUnconvertibleCharacters[1]==3); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 11); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==5); + test(shortForeignOutputBuffer==_L8("~{Bz#?kM~}")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); + test(indicesOfUnconvertibleCharacters[0]==1); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 7); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==7); + test(shortForeignOutputBuffer==_L8("~{Bz~}")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); + indicesOfUnconvertibleCharacters.RemoveAll(); + characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("_")); + _LIT8(KLit8ExpectedHz_2, "~{Bz~}_~{kM~}_^_Z_"); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 18); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(shortForeignOutputBuffer==KLit8ExpectedHz_2); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==4); + test(indicesOfUnconvertibleCharacters[0]==1); + test(indicesOfUnconvertibleCharacters[1]==3); + test(indicesOfUnconvertibleCharacters[2]==5); + test(indicesOfUnconvertibleCharacters[3]==7); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 17); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); + test(shortForeignOutputBuffer==KLit8ExpectedHz_2().Left(17)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); + test(indicesOfUnconvertibleCharacters[0]==1); + test(indicesOfUnconvertibleCharacters[1]==3); + test(indicesOfUnconvertibleCharacters[2]==5); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 15); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); + test(shortForeignOutputBuffer==KLit8ExpectedHz_2().Left(15)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); + test(indicesOfUnconvertibleCharacters[0]==1); + test(indicesOfUnconvertibleCharacters[1]==3); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 13); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==5); + test(shortForeignOutputBuffer==KLit8ExpectedHz_2().Left(13)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); + test(indicesOfUnconvertibleCharacters[0]==1); + indicesOfUnconvertibleCharacters.RemoveAll(); + shortForeignOutputBuffer.Set(foreignBuffer, 0, 6); + test(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==7); + test(shortForeignOutputBuffer==KLit8ExpectedHz_2().Left(6)); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); + indicesOfUnconvertibleCharacters.RemoveAll(); + + INFO_PRINTF1(_L("unconvertible foreign characters")); + TUint16* const unicodeBuffer=CONST_CAST(TUint16*, generatedUnicode.Ptr()); + TPtr16 shortUnicodeOutputBuffer(NULL, 0, 0); + TInt indexOfFirstByteOfFirstUnconvertibleCharacter; + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk, *arrayOfCharacterSetsAvailable, fileServerSession); + originalForeign.Set(TPtrC8(_S8("qwe\x80\x00rt\x81\x40\x81\x3f\xb6\x7e\xfe\xfe\xa1\xa1\xff\xff"), 19)); + expectedUnicode.Format(_L16("qwe%crt%c%c%c%c%c%c"), 0xfffd, 0x4e02, 0xfffd, 0x79ea, 0xfffd, 0x3000, 0xfffd); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 12); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==0); + test(shortUnicodeOutputBuffer==expectedUnicode); + test(numberOfUnconvertibleCharacters==4); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); + test(shortUnicodeOutputBuffer==expectedUnicode); + test(numberOfUnconvertibleCharacters==4); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==3); + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 11); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==2); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(11)); + test(numberOfUnconvertibleCharacters==3); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==2); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(11)); + test(numberOfUnconvertibleCharacters==3); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==3); + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 9); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==6); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(9)); + test(numberOfUnconvertibleCharacters==2); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==6); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(9)); + test(numberOfUnconvertibleCharacters==2); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==3); + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 7); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==10); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(7)); + test(numberOfUnconvertibleCharacters==1); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==10); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(7)); + test(numberOfUnconvertibleCharacters==1); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==3); + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 3); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==16); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); + test(numberOfUnconvertibleCharacters==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==16); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + test(state==CCnvCharacterSetConverter::KStateDefault); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, *arrayOfCharacterSetsAvailable, fileServerSession); + originalForeign.Set(_S8("\xea\xa5\xaf\xea\xa6\x9a\xeb\xea\xeb@\xea\x56\xea\xfc")); + expectedUnicode.Format(_L16("%c%c%c%c%c@%c%c"), 0xfffd, 0xff6f, 0xfffd, 0x68a6, 0xfffd, 0x9dcf, 0xfffd); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 8); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==0); + test(shortUnicodeOutputBuffer==expectedUnicode); + test(numberOfUnconvertibleCharacters==4); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); + test(shortUnicodeOutputBuffer==expectedUnicode); + test(numberOfUnconvertibleCharacters==4); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 7); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==2); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(7)); + test(numberOfUnconvertibleCharacters==3); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==2); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(7)); + test(numberOfUnconvertibleCharacters==3); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 4); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==7); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(4)); + test(numberOfUnconvertibleCharacters==2); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==7); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(4)); + test(numberOfUnconvertibleCharacters==2); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 2); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==11); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(2)); + test(numberOfUnconvertibleCharacters==1); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==11); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(2)); + test(numberOfUnconvertibleCharacters==1); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 0); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==14); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(0)); + test(numberOfUnconvertibleCharacters==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==14); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(0)); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + test(state==CCnvCharacterSetConverter::KStateDefault); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022Jp1, *arrayOfCharacterSetsAvailable, fileServerSession); + 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")); + expectedUnicode.Format(_L16("%c%c%c%c%c%c*+%c%c%c"), 0xfffd, 0xff8b, 0xfffd, 0xfffd, 0x6469, 0xfffd, 0x9f6e, 0xfffd, 0x6bf1); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 11); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==0); + test(shortUnicodeOutputBuffer==expectedUnicode); + test(numberOfUnconvertibleCharacters==5); + state=CCnvCharacterSetConverter::KStateDefault; + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); + test(shortUnicodeOutputBuffer==expectedUnicode); + test(numberOfUnconvertibleCharacters==5); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==3); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 9); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==4); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(9)); + test(numberOfUnconvertibleCharacters==4); + state=CCnvCharacterSetConverter::KStateDefault; + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==4); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(9)); + test(numberOfUnconvertibleCharacters==4); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==3); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 5); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==17); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(5)); + test(numberOfUnconvertibleCharacters==3); + state=CCnvCharacterSetConverter::KStateDefault; + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==17); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(5)); + test(numberOfUnconvertibleCharacters==3); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==3); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 3); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==21); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); + test(numberOfUnconvertibleCharacters==2); + state=CCnvCharacterSetConverter::KStateDefault; + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==21); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); + test(numberOfUnconvertibleCharacters==2); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==3); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 2); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==25); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(2)); + test(numberOfUnconvertibleCharacters==1); + state=CCnvCharacterSetConverter::KStateDefault; + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==25); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(2)); + test(numberOfUnconvertibleCharacters==1); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==3); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 0); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==30); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(0)); + test(numberOfUnconvertibleCharacters==0); + state=CCnvCharacterSetConverter::KStateDefault; + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==30); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(0)); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierHz, *arrayOfCharacterSetsAvailable, fileServerSession); + originalForeign.Set(_S8("{~{ !!\"o~}~~~{o\"x#R7~}}")); + expectedUnicode.Format(_L16("{%c%c%c~%c%c%c}"), 0xfffd, 0x3000, 0xfffd, 0x94eb, 0xfffd, 0x66f3); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 9); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==0); + test(shortUnicodeOutputBuffer==expectedUnicode); + test(numberOfUnconvertibleCharacters==3); + state=CCnvCharacterSetConverter::KStateDefault; + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); + test(shortUnicodeOutputBuffer==expectedUnicode); + test(numberOfUnconvertibleCharacters==3); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==3); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 6); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==7); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(6)); + test(numberOfUnconvertibleCharacters==2); + state=CCnvCharacterSetConverter::KStateDefault; + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==7); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(6)); + test(numberOfUnconvertibleCharacters==2); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==3); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 3); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==17); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); + test(numberOfUnconvertibleCharacters==1); + state=CCnvCharacterSetConverter::KStateDefault; + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==17); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); + test(numberOfUnconvertibleCharacters==1); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==3); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 1); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==21); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(1)); + test(numberOfUnconvertibleCharacters==0); + state=CCnvCharacterSetConverter::KStateDefault; + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==21); + test(shortUnicodeOutputBuffer==expectedUnicode.Left(1)); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + INFO_PRINTF1(_L("unconvertible foreign characters - INC123064")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierUtf8, *arrayOfCharacterSetsAvailable, fileServerSession); + originalForeign.Set(_S8("\x33\x2e\xa1\x6d\xb0\xca\xb7\x50\xa4\xd1\xa6\x61\xa1\x6e\x3a\xb3\xf8\xb9\x44\xc5\xe9\xbe\xc2\xa7\xd6\xb0\x54\x20\x28\x32\x30\x30\x38\x2d\x30\x35\x2d\x30\x32\x29")); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 40); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); + test(numberOfUnconvertibleCharacters==10); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==2); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJavaConformantUtf8, *arrayOfCharacterSetsAvailable, fileServerSession); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 40); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); + test(numberOfUnconvertibleCharacters==10); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==2); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierUtf8, *arrayOfCharacterSetsAvailable, fileServerSession); + originalForeign.Set(_S8("RTHK ON INTERNET")); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 16); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJavaConformantUtf8, *arrayOfCharacterSetsAvailable, fileServerSession); + state=CCnvCharacterSetConverter::KStateDefault; + shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 16); + test(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + // Cleanup: arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + // and originalUnicodeHBuf, generatedUnicodeHBuf, expectedUnicodeHBuf, generatedForeignHBuf + CleanupStack::PopAndDestroy(7); + } + +CT_GENERALFOREIGN::CT_GENERALFOREIGN() + { + SetTestStepName(KTestStep_T_GENERALFOREIGN); + } + +TVerdict CT_GENERALFOREIGN::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_generalforeign.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_generalforeign.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_GENERALFOREIGN_H__ +#define __T_GENERALFOREIGN_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_GENERALFOREIGN : public CTestStep + { +public: + CT_GENERALFOREIGN(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + + }; + +_LIT(KTestStep_T_GENERALFOREIGN, "T_GENERALFOREIGN"); + +#endif //__T_GENERALFOREIGN_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_generalforeign.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_generalforeign.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_GENERALFOREIGN tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_GENERALFOREIGN \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_hz.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_hz.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,345 @@ +/* +* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_hz.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +const TInt KBufferLength=100; +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0503 +@SYMTestCaseDesc Tests for truncated conversion from Unicode to HZ character set +@SYMTestPriority Medium +@SYMTestActions Tests for generated Unicode with the original Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_HZ::TestTruncatedConversionFromUnicodeToHz(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0503 ")); + for (TInt i=aOriginalUnicode.Length(); i>=0; --i) + { + TBuf8 generatedHz; + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedHz, aOriginalUnicode.Left(i)); + test(returnValue>=0); + TBuf8 generatedsecondPartOfHz; + test(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfHz, aOriginalUnicode.Mid(i-returnValue))==0); + generatedHz.Append(generatedsecondPartOfHz); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedHz, state)==0); + test(generatedUnicode==aOriginalUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0504 +@SYMTestCaseDesc Splitting and converting from Unicode to HZ test +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting from Unicode to Hz and back to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_HZ::TestSplittingConvertingFromUnicodeToHz(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, const TDesC8& aExpectedFirstPartOfHz, const TDesC8& aExpectedSecondPartOfHz, const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0504 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint8 hzBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr8 generatedFirstPartOfHz(hzBuffer, i); + test(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfHz, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); + test(generatedFirstPartOfHz==aExpectedFirstPartOfHz); + TBuf8 generatedSecondPartOfHz; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfHz, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); + test(generatedSecondPartOfHz==aExpectedSecondPartOfHz); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfHz, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfHz, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + generatedUnicode.Append(generatedSecondPartOfUnicode); + test(generatedUnicode==aOriginalUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0505 +@SYMTestCaseDesc Tests for truncated conversion from HZ to Unicode +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after truncation from HZ to Unicode and back to HZ +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_HZ::TestTruncatedConversionToUnicodeFromHz(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalHz) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0505 ")); + for (TInt i=aOriginalHz.Length(); i>=2; --i) // 2 is the length of HZ's "tilde" sequences + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalHz.Left(i), state); + test(returnValue>=0); + TBuf16 generatedsecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalHz.Mid(i-returnValue), state)==0); + generatedUnicode.Append(generatedsecondPartOfUnicode); + test(generatedUnicode==aExpectedUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0506 +@SYMTestCaseDesc Splitting and converting to Unicode from HZ test +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting from Hz to Unicode and back to Hz +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_HZ::TestSplittingConvertingToUnicodeFromHz(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfHzBytesNotConvertedAtSplit, TInt aExpectedStateAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalHz) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0506 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint16 unicodeBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); + TInt state=CCnvCharacterSetConverter::KStateDefault; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalHz, state); + test(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); + test((returnValue==aExpectedNumberOfHzBytesNotConvertedAtSplit) && (state==aExpectedStateAtSplit)); + { + TBuf16 generatedSecondPartOfUnicode; + state=aExpectedStateAtSplit; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalHz.Right(aExpectedNumberOfHzBytesNotConvertedAtSplit), state)==0); + test(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf8 generatedHz; + test(aCharacterSetConverter.ConvertFromUnicode(generatedHz, generatedFirstPartOfUnicode)==0); + TBuf8 generatedSecondPartOfHz; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfHz, generatedSecondPartOfUnicode)==0); + generatedHz.Append(generatedSecondPartOfHz); + TBuf16 regeneratedUnicode; + state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, generatedHz, state)==0); + test(regeneratedUnicode==aExpectedUnicode); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, aOriginalHz, state)==0); + test(regeneratedUnicode==aExpectedUnicode); + test(state==CCnvCharacterSetConverter::KStateDefault); + } + { + TBuf16 generatedSecondPartOfUnicode; + state=aExpectedStateAtSplit; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalHz.Right(aExpectedNumberOfHzBytesNotConvertedAtSplit), state)==0); + test(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf8 generatedHz; + test(aCharacterSetConverter.ConvertFromUnicode(generatedHz, generatedFirstPartOfUnicode)==0); + TBuf8 generatedSecondPartOfHz; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfHz, generatedSecondPartOfUnicode)==0); + generatedHz.Append(generatedSecondPartOfHz); + TBuf16 regeneratedUnicode; + state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, generatedHz, state)==0); + test(regeneratedUnicode==aExpectedUnicode); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, aOriginalHz, state)==0); + test(regeneratedUnicode==aExpectedUnicode); + test(state==CCnvCharacterSetConverter::KStateDefault); + } + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0507 +@SYMTestCaseDesc Conversion of bad HZ format to Unicode test +@SYMTestPriority Medium +@SYMTestActions Tests to convert bad Hz format to Unicode. + Check the status of CCnvCharacterSetConverter::EErrorIllFormedInput error flag +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_HZ::TestIsIllFormedHz(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aHz) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0507 ")); + TBuf16<50> generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + TPtrC8 remainderOfHz(aHz); + TInt lastReturnValue=KMaxTInt; + FOREVER + { + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfHz, state); + if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) + { + break; + } + test(returnValue>0); + test(returnValue* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + INFO_PRINTF1(_L("Testing HZ conversions")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierHz, *arrayOfCharacterSetsAvailable, fileServerSession); + // + INFO_PRINTF1(_L("Empty descriptor")); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 0, 10, 0, KNullDesC8, KNullDesC8, KNullDesC16); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 0, 10, 0, CCnvCharacterSetConverter::KStateDefault, 0, KNullDesC16, KNullDesC8); + INFO_PRINTF1(_L("Testing converting to HZ")); + TBuf16<50> originalUnicode; + originalUnicode.Format(_L16("%c%cxyz%c%c~%c~~%ce~a%c"), 0x4e2d, 0x56fd, 0x5979, 0x4ed6, 0x4eba, 0x4e09, 0x7259); + TestTruncatedConversionFromUnicodeToHz(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 0, 5, 16, KNullDesC8, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 6, 7, 15, _L8("~{VP~}"), _L8("~{9z~}xyz~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 8, 8, 14, _L8("~{VP9z~}"), _L8("xyz~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 9, 9, 13, _L8("~{VP9z~}x"), _L8("yz~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 10, 10, 12, _L8("~{VP9z~}xy"), _L8("z~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 11, 16, 11, _L8("~{VP9z~}xyz"), _L8("~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 17, 18, 10, _L8("~{VP9z~}xyz~{K}~}"), _L8("~{K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 19, 20, 9, _L8("~{VP9z~}xyz~{K}K{~}"), _L8("~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 21, 26, 8, _L8("~{VP9z~}xyz~{K}K{~}~~"), _L8("~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 27, 28, 7, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}"), _L8("~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 29, 30, 6, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~"), _L8("~~~{H}~}e~~a~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 31, 36, 5, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~~~"), _L8("~{H}~}e~~a~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 37, 37, 4, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~~~~{H}~}"), _L8("e~~a~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 38, 39, 3, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~~~~{H}~}e"), _L8("~~a~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 40, 40, 2, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~~~~{H}~}e~~"), _L8("a~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 41, 46, 1, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a"), _L8("~{Q@~}"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 47, 50, 0, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), KNullDesC8, originalUnicode); + INFO_PRINTF1(_L("Testing converting to Unicode")); + const TPtrC8 originalHz(_S8("My name is ~{3W~} ~~~~{~~I ~{'X'Z'S'e~} in ~{11>)~}~~~~}~~~~")); + TBuf16<50> expectedUnicode; + expectedUnicode.Format(_L16("My name is %c ~~{~I %c%c%c%c in %c%c~~}~~"), 0x5319, 0x0436, 0x0438, 0x0432, 0x0443, 0x5317, 0x4eac); + TestTruncatedConversionToUnicodeFromHz(*characterSetConverter, expectedUnicode, originalHz); + TestTruncatedConversionToUnicodeFromHz(*characterSetConverter, _L16("Hello"), _L8("~{~}~{~}~{~}Hello")); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 0, 0, 60, CCnvCharacterSetConverter::KStateDefault, 0, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 1, 1, 59, CCnvCharacterSetConverter::KStateDefault, 1, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 2, 2, 58, CCnvCharacterSetConverter::KStateDefault, 2, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 3, 3, 57, CCnvCharacterSetConverter::KStateDefault, 3, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 4, 4, 56, CCnvCharacterSetConverter::KStateDefault, 4, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 5, 5, 55, CCnvCharacterSetConverter::KStateDefault, 5, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 6, 6, 54, CCnvCharacterSetConverter::KStateDefault, 6, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 7, 7, 53, CCnvCharacterSetConverter::KStateDefault, 7, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 8, 8, 52, CCnvCharacterSetConverter::KStateDefault, 8, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 9, 9, 51, CCnvCharacterSetConverter::KStateDefault, 9, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 10, 10, 50, CCnvCharacterSetConverter::KStateDefault, 10, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 11, 11, 47, CCnvCharacterSetConverter::KStateDefault+1, 11, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 12, 12, 43, CCnvCharacterSetConverter::KStateDefault, 12, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 13, 13, 42, CCnvCharacterSetConverter::KStateDefault, 13, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 14, 14, 40, CCnvCharacterSetConverter::KStateDefault, 14, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 15, 15, 38, CCnvCharacterSetConverter::KStateDefault, 15, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 16, 16, 37, CCnvCharacterSetConverter::KStateDefault, 16, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 17, 17, 35, CCnvCharacterSetConverter::KStateDefault, 17, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 18, 18, 34, CCnvCharacterSetConverter::KStateDefault, 18, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 19, 19, 31, CCnvCharacterSetConverter::KStateDefault+1, 19, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 20, 20, 29, CCnvCharacterSetConverter::KStateDefault+1, 20, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 21, 21, 27, CCnvCharacterSetConverter::KStateDefault+1, 21, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 22, 22, 25, CCnvCharacterSetConverter::KStateDefault+1, 22, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 23, 23, 21, CCnvCharacterSetConverter::KStateDefault, 23, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 24, 24, 20, CCnvCharacterSetConverter::KStateDefault, 24, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 25, 25, 19, CCnvCharacterSetConverter::KStateDefault, 25, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 26, 26, 18, CCnvCharacterSetConverter::KStateDefault, 26, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 27, 27, 15, CCnvCharacterSetConverter::KStateDefault+1, 27, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 28, 28, 13, CCnvCharacterSetConverter::KStateDefault+1, 28, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 29, 29, 9, CCnvCharacterSetConverter::KStateDefault, 29, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 30, 30, 7, CCnvCharacterSetConverter::KStateDefault, 30, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 31, 31, 5, CCnvCharacterSetConverter::KStateDefault, 31, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 32, 32, 4, CCnvCharacterSetConverter::KStateDefault, 32, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 33, 33, 2, CCnvCharacterSetConverter::KStateDefault, 33, expectedUnicode, originalHz); + TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 34, 40, 0, CCnvCharacterSetConverter::KStateDefault, 34, expectedUnicode, originalHz); + INFO_PRINTF1(_L("Having '~' as the second byte of a Chinese character")); + originalUnicode.Format(_L16("1%c2"), 0x4e8c); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 0, 0, 3, KNullDesC8, _L8("1~{6~~}2"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 1, 6, 2, _L8("1"), _L8("~{6~~}2"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 7, 7, 1, _L8("1~{6~~}"), _L8("2"), originalUnicode); + TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 8, 20, 0, _L8("1~{6~~}2"), KNullDesC8, originalUnicode); + INFO_PRINTF1(_L("Testing ill-formed HZ")); + TestIsIllFormedHz(*characterSetConverter, _L8("abc ~{C~} def")); + TestIsIllFormedHz(*characterSetConverter, _L8("abc ~{C;C~} def")); + TestIsIllFormedHz(*characterSetConverter, _L8("abc ~{C;C;C~} def")); + TestIsIllFormedHz(*characterSetConverter, _L8("abc ~")); + TestIsIllFormedHz(*characterSetConverter, _L8("abc ~{~")); + TestIsIllFormedHz(*characterSetConverter, _L8("abc ~{C")); + // note that...................................._L8("abc ~{C~") is actually well-formed + TestIsIllFormedHz(*characterSetConverter, _L8("abc ~{C;~")); + CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +CT_HZ::CT_HZ() + { + SetTestStepName(KTestStep_T_HZ); + } + +TVerdict CT_HZ::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_hz.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_hz.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,45 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_HZ_H__ +#define __T_HZ_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_HZ : public CTestStep + { +public: + CT_HZ(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void TestTruncatedConversionFromUnicodeToHz(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode); + void TestSplittingConvertingFromUnicodeToHz(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, const TDesC8& aExpectedFirstPartOfHz, const TDesC8& aExpectedSecondPartOfHz, const TDesC16& aOriginalUnicode); + void TestTruncatedConversionToUnicodeFromHz(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalHz); + void TestSplittingConvertingToUnicodeFromHz(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfHzBytesNotConvertedAtSplit, TInt aExpectedStateAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalHz); + void TestIsIllFormedHz(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aHz); + + + + }; + +_LIT(KTestStep_T_HZ, "T_HZ"); + +#endif //__T_HZ_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_hz.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_hz.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_HZ tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_HZ \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_iscii.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_iscii.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,135 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_iscii.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierIscii; + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +const TInt KBufferLength=100; + +void CT_ISCII::TestConversionToUnicodeFromISCII(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalISCII, TInt aExpectedResult) + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalISCII, state); + test(returnValue == aExpectedResult ); + test(generatedUnicode==aExpectedUnicode); + } + +void CT_ISCII::TestConversionToUnicodeFromTruncatedISCII(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16&, const TDesC8& aOriginalISCII, TInt aExpectedResult) + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalISCII, state); + test(returnValue != aExpectedResult ); + } + +void CT_ISCII::TestConversionFromUnicodeToISCII(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, const TDesC8& aExpectedISCII, TInt aExpectedResult) + { + TBuf8 generatedISCII; + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedISCII, aOriginalUnicode); + test(returnValue == aExpectedResult); + test(generatedISCII==aExpectedISCII); + } + +void CT_ISCII::TestConversion( CCnvCharacterSetConverter& aCharacterSetConverter ) +{ + TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x0079"), _L8("\xef\x42\x79")); + TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x0079"), _L8("\x79")); + + TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x0079\x007a\x0070\x0071\x0072\x0073\x0074\x0075"), _L8("\xef\x42\x79\x7a\x70\x71\x72\x73\x74\x75")); + TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x0079\x007a\x0070\x0071\x0072\x0073\x0074\x0075"), _L8("\x79\x7a\x70\x71\x72\x73\x74\x75")); + TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x0079\x007a\x0070\x0071\x0072\x0073\x0074\x0075\x0901"), _L8("\x79\x7a\x70\x71\x72\x73\x74\x75\xa1")); + 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")); + + TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x0901"), _L8("\xef\x42\xa1")); + TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x0901\x0079"), _L8("\xa1\x79")); + TestConversionToUnicodeFromTruncatedISCII(aCharacterSetConverter, _L16("\x0901"), _L8("\xa1")); + + TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x094d"), _L8("\xef\x42\xe8")); + TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x200c"), _L8("\xef\x42\xe8")); + TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x094d\x0079"), _L8("\xe8\x79")); + + TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x0950"), _L8("\xef\x42\xa1\xe9")); +} + +void CT_ISCII::DoE32MainL() + { + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + CArrayFix* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); + + TestConversion( *characterSetConverter ); + + CleanupStack::PopAndDestroy(3); + } + +CT_ISCII::CT_ISCII() + { + SetTestStepName(KTestStep_T_ISCII); + } + +TVerdict CT_ISCII::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_iscii.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_iscii.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,43 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_ISCII_H__ +#define __T_ISCII_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_ISCII : public CTestStep + { +public: + CT_ISCII(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void TestConversionToUnicodeFromISCII(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalISCII, TInt aExpectedResult = 0); + void TestConversionToUnicodeFromTruncatedISCII(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16&, const TDesC8& aOriginalISCII, TInt aExpectedResult = 0); + void TestConversionFromUnicodeToISCII(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, const TDesC8& aExpectedISCII, TInt aExpectedResult = 0); + void TestConversion( CCnvCharacterSetConverter& aCharacterSetConverter ); + + + }; + +_LIT(KTestStep_T_ISCII, "T_ISCII"); + +#endif //__T_ISCII_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_iscii.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_iscii.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_ISCII tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_ISCII \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,356 @@ +/* +* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_iso2022jp.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +const TInt KBufferLength=100; +const TInt KNotEnoughBufferLength=17; +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0522 +@SYMTestCaseDesc Tests for conversion from Unicode to ISO2022JP +@SYMTestPriority Medium +@SYMTestActions Tests for conversion from Unicode to ISO2022JP and back to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_ISO2022JP::TestConversionFromUnicodeToIso( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0522 ")); + TBuf8 generatedIso2022Jp; + generatedIso2022Jp.FillZ(KNotEnoughBufferLength); + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, aOriginalUnicode); + test(returnValue>=0); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + TInt testresult; + testresult=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedIso2022Jp, state); + test(testresult==0); + // test(generatedUnicode==aOriginalUnicode); + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0523 +@SYMTestCaseDesc Tests for truncated conversion from Unicode to ISO2022JP +@SYMTestPriority Medium +@SYMTestActions Tests for truncated conversion from Unicode to ISO2022JP and back to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_ISO2022JP::TestTruncatedConversionFromUnicodeToIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0523 ")); + for (TInt i=aOriginalUnicode.Length(); i>=0; --i) + { + TBuf8 generatedIso2022Jp; + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, aOriginalUnicode.Left(i)); + test(returnValue>=0); + TBuf8 generatedsecondPartOfIso2022Jp; + test(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfIso2022Jp, aOriginalUnicode.Mid(i-returnValue))==0); + generatedIso2022Jp.Append(generatedsecondPartOfIso2022Jp); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedIso2022Jp, state)==0); + test(generatedUnicode==aOriginalUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0524 +@SYMTestCaseDesc Splitting and converting from Unicode to ISO2022JP test +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting, from Unicode to ISO2022JP and back to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_ISO2022JP::TestSplittingConvertingFromUnicodeToIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + TInt aMaximumLengthLowerLimit, + TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, + const TDesC8& aExpectedFirstPartOfIso2022Jp, + const TDesC8& aExpectedSecondPartOfIso2022Jp, + const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0524 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint8 iso2022JpBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr8 generatedFirstPartOfIso2022Jp(iso2022JpBuffer, i); + test(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfIso2022Jp, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); + test(generatedFirstPartOfIso2022Jp==aExpectedFirstPartOfIso2022Jp); + TBuf8 generatedSecondPartOfIso2022Jp; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfIso2022Jp, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); + test(generatedSecondPartOfIso2022Jp==aExpectedSecondPartOfIso2022Jp); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfIso2022Jp, state)==0); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfIso2022Jp, state)==0); + generatedUnicode.Append(generatedSecondPartOfUnicode); + test(generatedUnicode==aOriginalUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0525 +@SYMTestCaseDesc Tests for truncated conversion from ISO2022JP to Unicode test +@SYMTestPriority Medium +@SYMTestActions Tests for truncated conversion from ISO2022JP to Unicode and back to ISO2022JP +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_ISO2022JP::TestTruncatedConversionToUnicodeFromIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aExpectedUnicode, + const TDesC8& aOriginalIso2022Jp) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0525 ")); + for (TInt i=aOriginalIso2022Jp.Length(); i>=3; --i) // 3 is the length of ISO-2022-JP's longest escape sequence + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalIso2022Jp.Left(i), state); + test(returnValue>=0); + TBuf16 generatedsecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalIso2022Jp.Mid(i-returnValue), state)==0); + generatedUnicode.Append(generatedsecondPartOfUnicode); + test(generatedUnicode==aExpectedUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0526 +@SYMTestCaseDesc Splitting and converting from ISO2022JP to Unicode test. +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting, from ISO2022JP to Unicode and back to ISO2022JP +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_ISO2022JP::TestSplittingConvertingToUnicodeFromIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + TInt aMaximumLengthLowerLimit, + TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit, + TInt aExpectedLengthOfFirstPartOfUnicode, + const TDesC16& aExpectedUnicode, + const TDesC8& aOriginalIso2022Jp) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0526 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint16 unicodeBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); + TInt state=CCnvCharacterSetConverter::KStateDefault; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalIso2022Jp, state); + test(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); + test(returnValue==aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalIso2022Jp.Right(aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit), state)==0); + test(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); + TBuf8 generatedIso2022Jp; + test(aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, generatedFirstPartOfUnicode)==0); + TBuf8 generatedSecondPartOfIso2022Jp; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfIso2022Jp, generatedSecondPartOfUnicode)==0); + generatedIso2022Jp.Append(generatedSecondPartOfIso2022Jp); + TBuf16 regeneratedUnicode; + state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, generatedIso2022Jp, state)==0); + test(regeneratedUnicode==aExpectedUnicode); + state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, aOriginalIso2022Jp, state)==0); + test(regeneratedUnicode==aExpectedUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0527 +@SYMTestCaseDesc Conversion of bad ISO2022JP format to Unicode test +@SYMTestPriority Medium +@SYMTestActions Tests to convert bad format ISO2022JP input to Unicode. +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_ISO2022JP::TestIsIllFormedIso2022Jp(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aIso2022Jp) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0527 ")); + TBuf16<50> generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + TPtrC8 remainderOfIso2022Jp(aIso2022Jp); + TInt lastReturnValue=KMaxTInt; + FOREVER + { + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfIso2022Jp, state); + if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) + { + break; + } + test(returnValue>0); + test(returnValue* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + TInt i; + for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + INFO_PRINTF1(_L("Testing ISO-2022-JP conversions")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022Jp, *arrayOfCharacterSetsAvailable, fileServerSession); + // + INFO_PRINTF1(_L("Empty descriptor")); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 0, 10, 0, KNullDesC8, KNullDesC8, KNullDesC16); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); + INFO_PRINTF1(_L("Testing converting to ISO-2022-JP")); + + _LIT(KTestUnicode,">.@>0l90"); + _LIT(KTestUnicode2,"\x0393\x03b1\x03c3\x03bf\x03c5\x3055\x3088"); + TestConversionFromUnicodeToIso(*characterSetConverter, KTestUnicode2); + TestConversionFromUnicodeToIso(*characterSetConverter, KTestUnicode); + + TBuf16<50> originalUnicode; + originalUnicode.Format(_L16("%c%c%c%c%c\xa5\\%c%c%c%c%c"), 0x0393, 0x03b1, 0x03c3, 0x03bf, 0x03c5, 0x3055, 0x3088, 0x3046, 0x306a, 0x3089); + TestTruncatedConversionFromUnicodeToIso2022Jp(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 3, 7, 12, _L8(""), _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 8, 9, 11, _L8("\x1b\x24\x42\x26\x23\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 10, 11, 10, _L8("\x1b\x24\x42\x26\x23\x26\x41\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 12, 13, 9, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 14, 15, 8, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 16, 19, 7, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x42"), _L8("\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 20, 23, 6, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42"), _L8("\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 24, 28, 5, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\"), _L8("\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 29, 30, 4, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 31, 32, 3, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 33, 34, 2, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 35, 36, 1, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x69\x1b\x28\x42"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 37, 50, 0, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), KNullDesC8, originalUnicode); + originalUnicode.Format(_L16("%cX%cY%cZ"), 0x6153, 0x6376, 0x65d9); + TestTruncatedConversionFromUnicodeToIso2022Jp(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 3, 7, 6, _L8(""), _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 8, 11, 5, _L8("\x1b\x24\x42XX\x1b\x28\x42"), _L8("X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 12, 16, 4, _L8("\x1b\x24\x42XX\x1b\x28\x42X"), _L8("\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 17, 20, 3, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42"), _L8("Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 21, 25, 2, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y"), _L8("\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 26, 29, 1, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42"), _L8("Z"), originalUnicode); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 30, 40, 0, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), KNullDesC8, originalUnicode); + INFO_PRINTF1(_L("Testing converting to Unicode")); + const TPtrC8 originalIso2022Jp(_S8("\x1b\x24\x40\x1b\x28\x4aMy name is \x1b\x28\x4a\x1b\x28\x42\x1b\x24\x40\x25\x47\x25\x23\x25\x53\x25\x45\x1b\x28\x4a in \x1b\x24\x42\x46\x7c\x4b\x5c\x38\x6c\x1b\x28\x42\\~\x1b\x28\x4a\\~")); + TBuf16<50> expectedUnicode; + expectedUnicode.Format(_L16("My name is %c%c%c%c in %c%c%c\\~%c%c"), 0x30c7, 0x30a3, 0x30d3, 0x30c5, 0x65e5, 0x672c, 0x8a9e, 0x00a5, 0x203e); + TestTruncatedConversionToUnicodeFromIso2022Jp(*characterSetConverter, expectedUnicode, originalIso2022Jp); + TestTruncatedConversionToUnicodeFromIso2022Jp(*characterSetConverter, _L16(" Hello"), _L8("\x1b\x24\x42\x1b\x28\x4a\x1b\x24\x42\x1b\x28\x4a\x1b\x24\x42\x1b\x28\x4a Hello")); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 0, 0, 60, 0, expectedUnicode, originalIso2022Jp); + for (i=1; i<=10; ++i) + { + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, i, i, 54-i, i, expectedUnicode, originalIso2022Jp); + } + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 11, 11, 34, 11, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 12, 12, 32, 12, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 13, 13, 30, 13, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 14, 14, 28, 14, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 15, 15, 23, 15, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 16, 16, 22, 16, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 17, 17, 21, 17, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 18, 18, 20, 18, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 19, 19, 16, 19, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 20, 20, 14, 20, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 21, 21, 12, 21, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 22, 22, 7, 22, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 23, 23, 6, 23, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 24, 24, 2, 24, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 25, 25, 1, 25, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 26, 40, 0, 26, expectedUnicode, originalIso2022Jp); + INFO_PRINTF1(_L("Testing the default ISO-2022-JP state")); + for (i=0; i<=6; ++i) + { + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, i, i, 6-i, i, _L16("Hello\xa5"), _L8("Hello\\")); + } + INFO_PRINTF1(_L("Testing ill-formed ISO-2022-JP")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x1b\x28\x4a def")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x21\x21\x1b\x28\x4a def")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x21\x21\x21\x21\x1b\x28\x4a def")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\xff")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x26\x40")); + CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +CT_ISO2022JP::CT_ISO2022JP() + { + SetTestStepName(KTestStep_T_ISO2022JP); + } + +TVerdict CT_ISO2022JP::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,66 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_ISO2022JP_H__ +#define __T_ISO2022JP_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_ISO2022JP : public CTestStep + { +public: + CT_ISO2022JP(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void TestConversionFromUnicodeToIso( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aOriginalUnicode); + void TestTruncatedConversionFromUnicodeToIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aOriginalUnicode); + void TestSplittingConvertingFromUnicodeToIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + TInt aMaximumLengthLowerLimit, + TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, + const TDesC8& aExpectedFirstPartOfIso2022Jp, + const TDesC8& aExpectedSecondPartOfIso2022Jp, + const TDesC16& aOriginalUnicode); + void TestTruncatedConversionToUnicodeFromIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aExpectedUnicode, + const TDesC8& aOriginalIso2022Jp); + void TestSplittingConvertingToUnicodeFromIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + TInt aMaximumLengthLowerLimit, + TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit, + TInt aExpectedLengthOfFirstPartOfUnicode, + const TDesC16& aExpectedUnicode, + const TDesC8& aOriginalIso2022Jp); + void TestIsIllFormedIso2022Jp(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aIso2022Jp); + + + }; + +_LIT(KTestStep_T_ISO2022JP, "T_ISO2022JP"); + +#endif //__T_ISO2022JP_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_ISO2022JP tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_ISO2022JP \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp1_2.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp1_2.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,323 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_iso2022jp1_2.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +const TUint KCharacterSetTestIso2022jp1_2=0x01000009; +const TInt KBufferLength=100; +const TInt KNotEnoughBufferLength=17; + +void CT_ISO2022JP1_2::TestConversionFromUnicodeToIso( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" TestConversionFromUnicodeToIso ")); + TBuf8 generatedIso2022Jp; + generatedIso2022Jp.FillZ(KNotEnoughBufferLength); + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, aOriginalUnicode); + test(returnValue>=0); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + TInt testresult; + testresult=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedIso2022Jp, state); + test(testresult==0); + // test(generatedUnicode==aOriginalUnicode); + } + +void CT_ISO2022JP1_2::TestTruncatedConversionFromUnicodeToIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" TestTruncatedConversionFromUnicodeToIso2022Jp ")); + for (TInt i=aOriginalUnicode.Length(); i>=0; --i) + { + TBuf8 generatedIso2022Jp; + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, aOriginalUnicode.Left(i)); + test(returnValue>=0); + TBuf8 generatedsecondPartOfIso2022Jp; + test(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfIso2022Jp, aOriginalUnicode.Mid(i-returnValue))==0); + generatedIso2022Jp.Append(generatedsecondPartOfIso2022Jp); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedIso2022Jp, state)==0); + test(generatedUnicode==aOriginalUnicode); + } + } + +void CT_ISO2022JP1_2::TestSplittingConvertingFromUnicodeToIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + TInt aMaximumLengthLowerLimit, + TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, + const TDesC8& aExpectedFirstPartOfIso2022Jp, + const TDesC8& aExpectedSecondPartOfIso2022Jp, + const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" TestTruncatedConversionFromUnicodeToIso2022Jp ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint8 iso2022JpBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr8 generatedFirstPartOfIso2022Jp(iso2022JpBuffer, i); + test(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfIso2022Jp, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); + test(generatedFirstPartOfIso2022Jp==aExpectedFirstPartOfIso2022Jp); + TBuf8 generatedSecondPartOfIso2022Jp; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfIso2022Jp, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); + test(generatedSecondPartOfIso2022Jp==aExpectedSecondPartOfIso2022Jp); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfIso2022Jp, state)==0); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfIso2022Jp, state)==0); + generatedUnicode.Append(generatedSecondPartOfUnicode); + test(generatedUnicode==aOriginalUnicode); + } + } + +void CT_ISO2022JP1_2::TestTruncatedConversionToUnicodeFromIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aExpectedUnicode, + const TDesC8& aOriginalIso2022Jp) + { + INFO_PRINTF1(_L(" TestTruncatedConversionToUnicodeFromIso2022Jp ")); + for (TInt i=aOriginalIso2022Jp.Length(); i>=3; --i) // 3 is the length of ISO-2022-JP's longest escape sequence + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalIso2022Jp.Left(i), state); + test(returnValue>=0); + TBuf16 generatedsecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalIso2022Jp.Mid(i-returnValue), state)==0); + generatedUnicode.Append(generatedsecondPartOfUnicode); + test(generatedUnicode==aExpectedUnicode); + } + } + +void CT_ISO2022JP1_2::TestSplittingConvertingToUnicodeFromIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + TInt aMaximumLengthLowerLimit, + TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit, + TInt aExpectedLengthOfFirstPartOfUnicode, + const TDesC16& aExpectedUnicode, + const TDesC8& aOriginalIso2022Jp) + { + INFO_PRINTF1(_L(" TestSplittingConvertingToUnicodeFromIso2022Jp ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint16 unicodeBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); + TInt state=CCnvCharacterSetConverter::KStateDefault; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalIso2022Jp, state); + test(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); + test(returnValue==aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalIso2022Jp.Right(aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit), state)==0); + test(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); + TBuf8 generatedIso2022Jp; + test(aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, generatedFirstPartOfUnicode)==0); + TBuf8 generatedSecondPartOfIso2022Jp; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfIso2022Jp, generatedSecondPartOfUnicode)==0); + generatedIso2022Jp.Append(generatedSecondPartOfIso2022Jp); + TBuf16 regeneratedUnicode; + state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, generatedIso2022Jp, state)==0); +// test(regeneratedUnicode==aExpectedUnicode); + state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, aOriginalIso2022Jp, state)==0); + test(regeneratedUnicode==aExpectedUnicode); + } + } + +void CT_ISO2022JP1_2::TestIsIllFormedIso2022Jp(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aIso2022Jp) + { + INFO_PRINTF1(_L(" TestIsIllFormedIso2022Jp ")); + TBuf16<50> generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + TPtrC8 remainderOfIso2022Jp(aIso2022Jp); + TInt lastReturnValue=KMaxTInt; + FOREVER + { + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfIso2022Jp, state); + if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) + { + break; + } + test(returnValue>0); + test(returnValue.@>0l90"); + _LIT(KTestUnicode2,"\x0393\x03b1\x03c3\x03bf\x03c5\x3055\x3088"); + TestConversionFromUnicodeToIso(*characterSetConverter, KTestUnicode2); + TestConversionFromUnicodeToIso(*characterSetConverter, KTestUnicode); + + TBuf16<50> originalUnicode; + originalUnicode.Format(_L16("%c%c%c%c%c\xa5%c%c%c%c%c"), 0x0393, 0x03b1, 0x03c3, 0x03bf, 0x03c5, 0x3055, 0x3088, 0x3046, 0x306a, 0x3089); + TestTruncatedConversionFromUnicodeToIso2022Jp(*characterSetConverter, originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 3, 7, 12, _L8(""), _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 8, 9, 11, _L8("\x1b\x24\x42\x26\x23\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 10, 11, 10, _L8("\x1b\x24\x42\x26\x23\x26\x41\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 12, 13, 9, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 14, 15, 8, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 16, 19, 7, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x42"), _L8("\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 20, 23, 6, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42"), _L8("\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 24, 28, 5, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\"), _L8("\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 29, 30, 4, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 31, 32, 3, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 33, 34, 2, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 35, 36, 1, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 37, 50, 0, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), KNullDesC8, originalUnicode); + originalUnicode.Format(_L16("%cX%cY%cZ"), 0x6153, 0x6376, 0x65d9); + TestTruncatedConversionFromUnicodeToIso2022Jp(*characterSetConverter, originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 3, 7, 6, _L8(""), _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 8, 11, 5, _L8("\x1b\x24\x42XX\x1b\x28\x42"), _L8("X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 12, 16, 4, _L8("\x1b\x24\x42XX\x1b\x28\x42X"), _L8("\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 17, 20, 3, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42"), _L8("Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 21, 25, 2, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y"), _L8("\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 26, 29, 1, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42"), _L8("Z"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 30, 40, 0, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), KNullDesC8, originalUnicode); + INFO_PRINTF1(_L("Testing converting to Unicode")); + const TPtrC8 originalIso2022Jp(_S8("\x1b\x24\x40\x1b\x28\x4aMy name is \x1b\x28\x4a\x1b\x28\x42\x1b\x24\x40\x25\x47\x25\x23\x25\x53\x25\x45\x1b\x28\x4a in \x1b\x24\x42\x46\x7c\x4b\x5c\x38\x6c\x1b\x28\x42\\~\x1b\x28\x4a\\~")); + TBuf16<50> expectedUnicode; + if (!isS60version) + expectedUnicode.Format(_L16("My name is %c%c%c%c in %c%c%c\\~%c%c"), 0x30c7, 0x30a3, 0x30d3, 0x30c5, 0x65e5, 0x672c, 0x8a9e, 0x00a5, 0x203e); + else + expectedUnicode.Format(_L16("My name is %c%c%c%c in %c%c%c\\~%c%c"), 0x30c7, 0x30a3, 0x30d3, 0x30c5, 0x65e5, 0x672c, 0x8a9e, 0x00a5, 0x7e); + TestTruncatedConversionToUnicodeFromIso2022Jp(*characterSetConverter, expectedUnicode, originalIso2022Jp); + TestTruncatedConversionToUnicodeFromIso2022Jp(*characterSetConverter, _L16(" Hello"), _L8("\x1b\x24\x42\x1b\x28\x4a\x1b\x24\x42\x1b\x28\x4a\x1b\x24\x42\x1b\x28\x4a Hello")); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 0, 0, 60, 0, expectedUnicode, originalIso2022Jp); + for (int i=1; i<=10; ++i) + { + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, i, i, 54-i, i, expectedUnicode, originalIso2022Jp); + } + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 11, 11, 34, 11, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 12, 12, 32, 12, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 13, 13, 30, 13, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 14, 14, 28, 14, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 15, 15, 23, 15, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 16, 16, 22, 16, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 17, 17, 21, 17, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 18, 18, 20, 18, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 19, 19, 16, 19, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 20, 20, 14, 20, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 21, 21, 12, 21, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 22, 22, 7, 22, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 23, 23, 6, 23, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 24, 24, 2, 24, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 25, 25, 1, 25, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 26, 40, 0, 26, expectedUnicode, originalIso2022Jp); + INFO_PRINTF1(_L("Testing the default ISO-2022-JP state")); + for (int i=0; i<=6; ++i) + { + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, i, i, 6-i, i, _L16("Hello\xa5"), _L8("Hello\\")); + } + INFO_PRINTF1(_L("Testing ill-formed ISO-2022-JP")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x1b\x28\x4a def")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x21\x21\x1b\x28\x4a def")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x21\x21\x21\x21\x1b\x28\x4a def")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\xff")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x26\x40")); + } + +void CT_ISO2022JP1_2::DoE32MainL() + { + INFO_PRINTF1(_L(" TISO2022JP_2 ")); + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + TInt i; + for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + INFO_PRINTF1(_L("Testing ISO-2022-JP conversions")); + + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetTestIso2022jp1_2, *arrayOfCharacterSetsAvailable, fileServerSession); + TestIso2022Jp(characterSetConverter); + + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022Jp1, *arrayOfCharacterSetsAvailable, fileServerSession); + TestIso2022Jp(characterSetConverter, EFalse); + + CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +CT_ISO2022JP1_2::CT_ISO2022JP1_2() + { + SetTestStepName(KTestStep_T_ISO2022JP1_2); + } + +TVerdict CT_ISO2022JP1_2::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp1_2.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp1_2.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,67 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_ISO2022JP1_2_H__ +#define __T_ISO2022JP1_2_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_ISO2022JP1_2 : public CTestStep + { +public: + CT_ISO2022JP1_2(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void TestConversionFromUnicodeToIso( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aOriginalUnicode); + void TestTruncatedConversionFromUnicodeToIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aOriginalUnicode); + void TestSplittingConvertingFromUnicodeToIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + TInt aMaximumLengthLowerLimit, + TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, + const TDesC8& aExpectedFirstPartOfIso2022Jp, + const TDesC8& aExpectedSecondPartOfIso2022Jp, + const TDesC16& aOriginalUnicode); + void TestTruncatedConversionToUnicodeFromIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aExpectedUnicode, + const TDesC8& aOriginalIso2022Jp); + void TestSplittingConvertingToUnicodeFromIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + TInt aMaximumLengthLowerLimit, + TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit, + TInt aExpectedLengthOfFirstPartOfUnicode, + const TDesC16& aExpectedUnicode, + const TDesC8& aOriginalIso2022Jp); + void TestIsIllFormedIso2022Jp(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aIso2022Jp); + void TestIso2022Jp(CCnvCharacterSetConverter * characterSetConverter, TBool isS60version = ETrue); + + + }; + +_LIT(KTestStep_T_ISO2022JP1_2, "T_ISO2022JP1_2"); + +#endif //__T_ISO2022JP1_2_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp1_2.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp1_2.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_ISO2022JP1_2 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_ISO2022JP1_2 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp_2.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp_2.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,309 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_iso2022jp_2.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +const TUint KCharacterSetTestIso2022jp_2=0x01000006; +const TInt KBufferLength=100; +const TInt KNotEnoughBufferLength=17; + +void CT_ISO2022JP_2::TestConversionFromUnicodeToIso( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" TestConversionFromUnicodeToIso ")); + TBuf8 generatedIso2022Jp; + generatedIso2022Jp.FillZ(KNotEnoughBufferLength); + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, aOriginalUnicode); + test(returnValue>=0); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + TInt testresult; + testresult=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedIso2022Jp, state); + test(testresult==0); + // test(generatedUnicode==aOriginalUnicode); + } + +void CT_ISO2022JP_2::TestTruncatedConversionFromUnicodeToIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" TestTruncatedConversionFromUnicodeToIso2022Jp ")); + for (TInt i=aOriginalUnicode.Length(); i>=0; --i) + { + TBuf8 generatedIso2022Jp; + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, aOriginalUnicode.Left(i)); + test(returnValue>=0); + TBuf8 generatedsecondPartOfIso2022Jp; + test(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfIso2022Jp, aOriginalUnicode.Mid(i-returnValue))==0); + generatedIso2022Jp.Append(generatedsecondPartOfIso2022Jp); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedIso2022Jp, state)==0); + test(generatedUnicode==aOriginalUnicode); + } + } + +void CT_ISO2022JP_2::TestSplittingConvertingFromUnicodeToIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + TInt aMaximumLengthLowerLimit, + TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, + const TDesC8& aExpectedFirstPartOfIso2022Jp, + const TDesC8& aExpectedSecondPartOfIso2022Jp, + const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" TestTruncatedConversionFromUnicodeToIso2022Jp ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint8 iso2022JpBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr8 generatedFirstPartOfIso2022Jp(iso2022JpBuffer, i); + test(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfIso2022Jp, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); + test(generatedFirstPartOfIso2022Jp==aExpectedFirstPartOfIso2022Jp); + TBuf8 generatedSecondPartOfIso2022Jp; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfIso2022Jp, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); + test(generatedSecondPartOfIso2022Jp==aExpectedSecondPartOfIso2022Jp); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfIso2022Jp, state)==0); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfIso2022Jp, state)==0); + generatedUnicode.Append(generatedSecondPartOfUnicode); + test(generatedUnicode==aOriginalUnicode); + } + } + +void CT_ISO2022JP_2::TestTruncatedConversionToUnicodeFromIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aExpectedUnicode, + const TDesC8& aOriginalIso2022Jp) + { + INFO_PRINTF1(_L(" TestTruncatedConversionToUnicodeFromIso2022Jp ")); + for (TInt i=aOriginalIso2022Jp.Length(); i>=3; --i) // 3 is the length of ISO-2022-JP's longest escape sequence + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalIso2022Jp.Left(i), state); + test(returnValue>=0); + TBuf16 generatedsecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalIso2022Jp.Mid(i-returnValue), state)==0); + generatedUnicode.Append(generatedsecondPartOfUnicode); + test(generatedUnicode==aExpectedUnicode); + } + } + +void CT_ISO2022JP_2::TestSplittingConvertingToUnicodeFromIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + TInt aMaximumLengthLowerLimit, + TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit, + TInt aExpectedLengthOfFirstPartOfUnicode, + const TDesC16& aExpectedUnicode, + const TDesC8& aOriginalIso2022Jp) + { + INFO_PRINTF1(_L(" TestSplittingConvertingToUnicodeFromIso2022Jp ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint16 unicodeBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); + TInt state=CCnvCharacterSetConverter::KStateDefault; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalIso2022Jp, state); + test(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); + test(returnValue==aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalIso2022Jp.Right(aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit), state)==0); + test(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); + TBuf8 generatedIso2022Jp; + test(aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, generatedFirstPartOfUnicode)==0); + TBuf8 generatedSecondPartOfIso2022Jp; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfIso2022Jp, generatedSecondPartOfUnicode)==0); + generatedIso2022Jp.Append(generatedSecondPartOfIso2022Jp); + TBuf16 regeneratedUnicode; + state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, generatedIso2022Jp, state)==0); + test(regeneratedUnicode==aExpectedUnicode); + state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, aOriginalIso2022Jp, state)==0); + test(regeneratedUnicode==aExpectedUnicode); + } + } + +void CT_ISO2022JP_2::TestIsIllFormedIso2022Jp(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aIso2022Jp) + { + INFO_PRINTF1(_L(" TestIsIllFormedIso2022Jp ")); + TBuf16<50> generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + TPtrC8 remainderOfIso2022Jp(aIso2022Jp); + TInt lastReturnValue=KMaxTInt; + FOREVER + { + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfIso2022Jp, state); + if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) + { + break; + } + test(returnValue>0); + test(returnValue* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + TInt i; + for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + INFO_PRINTF1(_L("Testing ISO-2022-JP conversions")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetTestIso2022jp_2, *arrayOfCharacterSetsAvailable, fileServerSession); + // + INFO_PRINTF1(_L("Empty descriptor")); + TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 0, 10, 0, KNullDesC8, KNullDesC8, KNullDesC16); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); + INFO_PRINTF1(_L("Testing converting to ISO-2022-JP")); + + _LIT(KTestUnicode,">.@>0l90"); + _LIT(KTestUnicode2,"\x0393\x03b1\x03c3\x03bf\x03c5\x3055\x3088"); + TestConversionFromUnicodeToIso(*characterSetConverter, KTestUnicode2); + TestConversionFromUnicodeToIso(*characterSetConverter, KTestUnicode); + + TBuf16<50> originalUnicode; + originalUnicode.Format(_L16("%c%c%c%c%c\xa5%c%c%c%c%c"), 0x0393, 0x03b1, 0x03c3, 0x03bf, 0x03c5, 0x3055, 0x3088, 0x3046, 0x306a, 0x3089); + TestTruncatedConversionFromUnicodeToIso2022Jp(*characterSetConverter, originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 3, 7, 12, _L8(""), _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 8, 9, 11, _L8("\x1b\x24\x42\x26\x23\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 10, 11, 10, _L8("\x1b\x24\x42\x26\x23\x26\x41\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 12, 13, 9, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 14, 15, 8, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 16, 19, 7, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x42"), _L8("\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 20, 23, 6, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42"), _L8("\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 24, 28, 5, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\"), _L8("\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 29, 30, 4, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 31, 32, 3, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 33, 34, 2, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 35, 36, 1, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x69\x1b\x28\x42"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 37, 50, 0, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), KNullDesC8, originalUnicode); + originalUnicode.Format(_L16("%cX%cY%cZ"), 0x6153, 0x6376, 0x65d9); + TestTruncatedConversionFromUnicodeToIso2022Jp(*characterSetConverter, originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 3, 7, 6, _L8(""), _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 8, 11, 5, _L8("\x1b\x24\x42XX\x1b\x28\x42"), _L8("X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 12, 16, 4, _L8("\x1b\x24\x42XX\x1b\x28\x42X"), _L8("\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 17, 20, 3, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42"), _L8("Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 21, 25, 2, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y"), _L8("\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 26, 29, 1, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42"), _L8("Z"), originalUnicode); +// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 30, 40, 0, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), KNullDesC8, originalUnicode); + INFO_PRINTF1(_L("Testing converting to Unicode")); + const TPtrC8 originalIso2022Jp(_S8("\x1b\x24\x40\x1b\x28\x4aMy name is \x1b\x28\x4a\x1b\x28\x42\x1b\x24\x40\x25\x47\x25\x23\x25\x53\x25\x45\x1b\x28\x4a in \x1b\x24\x42\x46\x7c\x4b\x5c\x38\x6c\x1b\x28\x42\\~\x1b\x28\x4a\\~")); + TBuf16<50> expectedUnicode; +// expectedUnicode.Format(_L16("My name is %c%c%c%c in %c%c%c\\~%c%c"), 0x30c7, 0x30a3, 0x30d3, 0x30c5, 0x65e5, 0x672c, 0x8a9e, 0x00a5, 0x203e); + expectedUnicode.Format(_L16("My name is %c%c%c%c in %c%c%c\\~%c%c"), 0x30c7, 0x30a3, 0x30d3, 0x30c5, 0x65e5, 0x672c, 0x8a9e, 0x00a5, 0x7e); + TestTruncatedConversionToUnicodeFromIso2022Jp(*characterSetConverter, expectedUnicode, originalIso2022Jp); + TestTruncatedConversionToUnicodeFromIso2022Jp(*characterSetConverter, _L16(" Hello"), _L8("\x1b\x24\x42\x1b\x28\x4a\x1b\x24\x42\x1b\x28\x4a\x1b\x24\x42\x1b\x28\x4a Hello")); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 0, 0, 60, 0, expectedUnicode, originalIso2022Jp); + for (i=1; i<=10; ++i) + { + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, i, i, 54-i, i, expectedUnicode, originalIso2022Jp); + } + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 11, 11, 34, 11, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 12, 12, 32, 12, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 13, 13, 30, 13, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 14, 14, 28, 14, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 15, 15, 23, 15, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 16, 16, 22, 16, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 17, 17, 21, 17, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 18, 18, 20, 18, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 19, 19, 16, 19, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 20, 20, 14, 20, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 21, 21, 12, 21, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 22, 22, 7, 22, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 23, 23, 6, 23, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 24, 24, 2, 24, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 25, 25, 1, 25, expectedUnicode, originalIso2022Jp); + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 26, 40, 0, 26, expectedUnicode, originalIso2022Jp); + INFO_PRINTF1(_L("Testing the default ISO-2022-JP state")); + for (i=0; i<=6; ++i) + { + TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, i, i, 6-i, i, _L16("Hello\xa5"), _L8("Hello\\")); + } + INFO_PRINTF1(_L("Testing ill-formed ISO-2022-JP")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x1b\x28\x4a def")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x21\x21\x1b\x28\x4a def")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x21\x21\x21\x21\x1b\x28\x4a def")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\xff")); + TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x26\x40")); + CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +CT_ISO2022JP_2::CT_ISO2022JP_2() + { + SetTestStepName(KTestStep_T_ISO2022JP_2); + } + +TVerdict CT_ISO2022JP_2::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp_2.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp_2.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,66 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_ISO2022JP_2_H__ +#define __T_ISO2022JP_2_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_ISO2022JP_2 : public CTestStep + { +public: + CT_ISO2022JP_2(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void TestConversionFromUnicodeToIso( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aOriginalUnicode); + void TestTruncatedConversionFromUnicodeToIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aOriginalUnicode); + void TestSplittingConvertingFromUnicodeToIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + TInt aMaximumLengthLowerLimit, + TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, + const TDesC8& aExpectedFirstPartOfIso2022Jp, + const TDesC8& aExpectedSecondPartOfIso2022Jp, + const TDesC16& aOriginalUnicode); + void TestTruncatedConversionToUnicodeFromIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + const TDesC16& aExpectedUnicode, + const TDesC8& aOriginalIso2022Jp); + void TestSplittingConvertingToUnicodeFromIso2022Jp( + CCnvCharacterSetConverter& aCharacterSetConverter, + TInt aMaximumLengthLowerLimit, + TInt aMaximumLengthUpperLimit, + TInt aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit, + TInt aExpectedLengthOfFirstPartOfUnicode, + const TDesC16& aExpectedUnicode, + const TDesC8& aOriginalIso2022Jp); + void TestIsIllFormedIso2022Jp(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aIso2022Jp); + + + }; + +_LIT(KTestStep_T_ISO2022JP_2, "T_ISO2022JP_2"); + +#endif //__T_ISO2022JP_2_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp_2.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso2022jp_2.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_ISO2022JP_2 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_ISO2022JP_2 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso8859x.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso8859x.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,232 @@ +/* +* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "tiso8859x.h" +#include "t_iso8859x.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0541 +@SYMTestCaseDesc Tests for conversion from ISO 8859 to Unicode +@SYMTestPriority Medium +@SYMTestActions Tests for a filename and then convert to Unicode from ISO8859X +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_ISO8859X::test1L() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0541 ")); + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + TInt i; + for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + TInt state=CCnvCharacterSetConverter::KStateDefault; + for (i=0; iPrepareToConvertToOrFromL(iso8859TestData.iItems[i].iCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC16 originalUnicode(iso8859TestData.iItems[i].iUnicode, iso8859TestData.iItems[i].iTextLength); + TPtrC8 expectedIso8859(iso8859TestData.iItems[i].iIso8859, iso8859TestData.iItems[i].iTextLength); + TBuf16<256> generatedUnicode; + test(characterSetConverter->ConvertToUnicode(generatedUnicode, expectedIso8859, state)==0); + test(generatedUnicode==originalUnicode); + TBuf8<256> generatedIso8859; + test(characterSetConverter->ConvertFromUnicode(generatedIso8859, originalUnicode)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + test(generatedIso8859==expectedIso8859); + } + CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +/** +Test code for INC042690 - Bi-directional MIME types are not supported in Charconv +The bi-directional MIME types only indicate how to treat the layout of the mail, +the actual character conversion should be the same as for the exisiting ISO-8859-6/ISO-8859-8 plugins + +@SYMTestCaseID SYSLIB-CHARCONV-CT-0542 +@SYMTestCaseDesc Tests the Bi-directional MIME +@SYMTestPriority Medium +@SYMTestActions Tests for conversions of ISO_8859-6 UID to MIB +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_ISO8859X::testInc042690L() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0542 Test for INC042690 ")); + + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + + // check that the character set value of '81' is converted to the ISO_8859-6 UID (0x10008a29) + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(81,fileServerSession)==KCharacterSetIdentifierIso88596); + INFO_PRINTF1(_L("\nMIB 81->Char Set ISO_8859-6 UID - OK")); + + // check that the character set value of '82' is converted to the ISO_8859-6 UID (0x10008a29) + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(82,fileServerSession)==KCharacterSetIdentifierIso88596); + INFO_PRINTF1(_L("\nMIB 82->Char Set ISO_8859-6 UID - OK")); + + // check that the character set value of '84' is converted to the ISO_8859-8 UID (0x10008a2a) + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(84,fileServerSession)==KCharacterSetIdentifierIso88598); + INFO_PRINTF1(_L("\nMIB 84->Char Set ISO_8859-8 UID - OK")); + + // check that the character set value of '85' is converted to the ISO_8859-8 UID (0x10008a2a) + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(85,fileServerSession)==KCharacterSetIdentifierIso88598); + INFO_PRINTF1(_L("\nMIB 85->Char Set ISO_8859-8 UID - OK")); + + // check that the ISO_8859-6 UID (0x10008a29) is converted to the character set value of '9' + test(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierIso88596,fileServerSession)==9); + INFO_PRINTF1(_L("\nChar Set ISO_8859-6 UID->MIB - OK")); + + // check that the ISO_8859-8 UID (0x10008a2a) is converted to the character set value of '11' + test(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierIso88598,fileServerSession)==11); + INFO_PRINTF1(_L("\nChar Set ISO_8859-8 UID->MIB - OK")); + + INFO_PRINTF1(_L("\nTest for INC042690 complete:\n")); + CleanupStack::PopAndDestroy(2); // characterSetConverter and fileServerSession + } +/** +Test code for INC043911 - IANAMib 1014 not supported + +@SYMTestCaseID SYSLIB-CHARCONV-CT-0543 +@SYMTestCaseDesc Tests for CCnvCharacterSetConverter::ConvertMibEnumOfCharacterSetToIdentifierL() function +@SYMTestPriority Medium +@SYMTestActions Tests for a conversions of MIB to UTF-16BE UID +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_ISO8859X::testInc043911L() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0543 Test for INC043911 ")); + + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + + // check that the character set value of '1013' is converted to the UTF-16BE UID (0x101f4052) + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(1013,fileServerSession)==KCharacterSetIdentifierUnicodeBig); + INFO_PRINTF1(_L("\nMIB 1013->Char Set UTF-16BE UID - OK")); + + // check that the character set value of '1014' is converted to the UTF-16LE UID (0x101f3fae) + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(1014,fileServerSession)==KCharacterSetIdentifierUnicodeLittle); + INFO_PRINTF1(_L("\nMIB 1014->Char Set UTF-16LE UID - OK")); + + // check that the character set value of '1015' is converted to the UTF-16 UID (0x101ff492) + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(1015,fileServerSession)==KCharacterSetIdentifierUcs2); + INFO_PRINTF1(_L("\nMIB 1015->Char Set UTF-16 UID - OK")); + + + INFO_PRINTF1(_L("\nTest for INC043911 complete:\n")); + CleanupStack::PopAndDestroy(2); // characterSetConverter and fileServerSession + } +/** +Test code for DEF050040 - Propagated: Baltic (ISO8859-13) missing in Basic.txt + +@SYMTestCaseID SYSLIB-CHARCONV-CT-0544 +@SYMTestCaseDesc Tests for defect number DEF050040 +@SYMTestPriority Medium +@SYMTestActions Tests for CCnvCharacterSetConverter::ConvertMibEnumOfCharacterSetToIdentifierL() + Tests for a conversions of MIB to ISO-8859-13 UID +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_ISO8859X::testDef050040L() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0544 Test for DEF050040 ")); + + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + + // check that the character set value of '109' is converted to the ISO-8859-13 UID (0x10008a2c) + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(109,fileServerSession)==KCharacterSetIdentifierIso885913); + INFO_PRINTF1(_L("\nMIB 109->Char Set ISO-8859-13 UID - OK")); + + INFO_PRINTF1(_L("\nTest for DEF050040 complete:\n")); + CleanupStack::PopAndDestroy(2); // characterSetConverter and fileServerSession + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0545 +@SYMTestCaseDesc Tests for conversion of ISO8859 to Unicode +@SYMTestPriority Medium +@SYMTestActions Calls up conversion test functions of ISO8859 to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_ISO8859X::DoE32MainL() + { + INFO_PRINTF1(_L("@SYMTestCaseID:SYSLIB-CHARCONV-CT-0545 Tests for conversion of ISO8859 to Unicode")); + test1L(); + testInc042690L(); + testInc043911L(); + testDef050040L(); + } + +CT_ISO8859X::CT_ISO8859X() + { + SetTestStepName(KTestStep_T_ISO8859X); + } + +TVerdict CT_ISO8859X::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso8859x.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso8859x.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_ISO8859X_H__ +#define __T_ISO8859X_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_ISO8859X : public CTestStep + { +public: + CT_ISO8859X(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void testDef050040L(); + void testInc043911L(); + void testInc042690L(); + void test1L(); + + }; + +_LIT(KTestStep_T_ISO8859X, "T_ISO8859X"); + +#endif //__T_ISO8859X_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso8859x.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_iso8859x.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_ISO8859X tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_ISO8859X \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_j5_docomo.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_j5_docomo.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,810 @@ +/* +* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* test code for the J5 character converter plug-in that can convert +* from any of the following character sets: +* Windows-31J (Microsoft code page 932), +* JIS (ISO-2022-JP-1), +* EUC, +* UTF8 +* and UCS2. +* This differs from TJ5_Kddiau (test cases 0209 to 0216) in that it uses an alternative version of +* the Shift-JIS plug-in which can handle DoCoMo operator specific extensions. +* Note the following values of test case ID number have been allocated for this code 1349-1356 +* +*/ + + +#include +#include +#include +#include +#include "shiftjis.h" +#include +#include "t_j5_docomo.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +// test data files +#ifdef __WINS__ + // on C drive for emulator + _LIT16(KAnsiTxt,"c:\\test\\data\\Ansi.test"); + _LIT16(KImodeTxt,"c:\\test\\data\\imode.test"); + _LIT16(KJpEUCjTxt,"c:\\test\\data\\JpEUC-J.test"); + _LIT16(KJpJISTxt,"c:\\test\\data\\JpJIS.test"); + _LIT16(KJpSJISTxt,"c:\\test\\data\\JpSJIS.test"); + _LIT16(KJpUnicodeTxt,"c:\\test\\data\\JpUnicode.test"); + _LIT16(KJpUTF8Txt,"c:\\test\\data\\JpUTF8.test"); + _LIT16(KmoperaTxt,"c:\\test\\data\\mopera.test"); + _LIT16(KMScodeFontTxt,"c:\\test\\data\\MScodefont.test"); + _LIT16(KSJISTxt,"c:\\test\\data\\S-JIS.test"); + + _LIT16(KAnsiUni,"c:\\test\\data\\Ansi.uni"); + _LIT16(KImodeUni,"c:\\test\\data\\imode.uni"); + _LIT16(KJpEUCjUni,"c:\\test\\data\\JpEUC-J.uni"); + _LIT16(KJpJISUni,"c:\\test\\data\\JpJIS.uni"); + _LIT16(KJpSJISUni,"c:\\test\\data\\JpSJIS.uni"); + _LIT16(KJpUnicodeUni,"c:\\test\\data\\JpUnicode.uni"); + _LIT16(KJpUTF8Uni,"c:\\test\\data\\JpUTF8.uni"); + _LIT16(KmoperaUni,"c:\\test\\data\\mopera.uni"); + _LIT16(KMScodeFontUni,"c:\\test\\data\\MScodefont.uni"); + _LIT16(KSJISUni,"c:\\test\\data\\S-JIS_docomo.uni"); +#else + // on Z drive for target ROM + _LIT16(KAnsiTxt,"z:\\test\\data\\Ansi.test"); + _LIT16(KImodeTxt,"z:\\test\\data\\imode.test"); + _LIT16(KJpEUCjTxt,"z:\\test\\data\\JpEUC-J.test"); + _LIT16(KJpJISTxt,"z:\\test\\data\\JpJIS.test"); + _LIT16(KJpSJISTxt,"z:\\test\\data\\JpSJIS.test"); + _LIT16(KJpUnicodeTxt,"z:\\test\\data\\JpUnicode.test"); + _LIT16(KJpUTF8Txt,"z:\\test\\data\\JpUTF8.test"); + _LIT16(KmoperaTxt,"z:\\test\\data\\mopera.test"); + _LIT16(KMScodeFontTxt,"z:\\test\\data\\MScodefont.test"); + _LIT16(KSJISTxt,"z:\\test\\data\\S-JIS.test"); + + _LIT16(KAnsiUni,"z:\\test\\data\\Ansi.uni"); + _LIT16(KImodeUni,"z:\\test\\data\\imode.uni"); + _LIT16(KJpEUCjUni,"z:\\test\\data\\JpEUC-J.uni"); + _LIT16(KJpJISUni,"z:\\test\\data\\JpJIS.uni"); + _LIT16(KJpSJISUni,"z:\\test\\data\\JpSJIS.uni"); + _LIT16(KJpUnicodeUni,"z:\\test\\data\\JpUnicode.uni"); + _LIT16(KJpUTF8Uni,"z:\\test\\data\\JpUTF8.uni"); + _LIT16(KmoperaUni,"z:\\test\\data\\mopera.uni"); + _LIT16(KMScodeFontUni,"z:\\test\\data\\MScodefont.uni"); + _LIT16(KSJISUni,"z:\\test\\data\\S-JIS_docomo.uni"); +#endif + + _LIT16(KAnsiOut,"c:\\test\\data\\Ansi.out"); + _LIT16(KImodeOut,"c:\\test\\data\\imode.out"); + _LIT16(KJpEUCjOut,"c:\\test\\data\\JpEUC-J.out"); + _LIT16(KJpJISOut,"c:\\test\\data\\JpJIS.out"); + _LIT16(KJpSJISOut,"c:\\test\\data\\JpSJIS.out"); + _LIT16(KJpUnicodeOut,"c:\\test\\data\\JpUnicode.out"); + _LIT16(KJpUTF8Out,"c:\\test\\data\\JpUTF8.out"); + _LIT16(KmoperaOut,"c:\\test\\data\\mopera.out"); + _LIT16(KMScodeFontOut,"c:\\test\\data\\MScodefont.out"); + _LIT16(KSJISOut,"c:\\test\\data\\S-JIS_docomo.out"); + +// this has been copied from J5, as this not exported +// and only needed for testing +enum TJ5Encoding + { + EShiftjis = 1, + EIso2022jp1, + EEucjp, + EUtf8, + EUcs2, + EUnknown + }; + + +//this is the identifier for the shiftjis kddi/au test plugin rather than the +//shiftjis docomo plugin identifier +const TUint KCharacterSetTestShiftJisKddiau=0x01000001; + + +/** + For development only! - used for generating unicode files + Save the converted file as unicode + */ +#ifdef __WINS__ +void CT_J5_DOCOMO::SaveConvertedUnicodeAsFile( RFs &fileServerSession, + const TDesC &aFileName, + const TDesC &aConvertedUnicode) + { + RFile file; + User::LeaveIfError( file.Replace( fileServerSession, aFileName, EFileWrite )); + + // get a pointer to 8bit data + const TUint16* p16 = aConvertedUnicode.Ptr(); + TPtrC8 p8( (TUint8 *)p16, aConvertedUnicode.Size() ); + + + file.Write( p8, aConvertedUnicode.Size()); + file.Close(); + } +#endif + + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-1349-CP +@SYMTestCaseDesc Check that the J5 converter is available for testing +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions The character conversion framework is called to check J5 is loaded. +@SYMTestExpectedResults J5 is in the list of avalable converters. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_DOCOMO::checkJ5Available(RTest1 test, RFs &aFileServerSession) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1349-CP ")); + TBool J5found = EFalse; + + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(aFileServerSession); + + // check the list of available converters looking for J5 + INFO_PRINTF1(_L("charconv plugins available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + + if ( charactersSetName.Compare(_L("J5")) == 0) + J5found = ETrue; + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + if (J5found) + INFO_PRINTF1(_L("J5 available\n") ); + else + { + INFO_PRINTF1(_L("Test failed J5 not available\n") ); + } + + test(J5found); + + // PopAndDestroy characterSetConverter + CleanupStack::PopAndDestroy(1); + } + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-1350-CP +@SYMTestCaseDesc Convert the file supplied (aForeign) to unicode and then + check the converted data against aExpectedUnicode +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions The J5 character converter is used convert ansi.test. +@SYMTestExpectedResults The result is checked against the expected result imode.uni. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_DOCOMO::convertFileUsingJ5L(RTest1& test, + RFs fileServerSession, + CCnvCharacterSetConverter*aJ5converter, + const TDesC &aForeign, + const TDesC &aExpectedUnicode, + const TDesC &aOutputUnicode ) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1350-CP ")); + INFO_PRINTF3(_L("Read %S check that it converts to %S \n"),&aForeign, &aExpectedUnicode); + + // open the file & read into sourceBuffer + RFile source, expected; + User::LeaveIfError( source.Open( fileServerSession, aForeign, EFileRead )); + User::LeaveIfError( expected.Open( fileServerSession, aExpectedUnicode, EFileRead )); + TInt sourceSize = 0, expectedSize = 0; + source.Size(sourceSize); + expected.Size(expectedSize); + + // create buffers for source file and expected unicode file + HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); + TPtr8 sourcePtr(sourceBuffer->Des()); + HBufC8 * expectedBuffer = HBufC8::NewLC(expectedSize); + TPtr8 expectedPtr(expectedBuffer->Des()); + + // buffer to convert into + HBufC * outputBuffer = HBufC::NewLC(expectedSize); + TPtr outputPtr(outputBuffer->Des()); + + // read the whole source & output file into the buffer + User::LeaveIfError( source.Read( sourcePtr, sourceSize )); + User::LeaveIfError( expected.Read( expectedPtr, expectedSize )); + + // measure the time taken to convert. + TTime startTime, stopTime; + startTime.UniversalTime(); + + // now convert using J5 into unicode in the output buffer + TInt state = CCnvCharacterSetConverter::KStateDefault; + TInt error = KErrNone; + error = aJ5converter->ConvertToUnicode(outputPtr, sourcePtr, state); + if (error != KErrNone ) + { + INFO_PRINTF2(_L("ConvertToUnicode returned %d\n"), error); + } + + stopTime.UniversalTime(); + TTimeIntervalMicroSeconds timeTaken = stopTime.MicroSecondsFrom(startTime); + TInt result = timeTaken.Int64(); + INFO_PRINTF3(_L("Time for autodetect and convert to unicode %S using J5 %d microseconds\n"), + &aForeign, result ); + + TInt outputLength = outputBuffer->Length() ; // 16 bit words + TInt expectedLength = expectedPtr.Length() / 2 ; // Bytes (hence divide by 2!) + TInt checkLength = Min(outputLength, expectedLength) ; + + if (outputLength != expectedLength) + { + INFO_PRINTF3(_L("Fail: Output length incorrect (expected %d bytes after conversion, got %d\n"), + expectedLength, outputLength) ; + } + // check that the output buffer contains the same as the expected buffer + TInt j=0; + TUint8 firstByte =0; + TUint8 secondbyte =0; + + for ( TInt i=0; i < checkLength; i++, j+=2) + { + // two bytes in the file - one 16bit unicode value + firstByte = TUint8(outputPtr[i] & 0x00ff); + secondbyte = (outputPtr[i] & 0xff00) >> 8 ; + + if ( ( firstByte == expectedPtr[j] ) && ( secondbyte == expectedPtr[j+1] ) ) + { + // useful for development + /*INFO_PRINTF1(_L(" %02x%02x = %02x%02x ok\n"), + secondbyte, firstByte, expectedPtr[j+1], expectedPtr[j]);*/ + } + else + { + INFO_PRINTF6(_L("line:%d %02x%02x (output) != %02x%02x (expected) fail\n"), + i, secondbyte, firstByte, expectedPtr[j+1], expectedPtr[j]); + } + } + +#ifdef __WINS__ + // for debugging save as file + SaveConvertedUnicodeAsFile( fileServerSession, aOutputUnicode, outputPtr ); +#endif + + source.Close(); + expected.Close(); + + // sourceBuffer, expectedBufffer, outputBuffer + CleanupStack::PopAndDestroy(3); + } + + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-1351-CP +@SYMTestCaseDesc Check that J5 converts to UTF8 when ConvertFromUnicode() is called +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions The J5 character converter is used to convert unicode to UTF8 +@SYMTestExpectedResults The result is checked against the expected UTF8. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_DOCOMO::convertFromUnicodeUsingJ5(RTest1& test, + RFs fileServerSession, + CCnvCharacterSetConverter*aJ5converter ) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1351-CP ")); + /* sample UTF8 for testing */ + _LIT16(KsampleUnicode,"\x0069\x002d\x006d\x006f\x0064\x0065\xFFFD"); + _LIT8(KsampleAsUTF8,"\x69\x2D\x6D\x6F\x64\x65\xEF\xBF\xBD"); + TBuf8<100> utf8buffer; + + INFO_PRINTF1(_L("Check J5 convertd from Unicode to UTF8 \n")); + + CCnvCharacterSetConverter::TAvailability available = aJ5converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJ5, fileServerSession); + if ( available != CCnvCharacterSetConverter::EAvailable) + User::Leave(KErrNotSupported); + + // J5 convert from unicode + TInt state = CCnvCharacterSetConverter::KStateDefault; + TInt numberNotConverted =0; + numberNotConverted = aJ5converter->ConvertFromUnicode(utf8buffer, KsampleUnicode, state); + if (numberNotConverted != 0) + { + INFO_PRINTF2(_L("numberNotConverted = %d"), numberNotConverted ); + } + + // compare the UTF8 created to that supplied + test(utf8buffer==KsampleAsUTF8); + + } + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-1352-CP +@SYMTestCaseDesc Check that the J5 converter autodetection +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions The J5 character converter is used convert sample files. +@SYMTestExpectedResults The result is passed back for testing in the state paramater. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_DOCOMO::checkDetection(RTest1& test, + RFs fileServerSession, + const TDesC &aForeign, + TInt aExpectedCode ) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1352-CP ")); + __UHEAP_MARK; + INFO_PRINTF3(_L("Read %S check that it converts to %d \n"),&aForeign, aExpectedCode); + + // open the file & read into sourceBuffer + RFile source; + User::LeaveIfError( source.Open( fileServerSession, aForeign, EFileRead )); + TInt sourceSize = 0; + source.Size(sourceSize); + + // create buffers for source file + HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); + TPtr8 sourcePtr(sourceBuffer->Des()); + + // buffer to convert into + HBufC * outputBuffer = HBufC::NewLC(sourceSize * 2); + TPtr outputPtr(outputBuffer->Des()); + + // read the whole source & output file into the buffer + User::LeaveIfError( source.Read( sourcePtr, sourceSize )); + source.Close(); + + // load the converter ready for testing + CCnvCharacterSetConverter* J5Converter=CCnvCharacterSetConverter::NewLC(); + CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; + available = J5Converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJ5, fileServerSession); + if ( available != CCnvCharacterSetConverter::EAvailable) + User::Leave(KErrNotSupported); + + // now convert using J5 into unicode in the output buffer + TInt state = CCnvCharacterSetConverter::KStateDefault; + TInt numberCharsNotConverted = 0; + numberCharsNotConverted = J5Converter->ConvertToUnicode(outputPtr, sourcePtr, state); + if ( numberCharsNotConverted != 0) + INFO_PRINTF3(_L("number of characters not converted:%d of %d\n"), + numberCharsNotConverted, sourceSize ); + + // check that J5 has been able to convert all the data + test(J5Converter->ConvertToUnicode(outputPtr, sourcePtr, state)==0); + + // look at the code returned in the state + if ( aExpectedCode == state ) + { + INFO_PRINTF3(_L(" expected:%d found:%d ok\n"), aExpectedCode , state ); + } + else + { + INFO_PRINTF3(_L(" expected:%d found:%d failed \n"), aExpectedCode , state ); + test( aExpectedCode == state); + } + + // sourceBuffer, expectedBufffer, J5Converter + CleanupStack::PopAndDestroy(3); + __UHEAP_MARKEND; + } + + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-1353-CP +@SYMTestCaseDesc Check the J5 on some small data samples +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions The sample data is converted to unicode by J5. +@SYMTestExpectedResults The converted unicode data is checked against expected data. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_DOCOMO::convertDataUsingJ5(RTest1& test, + RFs &fileServerSession, + const TDesC8 &aForeign, + const TDesC16 &aUnicode ) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1353-CP ")); + // for the unicode created + TBuf16<512> unicode; + + // load the converter ready for testing + CCnvCharacterSetConverter* J5Converter=CCnvCharacterSetConverter::NewLC(); + CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; + available = J5Converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJ5, fileServerSession); + if ( available != CCnvCharacterSetConverter::EAvailable) + User::Leave(KErrNotSupported); + + // J5 decode to unicode + TInt state = CCnvCharacterSetConverter::KStateDefault; + TInt numberNotConverted =0; + numberNotConverted = J5Converter->ConvertToUnicode(unicode, aForeign, state); + if (numberNotConverted != 0) + { + INFO_PRINTF2(_L("numberNotConverted = %d"), numberNotConverted ); + } + + // compare the unicode created to that supplied + test(unicode==aUnicode); + + // tidy up J5Converter + CleanupStack::PopAndDestroy(1); + } + + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-1354-CP +@SYMTestCaseDesc Check that J5 does not interfere with the normal operation of Autodetect + And make a rough timing measurement. +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions Autodetect using other plugins is tested when J5 is available +@SYMTestExpectedResults Autodetect still works and does NOT select J5. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_DOCOMO::checkNormalAutodetectL( RTest1& test, RFs &aFileServerSession, const TDesC &aForeign ) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1354-CP ")); + INFO_PRINTF1(_L("Test normal autodetect \n") ); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(aFileServerSession); + + // open the file & read into sourceBuffer + RFile source; + User::LeaveIfError( source.Open( aFileServerSession, aForeign, EFileRead )); + TInt sourceSize = 0; + source.Size(sourceSize); + + // create buffers for source file + HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); + TPtr8 sourcePtr(sourceBuffer->Des()); + + // read the whole source file into the buffer + User::LeaveIfError( source.Read( sourcePtr, sourceSize )); + source.Close(); + + // measure the time taken to autodetect. + TTime startTime, stopTime; + startTime.UniversalTime(); + + // do the autodetect + TInt confidenceLevel =0; + TUint characterSetIdentifier = 0; + characterSetConverter->AutoDetectCharSetL( confidenceLevel, + characterSetIdentifier, *arrayOfCharacterSetsAvailable, sourcePtr); + + //characterSetIdentifier could either be the ShiftJis Kddi/au identifier or the Shiftjis Docomo Test identifier + //as both plugins are visible to ECOM + test((characterSetIdentifier == KCharacterSetIdentifierShiftJis) + ||(characterSetIdentifier == KCharacterSetTestShiftJisKddiau)); + + stopTime.UniversalTime(); + TTimeIntervalMicroSeconds timeTaken = stopTime.MicroSecondsFrom(startTime); + TInt result = timeTaken.Int64(); + INFO_PRINTF3(_L("Time taken for old autodetect %S = %d microseconds\n"), + &aForeign, result ); + + // characterSetConverter,arrayOfCharacterSetsAvailable, sourceBuffer + CleanupStack::PopAndDestroy(3); + } + + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-1355-CP +@SYMTestCaseDesc Check the conversion speed of shiftjis +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions The sample data is converted to unicode by J5. +@SYMTestExpectedResults The converted unicode data is checked against expected data. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_DOCOMO::checkConversionSpeedL(RTest1& test, RFs &aFileServerSession, const TDesC &aForeign) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1355-CP ")); + INFO_PRINTF1(_L("Test conversion speed \n") ); + + // open the file & read into sourceBuffer + RFile source; + User::LeaveIfError( source.Open( aFileServerSession, aForeign, EFileRead )); + TInt sourceSize = 0, expectedSize = 0; + source.Size(sourceSize); + + // assume that every byte coverts to 2 bytes of unicode and the buffer will be big enough + expectedSize = sourceSize * 2; + + // create buffer for source file + HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); + TPtr8 sourcePtr(sourceBuffer->Des()); + + // for the unicode created + HBufC * outputBuffer = HBufC::NewLC(expectedSize); + TPtr outputPtr(outputBuffer->Des()); + + // load the converter ready for testing + CCnvCharacterSetConverter* charConverter=CCnvCharacterSetConverter::NewLC(); + CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; + available = charConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, aFileServerSession); + if ( available != CCnvCharacterSetConverter::EAvailable) + User::Leave(KErrNotSupported); + + // read the whole source file into the buffer + User::LeaveIfError( source.Read( sourcePtr, sourceSize )); + source.Close(); + + // measure the time taken to convert. + TTime startTime, stopTime; + startTime.UniversalTime(); + + // now convert using J5 into unicode in the output buffer + TInt state = CCnvCharacterSetConverter::KStateDefault; + TInt numberCharsNotConverted = 0; + + // repeat this to get a more accurate measurement + const int scale =10; + TInt i=0; + for ( i=0; iConvertToUnicode(outputPtr, sourcePtr, state); + if ( numberCharsNotConverted != 0) + INFO_PRINTF2(_L("number of characters not converted:%d \n"), + numberCharsNotConverted ); + } + + stopTime.UniversalTime(); + TTimeIntervalMicroSeconds timeTaken = stopTime.MicroSecondsFrom(startTime); + TInt result = timeTaken.Int64()/scale; + INFO_PRINTF3(_L("Time taken for converting %S to unicode using shiftjis:%d microseconds\n"), + &aForeign, result ); + + + // characterSetConverter, sourceBuffer, outputBuffer + CleanupStack::PopAndDestroy(3); + } + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-1356-CP +@SYMTestCaseDesc Check some UCS2 conversions +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions The UCS2 sample data is converted to unicode by J5. +@SYMTestExpectedResults The converted unicode data is checked against expected data. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_DOCOMO::checkUCS2converstion(RTest1& test, CCnvCharacterSetConverter *aJ5converter ) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1356-CP ")); + // buffer to convert into + TBuf16<512> unicode; + TInt numberOfUnconvertibleCharacters; + TInt indexOfFirstByteOfFirstUnconvertibleCharacter; + + // small sample of EBigEndian UCS2 with no Byte order markers + INFO_PRINTF1(_L("Check J5 conversion of EBigEndian UCS2 with no Byte order markers to unicode \n")); + _LIT8(Kucs2sample1,"\x0\x69\x0\x2d\x0\x6d\x0\x6f\x0\x64\x0\x65"); + _LIT16(KucsAsUnicode1,"\x0069\x002d\x006d\x006f\x0064\x0065"); + + // J5 convert from unicode + TInt state = CCnvCharacterSetConverter::KStateDefault; + TInt numberNotConverted =0; + numberNotConverted = aJ5converter->ConvertToUnicode(unicode, Kucs2sample1, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter ); + test(numberNotConverted == 0); + test(numberOfUnconvertibleCharacters == 0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter == -1); + + // compare the unicode created to that supplied + test(unicode==KucsAsUnicode1); + + // small sample of ELittleEndian UCS2 with no Byte order markers + INFO_PRINTF1(_L("Check J5 conversion of ELittleEndian UCS2 with no Byte order markers to unicode \n")); + _LIT8(Kucs2sample2,"\x69\x0\x2d\x0\x6d\x0\x6f\x0\x64\x0\x65\x0"); + _LIT16(KucsAsUnicode2,"\x0069\x002d\x006d\x006f\x0064\x0065"); + state = CCnvCharacterSetConverter::KStateDefault; + numberNotConverted = aJ5converter->ConvertToUnicode(unicode, Kucs2sample2, state); + test(numberNotConverted == 0); + + // compare the unicode created to that supplied + test(unicode==KucsAsUnicode2); + + // check UCS2 converter handles output buffer too small case + INFO_PRINTF1(_L("Check J5 conversion of UCS2 with small output buffer \n")); + TBuf16<4> smallOutputBuffer; + numberNotConverted = aJ5converter->ConvertToUnicode(smallOutputBuffer, Kucs2sample2, state); + // check numberNotConverted = size of KucsAsUnicode2(12bytes) - smallOutputBuffer(8bytes) = 4 + INFO_PRINTF2(_L("numberNotConverted %d should be 4 \n"), numberNotConverted ); + test( numberNotConverted == 4); + + // check UCS2 converter handles a odd number of input bytes + INFO_PRINTF1(_L("Check J5 conversion of UCS2 handles a odd number of input bytes \n")); + _LIT8(Kucs2sample3,"\xff\xfe\x69\x0\x2d\x0\x6d\x0\x6f\x0\x64\x0\x65\x0\x23"); + _LIT16(KucsAsUnicode3,"\x0069\x002d\x006d\x006f\x0064\x0065"); + numberNotConverted = aJ5converter->ConvertToUnicode(unicode, Kucs2sample3, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + INFO_PRINTF2(_L("numberOfUnconvertibleCharacters %d should be the 1 odd byte at the end\n"), numberOfUnconvertibleCharacters ); + test(unicode==KucsAsUnicode3); + test(numberNotConverted == 1); + test(numberOfUnconvertibleCharacters == 0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter == -1); + } + + +/** + test code starts here... + */ +void CT_J5_DOCOMO::DoE32MainL() + { + RTest1 test; + INFO_PRINTF1(_L("Docomo TJ5 start")); + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + + // check the J5 converter is available + checkJ5Available( test, fileServerSession ); + + // Convert some sample data to unicode using J5 and check result + _LIT8(KShiftJis,"\x82\xB1\x82\xF1\x82\xC9\x82\xBF\x82\xCD\x82\xC9\x82\xBF\x82\xCD"); + _LIT16(KUnicode,"\x3053\x3093\x306B\x3061\x306F\x306B\x3061\x306F"); + // test J5 on simple example shift jis test data, + convertDataUsingJ5(test, fileServerSession, KShiftJis, KUnicode ); + + // small sample of code set 1&3 EUC_JP + _LIT8(KCodeSet2EucJp,"\x8f\xa2\xc2\xa1\xf1\xa1\xf2\x8f\xa2\xc2\x5c\x8f\xa2\xc3\xa1\xf8"); + // should convert to ¡¢£¤¥¦? + _LIT16(KCodeSet2EucJpAsUnicode,"\x00A1\x00A2\x00A3\x00A1\x00A5\x00A6\x00A7"); + convertDataUsingJ5( test, fileServerSession, KCodeSet2EucJp, KCodeSet2EucJpAsUnicode); + + /* example of code set 3 EUC_JP 8faba98fa9c18fabae8fabb28fabb18fabb48fabb38fabc0 converts to åæçèéêëì*/ + /* Note this could also be decoded as shiftjis */ + _LIT8(KCodeSet3EucJp,"\x8f\xab\xa9\x8f\xa9\xc1\x8f\xab\xae\x8f\xab\xb2\x8f\xab\xb1\x8f\xab\xb4\x8f\xab\xb3\x8f\xab\xc0"); + _LIT16(KCodeSet3EucJpAsUnicode,"\x00E5\x00E6\x00E7\x00E8\x00E9\x00EA\x00EB\x00EC"); + convertDataUsingJ5( test, fileServerSession, KCodeSet3EucJp, KCodeSet3EucJpAsUnicode); + + // small sample of UTF8 ®¯°±²³ + _LIT8(Kutf8,"\xc2\x8e\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3"); + _LIT16(Kutf8AsUnicode,"\x008E\x00AF\x00B0\x00B1\x00B2\x00B3"); + convertDataUsingJ5( test, fileServerSession, Kutf8, Kutf8AsUnicode); + + // small sample of ISO2022jp + _LIT8(Kiso2022jp,"\x1B\x24\x42\x24\x33\x24\x73\x24"); + _LIT16(Kiso2022jpAsUnicode,"\x3053\x3093"); + convertDataUsingJ5( test, fileServerSession, Kiso2022jp, Kiso2022jpAsUnicode); + + // some shiftjis which starts with two bytes that could be EUC 0xe1,0x81 + _LIT8(KShiftJisWithEucStart,"\xE1\x81\x82\xB1\x82\xF1\x82\xC9\x82\xBF\x82\xCD\x82\xC9\x82\xBF\x82\xCD"); + _LIT16(KUnicodeShiftJisWithEucStart,"\x7601\x3053\x3093\x306B\x3061\x306F\x306B\x3061\x306F"); + convertDataUsingJ5(test, fileServerSession, KShiftJisWithEucStart, KUnicodeShiftJisWithEucStart ); + + // some shiftjis which starts with two bytes that could be UTF8 0xc2,0x8e + _LIT8(KShiftJisWithUtf8Start,"\xC2\x8E\x82\xB1\x82\xF1\x82\xC9\x82\xBF\x82\xCD\x82\xC9\x82\xBF\x82\xCD"); + _LIT16(KUnicodeShiftJisWithUtf8Start,"\xFF82\x7345\xFF71\x3093\x306B\x3061\x306F\x306B\x3061\x306F"); + convertDataUsingJ5(test, fileServerSession, KShiftJisWithUtf8Start, KUnicodeShiftJisWithUtf8Start ); + + // Small shiftjis sample with some half width Katakana + _LIT8(KShiftJisHalfWidthKatakana,"\xB0\xE0\x70\xB0\x70"); + _LIT16(KUnicodeShiftJisHalfWidthKatakana,"\xFF70\x703E\xFF70\x0070"); + convertDataUsingJ5(test, fileServerSession, KShiftJisHalfWidthKatakana, KUnicodeShiftJisHalfWidthKatakana ); + + /* Read in a text file and convert to unicode using J5 + then check the correct converstion was used by checking + returned state variable */ + // Note ansi.txt is valid for several conversions EUtf8, Eucjp + checkDetection( test, fileServerSession, KAnsiTxt, EEucjp); + checkDetection( test, fileServerSession, KImodeTxt, EShiftjis); + checkDetection( test, fileServerSession, KJpEUCjTxt, EEucjp); + checkDetection( test, fileServerSession, KJpJISTxt, EIso2022jp1); + checkDetection( test, fileServerSession, KJpSJISTxt, EShiftjis); + checkDetection( test, fileServerSession, KJpUnicodeTxt, EUcs2); + checkDetection( test, fileServerSession, KJpUTF8Txt, EUtf8); + checkDetection( test, fileServerSession, KmoperaTxt, EShiftjis); + checkDetection( test, fileServerSession, KMScodeFontTxt,EShiftjis ); + checkDetection( test, fileServerSession, KSJISTxt, EShiftjis ); + + // load the converter ready for testing + CCnvCharacterSetConverter* J5Converter=CCnvCharacterSetConverter::NewLC(); + CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; + available = J5Converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJ5, fileServerSession); + if ( available != CCnvCharacterSetConverter::EAvailable) + User::Leave(KErrNotSupported); + + // check some UCS2 examples + checkUCS2converstion( test, J5Converter ); + + // Convert the file Ansi.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KAnsiTxt, KAnsiUni, KAnsiOut ); + + // Convert the file imode.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KImodeTxt, KImodeUni, KImodeOut ); + + // Convert the file JpEUC-J.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpEUCjTxt, KJpEUCjUni, KJpEUCjOut ); + + // Convert the file JpJIS.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpJISTxt, KJpJISUni, KJpJISOut); + + // Convert the file JpSJIS.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpSJISTxt, KJpSJISUni, KJpSJISOut ); + + // Convert the file JpUnicode.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpUnicodeTxt, KJpUnicodeUni, KJpUnicodeOut ); + + // Convert the file JpUTF8.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpUTF8Txt, KJpUTF8Uni, KJpUTF8Out); + + // Convert the file mopera.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KmoperaTxt, KmoperaUni, KmoperaOut); + + // Convert the file MScodefont.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KMScodeFontTxt, KMScodeFontUni, KMScodeFontOut); + + // Convert the file S-JIS.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KSJISTxt, KSJISUni, KSJISOut); + + + // Check that J5 converts to UTF8 when ConvertFromUnicode() is called + convertFromUnicodeUsingJ5( test, fileServerSession, J5Converter ); + + // autodetect speed benchmark test + checkNormalAutodetectL( test, fileServerSession, KMScodeFontTxt ); + checkNormalAutodetectL( test, fileServerSession, KSJISTxt ); + checkNormalAutodetectL( test, fileServerSession, KImodeTxt ); + + // conversion speed benchmark test + checkConversionSpeedL(test, fileServerSession, KMScodeFontTxt); + checkConversionSpeedL(test, fileServerSession, KSJISTxt); + checkConversionSpeedL(test, fileServerSession, KImodeTxt); + + // J5Converter + CleanupStack::PopAndDestroy(1 /*, &J5Converter*/); + + User::After(3000000); + // test, fileServerSession + CleanupStack::PopAndDestroy(1); + } + +CT_J5_DOCOMO::CT_J5_DOCOMO() + { + SetTestStepName(KTestStep_T_J5_DOCOMO); + } + +TVerdict CT_J5_DOCOMO::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_j5_docomo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_j5_docomo.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,68 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_J5_DOCOMO_H__ +#define __T_J5_DOCOMO_H__ + +//#include +#include + +class CCnvCharacterSetConverter; +class RTest1 + { + TInt x; + }; + +class CT_J5_DOCOMO : public CTestStep + { +public: + CT_J5_DOCOMO(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void checkUCS2converstion(RTest1& aTest, CCnvCharacterSetConverter *aJ5converter ); + void checkConversionSpeedL(RTest1& aTest, RFs &aFileServerSession, const TDesC &aForeign); + void checkNormalAutodetectL( RTest1& aTest, RFs &aFileServerSession, const TDesC &aForeign ); + void convertDataUsingJ5(RTest1& aTest, + RFs &fileServerSession, + const TDesC8 &aForeign, + const TDesC16 &aUnicode ); + void checkDetection(RTest1& aTest, + RFs fileServerSession, + const TDesC &aForeign, + TInt aExpectedCode ); + void convertFromUnicodeUsingJ5(RTest1& aTest, + RFs fileServerSession, + CCnvCharacterSetConverter*aJ5converter ); + void convertFileUsingJ5L(RTest1& aTest, + RFs fileServerSession, + CCnvCharacterSetConverter*aJ5converter, + const TDesC &aForeign, + const TDesC &aExpectedUnicode, + const TDesC &aOutputUnicode ); + void checkJ5Available(RTest1 aTest, RFs &aFileServerSession); + void SaveConvertedUnicodeAsFile( RFs &fileServerSession, + const TDesC &aFileName, + const TDesC &aConvertedUnicode); + + + + }; + +_LIT(KTestStep_T_J5_DOCOMO, "T_J5_DOCOMO"); + +#endif //__T_J5_DOCOMO_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_j5_docomo.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_j5_docomo.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_J5_DOCOMO tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_J5_DOCOMO \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_j5_kddiau.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_j5_kddiau.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,811 @@ +/* +* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* test code for the J5 character converter plug-in that can convert +* from any of the following character sets: +* Windows-31J (Microsoft code page 932), +* JIS (ISO-2022-JP-1), +* EUC, +* UTF8 +* and UCS2. +* Note the following values of test case ID number have been allocated for this code 0209-0223 +* +*/ + + +#include +#include +#include +#include +#include "shiftjis.h" +#include +#include "t_j5_kddiau.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +// test data files +#ifdef __WINS__ + // on C drive for emulator + _LIT16(KAnsiTxt,"c:\\test\\data\\Ansi.test"); + _LIT16(KImodeTxt,"c:\\test\\data\\imode.test"); + _LIT16(KJpEUCjTxt,"c:\\test\\data\\JpEUC-J.test"); + _LIT16(KJpJISTxt,"c:\\test\\data\\JpJIS.test"); + _LIT16(KJpSJISTxt,"c:\\test\\data\\JpSJIS.test"); + _LIT16(KJpUnicodeTxt,"c:\\test\\data\\JpUnicode.test"); + _LIT16(KJpUTF8Txt,"c:\\test\\data\\JpUTF8.test"); + _LIT16(KmoperaTxt,"c:\\test\\data\\mopera.test"); + _LIT16(KMScodeFontTxt,"c:\\test\\data\\MScodefont.test"); + _LIT16(KSJISTxt,"c:\\test\\data\\S-JIS.test"); + + _LIT16(KAnsiUni,"c:\\test\\data\\Ansi.uni"); + _LIT16(KImodeUni,"c:\\test\\data\\imode_not_mapped.uni"); + _LIT16(KJpEUCjUni,"c:\\test\\data\\JpEUC-J.uni"); + _LIT16(KJpJISUni,"c:\\test\\data\\JpJIS.uni"); + _LIT16(KJpSJISUni,"c:\\test\\data\\JpSJIS.uni"); + _LIT16(KJpUnicodeUni,"c:\\test\\data\\JpUnicode.uni"); + _LIT16(KJpUTF8Uni,"c:\\test\\data\\JpUTF8.uni"); + _LIT16(KmoperaUni,"c:\\test\\data\\mopera_not_mapped.uni"); + _LIT16(KMScodeFontUni,"c:\\test\\data\\MScodefont.uni"); + _LIT16(KSJISUni,"c:\\test\\data\\S-JIS.uni"); +#else + // on Z drive for target ROM + _LIT16(KAnsiTxt,"z:\\test\\data\\Ansi.test"); + _LIT16(KImodeTxt,"z:\\test\\data\\imode.test"); + _LIT16(KJpEUCjTxt,"z:\\test\\data\\JpEUC-J.test"); + _LIT16(KJpJISTxt,"z:\\test\\data\\JpJIS.test"); + _LIT16(KJpSJISTxt,"z:\\test\\data\\JpSJIS.test"); + _LIT16(KJpUnicodeTxt,"z:\\test\\data\\JpUnicode.test"); + _LIT16(KJpUTF8Txt,"z:\\test\\data\\JpUTF8.test"); + _LIT16(KmoperaTxt,"z:\\test\\data\\mopera.test"); + _LIT16(KMScodeFontTxt,"z:\\test\\data\\MScodefont.test"); + _LIT16(KSJISTxt,"z:\\test\\data\\S-JIS.test"); + + _LIT16(KAnsiUni,"z:\\test\\data\\Ansi.uni"); + _LIT16(KImodeUni,"z:\\test\\data\\imode_not_mapped.uni"); + _LIT16(KJpEUCjUni,"z:\\test\\data\\JpEUC-J.uni"); + _LIT16(KJpJISUni,"z:\\test\\data\\JpJIS.uni"); + _LIT16(KJpSJISUni,"z:\\test\\data\\JpSJIS.uni"); + _LIT16(KJpUnicodeUni,"z:\\test\\data\\JpUnicode.uni"); + _LIT16(KJpUTF8Uni,"z:\\test\\data\\JpUTF8.uni"); + _LIT16(KmoperaUni,"z:\\test\\data\\mopera_not_mapped.uni"); + _LIT16(KMScodeFontUni,"z:\\test\\data\\MScodefont.uni"); + _LIT16(KSJISUni,"z:\\test\\data\\S-JIS.uni"); +#endif + + _LIT16(KAnsiOut,"c:\\test\\data\\Ansi.out"); + _LIT16(KImodeOut,"c:\\test\\data\\imode_not_mapped.out"); + _LIT16(KJpEUCjOut,"c:\\test\\data\\JpEUC-J.out"); + _LIT16(KJpJISOut,"c:\\test\\data\\JpJIS.out"); + _LIT16(KJpSJISOut,"c:\\test\\data\\JpSJIS.out"); + _LIT16(KJpUnicodeOut,"c:\\test\\data\\JpUnicode.out"); + _LIT16(KJpUTF8Out,"c:\\test\\data\\JpUTF8.out"); + _LIT16(KmoperaOut,"c:\\test\\data\\mopera_not_mapped.out"); + _LIT16(KMScodeFontOut,"c:\\test\\data\\MScodefont.out"); + _LIT16(KSJISOut,"c:\\test\\data\\S-JIS.out"); + +// this has been copied from J5, as this not exported +// and only needed for testing +enum TJ5Encoding + { + EShiftjis = 1, + EIso2022jp1, + EEucjp, + EUtf8, + EUcs2, + EUnknown + }; + +// this is the test plug in rather than KCharacterSetIdentifierJ5 +const TUint KCharacterSetTestJ5Kddiau=0x01000002; + +//this is the identifier for the shiftjis kddiau test plugin rather than the +// shiftjis docomo plugin identifier +const TUint KCharacterSetTestShiftJisKddiau=0x01000001; + + +#ifdef __WINS__ +/** + For development only! - used for generating unicode files + Save the converted file as unicode + */ +void CT_J5_KDDIAU::SaveConvertedUnicodeAsFile( RFs &fileServerSession, + const TDesC &aFileName, + const TDesC &aConvertedUnicode) + { + RFile file; + User::LeaveIfError( file.Replace( fileServerSession, aFileName, EFileWrite )); + + // get a pointer to 8bit data + const TUint16* p16 = aConvertedUnicode.Ptr(); + TPtrC8 p8( (TUint8 *)p16, aConvertedUnicode.Size() ); + + + file.Write( p8, aConvertedUnicode.Size()); + file.Close(); + } +#endif + + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-0209-CP +@SYMTestCaseDesc Check that the J5 converter is available for testing +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions The character conversion framework is called to check J5 is loaded. +@SYMTestExpectedResults J5 is in the list of avalable converters. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_KDDIAU::checkJ5Available(RTest test, RFs &aFileServerSession) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0209-CP ")); + TBool J5found = EFalse; + + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(aFileServerSession); + + // check the list of available converters looking for J5 + INFO_PRINTF1(_L("charconv plugins available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + + if ( charactersSetName.Compare(_L("J5_KDDIAU")) == 0) + J5found = ETrue; + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + if (J5found) + INFO_PRINTF1(_L("test_j5_kddiau available\n") ); + else + { + INFO_PRINTF1(_L("Test failed test_j5_kddiau not available\n") ); + } + + test(J5found); + + // PopAndDestroy arrayOfCharacterSetsAvailable + CleanupStack::PopAndDestroy(1); + } + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-0210-CP +@SYMTestCaseDesc Convert the file supplied (aForeign) to unicode and then + check the converted data against aExpectedUnicode +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions The J5 character converter is used convert ansi.test. +@SYMTestExpectedResults The result is checked against the expected result imode.uni. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_KDDIAU::convertFileUsingJ5L(RTest& test, + RFs fileServerSession, + CCnvCharacterSetConverter*aJ5converter, + const TDesC &aForeign, + const TDesC &aExpectedUnicode, + const TDesC &aOutputUnicode ) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0210-CP ")); + INFO_PRINTF3(_L("Read %S check that it converts to %S \n"),&aForeign, &aExpectedUnicode); + + // open the file & read into sourceBuffer + RFile source, expected; + User::LeaveIfError( source.Open( fileServerSession, aForeign, EFileRead )); + User::LeaveIfError( expected.Open( fileServerSession, aExpectedUnicode, EFileRead )); + TInt sourceSize = 0, expectedSize = 0; + source.Size(sourceSize); + expected.Size(expectedSize); + + // create buffers for source file and expected unicode file + HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); + TPtr8 sourcePtr(sourceBuffer->Des()); + HBufC8 * expectedBuffer = HBufC8::NewLC(expectedSize); + TPtr8 expectedPtr(expectedBuffer->Des()); + + // buffer to convert into + HBufC * outputBuffer = HBufC::NewLC(expectedSize); + TPtr outputPtr(outputBuffer->Des()); + + // read the whole source & output file into the buffer + User::LeaveIfError( source.Read( sourcePtr, sourceSize )); + User::LeaveIfError( expected.Read( expectedPtr, expectedSize )); + + // measure the time taken to convert. + TTime startTime, stopTime; + startTime.UniversalTime(); + + // now convert using J5 into unicode in the output buffer + TInt state = CCnvCharacterSetConverter::KStateDefault; + TInt error = KErrNone; + error = aJ5converter->ConvertToUnicode(outputPtr, sourcePtr, state); + if (error != KErrNone ) + { + INFO_PRINTF2(_L("ConvertToUnicode returned %d\n"), error); + } + + stopTime.UniversalTime(); + TTimeIntervalMicroSeconds timeTaken = stopTime.MicroSecondsFrom(startTime); + TInt result = timeTaken.Int64(); + INFO_PRINTF3(_L("Time for autodetect and convert to unicode %S using J5 %d microseconds\n"), + &aForeign, result ); + + TInt outputLength = outputBuffer->Length() ; // 16 bit words + TInt expectedLength = expectedPtr.Length() / 2 ; // Bytes (hence divide by 2!) + TInt checkLength = Min(outputLength, expectedLength) ; + + if (outputLength != expectedLength) + { + INFO_PRINTF3(_L("Fail: Output length incorrect (expected %d bytes after conversion, got %d\n"), + expectedLength, outputLength) ; + } + // check that the output buffer contains the same as the expected buffer + TInt j=0; + TUint8 firstByte =0; + TUint8 secondbyte =0; + + for ( TInt i=0; i < checkLength; i++, j+=2) + { + // two bytes in the file - one 16bit unicode value + firstByte = TUint8(outputPtr[i] & 0x00ff); + secondbyte = (outputPtr[i] & 0xff00) >> 8 ; + + if ( ( firstByte == expectedPtr[j] ) && ( secondbyte == expectedPtr[j+1] ) ) + { + // useful for development + /*INFO_PRINTF1(_L(" %02x%02x = %02x%02x ok\n"), + secondbyte, firstByte, expectedPtr[j+1], expectedPtr[j]);*/ + } + else + { + INFO_PRINTF6(_L("line:%d %02x%02x (output) != %02x%02x (expected) fail\n"), + i, secondbyte, firstByte, expectedPtr[j+1], expectedPtr[j]); + } + } + +#ifdef __WINS__ + // for debugging save as file + SaveConvertedUnicodeAsFile( fileServerSession, aOutputUnicode, outputPtr ); +#endif + + source.Close(); + expected.Close(); + + // sourceBuffer, expectedBufffer, outputBuffer + CleanupStack::PopAndDestroy(3); + } + + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-0211-CP +@SYMTestCaseDesc Check that J5 converts to UTF8 when ConvertFromUnicode() is called +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions The J5 character converter is used to convert unicode to UTF8 +@SYMTestExpectedResults The result is checked against the expected UTF8. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_KDDIAU::convertFromUnicodeUsingJ5(RTest& test, + RFs fileServerSession, + CCnvCharacterSetConverter*aJ5converter ) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0211-CP ")); + /* sample UTF8 for testing */ + _LIT16(KsampleUnicode,"\x0069\x002d\x006d\x006f\x0064\x0065\xFFFD"); + _LIT8(KsampleAsUTF8,"\x69\x2D\x6D\x6F\x64\x65\xEF\xBF\xBD"); + TBuf8<100> utf8buffer; + + INFO_PRINTF1(_L("Check J5 convertd from Unicode to UTF8 \n")); + + CCnvCharacterSetConverter::TAvailability available = aJ5converter->PrepareToConvertToOrFromL(KCharacterSetTestJ5Kddiau, fileServerSession); + if ( available != CCnvCharacterSetConverter::EAvailable) + User::Leave(KErrNotSupported); + + // J5 convert from unicode + TInt state = CCnvCharacterSetConverter::KStateDefault; + TInt numberNotConverted =0; + numberNotConverted = aJ5converter->ConvertFromUnicode(utf8buffer, KsampleUnicode, state); + if (numberNotConverted != 0) + { + INFO_PRINTF2(_L("numberNotConverted = %d"), numberNotConverted ); + } + + // compare the UTF8 created to that supplied + test(utf8buffer==KsampleAsUTF8); + + } + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-0212-CP +@SYMTestCaseDesc Check that the J5 converter autodetection +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions The J5 character converter is used convert sample files. +@SYMTestExpectedResults The result is passed back for testing in the state paramater. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_KDDIAU::checkDetection(RTest& test, + RFs fileServerSession, + const TDesC &aForeign, + TInt aExpectedCode ) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0212-CP ")); + __UHEAP_MARK; + INFO_PRINTF3(_L("Read %S check that it converts to %d \n"),&aForeign, aExpectedCode); + + // open the file & read into sourceBuffer + RFile source; + User::LeaveIfError( source.Open( fileServerSession, aForeign, EFileRead )); + TInt sourceSize = 0; + source.Size(sourceSize); + + // create buffers for source file + HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); + TPtr8 sourcePtr(sourceBuffer->Des()); + + // buffer to convert into + HBufC * outputBuffer = HBufC::NewLC(sourceSize * 2); + TPtr outputPtr(outputBuffer->Des()); + + // read the whole source & output file into the buffer + User::LeaveIfError( source.Read( sourcePtr, sourceSize )); + source.Close(); + + // load the converter ready for testing + CCnvCharacterSetConverter* J5Converter=CCnvCharacterSetConverter::NewLC(); + CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; + available = J5Converter->PrepareToConvertToOrFromL(KCharacterSetTestJ5Kddiau, fileServerSession); + if ( available != CCnvCharacterSetConverter::EAvailable) + User::Leave(KErrNotSupported); + + // now convert using J5 into unicode in the output buffer + TInt state = CCnvCharacterSetConverter::KStateDefault; + TInt numberCharsNotConverted = 0; + numberCharsNotConverted = J5Converter->ConvertToUnicode(outputPtr, sourcePtr, state); + if ( numberCharsNotConverted != 0) + INFO_PRINTF3(_L("number of characters not converted:%d of %d\n"), + numberCharsNotConverted, sourceSize ); + + // check that J5 has been able to convert all the data + test(J5Converter->ConvertToUnicode(outputPtr, sourcePtr, state)==0); + + // look at the code returned in the state + if ( aExpectedCode == state ) + { + INFO_PRINTF3(_L(" expected:%d found:%d ok\n"), aExpectedCode , state ); + } + else + { + INFO_PRINTF3(_L(" expected:%d found:%d failed \n"), aExpectedCode , state ); + test( aExpectedCode == state); + } + + // sourceBuffer, expectedBufffer, J5Converter + CleanupStack::PopAndDestroy(3); + __UHEAP_MARKEND; + } + + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-0213-CP +@SYMTestCaseDesc Check the J5 on some small data samples +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions The sample data is converted to unicode by J5. +@SYMTestExpectedResults The converted unicode data is checked against expected data. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_KDDIAU::convertDataUsingJ5(RTest& test, + RFs &fileServerSession, + const TDesC8 &aForeign, + const TDesC16 &aUnicode ) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0213-CP ")); + // for the unicode created + TBuf16<512> unicode; + + // load the converter ready for testing + CCnvCharacterSetConverter* J5Converter=CCnvCharacterSetConverter::NewLC(); + CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; + available = J5Converter->PrepareToConvertToOrFromL(KCharacterSetTestJ5Kddiau, fileServerSession); + if ( available != CCnvCharacterSetConverter::EAvailable) + User::Leave(KErrNotSupported); + + // J5 decode to unicode + TInt state = CCnvCharacterSetConverter::KStateDefault; + TInt numberNotConverted =0; + numberNotConverted = J5Converter->ConvertToUnicode(unicode, aForeign, state); + if (numberNotConverted != 0) + { + INFO_PRINTF2(_L("numberNotConverted = %d"), numberNotConverted ); + } + + // compare the unicode created to that supplied + test(unicode==aUnicode); + + // tidy up J5Converter + CleanupStack::PopAndDestroy(1); + } + + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-0214-CP +@SYMTestCaseDesc Check that J5 does not interfere with the normal operation of Autodetect + And make a rough timing measurement. +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions Autodetect using other plugins is tested when J5 is available +@SYMTestExpectedResults Autodetect still works and does NOT select J5. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_KDDIAU::checkNormalAutodetectL( RTest& test, RFs &aFileServerSession, const TDesC &aForeign ) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0214-CP ")); + INFO_PRINTF1(_L("Test normal autodetect \n") ); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(aFileServerSession); + + // open the file & read into sourceBuffer + RFile source; + User::LeaveIfError( source.Open( aFileServerSession, aForeign, EFileRead )); + TInt sourceSize = 0; + source.Size(sourceSize); + + // create buffers for source file + HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); + TPtr8 sourcePtr(sourceBuffer->Des()); + + // read the whole source file into the buffer + User::LeaveIfError( source.Read( sourcePtr, sourceSize )); + source.Close(); + + // measure the time taken to autodetect. + TTime startTime, stopTime; + startTime.UniversalTime(); + + // do the autodetect + TInt confidenceLevel =0; + TUint characterSetIdentifier = 0; + characterSetConverter->AutoDetectCharSetL( confidenceLevel, + characterSetIdentifier, *arrayOfCharacterSetsAvailable, sourcePtr); + + //characterSetIdentifier could either be the ShiftJis identifier or the Shiftjis Kddiau Test identifier + //as both plugins are visible to ECOM + test((characterSetIdentifier == KCharacterSetIdentifierShiftJis) + ||(characterSetIdentifier == KCharacterSetTestShiftJisKddiau)); + + stopTime.UniversalTime(); + TTimeIntervalMicroSeconds timeTaken = stopTime.MicroSecondsFrom(startTime); + TInt result = timeTaken.Int64(); + INFO_PRINTF3(_L("Time taken for old autodetect %S = %d microseconds\n"), + &aForeign, result ); + + // characterSetConverter,arrayOfCharacterSetsAvailable, sourceBuffer + CleanupStack::PopAndDestroy(3); + } + + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-0215-CP +@SYMTestCaseDesc Check the conversion speed of shiftjis +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions The sample data is converted to unicode by J5. +@SYMTestExpectedResults The converted unicode data is checked against expected data. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_KDDIAU::checkConversionSpeedL(RTest& test, RFs &aFileServerSession, const TDesC &aForeign) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0215-CP ")); + INFO_PRINTF1(_L("Test conversion speed \n") ); + + // open the file & read into sourceBuffer + RFile source; + User::LeaveIfError( source.Open( aFileServerSession, aForeign, EFileRead )); + TInt sourceSize = 0, expectedSize = 0; + source.Size(sourceSize); + + // assume that every byte coverts to 2 bytes of unicode and the buffer will be big enough + expectedSize = sourceSize * 2; + + // create buffer for source file + HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); + TPtr8 sourcePtr(sourceBuffer->Des()); + + // for the unicode created + HBufC * outputBuffer = HBufC::NewLC(expectedSize); + TPtr outputPtr(outputBuffer->Des()); + + // load the converter ready for testing + CCnvCharacterSetConverter* charConverter=CCnvCharacterSetConverter::NewLC(); + CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; + available = charConverter->PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aFileServerSession); + if ( available != CCnvCharacterSetConverter::EAvailable) + User::Leave(KErrNotSupported); + + // read the whole source file into the buffer + User::LeaveIfError( source.Read( sourcePtr, sourceSize )); + source.Close(); + + // measure the time taken to convert. + TTime startTime, stopTime; + startTime.UniversalTime(); + + // now convert using J5 into unicode in the output buffer + TInt state = CCnvCharacterSetConverter::KStateDefault; + TInt numberCharsNotConverted = 0; + + // repeat this to get a more accurate measurement + const int scale =10; + TInt i=0; + for ( i=0; iConvertToUnicode(outputPtr, sourcePtr, state); + if ( numberCharsNotConverted != 0) + INFO_PRINTF2(_L("number of characters not converted:%d \n"), + numberCharsNotConverted ); + } + + stopTime.UniversalTime(); + TTimeIntervalMicroSeconds timeTaken = stopTime.MicroSecondsFrom(startTime); + TInt result = timeTaken.Int64()/scale; + INFO_PRINTF3(_L("Time taken for converting %S to unicode using shiftjis:%d microseconds\n"), + &aForeign, result ); + + + // characterSetConverter, sourceBuffer, outputBuffer + CleanupStack::PopAndDestroy(3); + } + +/** +@SYMTestCaseID SYSLIB-CharConv-J5-U-0216-CP +@SYMTestCaseDesc Check some UCS2 conversions +@SYMTestStatus Implemented +@SYMTestPriority Critical +@SYMTestActions The UCS2 sample data is converted to unicode by J5. +@SYMTestExpectedResults The converted unicode data is checked against expected data. +@SYMTestType Unit +@SYMREQ REQ4828 +*/ +void CT_J5_KDDIAU::checkUCS2converstion(RTest& test, CCnvCharacterSetConverter *aJ5converter ) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0216-CP ")); + // buffer to convert into + TBuf16<512> unicode; + TInt numberOfUnconvertibleCharacters; + TInt indexOfFirstByteOfFirstUnconvertibleCharacter; + + // small sample of EBigEndian UCS2 with no Byte order markers + INFO_PRINTF1(_L("Check J5 conversion of EBigEndian UCS2 with no Byte order markers to unicode \n")); + _LIT8(Kucs2sample1,"\x0\x69\x0\x2d\x0\x6d\x0\x6f\x0\x64\x0\x65"); + _LIT16(KucsAsUnicode1,"\x0069\x002d\x006d\x006f\x0064\x0065"); + + // J5 convert from unicode + TInt state = CCnvCharacterSetConverter::KStateDefault; + TInt numberNotConverted =0; + numberNotConverted = aJ5converter->ConvertToUnicode(unicode, Kucs2sample1, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter ); + test(numberNotConverted == 0); + test(numberOfUnconvertibleCharacters == 0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter == -1); + + // compare the unicode created to that supplied + test(unicode==KucsAsUnicode1); + + // small sample of ELittleEndian UCS2 with no Byte order markers + INFO_PRINTF1(_L("Check J5 conversion of ELittleEndian UCS2 with no Byte order markers to unicode \n")); + _LIT8(Kucs2sample2,"\x69\x0\x2d\x0\x6d\x0\x6f\x0\x64\x0\x65\x0"); + _LIT16(KucsAsUnicode2,"\x0069\x002d\x006d\x006f\x0064\x0065"); + state = CCnvCharacterSetConverter::KStateDefault; + numberNotConverted = aJ5converter->ConvertToUnicode(unicode, Kucs2sample2, state); + test(numberNotConverted == 0); + + // compare the unicode created to that supplied + test(unicode==KucsAsUnicode2); + + // check UCS2 converter handles output buffer too small case + INFO_PRINTF1(_L("Check J5 conversion of UCS2 with small output buffer \n")); + TBuf16<4> smallOutputBuffer; + numberNotConverted = aJ5converter->ConvertToUnicode(smallOutputBuffer, Kucs2sample2, state); + // check numberNotConverted = size of KucsAsUnicode2(12bytes) - smallOutputBuffer(8bytes) = 4 + INFO_PRINTF2(_L("numberNotConverted %d should be 4 \n"), numberNotConverted ); + test( numberNotConverted == 4); + + // check UCS2 converter handles a odd number of input bytes + INFO_PRINTF1(_L("Check J5 conversion of UCS2 handles a odd number of input bytes \n")); + _LIT8(Kucs2sample3,"\xff\xfe\x69\x0\x2d\x0\x6d\x0\x6f\x0\x64\x0\x65\x0\x23"); + _LIT16(KucsAsUnicode3,"\x0069\x002d\x006d\x006f\x0064\x0065"); + numberNotConverted = aJ5converter->ConvertToUnicode(unicode, Kucs2sample3, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + INFO_PRINTF2(_L("numberOfUnconvertibleCharacters %d should be the 1 odd byte at the end\n"), numberOfUnconvertibleCharacters ); + test(unicode==KucsAsUnicode3); + test(numberNotConverted == 1); + test(numberOfUnconvertibleCharacters == 0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter == -1); + } + + +/** + test code starts here... + */ +void CT_J5_KDDIAU::DoE32MainL() + { + RTest test; + INFO_PRINTF1(_L("TJ5 start")); + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + + // check the J5 converter is available + checkJ5Available( test, fileServerSession ); + + // Convert some sample data to unicode using J5 and check result + _LIT8(KShiftJis,"\x82\xB1\x82\xF1\x82\xC9\x82\xBF\x82\xCD\x82\xC9\x82\xBF\x82\xCD"); + _LIT16(KUnicode,"\x3053\x3093\x306B\x3061\x306F\x306B\x3061\x306F"); + // test J5 on simple example shift jis test data, + convertDataUsingJ5(test, fileServerSession, KShiftJis, KUnicode ); + + // small sample of code set 1&3 EUC_JP + _LIT8(KCodeSet2EucJp,"\x8f\xa2\xc2\xa1\xf1\xa1\xf2\x8f\xa2\xc2\x5c\x8f\xa2\xc3\xa1\xf8"); + // should convert to ¡¢£¤¥¦? + _LIT16(KCodeSet2EucJpAsUnicode,"\x00A1\x00A2\x00A3\x00A1\x00A5\x00A6\x00A7"); + convertDataUsingJ5( test, fileServerSession, KCodeSet2EucJp, KCodeSet2EucJpAsUnicode); + + /* example of code set 3 EUC_JP 8faba98fa9c18fabae8fabb28fabb18fabb48fabb38fabc0 converts to åæçèéêëì*/ + /* Note this could also be decoded as shiftjis */ + _LIT8(KCodeSet3EucJp,"\x8f\xab\xa9\x8f\xa9\xc1\x8f\xab\xae\x8f\xab\xb2\x8f\xab\xb1\x8f\xab\xb4\x8f\xab\xb3\x8f\xab\xc0"); + _LIT16(KCodeSet3EucJpAsUnicode,"\x00E5\x00E6\x00E7\x00E8\x00E9\x00EA\x00EB\x00EC"); + convertDataUsingJ5( test, fileServerSession, KCodeSet3EucJp, KCodeSet3EucJpAsUnicode); + + // small sample of UTF8 ®¯°±²³ + _LIT8(Kutf8,"\xc2\x8e\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3"); + _LIT16(Kutf8AsUnicode,"\x008E\x00AF\x00B0\x00B1\x00B2\x00B3"); + convertDataUsingJ5( test, fileServerSession, Kutf8, Kutf8AsUnicode); + + // small sample of ISO2022jp + _LIT8(Kiso2022jp,"\x1B\x24\x42\x24\x33\x24\x73\x24"); + _LIT16(Kiso2022jpAsUnicode,"\x3053\x3093"); + convertDataUsingJ5( test, fileServerSession, Kiso2022jp, Kiso2022jpAsUnicode); + + // some shiftjis which starts with two bytes that could be EUC 0xe1,0x81 + _LIT8(KShiftJisWithEucStart,"\xE1\x81\x82\xB1\x82\xF1\x82\xC9\x82\xBF\x82\xCD\x82\xC9\x82\xBF\x82\xCD"); + _LIT16(KUnicodeShiftJisWithEucStart,"\x7601\x3053\x3093\x306B\x3061\x306F\x306B\x3061\x306F"); + convertDataUsingJ5(test, fileServerSession, KShiftJisWithEucStart, KUnicodeShiftJisWithEucStart ); + + // some shiftjis which starts with two bytes that could be UTF8 0xc2,0x8e + _LIT8(KShiftJisWithUtf8Start,"\xC2\x8E\x82\xB1\x82\xF1\x82\xC9\x82\xBF\x82\xCD\x82\xC9\x82\xBF\x82\xCD"); + _LIT16(KUnicodeShiftJisWithUtf8Start,"\xFF82\x7345\xFF71\x3093\x306B\x3061\x306F\x306B\x3061\x306F"); + convertDataUsingJ5(test, fileServerSession, KShiftJisWithUtf8Start, KUnicodeShiftJisWithUtf8Start ); + + // Small shiftjis sample with some half width Katakana + _LIT8(KShiftJisHalfWidthKatakana,"\xB0\xE0\x70\xB0\x70"); + _LIT16(KUnicodeShiftJisHalfWidthKatakana,"\xFF70\x703E\xFF70\x0070"); + convertDataUsingJ5(test, fileServerSession, KShiftJisHalfWidthKatakana, KUnicodeShiftJisHalfWidthKatakana ); + + /* Read in a text file and convert to unicode using J5 + then check the correct converstion was used by checking + returned state variable */ + // Note ansi.txt is valid for several conversions EUtf8, Eucjp + checkDetection( test, fileServerSession, KAnsiTxt, EEucjp); + checkDetection( test, fileServerSession, KImodeTxt, EShiftjis); + checkDetection( test, fileServerSession, KJpEUCjTxt, EEucjp); + checkDetection( test, fileServerSession, KJpJISTxt, EIso2022jp1); + checkDetection( test, fileServerSession, KJpSJISTxt, EShiftjis); + checkDetection( test, fileServerSession, KJpUnicodeTxt, EUcs2); + checkDetection( test, fileServerSession, KJpUTF8Txt, EUtf8); + checkDetection( test, fileServerSession, KmoperaTxt, EShiftjis); + checkDetection( test, fileServerSession, KMScodeFontTxt,EShiftjis ); + checkDetection( test, fileServerSession, KSJISTxt, EShiftjis ); + + // load the converter ready for testing + CCnvCharacterSetConverter* J5Converter=CCnvCharacterSetConverter::NewLC(); + CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; + available = J5Converter->PrepareToConvertToOrFromL(KCharacterSetTestJ5Kddiau, fileServerSession); + if ( available != CCnvCharacterSetConverter::EAvailable) + User::Leave(KErrNotSupported); + + // check some UCS2 examples + checkUCS2converstion( test, J5Converter ); + + // Convert the file Ansi.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KAnsiTxt, KAnsiUni, KAnsiOut ); + + // Convert the file imode.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KImodeTxt, KImodeUni, KImodeOut ); + + // Convert the file JpEUC-J.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpEUCjTxt, KJpEUCjUni, KJpEUCjOut ); + + // Convert the file JpJIS.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpJISTxt, KJpJISUni, KJpJISOut); + + // Convert the file JpSJIS.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpSJISTxt, KJpSJISUni, KJpSJISOut ); + + // Convert the file JpUnicode.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpUnicodeTxt, KJpUnicodeUni, KJpUnicodeOut ); + + // Convert the file JpUTF8.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpUTF8Txt, KJpUTF8Uni, KJpUTF8Out); + + // Convert the file mopera.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KmoperaTxt, KmoperaUni, KmoperaOut); + + // Convert the file MScodefont.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KMScodeFontTxt, KMScodeFontUni, KMScodeFontOut); + + // Convert the file S-JIS.test supplied by Symbian Japan to unicode + convertFileUsingJ5L( test, fileServerSession, J5Converter, KSJISTxt, KSJISUni, KSJISOut); + + // Check that J5 converts to UTF8 when ConvertFromUnicode() is called + convertFromUnicodeUsingJ5( test, fileServerSession, J5Converter ); + + // autodetect speed benchmark test + checkNormalAutodetectL( test, fileServerSession, KMScodeFontTxt ); + checkNormalAutodetectL( test, fileServerSession, KSJISTxt ); + checkNormalAutodetectL( test, fileServerSession, KImodeTxt ); + + // conversion speed benchmark test + checkConversionSpeedL(test, fileServerSession, KMScodeFontTxt); + checkConversionSpeedL(test, fileServerSession, KSJISTxt); + checkConversionSpeedL(test, fileServerSession, KImodeTxt); + + // J5Converter + CleanupStack::PopAndDestroy(1 /*, &J5Converter*/); + + // tidy up after text + User::After(3000000); + // test, fileServerSession + CleanupStack::PopAndDestroy(1); + } + +CT_J5_KDDIAU::CT_J5_KDDIAU() + { + SetTestStepName(KTestStep_T_J5_KDDIAU); + } + +TVerdict CT_J5_KDDIAU::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_j5_kddiau.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_j5_kddiau.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,68 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_J5_KDDIAU_H__ +#define __T_J5_KDDIAU_H__ + +//#include +#include + +class CCnvCharacterSetConverter; +class RTest + { + TInt x; + }; + +class CT_J5_KDDIAU : public CTestStep + { +public: + CT_J5_KDDIAU(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void checkUCS2converstion(RTest& aTest, CCnvCharacterSetConverter *aJ5converter ); + void checkConversionSpeedL(RTest& aTest, RFs &aFileServerSession, const TDesC &aForeign); + void checkNormalAutodetectL( RTest& aTest, RFs &aFileServerSession, const TDesC &aForeign ); + void convertDataUsingJ5(RTest& aTest, + RFs &fileServerSession, + const TDesC8 &aForeign, + const TDesC16 &aUnicode ); + void checkDetection(RTest& aTest, + RFs fileServerSession, + const TDesC &aForeign, + TInt aExpectedCode ); + void convertFromUnicodeUsingJ5(RTest& aTest, + RFs fileServerSession, + CCnvCharacterSetConverter*aJ5converter ); + void convertFileUsingJ5L(RTest& aTest, + RFs fileServerSession, + CCnvCharacterSetConverter*aJ5converter, + const TDesC &aForeign, + const TDesC &aExpectedUnicode, + const TDesC &aOutputUnicode ); + void checkJ5Available(RTest aTest, RFs &aFileServerSession); + void SaveConvertedUnicodeAsFile( RFs &fileServerSession, + const TDesC &aFileName, + const TDesC &aConvertedUnicode); + + + + }; + +_LIT(KTestStep_T_J5_KDDIAU, "T_J5_KDDIAU"); + +#endif //__T_J5_KDDIAU_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_j5_kddiau.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_j5_kddiau.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_J5_KDDIAU tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_J5_KDDIAU \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_jis.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_jis.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,319 @@ +/* +* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_jis.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +const TInt KBufferLength=100; +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0529 +@SYMTestCaseDesc Tests for truncated conversion from Unicode to JIS +@SYMTestPriority Medium +@SYMTestActions Tests for truncated conversion from Unicode to JIS and back to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_JIS::TestTruncatedConversionFromUnicodeToJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0529 ")); + for (TInt i=aOriginalUnicode.Length(); i>=0; --i) + { + TBuf8 generatedJis; + test(aCharacterSetConverter.ConvertFromUnicode(generatedJis, aOriginalUnicode.Left(i))>=0); + TBuf8 generatedsecondPartOfJis; + test(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfJis, aOriginalUnicode.Mid(i))==0); + generatedJis.Append(generatedsecondPartOfJis); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedJis, state)==0); + test(generatedUnicode==aOriginalUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0530 +@SYMTestCaseDesc Splitting and converting from Unicode to JIS test +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting, from Unicode to JIS and back to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_JIS::TestSplittingConvertingFromUnicodeToJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, const TDesC8& aExpectedFirstPartOfJis, const TDesC8& aExpectedSecondPartOfJis, const TDesC16& aOriginalUnicode) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0530 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint8 jisBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr8 generatedFirstPartOfJis(jisBuffer, i); + test(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfJis, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); + test(generatedFirstPartOfJis==aExpectedFirstPartOfJis); + TBuf8 generatedSecondPartOfJis; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfJis, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); + test(generatedSecondPartOfJis==aExpectedSecondPartOfJis); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfJis, state)==0); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfJis, state)==0); + generatedUnicode.Append(generatedSecondPartOfUnicode); + test(generatedUnicode==aOriginalUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0531 +@SYMTestCaseDesc Tests for truncated conversion from JIS to Unicode +@SYMTestPriority Medium +@SYMTestActions Tests for truncated conversion from JIS to Unicode and back to JIS +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_JIS::TestTruncatedConversionToUnicodeFromJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalJis) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0531 ")); + for (TInt i=aOriginalJis.Length(); i>=6; --i) // 6 is the length of JIS' longest escape sequence + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalJis.Left(i), state); + test(returnValue>=0); + TBuf16 generatedsecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalJis.Mid(i-returnValue), state)==0); + generatedUnicode.Append(generatedsecondPartOfUnicode); + test(generatedUnicode==aExpectedUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0532 +@SYMTestCaseDesc Splitting and converting from JIS to Unicode test +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting, from JIS to Unicode and back to JIS +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_JIS::TestSplittingConvertingToUnicodeFromJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfJisBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalJis) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0532 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint16 unicodeBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); + TInt state=CCnvCharacterSetConverter::KStateDefault; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalJis, state); + test(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); + test(returnValue==aExpectedNumberOfJisBytesNotConvertedAtSplit); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalJis.Right(aExpectedNumberOfJisBytesNotConvertedAtSplit), state)==0); + test(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); + TBuf8 generatedJis; + test(aCharacterSetConverter.ConvertFromUnicode(generatedJis, generatedFirstPartOfUnicode)==0); + TBuf8 generatedSecondPartOfJis; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfJis, generatedSecondPartOfUnicode)==0); + generatedJis.Append(generatedSecondPartOfJis); + TBuf16 regeneratedUnicode; + state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, generatedJis, state)==0); + test(regeneratedUnicode==aExpectedUnicode); + state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, aOriginalJis, state)==0); + test(regeneratedUnicode==aExpectedUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0533 +@SYMTestCaseDesc Conversion of bad JIS format to Unicode test +@SYMTestPriority Medium +@SYMTestActions Tests to convert bad formatted JIS input to Unicode. +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_JIS::TestIsIllFormedJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aJis) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0533 ")); + TBuf16<50> generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + TPtrC8 remainderOfJis(aJis); + TInt lastReturnValue=KMaxTInt; + FOREVER + { + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfJis, state); + if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) + { + break; + } + test(returnValue>0); + test(returnValue* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + TInt i; + for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + INFO_PRINTF1(_L("Testing JIS conversions")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJis, *arrayOfCharacterSetsAvailable, fileServerSession); + // + INFO_PRINTF1(_L("Empty descriptor")); + TestSplittingConvertingFromUnicodeToJis(*characterSetConverter, 0, 10, 0, KNullDesC8, KNullDesC8, KNullDesC16); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); + INFO_PRINTF1(_L("Testing converting to JIS")); + TBuf16<50> originalUnicode; + originalUnicode.Format(_L16("I %c%c%c%c%c%c%c%c"), 0x611b, 0x3059, 0x308b, 0xff74, 0xff9a, 0xff68, 0xff9d, 0x4e04); + TestTruncatedConversionFromUnicodeToJis(*characterSetConverter, originalUnicode); + 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); + 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); + 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); + 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); + 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); + 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); + 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); + 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); + 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); + 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); + 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); + INFO_PRINTF1(_L("Testing converting to Unicode")); + + /** + * Work around for DEF063276. + * This literal is now loaded from a z:\test\data\originalJis.dat + * Bullseye Coverage corrupts this literal to avoid this it is stored in a file as to not be touched by Bullseye Coverage. + */ + // 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")); + + TBuf8<64> buf; + ReadDesc(buf, KOriginalJisFilename, fileServerSession); + + TBuf16<50> expectedUnicode; + expectedUnicode.Format(_L16("\xa5\\%c\xa5%c\xa5%c%c%c%c%c%c0$"), 0xff74, 0xff71, 0xff8a, 0xff9e, 0x963f, 0x4e0c, 0xff61, 0xff62); + TestTruncatedConversionToUnicodeFromJis(*characterSetConverter, expectedUnicode, buf); + 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")); + TestTruncatedConversionToUnicodeFromJis(*characterSetConverter, _L16(" Hello"), _L8("\x1b\x26\x40\x1b\x24\x42\x1b\x28\x4a Hello")); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 0, 0, 38, 0, expectedUnicode, buf); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 1, 1, 34, 1, expectedUnicode, buf); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 2, 2, 33, 2, expectedUnicode, buf); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 3, 3, 32, 3, expectedUnicode, buf); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 4, 4, 30, 4, expectedUnicode, buf); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 5, 5, 28, 5, expectedUnicode, buf); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 6, 6, 26, 6, expectedUnicode, buf); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 7, 7, 25, 7, expectedUnicode, buf); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 8, 8, 24, 8, expectedUnicode, buf); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 9, 9, 12, 9, expectedUnicode, buf); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 10, 10, 7, 10, expectedUnicode, buf); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 11, 11, 5, 11, expectedUnicode, buf); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 12, 12, 3, 12, expectedUnicode, buf); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 13, 13, 2, 13, expectedUnicode, buf); + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 14, 30, 0, 14, expectedUnicode, buf); + + // End fix + INFO_PRINTF1(_L("Testing the default JIS state")); + for (i=0; i<=6; ++i) + { + TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, i, i, 6-i, i, _L16("Hello\xa5"), _L8("Hello\\")); + } + INFO_PRINTF1(_L("Testing ill-formed JIS")); + TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b\x26\x40\x1b\x24\x42\x21\x1b\x28\x4a def")); + TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b\x26\x40\x1b\x24\x42\x21\x21\x21\x1b\x28\x4a def")); + TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b\x26\x40\x1b\x24\x42\x21\x21\x21\x21\x21\x1b\x28\x4a def")); + TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b")); + TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b\x24")); + TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b\x24\xff")); + CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +CT_JIS::CT_JIS() + { + SetTestStepName(KTestStep_T_JIS); + } + +TVerdict CT_JIS::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_jis.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_jis.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,45 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_JIS_H__ +#define __T_JIS_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_JIS : public CTestStep + { +public: + CT_JIS(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void TestTruncatedConversionFromUnicodeToJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode); + void TestSplittingConvertingFromUnicodeToJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, const TDesC8& aExpectedFirstPartOfJis, const TDesC8& aExpectedSecondPartOfJis, const TDesC16& aOriginalUnicode); + void TestTruncatedConversionToUnicodeFromJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalJis); + void TestSplittingConvertingToUnicodeFromJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfJisBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalJis); + void TestIsIllFormedJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aJis); + void ReadDesc(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + + + }; + +_LIT(KTestStep_T_JIS, "T_JIS"); + +#endif //__T_JIS_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_jis.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_jis.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_JIS tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_JIS \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_koi8r.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_koi8r.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_koi8r.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierKOI8R; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\KOI8R_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\KOI8R_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\KOI8R_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\KOI8R_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\KOI8R_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\KOI8R_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\KOI8R_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\KOI8R_for_expect.dat"); +#endif + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +void CT_KOI8R::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +void CT_KOI8R::Merge_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + INFO_PRINTF1(_L("Encoding from Unicode to Foreign")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); + TBuf8<508> temp; + TBuf16<254> originalUnicode; + TBuf8<254> generatedForeign; + TBuf16<254> generatedUnicode; + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Merge_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + + INFO_PRINTF1(_L("Encoding from Foreign to Unicode")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Merge_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + + CleanupStack::PopAndDestroy(3); + } + +CT_KOI8R::CT_KOI8R() + { + SetTestStepName(KTestStep_T_KOI8R); + } + +TVerdict CT_KOI8R::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_koi8r.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_koi8r.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,39 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_KOI8R_H__ +#define __T_KOI8R_H__ + +//#include +#include + +class CT_KOI8R : public CTestStep + { +public: + CT_KOI8R(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + void Merge_Big(TDesC8& aSource, TDes16& aTarget); + + }; + +_LIT(KTestStep_T_KOI8R, "T_KOI8R"); + +#endif //__T_KOI8R_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_koi8r.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_koi8r.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_KOI8R tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_KOI8R \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_koi8u.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_koi8u.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_koi8u.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierKOI8U; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\KOI8U_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\KOI8U_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\KOI8U_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\KOI8U_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\KOI8U_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\KOI8U_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\KOI8U_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\KOI8U_for_expect.dat"); +#endif + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +void CT_KOI8U::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +void CT_KOI8U::Merge_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + INFO_PRINTF1(_L("Encoding from Unicode to Foreign")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); + TBuf8<512> temp; + TBuf16<256> originalUnicode; + TBuf8<256> generatedForeign; + TBuf16<256> generatedUnicode; + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Merge_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + + INFO_PRINTF1(_L("Encoding from Foreign to Unicode")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Merge_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + + CleanupStack::PopAndDestroy(3); + } + +CT_KOI8U::CT_KOI8U() + { + SetTestStepName(KTestStep_T_KOI8U); + } + +TVerdict CT_KOI8U::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_koi8u.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_koi8u.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,39 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_KOI8U_H__ +#define __T_KOI8U_H__ + +//#include +#include + +class CT_KOI8U : public CTestStep + { +public: + CT_KOI8U(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + void Merge_Big(TDesC8& aSource, TDes16& aTarget); + + }; + +_LIT(KTestStep_T_KOI8U, "T_KOI8U"); + +#endif //__T_KOI8U_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_koi8u.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_koi8u.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_KOI8U tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_KOI8U \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_multi_plugins.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_multi_plugins.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,96 @@ +/* +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Test to verify that a single charconv plugin with mulitple implementations +* can be built. +* +*/ + + +#include +#include +#include +#include +#include "tis1620.h" +#include "t_multi_plugins.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +/** +@SYMTestCaseID SYSLIB-CharConv-UT-1882 +@SYMTestCaseDesc Verify a charconv plugin with multiple implementations can be built. +@SYMTestPriority Normal +@SYMTestActions Load the two implementations in tis1620.dll which is +a charconv plugin that has two implementations. +@SYMTestExpectedResults Both implementations loaded successfully. +@SYMDEF DEF088036 +*/ +void CT_MULTI_PLUGINS::DoE32MainL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-1882 test DEF088036 started.\r\n ")); + CActiveScheduler* scheduler = new(ELeave) CActiveScheduler; + CleanupStack::PushL(scheduler); + CActiveScheduler::Install(scheduler); + + // load 2nd plug in + + TUid ImpId2={KTIS1620bImplUid}; + + CCharacterSetConverterPluginInterface* ex = + CCharacterSetConverterPluginInterface::NewL(ImpId2); + test(ex != NULL); + delete ex; + ex = NULL; + + // load 1st plugin + TUid ImpId1={KTIS1620aImplUid}; + ex = CCharacterSetConverterPluginInterface::NewL(ImpId1); + test(ex != NULL); + delete ex; + + REComSession::FinalClose(); + + CleanupStack::PopAndDestroy(scheduler); + } + +CT_MULTI_PLUGINS::CT_MULTI_PLUGINS() + { + SetTestStepName(KTestStep_T_MULTI_PLUGINS); + } + +TVerdict CT_MULTI_PLUGINS::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_multi_plugins.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_multi_plugins.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_MULTI_PLUGINS_H__ +#define __T_MULTI_PLUGINS_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_MULTI_PLUGINS : public CTestStep + { +public: + CT_MULTI_PLUGINS(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + + }; + +_LIT(KTestStep_T_MULTI_PLUGINS, "T_MULTI_PLUGINS"); + +#endif //__T_MULTI_PLUGINS_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_multi_plugins.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_multi_plugins.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_MULTI_PLUGINS tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_MULTI_PLUGINS \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_portugueselocking.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_portugueselocking.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,242 @@ +/* +* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + + +#include +#include +#include +#include +#include "t_portugueselocking.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierPortugueseLockingSms7Bit; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\portuguese_locking_gsm7ext_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\portuguese_locking_gsm7ext_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\portuguese_locking_gsm7ext_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\portuguese_locking_gsm7ext_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\portuguese_locking_gsm7ext_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\portuguese_locking_gsm7ext_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\portuguese_locking_gsm7ext_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\portuguese_locking_gsm7ext_for_expect.dat"); +#endif + +static CCnvCharacterSetConverter* characterSetConverter; +static RFs fileServerSession; +static TBuf8<970> temp; +static TBuf16<485> originalUnicode; +static TBuf8<485> generatedForeign; +static TBuf16<485> generatedUnicode; + + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +void CT_PORTUGUESELOCKING::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +//translate from unicode big endian TDesC8 to TDes16 +void CT_PORTUGUESELOCKING::Unicode_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4033 Available:\n ")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4034 +@SYMTestCaseDesc Testcase to test new converter can be prepared +@SYMTestPriority High +@SYMTestActions Test for PrepareToConvertToOrFromL() +@SYMTestExpectedResults The test passed, If EAvailable is returned +@SYMPREQ PREQ 2592 +@SYMREQ REQ 12583 +*/ +void CT_PORTUGUESELOCKING::PrepareNewConverterL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4034 Testing new converter can be prepared ")); + CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, fileServerSession); + test( CCnvCharacterSetConverter::EAvailable == avaible ); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4035 +@SYMTestCaseDesc Convert Unicode code to foreign character set +@SYMTestPriority High +@SYMTestActions Test for ConvertFromUnicode() +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ 2592 +@SYMREQ REQ 12583 +*/ +void CT_PORTUGUESELOCKING::ConvertFromUnicodeToForeignL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4035 Testing encoding from Unicode to Foreign ")); + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Unicode_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4036 +@SYMTestCaseDesc Convert foreign character set to Unicode code +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ 2592 +@SYMREQ REQ 12583 +*/ +void CT_PORTUGUESELOCKING::ConvertFromForeignToUnicodeL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4036 Testing encoding from Foreign to Unicode ")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Unicode_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4037 +@SYMTestCaseDesc Convert illegal character from foreign character set to unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ 2592 +@SYMREQ REQ 12583 +*/ +void CT_PORTUGUESELOCKING::ConvertIllegalForeignCharacter() + { + //test 0x1b + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4037 Testing EErrorIllFormedInput ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x1b; //the escape character + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( -20 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4038 +@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ 2592 +@SYMREQ REQ 12583 +*/ +void CT_PORTUGUESELOCKING::ConvertOutOfRangeForeignCharacters() + { + //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4038 Testing Characters not in the Scope ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x80; + TInt state=CCnvCharacterSetConverter::KStateDefault; + _LIT16(KExpected2, "\xfffd"); //the expected foreign + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + test( generatedUnicode == KExpected2 ); + } + +void CT_PORTUGUESELOCKING::DoE32MainL() + { + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + characterSetConverter=CCnvCharacterSetConverter::NewLC(); + + ListAlltheConvertersL(); + PrepareNewConverterL(); + ConvertFromUnicodeToForeignL(); + ConvertFromForeignToUnicodeL(); + ConvertIllegalForeignCharacter(); + ConvertOutOfRangeForeignCharacters(); + + CleanupStack::PopAndDestroy(2); + } + +CT_PORTUGUESELOCKING::CT_PORTUGUESELOCKING() + { + SetTestStepName(KTestStep_T_PORTUGUESELOCKING); + } + +TVerdict CT_PORTUGUESELOCKING::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_portugueselocking.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_portugueselocking.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_PORTUGUESELOCKING_H__ +#define __T_PORTUGUESELOCKING_H__ + +//#include +#include + +class CT_PORTUGUESELOCKING : public CTestStep + { +public: + CT_PORTUGUESELOCKING(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ConvertOutOfRangeForeignCharacters(); + void ConvertIllegalForeignCharacter(); + void ConvertFromForeignToUnicodeL(); + void ConvertFromUnicodeToForeignL(); + void PrepareNewConverterL(); + void ListAlltheConvertersL(); + void Unicode_Big(TDesC8& aSource, TDes16& aTarget); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + }; + +_LIT(KTestStep_T_PORTUGUESELOCKING, "T_PORTUGUESELOCKING"); + +#endif //__T_PORTUGUESELOCKING_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_portugueselocking.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_portugueselocking.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_PORTUGUESELOCKING tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_PORTUGUESELOCKING \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_portugueselockingsingle.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_portugueselockingsingle.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,244 @@ +/* +* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + + +#include +#include +#include +#include +#include "t_portugueselockingsingle.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierPortugueseLockingAndSingleSms7Bit; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\portuguese_locking_single_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\portuguese_locking_single_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\portuguese_locking_single_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\portuguese_locking_single_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\portuguese_locking_single_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\portuguese_locking_single_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\portuguese_locking_single_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\portuguese_locking_single_for_expect.dat"); +#endif + + +static CCnvCharacterSetConverter* characterSetConverter; +static RFs fileServerSession; +static TBuf8<970> temp; +static TBuf16<485> originalUnicode; +static TBuf8<485> generatedForeign; +static TBuf16<485> generatedUnicode; + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +void CT_PORTUGUESELOCKINGSINGLE::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +//translate from unicode big endian TDesC8 to TDes16 +void CT_PORTUGUESELOCKINGSINGLE::Unicode_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4039 Available:\n ")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4040 +@SYMTestCaseDesc Testcase to test new converter can be prepared +@SYMTestPriority High +@SYMTestActions Test for PrepareToConvertToOrFromL() +@SYMTestExpectedResults The test passed, If EAvailable is returned +@SYMPREQ PREQ2592 +@SYMREQ REQ12583 +*/ +void CT_PORTUGUESELOCKINGSINGLE::PrepareNewConverterL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4040 Testing new converter can be prepared ")); + CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, fileServerSession); + test( CCnvCharacterSetConverter::EAvailable == avaible ); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4041 +@SYMTestCaseDesc Convert Unicode code to foreign character set +@SYMTestPriority High +@SYMTestActions Test for ConvertFromUnicode() +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ2592 +@SYMREQ REQ12583 +*/ +void CT_PORTUGUESELOCKINGSINGLE::ConvertFromUnicodeToForeignL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4041 Testing encoding from Unicode to Foreign ")); + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Unicode_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4042 +@SYMTestCaseDesc Convert foreign character set to Unicode code +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ2592 +@SYMREQ REQ12583 +*/ +void CT_PORTUGUESELOCKINGSINGLE::ConvertFromForeignToUnicodeL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4042 Testing encoding from Foreign to Unicode ")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Unicode_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4043 +@SYMTestCaseDesc Convert illegal character from foreign character set to unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ2592 +@SYMREQ REQ12583 +*/ +void CT_PORTUGUESELOCKINGSINGLE::ConvertIllegalForeignCharacter() + { + //test 0x1b + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4043 Testing EErrorIllFormedInput ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x1b; //the escape character + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( -20 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4044 +@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ2592 +@SYMREQ REQ12583 +*/ +void CT_PORTUGUESELOCKINGSINGLE::ConvertOutOfRangeForeignCharacters() + { + //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4044 Testing Characters not in the Scope ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x80; + TInt state=CCnvCharacterSetConverter::KStateDefault; + _LIT16(KExpected2, "\xfffd"); //the expected foreign + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + test( generatedUnicode == KExpected2 ); + } + +void CT_PORTUGUESELOCKINGSINGLE::DoE32MainL() + { + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + characterSetConverter=CCnvCharacterSetConverter::NewLC(); + + ListAlltheConvertersL(); + PrepareNewConverterL(); + ConvertFromUnicodeToForeignL(); + ConvertFromForeignToUnicodeL(); + ConvertIllegalForeignCharacter(); + ConvertOutOfRangeForeignCharacters(); + + CleanupStack::PopAndDestroy(2); + } + + +CT_PORTUGUESELOCKINGSINGLE::CT_PORTUGUESELOCKINGSINGLE() + { + SetTestStepName(KTestStep_T_PORTUGUESELOCKINGSINGLE); + } + +TVerdict CT_PORTUGUESELOCKINGSINGLE::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_portugueselockingsingle.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_portugueselockingsingle.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_PORTUGUESELOCKINGSINGLE_H__ +#define __T_PORTUGUESELOCKINGSINGLE_H__ + +//#include +#include + +class CT_PORTUGUESELOCKINGSINGLE : public CTestStep + { +public: + CT_PORTUGUESELOCKINGSINGLE(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ConvertOutOfRangeForeignCharacters(); + void ConvertIllegalForeignCharacter(); + void ConvertFromForeignToUnicodeL(); + void ConvertFromUnicodeToForeignL(); + void PrepareNewConverterL(); + void ListAlltheConvertersL(); + void Unicode_Big(TDesC8& aSource, TDes16& aTarget); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + }; + +_LIT(KTestStep_T_PORTUGUESELOCKINGSINGLE, "T_PORTUGUESELOCKINGSINGLE"); + +#endif //__T_PORTUGUESELOCKINGSINGLE_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_portugueselockingsingle.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_portugueselockingsingle.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_PORTUGUESELOCKINGSINGLE tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_PORTUGUESELOCKINGSINGLE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_portuguesesingle.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_portuguesesingle.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,242 @@ +/* +* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + + +#include +#include +#include +#include +#include "t_portuguesesingle.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierPortugueseSingleSms7Bit; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\gsm7_portuguese_single_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\gsm7_portuguese_single_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\gsm7_portuguese_single_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\gsm7_portuguese_single_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\gsm7_portuguese_single_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\gsm7_portuguese_single_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\gsm7_portuguese_single_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\gsm7_portuguese_single_for_expect.dat"); +#endif + + +static CCnvCharacterSetConverter* characterSetConverter; +static RFs fileServerSession; +static TBuf8<974> temp; +static TBuf16<487> originalUnicode; +static TBuf8<487> generatedForeign; +static TBuf16<487> generatedUnicode; + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +void CT_PORTUGUESESINGLE::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +//translate from unicode big endian TDesC8 to TDes16 +void CT_PORTUGUESESINGLE::Unicode_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4027 Available:\n ")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4028 +@SYMTestCaseDesc Testcase to test new converter can be prepared +@SYMTestPriority High +@SYMTestActions Test for PrepareToConvertToOrFromL() +@SYMTestExpectedResults The test passed, If EAvailable is returned +@SYMPREQ PREQ 2592 +@SYMREQ REQ 12583 +*/ +void CT_PORTUGUESESINGLE::PrepareNewConverterL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4028 Testing new converter can be prepared ")); + CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, fileServerSession); + test( CCnvCharacterSetConverter::EAvailable == avaible ); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4029 +@SYMTestCaseDesc Convert Unicode code to foreign character set +@SYMTestPriority High +@SYMTestActions Test for ConvertFromUnicode() +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ 2592 +@SYMREQ REQ 12583 +*/ +void CT_PORTUGUESESINGLE::ConvertFromUnicodeToForeignL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4029 Testing encoding from Unicode to Foreign ")); + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Unicode_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4030 +@SYMTestCaseDesc Convert foreign character set to Unicode code +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ 2592 +@SYMREQ REQ 12583 +*/ +void CT_PORTUGUESESINGLE::ConvertFromForeignToUnicodeL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4030 Testing encoding from Foreign to Unicode ")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Unicode_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4031 +@SYMTestCaseDesc Convert illegal character from foreign character set to unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ 2592 +@SYMREQ REQ 12583 +*/ +void CT_PORTUGUESESINGLE::ConvertIllegalForeignCharacter() + { + //test 0x1b + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4031 Testing EErrorIllFormedInput ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x1b; //the escape character + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( -20 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4032 +@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ 2592 +@SYMREQ REQ 12583 +*/ +void CT_PORTUGUESESINGLE::ConvertOutOfRangeForeignCharacters() + { + //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4032 Testing Characters not in the Scope ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x80; + TInt state=CCnvCharacterSetConverter::KStateDefault; + _LIT16(KExpected2, "\xfffd"); //the expected foreign + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + test( generatedUnicode == KExpected2 ); + } + +void CT_PORTUGUESESINGLE::DoE32MainL() + { + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + characterSetConverter=CCnvCharacterSetConverter::NewLC(); + + ListAlltheConvertersL(); + PrepareNewConverterL(); + ConvertFromUnicodeToForeignL(); + ConvertFromForeignToUnicodeL(); + ConvertIllegalForeignCharacter(); + ConvertOutOfRangeForeignCharacters(); + + CleanupStack::PopAndDestroy(2); + } + +CT_PORTUGUESESINGLE::CT_PORTUGUESESINGLE() + { + SetTestStepName(KTestStep_T_PORTUGUESESINGLE); + } + +TVerdict CT_PORTUGUESESINGLE::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_portuguesesingle.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_portuguesesingle.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_PORTUGUESESINGLE_H__ +#define __T_PORTUGUESESINGLE_H__ + +//#include +#include + +class CT_PORTUGUESESINGLE : public CTestStep + { +public: + CT_PORTUGUESESINGLE(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ConvertOutOfRangeForeignCharacters(); + void ConvertIllegalForeignCharacter(); + void ConvertFromForeignToUnicodeL(); + void ConvertFromUnicodeToForeignL(); + void PrepareNewConverterL(); + void ListAlltheConvertersL(); + void Unicode_Big(TDesC8& aSource, TDes16& aTarget); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + }; + +_LIT(KTestStep_T_PORTUGUESESINGLE, "T_PORTUGUESESINGLE"); + +#endif //__T_PORTUGUESESINGLE_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_portuguesesingle.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_portuguesesingle.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_PORTUGUESESINGLE tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_PORTUGUESESINGLE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_replacement.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_replacement.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,151 @@ +/* +* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_replacement.h" + + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0546 +@SYMTestCaseDesc Tests for the conversion of uncovertible Unicode characters +@SYMTestPriority Medium +@SYMTestActions Tests for the replacement of uncovertible Unicode characters +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_REPLACEMENT::DoE32MainL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0546 ")); + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312, *arrayOfCharacterSetsAvailable, fileServerSession); + INFO_PRINTF1(_L("Testing various values for iReplacementForUnconvertibleUnicodeCharacters")); + // + INFO_PRINTF1(_L("Testing iReplacementForUnconvertibleUnicodeCharacters being long")); + { + TBuf16<50> originalUnicode; + originalUnicode.Format(_L16("Here is a Georgian character - %c"), 0x10da); + characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("[something quite long]")); + const TInt KLengthOfForeignBuffer=100; + TUint8 foreignBuffer[KLengthOfForeignBuffer]; + for (TInt i=31; ; ++i) + { + test(i<=KLengthOfForeignBuffer); + TPtr8 generatedForeign(foreignBuffer, i); + TInt numberOfUnconvertibleCharacters; + TInt indexOfFirstUnconvertibleCharacter; + const TInt returnValue=characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter); + if (i==53) + { + test(returnValue==0); + test(generatedForeign==_L8("Here is a Georgian character - [something quite long]")); + test(numberOfUnconvertibleCharacters==1); + test(indexOfFirstUnconvertibleCharacter==31); + break; + } + test(returnValue==1); + test(generatedForeign==_L8("Here is a Georgian character - ")); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstUnconvertibleCharacter==-1); // not something that the API guarantees (it's undefined if numberOfUnconvertibleCharacters==0), but we'll check it any + } + } + INFO_PRINTF1(_L("Testing lots of unconvertible Unicode characters")); + { + characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("?Q")); + TInt numberOfUnconvertibleCharacters; + TInt indexOfFirstUnconvertibleCharacter; + TInt i; + TPtr16 originalUnicode(HBufC16::NewMaxLC(10+(sizeof(CCnvCharacterSetConverter::TArrayOfAscendingIndices)/sizeof(TUint16)))->Des()); + TPtr8 generatedForeign(HBufC8::NewLC(originalUnicode.Length()*sizeof(TUint16))->Des()); + originalUnicode.Fill(0x7535); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter)==0); + test(generatedForeign.Length()>0); + test(generatedForeign.Length()==originalUnicode.Length()*STATIC_CAST(TInt, sizeof(TUint16))); + test(numberOfUnconvertibleCharacters==0); + for (i=generatedForeign.Length()-1; i>=0; i-=2) + { + test(generatedForeign[i-1]==0xb5); + test(generatedForeign[i]==0xe7); + } + originalUnicode.Fill(0x0f0a); // a Tibetan character, not in GB 2312-80 + const TInt returnValue=characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter); + test(returnValue==0); + test(generatedForeign.Length()>0); + test(generatedForeign.Length()==(originalUnicode.Length()-returnValue)*STATIC_CAST(TInt, sizeof(TUint16))); + test(numberOfUnconvertibleCharacters==25); + test(indexOfFirstUnconvertibleCharacter==0); + for (i=generatedForeign.Length()-1; i>=0; i-=2) + { + test(generatedForeign[i-1]=='?'); + test(generatedForeign[i]=='Q'); + } + CleanupStack::PopAndDestroy(2); // generatedForeign and originalUnicode + } + CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +CT_REPLACEMENT::CT_REPLACEMENT() + { + SetTestStepName(KTestStep_T_REPLACEMENT); + } + +TVerdict CT_REPLACEMENT::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_replacement.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_replacement.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_REPLACEMENT_H__ +#define __T_REPLACEMENT_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_REPLACEMENT : public CTestStep + { +public: + CT_REPLACEMENT(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + + }; + +_LIT(KTestStep_T_REPLACEMENT, "T_REPLACEMENT"); + +#endif //__T_REPLACEMENT_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_replacement.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_replacement.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_REPLACEMENT tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_REPLACEMENT \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjis_docomo.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjis_docomo.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,475 @@ +/* +* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "shiftjis.h" +#include +#include "t_shiftjis_docomo.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +const TInt KBufferLength=100; + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-1903 +@SYMTestCaseDesc Tests for truncated conversion from Unicode to ShiftJIS +@SYMTestPriority Medium +@SYMTestActions Tests for truncated conversion from Unicode to ShiftJIS and back to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_SHIFTJIS_DOCOMO::TestTruncatedConversionFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, const TDesC16& aUnicodeAfterRoundTrip) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-1903 ")); + for (TInt i=aOriginalUnicode.Length(); i>=0; --i) + { + TBuf8 generatedShiftJis; + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedShiftJis, aOriginalUnicode.Left(i)); + test(returnValue>=0); + TBuf8 generatedsecondPartOfShiftJis; + test(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfShiftJis, aOriginalUnicode.Mid(i-returnValue))==0); + generatedShiftJis.Append(generatedsecondPartOfShiftJis); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedShiftJis, state)==0); + test(generatedUnicode==aUnicodeAfterRoundTrip); + } + } + +void CT_SHIFTJIS_DOCOMO::TestTruncatedConversionFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) + { + TestTruncatedConversionFromUnicodeToShiftJis(aCharacterSetConverter, aOriginalUnicode, aOriginalUnicode); + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-1904 +@SYMTestCaseDesc Splitting and converting from Unicode to ShiftJIS test +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting from Unicode to ShiftJIS and back to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_SHIFTJIS_DOCOMO::TestSplittingConvertingFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfShiftJis, const TDesC8& aExpectedShiftJis, const TDesC16& aOriginalUnicode, const TDesC16& aUnicodeAfterRoundTrip) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-1904 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint8 shiftJisBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr8 generatedFirstPartOfShiftJis(shiftJisBuffer, i); + TInt unconverted = aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfShiftJis, aOriginalUnicode) ; + test(unconverted == aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); + test(generatedFirstPartOfShiftJis==aExpectedShiftJis.Left(aExpectedLengthOfFirstPartOfShiftJis)); + TBuf8 generatedSecondPartOfShiftJis; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfShiftJis, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); + test(generatedSecondPartOfShiftJis==aExpectedShiftJis.Mid(aExpectedLengthOfFirstPartOfShiftJis)); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfShiftJis, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfShiftJis, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + generatedUnicode.Append(generatedSecondPartOfUnicode); + test(generatedUnicode==aUnicodeAfterRoundTrip); + } + } + +void CT_SHIFTJIS_DOCOMO::TestSplittingConvertingFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfShiftJis, const TDesC8& aExpectedShiftJis, const TDesC16& aOriginalUnicode) + { + TestSplittingConvertingFromUnicodeToShiftJis(aCharacterSetConverter, aMaximumLengthLowerLimit, aMaximumLengthUpperLimit, aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, aExpectedLengthOfFirstPartOfShiftJis, aExpectedShiftJis, aOriginalUnicode, aOriginalUnicode); + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-1905 +@SYMTestCaseDesc Tests for truncated conversion from ShiftJIS to Unicode +@SYMTestPriority Medium +@SYMTestActions Tests for truncated conversion from ShiftJIS to Unicode and back to ShiftJIS +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_SHIFTJIS_DOCOMO::TestTruncatedConversionToUnicodeFromShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJis) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-1905 ")); + for (TInt i=aOriginalShiftJis.Length(); i>=2; --i) // 2 is the length of GBK's longest multi-byte characters + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalShiftJis.Left(i), state); + test(returnValue>=0); + TBuf16 generatedsecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalShiftJis.Mid(i-returnValue), state)==0); + generatedUnicode.Append(generatedsecondPartOfUnicode); + test(generatedUnicode==aExpectedUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-1906 +@SYMTestCaseDesc Splitting and converting from ShiftJIS to Unicode test +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting from ShiftJIS to Unicode and back to ShiftJIS +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_SHIFTJIS_DOCOMO::TestSplittingConvertingToUnicodeFromShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfShiftJisBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJis) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-1906 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint16 unicodeBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalShiftJis, state)==aExpectedNumberOfShiftJisBytesNotConvertedAtSplit); + test(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalShiftJis.Right(aExpectedNumberOfShiftJisBytesNotConvertedAtSplit), state)==0); + test(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf8 generatedShiftJis; + test(aCharacterSetConverter.ConvertFromUnicode(generatedShiftJis, generatedFirstPartOfUnicode)==0); + TBuf8 generatedSecondPartOfShiftJis; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfShiftJis, generatedSecondPartOfUnicode)==0); + generatedShiftJis.Append(generatedSecondPartOfShiftJis); + test(generatedShiftJis==aOriginalShiftJis); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-1907 +@SYMTestCaseDesc Conversion of bad ShiftJIS format to Unicode test +@SYMTestPriority Medium +@SYMTestActions Tests for converting bad format ShiftJIS +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_SHIFTJIS_DOCOMO::TestIsIllFormedShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aShiftJis) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-1907 ")); + TBuf16<50> generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + TPtrC8 remainderOfShiftJis(aShiftJis); + TInt lastReturnValue=KMaxTInt; + FOREVER + { + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfShiftJis, state); + if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) + { + break; + } + test(returnValue>0); + test(returnValue outputBuffer; + TPtrC8 remainderOfForeignText(aShiftJisText); + + TInt state=CCnvCharacterSetConverter::KStateDefault; + TInt returnValue = aCharacterSetConverter.ConvertToUnicode(outputBuffer, + remainderOfForeignText, + state); + TInt charsProcessed = outputBuffer.Length(); + TInt charsToConvert = aShiftJisText.Length(); + test(charsProcessed == 20); + test(returnValue == (charsToConvert - charsProcessed)); + } + +void CT_SHIFTJIS_DOCOMO::TestConvertingLargeText(CCnvCharacterSetConverter& aCharacterSetConverter) + { + + const TInt size = 0x10000; + + HBufC8* sjisBuf = HBufC8::NewL(size); + TPtr8 sjisPtr = sjisBuf->Des(); + sjisPtr.Fill('a', sjisPtr.MaxLength()); + + for(TInt i=0xFFFF; i<=size; i++) + { + sjisPtr.SetLength(i); + DoTestConvertingLargeText(aCharacterSetConverter,sjisPtr); + } + + delete sjisBuf; + } + + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-1908 +@SYMTestCaseDesc ShiftJIS to Unicode and Unicode to ShiftJIS conversion tests +@SYMTestPriority Medium +@SYMTestActions Executes conversion tests of Unicode to ShiftJIS +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_SHIFTJIS_DOCOMO::DoE32MainL() + { + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-1908 Testing fix for defect EDNDBAR-4MCKCP in \"Symbian Defect Tracking v3.0\"")); + TBuf16<50> originalUnicode; + TBuf8<50> generatedShiftjis; + originalUnicode.Format(_L16("%c%c%c%ca"), 0x9999, 0x2029, 0xff61, 0x2028); + CCnvCharacterSetConverter::TArrayOfAscendingIndices indicesOfUnconvertibleCharacters; + INFO_PRINTF1(_L("Calling CnvShiftJis::ConvertFromUnicode before CHARCONV.DLL's thread-local storage has been set")); + test(CnvShiftJis::ConvertFromUnicode(CCnvCharacterSetConverter::EBigEndian, _L8("?"), generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(generatedShiftjis==_L8("\x8d\x81?\xa1?a")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); + test(indicesOfUnconvertibleCharacters[0]==1); + test(indicesOfUnconvertibleCharacters[1]==3); + indicesOfUnconvertibleCharacters.RemoveAll(); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + INFO_PRINTF1(_L("Calling CnvShiftJis::ConvertFromUnicode after CHARCONV.DLL's thread-local storage has been set")); + test(CnvShiftJis::ConvertFromUnicode(CCnvCharacterSetConverter::EBigEndian, _L8("?"), generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); // call this after the CCnvCharacterSetConverter object has been created (i.e. after CHARCONV.DLL's thread-local storage has been set) + test(generatedShiftjis==_L8("\x8d\x81?\xa1?a")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); + test(indicesOfUnconvertibleCharacters[0]==1); + test(indicesOfUnconvertibleCharacters[1]==3); + indicesOfUnconvertibleCharacters.RemoveAll(); + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + TInt i; + for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + INFO_PRINTF1(_L("Calling generic API's equivalent of CnvShiftJis::ConvertFromUnicode")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, *arrayOfCharacterSetsAvailable, fileServerSession); + test(characterSetConverter->ConvertFromUnicode(generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(generatedShiftjis==_L8("\x8d\x81\x0d\x0a\xa1\x0d\x0a""a")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); + characterSetConverter->SetDowngradeForExoticLineTerminatingCharacters(CCnvCharacterSetConverter::EDowngradeExoticLineTerminatingCharactersToJustLineFeed); + test(characterSetConverter->ConvertFromUnicode(generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(generatedShiftjis==_L8("\x8d\x81\x0a\xa1\x0a""a")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); + + INFO_PRINTF1(_L("Testing fix for defect SIN-4XHE36 in \"Symbian Defect Tracking v4.0\"")); + _LIT8(inputShiftjis,"This \x09is a\x0d\x0atest\x09to see if Charconv\x0d\x0a""can process\x0d\x0a""control\x09""characters."); + _LIT8(roundTripShiftjis,"This \x09is a\x0atest\x09to see if Charconv\x0a""can process\x0a""control\x09""characters."); + TBuf16<100> outUnicode; + TInt sta=CCnvCharacterSetConverter::KStateDefault; + TInt unConvertibleNum; + test(characterSetConverter->ConvertToUnicode(outUnicode, inputShiftjis, sta,unConvertibleNum)==0); + test(unConvertibleNum==0); + TBuf8<100> outUtf8; + TBuf16<100> outUnicode1; + TBuf8<100> outShifJis; + TBuf8<100> idealShiftJis(roundTripShiftjis); + CnvUtfConverter::ConvertFromUnicodeToUtf8(outUtf8, outUnicode); + CnvUtfConverter::ConvertToUnicodeFromUtf8(outUnicode1, outUtf8); + characterSetConverter->ConvertFromUnicode(outShifJis, outUnicode1); + test(idealShiftJis==outShifJis); + + INFO_PRINTF1(_L("Testing Shift-JIS conversions")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierAscii, *arrayOfCharacterSetsAvailable, fileServerSession); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, *arrayOfCharacterSetsAvailable, fileServerSession); + INFO_PRINTF1(_L("Empty descriptor")); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 0, 10, 0, 0, KNullDesC8, KNullDesC16); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); + INFO_PRINTF1(_L("Testing converting to Shift-JIS")); + originalUnicode.Format(_L16("%c%c%c is %c"), 0xff72, 0xff74, 0xff7d, 0x795e); + const TPtrC8 expectedShiftJis(_S8("\xb2\xb4\xbd is \x90\x5f")); + TestTruncatedConversionFromUnicodeToShiftJis(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 0, 0, 8, 0, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 1, 1, 7, 1, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 2, 2, 6, 2, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 3, 3, 5, 3, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 4, 4, 4, 4, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 5, 5, 3, 5, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 6, 6, 2, 6, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 7, 8, 1, 7, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 9, 20, 0, 9, expectedShiftJis, originalUnicode); + + INFO_PRINTF1(_L("Testing converting to Unicode")); + const TPtrC8 originalShiftJis(_S8("My name is \xc3\xde\xa8\xcb\xde\xc2\xde or \x83\x66\x83\x42\x83\x72\x83\x64 in \x93\xfa\x96\x7b\x8c\xea")); + TBuf16<50> expectedUnicode; + expectedUnicode.Format(_L16("My name is %c%c%c%c%c%c%c or %c%c%c%c in %c%c%c"), 0xff83, 0xff9e, 0xff68, 0xff8b, 0xff9e, 0xff82, 0xff9e, 0x30c7, 0x30a3, 0x30d3, 0x30c5, 0x65e5, 0x672c, 0x8a9e); + TestTruncatedConversionToUnicodeFromShiftJis(*characterSetConverter, expectedUnicode, originalShiftJis); + TestTruncatedConversionToUnicodeFromShiftJis(*characterSetConverter, expectedUnicode.Right(3), originalShiftJis.Right(6)); + for (i=0; i<=21; ++i) + { + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, i, i, 40-i, i, expectedUnicode, originalShiftJis); + } + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 22, 22, 18, 22, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 23, 23, 16, 23, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 24, 24, 14, 24, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 25, 25, 12, 25, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 26, 26, 10, 26, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 27, 27, 9, 27, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 28, 28, 8, 28, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 29, 29, 7, 29, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 30, 30, 6, 30, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 31, 31, 4, 31, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 32, 32, 2, 32, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 33, 33, 0, 33, expectedUnicode, originalShiftJis); + INFO_PRINTF1(_L("Testing ill-formed Shift-JIS")); + TestIsIllFormedShiftJis(*characterSetConverter, _L8("abc \x83")); + TestIsIllFormedShiftJis(*characterSetConverter, _L8("abc \x83\x41\xe7")); + { + INFO_PRINTF1(_L("Testing fix for defect EDNEMUA-4KGFEY in \"Symbian Defect Tracking v3.0\"")); + CCnvCharacterSetConverter* characterSetConverter2=CCnvCharacterSetConverter::NewLC(); + characterSetConverter2->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, *arrayOfCharacterSetsAvailable, fileServerSession); + characterSetConverter2->SetDowngradeForExoticLineTerminatingCharacters(CCnvCharacterSetConverter::EDowngradeExoticLineTerminatingCharactersToJustLineFeed); + originalUnicode.Format(_L16("%c%c%cE%c%c%c%c%c%cE%c%c\x0d\x0a%c\x0a%c"), 0xff74, 0x9053, 0x2029, 0x9053, 0x2028, 0x9053, 0xff74, 0x2028, 0x9053, 0x2029, 0x9053, 0x9053, 0x9053); + TBuf16<50> unicodeAfterRoundTrip2; + unicodeAfterRoundTrip2.Format(_L16("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"), 0xff74, 0x9053, 0x000a, 0x0045, 0x9053, 0x000a, 0x9053, 0xff74, 0x000A, 0x9053, 0x0045, 0x000A, 0x9053, 0x2028, 0x9053, 0x000a, 0x9053); + const TPtrC8 expectedShiftJis2(_S8("\xb4\x93\xb9\x0a""E\x93\xb9\x0a\x93\xb9\xb4\x0a\x93\xb9""E\x0a\x93\xb9\x0d\x0a\x93\xb9\x0a\x93\xb9")); + TestTruncatedConversionFromUnicodeToShiftJis(*characterSetConverter2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 0, 0, 18, 0, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 1, 2, 17, 1, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 3, 3, 16, 3, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 4, 4, 15, 4, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 5, 6, 14, 5, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 7, 7, 13, 7, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 8, 9, 12, 8, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 10, 10, 11, 10, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 11, 11, 10, 11, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 12, 13, 9, 12, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 14, 14, 8, 14, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 15, 15, 7, 15, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 16, 17, 6, 16, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 18, 18, 5, 18, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + + // At the request of Symbian KK, where possible the Shift-JIS converter now converts sequences in Shift-JIS input to a single unicode + // line feed. With the current CharConv API we can't do this in the case where converting input text in 2 parts results in a pair being, + // split and you'll get a unicode pair. + + // Split at 18 characters will cause a problem as it splits a sequence. +// TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 19, 19, 4, 19, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 20, 21, 3, 20, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 22, 22, 2, 22, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 23, 24, 1, 23, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 25, 40, 0, 25, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TBuf16<50> unicodeAfterRoundTrip1; + unicodeAfterRoundTrip1.Format(_L16("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"), 0xff74, 0x9053, 0x2028, 0x0045, 0x9053, 0x2028, 0x9053, 0xff74, 0x2028, 0x9053, 0x0045, 0x2028, 0x9053, 0x2028, 0x9053, 0x000a, 0x9053); + const TPtrC8 expectedShiftJis1(_S8("\xb4\x93\xb9\x0d\x0a""E\x93\xb9\x0d\x0a\x93\xb9\xb4\x0d\x0a\x93\xb9""E\x0d\x0a\x93\xb9\x0d\x0a\x93\xb9\x0a\x93\xb9")); + TestTruncatedConversionFromUnicodeToShiftJis(*characterSetConverter, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 0, 0, 18, 0, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 1, 2, 17, 1, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 3, 4, 16, 3, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 5, 5, 15, 5, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 6, 7, 14, 6, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 8, 9, 13, 8, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 10, 11, 12, 10, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 12, 12, 11, 12, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 13, 14, 10, 13, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 15, 16, 9, 15, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 17, 17, 8, 17, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 18, 19, 7, 18, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 20, 21, 6, 20, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 22, 22, 5, 22, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + + // Split at 23 characters will cause a problem as it splits a sequence. +// TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 23, 23, 4, 23, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 24, 25, 3, 24, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 26, 26, 2, 26, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 27, 28, 1, 27, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 29, 40, 0, 29, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + CleanupStack::PopAndDestroy(characterSetConverter2); + } + + //Test converting text longer than 0xFFFF + INFO_PRINTF1(_L("Testing fix for defect INC110495")); + CCnvCharacterSetConverter* characterSetConverter3 = CCnvCharacterSetConverter::NewLC(); + characterSetConverter3->PrepareToConvertToOrFromL( KCharacterSetIdentifierShiftJis, fileServerSession); + + TestConvertingLargeText(*characterSetConverter3); + CleanupStack::PopAndDestroy(characterSetConverter3); + + // Test to see if the default replaceable character is 0x20, which it should be for the + // docomo shiftjis converter. + + INFO_PRINTF1(_L("Testing fix for defect INC110965")); + + { + CCnvCharacterSetConverter* characterSetConverter4 = CCnvCharacterSetConverter::NewLC(); + characterSetConverter4->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, *arrayOfCharacterSetsAvailable, fileServerSession); + characterSetConverter4->SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::EBigEndian); + + TBuf16<50> originalUnicode1; + TBuf8<50> generatedShiftjis1; + + // test code - [ ur, ur, 0x7b, 0x5b ] + originalUnicode1.Format(_L16("%c%c%c%c"), 0x00a5, 0x00e8, 0x007b, 0x005b); + + test(characterSetConverter4->ConvertFromUnicode(generatedShiftjis1,originalUnicode1,indicesOfUnconvertibleCharacters)==0); + test(generatedShiftjis1==_L8("\x20\x20\x7b\x5b")); + + CleanupStack::PopAndDestroy(characterSetConverter4); + } + + CleanupStack::PopAndDestroy(3); + } + +CT_SHIFTJIS_DOCOMO::CT_SHIFTJIS_DOCOMO() + { + SetTestStepName(KTestStep_T_SHIFTJIS_DOCOMO); + } + +TVerdict CT_SHIFTJIS_DOCOMO::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjis_docomo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjis_docomo.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,48 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_SHIFTJIS_DOCOMO_H__ +#define __T_SHIFTJIS_DOCOMO_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_SHIFTJIS_DOCOMO : public CTestStep + { +public: + CT_SHIFTJIS_DOCOMO(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void TestConvertingLargeText(CCnvCharacterSetConverter& aCharacterSetConverter); + void DoTestConvertingLargeText(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aShiftJisText); + void TestIsIllFormedShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aShiftJis); + void TestSplittingConvertingToUnicodeFromShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfShiftJisBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJis); + void TestTruncatedConversionToUnicodeFromShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJis); + void TestSplittingConvertingFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfShiftJis, const TDesC8& aExpectedShiftJis, const TDesC16& aOriginalUnicode); + void TestSplittingConvertingFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfShiftJis, const TDesC8& aExpectedShiftJis, const TDesC16& aOriginalUnicode, const TDesC16& aUnicodeAfterRoundTrip); + void TestTruncatedConversionFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode); + void TestTruncatedConversionFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, const TDesC16& aUnicodeAfterRoundTrip); + + + }; + +_LIT(KTestStep_T_SHIFTJIS_DOCOMO, "T_SHIFTJIS_DOCOMO"); + +#endif //__T_SHIFTJIS_DOCOMO_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjis_docomo.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjis_docomo.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_SHIFTJIS_DOCOMO tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_SHIFTJIS_DOCOMO \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjis_kddiau.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjis_kddiau.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,403 @@ +/* +* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "shiftjis.h" +#include +#include "t_shiftjis_kddiau.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +const TInt KBufferLength=100; + +// this is the test plug implementation ID in rather than KCharacterSetIdentifierShiftJis +const TUint KCharacterSetTestShiftJisKddiau=0x01000001; + +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0516 +@SYMTestCaseDesc Tests for truncated conversion from Unicode to ShiftJIS +@SYMTestPriority Medium +@SYMTestActions Tests for truncated conversion from Unicode to ShiftJIS and back to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_SHIFTJIS_KDDIAU::TestTruncatedConversionFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, const TDesC16& aUnicodeAfterRoundTrip) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0516 ")); + for (TInt i=aOriginalUnicode.Length(); i>=0; --i) + { + TBuf8 generatedShiftJis; + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedShiftJis, aOriginalUnicode.Left(i)); + test(returnValue>=0); + TBuf8 generatedsecondPartOfShiftJis; + test(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfShiftJis, aOriginalUnicode.Mid(i-returnValue))==0); + generatedShiftJis.Append(generatedsecondPartOfShiftJis); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedShiftJis, state)==0); + test(generatedUnicode==aUnicodeAfterRoundTrip); + } + } + +void CT_SHIFTJIS_KDDIAU::TestTruncatedConversionFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) + { + TestTruncatedConversionFromUnicodeToShiftJis(aCharacterSetConverter, aOriginalUnicode, aOriginalUnicode); + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0517 +@SYMTestCaseDesc Splitting and converting from Unicode to ShiftJIS test +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting from Unicode to ShiftJIS and back to Unicode +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_SHIFTJIS_KDDIAU::TestSplittingConvertingFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfShiftJis, const TDesC8& aExpectedShiftJis, const TDesC16& aOriginalUnicode, const TDesC16& aUnicodeAfterRoundTrip) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0517 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint8 shiftJisBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr8 generatedFirstPartOfShiftJis(shiftJisBuffer, i); + TInt unconverted = aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfShiftJis, aOriginalUnicode) ; + test(unconverted == aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); + test(generatedFirstPartOfShiftJis==aExpectedShiftJis.Left(aExpectedLengthOfFirstPartOfShiftJis)); + TBuf8 generatedSecondPartOfShiftJis; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfShiftJis, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); + test(generatedSecondPartOfShiftJis==aExpectedShiftJis.Mid(aExpectedLengthOfFirstPartOfShiftJis)); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfShiftJis, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfShiftJis, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + generatedUnicode.Append(generatedSecondPartOfUnicode); + test(generatedUnicode==aUnicodeAfterRoundTrip); + } + } + +void CT_SHIFTJIS_KDDIAU::TestSplittingConvertingFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfShiftJis, const TDesC8& aExpectedShiftJis, const TDesC16& aOriginalUnicode) + { + TestSplittingConvertingFromUnicodeToShiftJis(aCharacterSetConverter, aMaximumLengthLowerLimit, aMaximumLengthUpperLimit, aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, aExpectedLengthOfFirstPartOfShiftJis, aExpectedShiftJis, aOriginalUnicode, aOriginalUnicode); + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0518 +@SYMTestCaseDesc Tests for truncated conversion from ShiftJIS to Unicode +@SYMTestPriority Medium +@SYMTestActions Tests for truncated conversion from ShiftJIS to Unicode and back to ShiftJIS +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_SHIFTJIS_KDDIAU::TestTruncatedConversionToUnicodeFromShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJis) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0518 ")); + for (TInt i=aOriginalShiftJis.Length(); i>=2; --i) // 2 is the length of GBK's longest multi-byte characters + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalShiftJis.Left(i), state); + test(returnValue>=0); + TBuf16 generatedsecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalShiftJis.Mid(i-returnValue), state)==0); + generatedUnicode.Append(generatedsecondPartOfUnicode); + test(generatedUnicode==aExpectedUnicode); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0519 +@SYMTestCaseDesc Splitting and converting from ShiftJIS to Unicode test +@SYMTestPriority Medium +@SYMTestActions Tests for conversion after splitting from ShiftJIS to Unicode and back to ShiftJIS +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_SHIFTJIS_KDDIAU::TestSplittingConvertingToUnicodeFromShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfShiftJisBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJis) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0519 ")); + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint16 unicodeBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalShiftJis, state)==aExpectedNumberOfShiftJisBytesNotConvertedAtSplit); + test(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalShiftJis.Right(aExpectedNumberOfShiftJisBytesNotConvertedAtSplit), state)==0); + test(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf8 generatedShiftJis; + test(aCharacterSetConverter.ConvertFromUnicode(generatedShiftJis, generatedFirstPartOfUnicode)==0); + TBuf8 generatedSecondPartOfShiftJis; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfShiftJis, generatedSecondPartOfUnicode)==0); + generatedShiftJis.Append(generatedSecondPartOfShiftJis); + test(generatedShiftJis==aOriginalShiftJis); + } + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0520 +@SYMTestCaseDesc Conversion of bad ShiftJIS format to Unicode test +@SYMTestPriority Medium +@SYMTestActions Tests for converting bad format ShiftJIS +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_SHIFTJIS_KDDIAU::TestIsIllFormedShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aShiftJis) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0520 ")); + TBuf16<50> generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + TPtrC8 remainderOfShiftJis(aShiftJis); + TInt lastReturnValue=KMaxTInt; + FOREVER + { + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfShiftJis, state); + if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) + { + break; + } + test(returnValue>0); + test(returnValue originalUnicode; + TBuf8<50> generatedShiftjis; + originalUnicode.Format(_L16("%c%c%c%ca"), 0x9999, 0x2029, 0xff61, 0x2028); + CCnvCharacterSetConverter::TArrayOfAscendingIndices indicesOfUnconvertibleCharacters; + INFO_PRINTF1(_L("Calling CnvShiftJis::ConvertFromUnicode before CHARCONV.DLL's thread-local storage has been set")); + test(CnvShiftJis::ConvertFromUnicode(CCnvCharacterSetConverter::EBigEndian, _L8("?"), generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(generatedShiftjis==_L8("\x8d\x81?\xa1?a")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); + test(indicesOfUnconvertibleCharacters[0]==1); + test(indicesOfUnconvertibleCharacters[1]==3); + indicesOfUnconvertibleCharacters.RemoveAll(); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + INFO_PRINTF1(_L("Calling CnvShiftJis::ConvertFromUnicode after CHARCONV.DLL's thread-local storage has been set")); + test(CnvShiftJis::ConvertFromUnicode(CCnvCharacterSetConverter::EBigEndian, _L8("?"), generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); // call this after the CCnvCharacterSetConverter object has been created (i.e. after CHARCONV.DLL's thread-local storage has been set) + test(generatedShiftjis==_L8("\x8d\x81?\xa1?a")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); + test(indicesOfUnconvertibleCharacters[0]==1); + test(indicesOfUnconvertibleCharacters[1]==3); + indicesOfUnconvertibleCharacters.RemoveAll(); + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + TInt i; + for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + INFO_PRINTF1(_L("Calling generic API's equivalent of CnvShiftJis::ConvertFromUnicode")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, *arrayOfCharacterSetsAvailable, fileServerSession); + test(characterSetConverter->ConvertFromUnicode(generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(generatedShiftjis==_L8("\x8d\x81\x0d\x0a\xa1\x0d\x0a""a")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); + characterSetConverter->SetDowngradeForExoticLineTerminatingCharacters(CCnvCharacterSetConverter::EDowngradeExoticLineTerminatingCharactersToJustLineFeed); + test(characterSetConverter->ConvertFromUnicode(generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); + test(generatedShiftjis==_L8("\x8d\x81\x0a\xa1\x0a""a")); + test(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); + + INFO_PRINTF1(_L("Testing fix for defect SIN-4XHE36 in \"Symbian Defect Tracking v4.0\"")); + _LIT8(inputShiftjis,"This \x09is a\x0d\x0atest\x09to see if Charconv\x0d\x0a""can process\x0d\x0a""control\x09""characters."); + _LIT8(roundTripShiftjis,"This \x09is a\x0atest\x09to see if Charconv\x0a""can process\x0a""control\x09""characters."); + TBuf16<100> outUnicode; + TInt sta=CCnvCharacterSetConverter::KStateDefault; + TInt unConvertibleNum; + test(characterSetConverter->ConvertToUnicode(outUnicode, inputShiftjis, sta,unConvertibleNum)==0); + test(unConvertibleNum==0); + TBuf8<100> outUtf8; + TBuf16<100> outUnicode1; + TBuf8<100> outShifJis; + TBuf8<100> idealShiftJis(roundTripShiftjis); + CnvUtfConverter::ConvertFromUnicodeToUtf8(outUtf8, outUnicode); + CnvUtfConverter::ConvertToUnicodeFromUtf8(outUnicode1, outUtf8); + characterSetConverter->ConvertFromUnicode(outShifJis, outUnicode1); + test(idealShiftJis==outShifJis); + + INFO_PRINTF1(_L("Testing Shift-JIS conversions")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierAscii, *arrayOfCharacterSetsAvailable, fileServerSession); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, *arrayOfCharacterSetsAvailable, fileServerSession); + INFO_PRINTF1(_L("Empty descriptor")); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 0, 10, 0, 0, KNullDesC8, KNullDesC16); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); + INFO_PRINTF1(_L("Testing converting to Shift-JIS")); + originalUnicode.Format(_L16("%c%c%c is %c"), 0xff72, 0xff74, 0xff7d, 0x795e); + const TPtrC8 expectedShiftJis(_S8("\xb2\xb4\xbd is \x90\x5f")); + TestTruncatedConversionFromUnicodeToShiftJis(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 0, 0, 8, 0, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 1, 1, 7, 1, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 2, 2, 6, 2, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 3, 3, 5, 3, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 4, 4, 4, 4, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 5, 5, 3, 5, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 6, 6, 2, 6, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 7, 8, 1, 7, expectedShiftJis, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 9, 20, 0, 9, expectedShiftJis, originalUnicode); + + INFO_PRINTF1(_L("Testing converting to Unicode")); + const TPtrC8 originalShiftJis(_S8("My name is \xc3\xde\xa8\xcb\xde\xc2\xde or \x83\x66\x83\x42\x83\x72\x83\x64 in \x93\xfa\x96\x7b\x8c\xea")); + TBuf16<50> expectedUnicode; + expectedUnicode.Format(_L16("My name is %c%c%c%c%c%c%c or %c%c%c%c in %c%c%c"), 0xff83, 0xff9e, 0xff68, 0xff8b, 0xff9e, 0xff82, 0xff9e, 0x30c7, 0x30a3, 0x30d3, 0x30c5, 0x65e5, 0x672c, 0x8a9e); + TestTruncatedConversionToUnicodeFromShiftJis(*characterSetConverter, expectedUnicode, originalShiftJis); + TestTruncatedConversionToUnicodeFromShiftJis(*characterSetConverter, expectedUnicode.Right(3), originalShiftJis.Right(6)); + for (i=0; i<=21; ++i) + { + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, i, i, 40-i, i, expectedUnicode, originalShiftJis); + } + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 22, 22, 18, 22, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 23, 23, 16, 23, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 24, 24, 14, 24, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 25, 25, 12, 25, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 26, 26, 10, 26, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 27, 27, 9, 27, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 28, 28, 8, 28, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 29, 29, 7, 29, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 30, 30, 6, 30, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 31, 31, 4, 31, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 32, 32, 2, 32, expectedUnicode, originalShiftJis); + TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 33, 33, 0, 33, expectedUnicode, originalShiftJis); + INFO_PRINTF1(_L("Testing ill-formed Shift-JIS")); + TestIsIllFormedShiftJis(*characterSetConverter, _L8("abc \x83")); + TestIsIllFormedShiftJis(*characterSetConverter, _L8("abc \x83\x41\xe7")); + { + INFO_PRINTF1(_L("Testing fix for defect EDNEMUA-4KGFEY in \"Symbian Defect Tracking v3.0\"")); + CCnvCharacterSetConverter* characterSetConverter2=CCnvCharacterSetConverter::NewLC(); + characterSetConverter2->PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, *arrayOfCharacterSetsAvailable, fileServerSession); + characterSetConverter2->SetDowngradeForExoticLineTerminatingCharacters(CCnvCharacterSetConverter::EDowngradeExoticLineTerminatingCharactersToJustLineFeed); + originalUnicode.Format(_L16("%c%c%cE%c%c%c%c%c%cE%c%c\x0d\x0a%c\x0a%c"), 0xff74, 0x9053, 0x2029, 0x9053, 0x2028, 0x9053, 0xff74, 0x2028, 0x9053, 0x2029, 0x9053, 0x9053, 0x9053); + TBuf16<50> unicodeAfterRoundTrip2; + unicodeAfterRoundTrip2.Format(_L16("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"), 0xff74, 0x9053, 0x000a, 0x0045, 0x9053, 0x000a, 0x9053, 0xff74, 0x000A, 0x9053, 0x0045, 0x000A, 0x9053, 0x2028, 0x9053, 0x000a, 0x9053); + const TPtrC8 expectedShiftJis2(_S8("\xb4\x93\xb9\x0a""E\x93\xb9\x0a\x93\xb9\xb4\x0a\x93\xb9""E\x0a\x93\xb9\x0d\x0a\x93\xb9\x0a\x93\xb9")); + TestTruncatedConversionFromUnicodeToShiftJis(*characterSetConverter2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 0, 0, 18, 0, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 1, 2, 17, 1, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 3, 3, 16, 3, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 4, 4, 15, 4, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 5, 6, 14, 5, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 7, 7, 13, 7, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 8, 9, 12, 8, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 10, 10, 11, 10, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 11, 11, 10, 11, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 12, 13, 9, 12, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 14, 14, 8, 14, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 15, 15, 7, 15, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 16, 17, 6, 16, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 18, 18, 5, 18, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + + // At the request of Symbian KK, where possible the Shift-JIS converter now converts sequences in Shift-JIS input to a single unicode + // line feed. With the current CharConv API we can't do this in the case where converting input text in 2 parts results in a pair being, + // split and you'll get a unicode pair. + + // Split at 18 characters will cause a problem as it splits a sequence. +// TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 19, 19, 4, 19, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 20, 21, 3, 20, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 22, 22, 2, 22, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 23, 24, 1, 23, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 25, 40, 0, 25, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); + TBuf16<50> unicodeAfterRoundTrip1; + unicodeAfterRoundTrip1.Format(_L16("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"), 0xff74, 0x9053, 0x2028, 0x0045, 0x9053, 0x2028, 0x9053, 0xff74, 0x2028, 0x9053, 0x0045, 0x2028, 0x9053, 0x2028, 0x9053, 0x000a, 0x9053); + const TPtrC8 expectedShiftJis1(_S8("\xb4\x93\xb9\x0d\x0a""E\x93\xb9\x0d\x0a\x93\xb9\xb4\x0d\x0a\x93\xb9""E\x0d\x0a\x93\xb9\x0d\x0a\x93\xb9\x0a\x93\xb9")); + TestTruncatedConversionFromUnicodeToShiftJis(*characterSetConverter, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 0, 0, 18, 0, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 1, 2, 17, 1, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 3, 4, 16, 3, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 5, 5, 15, 5, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 6, 7, 14, 6, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 8, 9, 13, 8, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 10, 11, 12, 10, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 12, 12, 11, 12, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 13, 14, 10, 13, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 15, 16, 9, 15, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 17, 17, 8, 17, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 18, 19, 7, 18, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 20, 21, 6, 20, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 22, 22, 5, 22, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + + // Split at 23 characters will cause a problem as it splits a sequence. +// TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 23, 23, 4, 23, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 24, 25, 3, 24, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 26, 26, 2, 26, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 27, 28, 1, 27, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 29, 40, 0, 29, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); + CleanupStack::PopAndDestroy(characterSetConverter2); + } + + + CleanupStack::PopAndDestroy(3); + } + +CT_SHIFTJIS_KDDIAU::CT_SHIFTJIS_KDDIAU() + { + SetTestStepName(KTestStep_T_SHIFTJIS_KDDIAU); + } + +TVerdict CT_SHIFTJIS_KDDIAU::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjis_kddiau.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjis_kddiau.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,47 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_SHIFTJIS_KDDIAU_H__ +#define __T_SHIFTJIS_KDDIAU_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_SHIFTJIS_KDDIAU : public CTestStep + { +public: + CT_SHIFTJIS_KDDIAU(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void TestIsIllFormedShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aShiftJis); + void TestSplittingConvertingToUnicodeFromShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfShiftJisBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJis); + void TestTruncatedConversionToUnicodeFromShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJis); + void TestSplittingConvertingFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfShiftJis, const TDesC8& aExpectedShiftJis, const TDesC16& aOriginalUnicode); + void TestSplittingConvertingFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfShiftJis, const TDesC8& aExpectedShiftJis, const TDesC16& aOriginalUnicode, const TDesC16& aUnicodeAfterRoundTrip); + void TestTruncatedConversionFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode); + void TestTruncatedConversionFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, const TDesC16& aUnicodeAfterRoundTrip); + + + + }; + +_LIT(KTestStep_T_SHIFTJIS_KDDIAU, "T_SHIFTJIS_KDDIAU"); + +#endif //__T_SHIFTJIS_KDDIAU_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjis_kddiau.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjis_kddiau.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_SHIFTJIS_KDDIAU tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_SHIFTJIS_KDDIAU \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjisdirectmap.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjisdirectmap.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,207 @@ +/* +* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include +#include +#include +#include +#include "t_shiftjisdirectmap.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +const TInt KBufferLength=100; + +void CT_SHIFTJISDIRECTMAP::TestTruncatedConversionFromUnicodeToShiftJisDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) + { + for (TInt i=aOriginalUnicode.Length(); i>=0; --i) + { + TBuf8 generatedShiftJisDirectmap; + const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedShiftJisDirectmap, aOriginalUnicode.Left(i)); + test(returnValue>=0); + TBuf8 generatedsecondPartOfShiftJisDirectmap; + test(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfShiftJisDirectmap, aOriginalUnicode.Mid(i-returnValue))==0); + generatedShiftJisDirectmap.Append(generatedsecondPartOfShiftJisDirectmap); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedShiftJisDirectmap, state)==0); + test(generatedUnicode==aOriginalUnicode); + } + } + +void CT_SHIFTJISDIRECTMAP::TestSplittingConvertingFromUnicodeToShiftJisDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfShiftJisDirectmap, const TDesC8& aExpectedShiftJisDirectmap, const TDesC16& aOriginalUnicode) + { + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint8 shiftJisDirectmapBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr8 generatedFirstPartOfShiftJisDirectmap(shiftJisDirectmapBuffer, i); + test(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfShiftJisDirectmap, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); + test(generatedFirstPartOfShiftJisDirectmap==aExpectedShiftJisDirectmap.Left(aExpectedLengthOfFirstPartOfShiftJisDirectmap)); + TBuf8 generatedSecondPartOfShiftJisDirectmap; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfShiftJisDirectmap, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); + test(generatedSecondPartOfShiftJisDirectmap==aExpectedShiftJisDirectmap.Mid(aExpectedLengthOfFirstPartOfShiftJisDirectmap)); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfShiftJisDirectmap, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfShiftJisDirectmap, state)==0); + test(state==CCnvCharacterSetConverter::KStateDefault); + generatedUnicode.Append(generatedSecondPartOfUnicode); + test(generatedUnicode==aOriginalUnicode); + } + } + +void CT_SHIFTJISDIRECTMAP::TestTruncatedConversionToUnicodeFromShiftJisDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJisDirectmap) + { + for (TInt i=aOriginalShiftJisDirectmap.Length(); i>=3; --i) + { + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicode; + const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalShiftJisDirectmap.Left(i), state); + test(returnValue>=0); + TBuf16 generatedsecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalShiftJisDirectmap.Mid(i-returnValue), state)==0); + generatedUnicode.Append(generatedsecondPartOfUnicode); + test(generatedUnicode==aExpectedUnicode); + } + } + +void CT_SHIFTJISDIRECTMAP::TestSplittingConvertingToUnicodeFromShiftJisDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfShiftJisDirectmapBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJisDirectmap) + { + test(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); + test(aMaximumLengthUpperLimit<=KBufferLength); + TUint16 unicodeBuffer[KBufferLength]; + for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) + { + TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalShiftJisDirectmap, state)==aExpectedNumberOfShiftJisDirectmapBytesNotConvertedAtSplit); + test(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf16 generatedSecondPartOfUnicode; + test(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalShiftJisDirectmap.Right(aExpectedNumberOfShiftJisDirectmapBytesNotConvertedAtSplit), state)==0); + test(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); + test(state==CCnvCharacterSetConverter::KStateDefault); + TBuf8 generatedShiftJisDirectmap; + test(aCharacterSetConverter.ConvertFromUnicode(generatedShiftJisDirectmap, generatedFirstPartOfUnicode)==0); + TBuf8 generatedSecondPartOfShiftJisDirectmap; + test(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfShiftJisDirectmap, generatedSecondPartOfUnicode)==0); + generatedShiftJisDirectmap.Append(generatedSecondPartOfShiftJisDirectmap); + test(generatedShiftJisDirectmap==aOriginalShiftJisDirectmap); + } + } + +void CT_SHIFTJISDIRECTMAP::DoE32MainL() + { + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L("Available:\n")); + TInt i; + for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + INFO_PRINTF1(_L("Testing ShiftJis (DirectMap) conversions ")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJisDirectmap, *arrayOfCharacterSetsAvailable, fileServerSession); + // + INFO_PRINTF1(_L("Empty descriptor")); + TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 0, 10, 0, 0, KNullDesC8, KNullDesC16); + TestSplittingConvertingToUnicodeFromShiftJisDirectmap(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); + + INFO_PRINTF1(_L("Testing converting to ShiftJis (DirectMap)")); + TBuf16<50> originalUnicode; + originalUnicode.Format(_L16("Some %c%c%c%c"), 0xff9a, 0xff70, 0x6f22, 0x5b57); + const TPtrC8 expectedShiftJisDirectmap(_S8("Some \xda\xb0\x8a\xbf\x8e\x9a")); + TestTruncatedConversionFromUnicodeToShiftJisDirectmap(*characterSetConverter, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 0, 0, 9, 0, expectedShiftJisDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 1, 1, 8, 1, expectedShiftJisDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 2, 2, 7, 2, expectedShiftJisDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 3, 3, 6, 3, expectedShiftJisDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 4, 4, 5, 4, expectedShiftJisDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 5, 5, 4, 5, expectedShiftJisDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 6, 6, 3, 6, expectedShiftJisDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 7, 7, 2, 7, expectedShiftJisDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 9, 9, 1, 9, expectedShiftJisDirectmap, originalUnicode); + TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 11, 11, 0, 11, expectedShiftJisDirectmap, originalUnicode); + + INFO_PRINTF1(_L("Testing converting to Unicode")); + const TPtrC8 originalShiftJisDirectmap(_S8("pool\xbe\xae\xc3\xd3\x8e\xcc\x8e\xdf\x8e\xd9\x8f\xc0\xcd\x8f\xc8\xc5pool\x8e\xcc\x8e\xdf\x8e\xd9\xbe\xae\xc3\xd3\x8f\xc0\xcd\x8f\xc8\xc5\xbe\xae\xc3\xd3pool\x8f\xc0\xcd\x8f\xc8\xc5\x8e\xcc\x8e\xdf\x8e\xd9pool")); + TBuf16<50> expectedUnicode; + expectedUnicode.Format(_L16("pool%c%c%c%c%c%c%c%c%c%c%cpool%c%c%c%c%c%c%c%c%c%c%c%c%c%c%cpool%c%c%c%c%c%c%cpool"), 0xFF7E, 0xFF6E, 0xFF83, 0xFF93, 0x6368, 0x91C8, 0x52FA, 0x6CBC, 0xFF8D, 0x7701, 0xFF85, 0x6368, 0x91C8, 0x52FA, 0xFF7E, 0xFF6E, 0xFF83, 0xFF93, 0x6CBC, 0xFF8D, 0x7701, 0xFF85, 0xFF7E, 0xFF6E, 0xFF83, 0xFF93, 0x6CBC, 0xFF8D, 0x7701, 0xFF85, 0x6368, 0x91C8, 0x52FA); + TestTruncatedConversionToUnicodeFromShiftJisDirectmap(*characterSetConverter, expectedUnicode, originalShiftJisDirectmap); + TestTruncatedConversionToUnicodeFromShiftJisDirectmap(*characterSetConverter, expectedUnicode.Mid(4, 4), originalShiftJisDirectmap.Mid(4, 4)); + TestTruncatedConversionToUnicodeFromShiftJisDirectmap(*characterSetConverter, expectedUnicode.Mid(6, 3), originalShiftJisDirectmap.Mid(6, 4)); + TestTruncatedConversionToUnicodeFromShiftJisDirectmap(*characterSetConverter, expectedUnicode.Mid(11, 4), originalShiftJisDirectmap.Mid(14, 6)); + TestSplittingConvertingToUnicodeFromShiftJisDirectmap(*characterSetConverter, 4, 4, 60, 4, expectedUnicode, originalShiftJisDirectmap); + TestSplittingConvertingToUnicodeFromShiftJisDirectmap(*characterSetConverter, 5, 5, 59, 5, expectedUnicode, originalShiftJisDirectmap); + TestSplittingConvertingToUnicodeFromShiftJisDirectmap(*characterSetConverter, 6, 6, 58, 6, expectedUnicode, originalShiftJisDirectmap); + + const TPtrC8 originalShiftJisDirectmapYen(_S8("pool\x5c")); + TBuf16<10> expectedUnicodeBackSlash; + expectedUnicodeBackSlash.Format(_L16("pool%c"), 0x005c); + TInt state=CCnvCharacterSetConverter::KStateDefault; + TBuf16 generatedUnicodeBackSlash; + test(characterSetConverter->ConvertToUnicode(generatedUnicodeBackSlash, originalShiftJisDirectmapYen, state) == 0); + test(generatedUnicodeBackSlash==expectedUnicodeBackSlash); + + CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +CT_SHIFTJISDIRECTMAP::CT_SHIFTJISDIRECTMAP() + { + SetTestStepName(KTestStep_T_SHIFTJISDIRECTMAP); + } + +TVerdict CT_SHIFTJISDIRECTMAP::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjisdirectmap.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjisdirectmap.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,43 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_SHIFTJISDIRECTMAP_H__ +#define __T_SHIFTJISDIRECTMAP_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_SHIFTJISDIRECTMAP : public CTestStep + { +public: + CT_SHIFTJISDIRECTMAP(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void TestTruncatedConversionFromUnicodeToShiftJisDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode); + void TestSplittingConvertingFromUnicodeToShiftJisDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfShiftJisDirectmap, const TDesC8& aExpectedShiftJisDirectmap, const TDesC16& aOriginalUnicode); + void TestTruncatedConversionToUnicodeFromShiftJisDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJisDirectmap); + void TestSplittingConvertingToUnicodeFromShiftJisDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfShiftJisDirectmapBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJisDirectmap); + + + }; + +_LIT(KTestStep_T_SHIFTJISDIRECTMAP, "T_SHIFTJISDIRECTMAP"); + +#endif //__T_SHIFTJISDIRECTMAP_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjisdirectmap.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_shiftjisdirectmap.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_SHIFTJISDIRECTMAP tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_SHIFTJISDIRECTMAP \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_snm.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_snm.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,156 @@ +/* +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_snm.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0547 +@SYMTestCaseDesc Testing SNM files +@SYMTestPriority Medium +@SYMTestActions Tests for conversions from UIDs to Standard names and MIB enums +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_SNM::DoE32MainL() + { + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0547 Testing SNM files (conversion between UIDs and Standard names/MIB enums) ")); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("ANSI_X3.4-1968"), fileServerSession)==KCharacterSetIdentifierAscii); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("iso-ir-6"), fileServerSession)==KCharacterSetIdentifierAscii); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("ANSI_X3.4-1986"), fileServerSession)==KCharacterSetIdentifierAscii); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("ISO_646.irv:1991"), fileServerSession)==KCharacterSetIdentifierAscii); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("ISO646-US"), fileServerSession)==KCharacterSetIdentifierAscii); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("us"), fileServerSession)==KCharacterSetIdentifierAscii); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("IBM367"), fileServerSession)==KCharacterSetIdentifierAscii); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("cp367"), fileServerSession)==KCharacterSetIdentifierAscii); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("csASCII"), fileServerSession)==KCharacterSetIdentifierAscii); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(3, fileServerSession)==KCharacterSetIdentifierAscii); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("DUMMY CHARACTER SET"), fileServerSession)==0x000eb205); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(9415824, fileServerSession)==0x000eb205); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(103, fileServerSession)==KCharacterSetIdentifierUtf7); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(104, fileServerSession)==KCharacterSetIdentifierUtf7); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(18, fileServerSession)==KCharacterSetIdentifierEucJpPacked); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(17, fileServerSession)==KCharacterSetIdentifierShiftJis); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(2026, fileServerSession)==KCharacterSetIdentifierBig5); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(57, fileServerSession)==KCharacterSetIdentifierGbk); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(2025, fileServerSession)==KCharacterSetIdentifierGbk); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(4, fileServerSession)==KCharacterSetIdentifierIso88591); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(1000, fileServerSession)==KCharacterSetIdentifierUcs2); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("UTF-8"), fileServerSession)==KCharacterSetIdentifierUtf8); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("windows-1252"), fileServerSession)==KCharacterSetIdentifierCodePage1252); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("iso-ir-58"), fileServerSession)==KCharacterSetIdentifierGbk); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("chinese"), fileServerSession)==KCharacterSetIdentifierGbk); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("CHINESE"), fileServerSession)==KCharacterSetIdentifierGbk); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("Big5"), fileServerSession)==KCharacterSetIdentifierBig5); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("csISO2022JP"), fileServerSession)==KCharacterSetIdentifierIso2022Jp); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("JIS_Encoding"), fileServerSession)==KCharacterSetIdentifierJis); + test(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierEucJpPacked, fileServerSession)==18); + test(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierUtf7, fileServerSession)==103); + test(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierGbk, fileServerSession)==113); + HBufC8* const standardName1=characterSetConverter->ConvertCharacterSetIdentifierToStandardNameL(KCharacterSetIdentifierUtf8, fileServerSession); + test(*standardName1==_L8("UTF-8")); + delete standardName1; + HBufC8* const standardName2=characterSetConverter->ConvertCharacterSetIdentifierToStandardNameL(KCharacterSetIdentifierShiftJis, fileServerSession); + test(*standardName2==_L8("Shift_JIS")); + delete standardName2; + HBufC8* const standardName3=characterSetConverter->ConvertCharacterSetIdentifierToStandardNameL(KCharacterSetIdentifierBig5, fileServerSession); + test(*standardName3==_L8("Big5")); + delete standardName3; + CleanupStack::PopAndDestroy(1); // characterSetConverter + + //Add more test steps for DEF085268. When a related charset ID with Name is not found in rom drive + //and system hasn't been scanned yet, it will rescan the system. Otherwise, it will return 0. + characterSetConverter=CCnvCharacterSetConverter::NewLC(); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("NONEXIST CHARACTER SET 1"), fileServerSession)==0); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("DUMMY CHARACTER SET"), fileServerSession)==0x000eb205); + test(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("NONEXIST CHARACTER SET 2"), fileServerSession)==0); + CleanupStack::PopAndDestroy(1); // characterSetConverter + + //Add more test steps for DEF085268. When a related charset name with ID is not found in rom drive + //and system hasn't been scanned yet, it will rescan the system. Otherwise, it will return NULL. + characterSetConverter=CCnvCharacterSetConverter::NewLC(); + HBufC8* const standardName4=characterSetConverter->ConvertCharacterSetIdentifierToStandardNameL(0xFFFFFFFE, fileServerSession); + test(standardName4==NULL); + delete standardName4; + HBufC8* const standardName5=characterSetConverter->ConvertCharacterSetIdentifierToStandardNameL(0x000eb205, fileServerSession); + test(*standardName5==_L8("Dummy character set")); + delete standardName5; + HBufC8* const standardName6=characterSetConverter->ConvertCharacterSetIdentifierToStandardNameL(0xFFFFFFFF, fileServerSession); + test(standardName6==NULL); + delete standardName6; + CleanupStack::PopAndDestroy(1); // characterSetConverter + + + //Add more test steps for DEF085268. When a related charset ID with MibEnum is not found in rom drive + //and system hasn't been scanned yet, it will rescan the system. Otherwise, it will return 0. + characterSetConverter=CCnvCharacterSetConverter::NewLC(); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(9999998, fileServerSession)==0); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(9415824, fileServerSession)==0x000eb205); + test(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(9999999, fileServerSession)==0); + CleanupStack::PopAndDestroy(1); // characterSetConverter + + //Add more test steps for DEF085268. When a related charset MibEnum with ID is not found in rom drive + //and system hasn't been scanned yet, it will rescan the system. Otherwise, it will return 0. + characterSetConverter=CCnvCharacterSetConverter::NewLC(); + test(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(0xFFFFFFFE, fileServerSession)==0); + test(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(0x000eb205, fileServerSession)==9415824); + test(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(0xFFFFFFFF, fileServerSession)==0); + CleanupStack::PopAndDestroy(2); // characterSetConverter and file session + + } + +CT_SNM::CT_SNM() + { + SetTestStepName(KTestStep_T_SNM); + } + +TVerdict CT_SNM::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_snm.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_snm.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ +#ifndef __T_SNM_H__ +#define __T_SNM_H__ + +//#include +#include + +class CCnvCharacterSetConverter; + +class CT_SNM : public CTestStep + { +public: + CT_SNM(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + + }; + +_LIT(KTestStep_T_SNM, "T_SNM"); + +#endif //__T_SNM_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_snm.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_snm.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_SNM tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_SNM \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_spanishgsmsingle.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_spanishgsmsingle.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,245 @@ +/* +* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + + +#include +#include +#include +#include +#include "t_spanishgsmsingle.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierSpanishSingleSms7Bit; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\gsm7_spanish_single_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\gsm7_spanish_single_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\gsm7_spanish_single_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\gsm7_spanish_single_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\gsm7_spanish_single_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\gsm7_spanish_single_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\gsm7_spanish_single_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\gsm7_spanish_single_for_expect.dat"); +#endif + +static CCnvCharacterSetConverter* characterSetConverter; +static RFs fileServerSession; +static TBuf8<1600> temp; +static TBuf16<800> originalUnicode; +static TBuf8<1600> generatedForeign; +static TBuf16<800> generatedUnicode; + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +void CT_SPANISHGSMSINGLE::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +//translate from unicode big endian TDesC8 to TDes16 +void CT_SPANISHGSMSINGLE::Unicode_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4045 Available:\n ")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4046 +@SYMTestCaseDesc Testcase to test new converter can be prepared +@SYMTestPriority High +@SYMTestActions Test for PrepareToConvertToOrFromL() +@SYMTestExpectedResults The test passed, If EAvailable is returned +@SYMPREQ PREQ2592 +@SYMREQ REQ12584 +*/ +void CT_SPANISHGSMSINGLE::PrepareNewConverterL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4046 Testing new converter can be prepared ")); + CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, fileServerSession); + test( CCnvCharacterSetConverter::EAvailable == avaible ); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4047 +@SYMTestCaseDesc Convert Unicode code to foreign character set +@SYMTestPriority High +@SYMTestActions Test for ConvertFromUnicode() +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ2592 +@SYMREQ REQ12584 +*/ +void CT_SPANISHGSMSINGLE::ConvertFromUnicodeToForeignL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4047 Testing encoding from Unicode to Foreign ")); + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + + Unicode_Big(temp, originalUnicode); + TInt test = characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4048 +@SYMTestCaseDesc Convert foreign character set to Unicode code +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ2592 +@SYMREQ REQ12584 +*/ +void CT_SPANISHGSMSINGLE::ConvertFromForeignToUnicodeL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4048 Testing encoding from Foreign to Unicode ")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Unicode_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4049 +@SYMTestCaseDesc Convert illegal character from foreign character set to unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ2592 +@SYMREQ REQ12584 +*/ +void CT_SPANISHGSMSINGLE::ConvertIllegalForeignCharacter() + { + //test 0x1b + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4049 Testing EErrorIllFormedInput ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x1b; //the escape character + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( -20 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + } + +/** +@SYMTestCaseID TI18N-CHARCONV-UT-4050 +@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ2592 +@SYMREQ REQ12584 +*/ +void CT_SPANISHGSMSINGLE::ConvertOutOfRangeForeignCharacters() + { + //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD + INFO_PRINTF1(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4050 Testing Characters not in the Scope ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x80; + TInt state=CCnvCharacterSetConverter::KStateDefault; + _LIT16(KExpected2, "\xfffd"); //the expected foreign + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + test( generatedUnicode == KExpected2 ); + } + +void CT_SPANISHGSMSINGLE::DoE32MainL() + { + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + characterSetConverter=CCnvCharacterSetConverter::NewLC(); + + ListAlltheConvertersL(); + PrepareNewConverterL(); + ConvertFromUnicodeToForeignL(); + ConvertFromForeignToUnicodeL(); + ConvertIllegalForeignCharacter(); + ConvertOutOfRangeForeignCharacters(); + + CleanupStack::PopAndDestroy(2); + } + + +CT_SPANISHGSMSINGLE::CT_SPANISHGSMSINGLE() + { + SetTestStepName(KTestStep_T_SPANISHGSMSINGLE); + } + +TVerdict CT_SPANISHGSMSINGLE::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_spanishgsmsingle.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_spanishgsmsingle.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_SPANISHGSMSINGLE_H__ +#define __T_SPANISHGSMSINGLE_H__ + +//#include +#include + +class CT_SPANISHGSMSINGLE : public CTestStep + { +public: + CT_SPANISHGSMSINGLE(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ConvertOutOfRangeForeignCharacters(); + void ConvertIllegalForeignCharacter(); + void ConvertFromForeignToUnicodeL(); + void ConvertFromUnicodeToForeignL(); + void PrepareNewConverterL(); + void ListAlltheConvertersL(); + void Unicode_Big(TDesC8& aSource, TDes16& aTarget); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + }; + +_LIT(KTestStep_T_SPANISHGSMSINGLE, "T_SPANISHGSMSINGLE"); + +#endif //__T_SPANISHGSMSINGLE_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_spanishgsmsingle.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_spanishgsmsingle.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_SPANISHGSMSINGLE tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_SPANISHGSMSINGLE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_tis_620.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_tis_620.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,141 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_tis_620.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierTIS_620; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\TIS_620_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\TIS_620_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\TIS_620_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\TIS_620_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\TIS_620_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\TIS_620_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\TIS_620_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\TIS_620_for_expect.dat"); +#endif + + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +void CT_TIS_620::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +void CT_TIS_620::Merge_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + INFO_PRINTF1(_L("Encoding from Unicode to Foreign")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); + TBuf8<494> temp; + TBuf16<247> originalUnicode; + TBuf8<247> generatedForeign; + TBuf16<247> generatedUnicode; + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Merge_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + + INFO_PRINTF1(_L("Encoding from Foreign to Unicode")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Merge_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + + CleanupStack::PopAndDestroy(3); + } + +CT_TIS_620::CT_TIS_620() + { + SetTestStepName(KTestStep_T_TIS_620); + } + +TVerdict CT_TIS_620::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_tis_620.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_tis_620.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,40 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_TIS_620_H__ +#define __T_TIS_620_H__ + +//#include +#include + +class CT_TIS_620 : public CTestStep + { +public: + CT_TIS_620(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void Merge_Big(TDesC8& aSource, TDes16& aTarget); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + + + }; + +_LIT(KTestStep_T_TIS_620, "T_TIS_620"); + +#endif //__T_TIS_620_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_tis_620.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_tis_620.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_TIS_620 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_TIS_620 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishlocking.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishlocking.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,240 @@ +/* +* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_turkishlocking.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierTurkishLockingSms7Bit; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\turkish_locking_gsm7ext_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\turkish_locking_gsm7ext_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\turkish_locking_gsm7ext_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\turkish_locking_gsm7ext_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\turkish_locking_gsm7ext_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\turkish_locking_gsm7ext_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\turkish_locking_gsm7ext_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\turkish_locking_gsm7ext_for_expect.dat"); +#endif + +static CCnvCharacterSetConverter* characterSetConverter; +static RFs fileServerSession; +static TBuf8<970> temp; +static TBuf16<485> originalUnicode; +static TBuf8<485> generatedForeign; +static TBuf16<485> generatedUnicode; + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +void CT_TURKISHLOCKING::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +//translate from unicode big endian TDesC8 to TDes16 +void CT_TURKISHLOCKING::Unicode_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4015 Available:\n ")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4016 +@SYMTestCaseDesc Testcase to test new converter can be prepared +@SYMTestPriority High +@SYMTestActions Test for PrepareToConvertToOrFromL() +@SYMTestExpectedResults The test passed, If EAvailable is returned +@SYMPREQ PREQ22265 +@SYMREQ REQ10670 +*/ +void CT_TURKISHLOCKING::PrepareNewConverterL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4016 Testing new converter can be prepared ")); + CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, fileServerSession); + test( CCnvCharacterSetConverter::EAvailable == avaible ); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4017 +@SYMTestCaseDesc Convert Unicode code to foreign character set +@SYMTestPriority High +@SYMTestActions Test for ConvertFromUnicode() +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ22265 +@SYMREQ REQ10670 +*/ +void CT_TURKISHLOCKING::ConvertFromUnicodeToForeignL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4017 Testing encoding from Unicode to Foreign ")); + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Unicode_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4018 +@SYMTestCaseDesc Convert foreign character set to Unicode code +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ22265 +@SYMREQ REQ10670 +*/ +void CT_TURKISHLOCKING::ConvertFromForeignToUnicodeL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4018 Testing encoding from Foreign to Unicode ")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Unicode_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4019 +@SYMTestCaseDesc Convert illegal character from foreign character set to unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ22265 +@SYMREQ REQ10670 +*/ +void CT_TURKISHLOCKING::ConvertIllegalForeignCharacter() + { + //test 0x1b + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4019 Testing EErrorIllFormedInput ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x1b; //the escape character + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( -20 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4020 +@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ22265 +@SYMREQ REQ10670 +*/ +void CT_TURKISHLOCKING::ConvertOutOfRangeForeignCharacters() + { + //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4020 Testing Characters not in the Scope ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x80; + TInt state=CCnvCharacterSetConverter::KStateDefault; + _LIT16(KExpected2, "\xfffd"); //the expected foreign + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + test( generatedUnicode == KExpected2 ); + } + +void CT_TURKISHLOCKING::DoE32MainL() + { + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + characterSetConverter=CCnvCharacterSetConverter::NewLC(); + + ListAlltheConvertersL(); + PrepareNewConverterL(); + ConvertFromUnicodeToForeignL(); + ConvertFromForeignToUnicodeL(); + ConvertIllegalForeignCharacter(); + ConvertOutOfRangeForeignCharacters(); + + CleanupStack::PopAndDestroy(2); + } + +CT_TURKISHLOCKING::CT_TURKISHLOCKING() + { + SetTestStepName(KTestStep_T_TURKISHLOCKING); + } + +TVerdict CT_TURKISHLOCKING::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishlocking.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishlocking.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_TURKISHLOCKING_H__ +#define __T_TURKISHLOCKING_H__ + +//#include +#include + +class CT_TURKISHLOCKING : public CTestStep + { +public: + CT_TURKISHLOCKING(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ConvertOutOfRangeForeignCharacters(); + void ConvertIllegalForeignCharacter(); + void ConvertFromForeignToUnicodeL(); + void ConvertFromUnicodeToForeignL(); + void PrepareNewConverterL(); + void ListAlltheConvertersL(); + void Unicode_Big(TDesC8& aSource, TDes16& aTarget); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + }; + +_LIT(KTestStep_T_TURKISHLOCKING, "T_TURKISHLOCKING"); + +#endif //__T_TURKISHLOCKING_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishlocking.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishlocking.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_TURKISHLOCKING tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_TURKISHLOCKING \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishlockingsingle.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishlockingsingle.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,241 @@ +/* +* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_turkishlockingsingle.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierTurkishLockingAndSingleSms7Bit; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\turkish_locking_single_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\turkish_locking_single_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\turkish_locking_single_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\turkish_locking_single_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\turkish_locking_single_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\turkish_locking_single_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\turkish_locking_single_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\turkish_locking_single_for_expect.dat"); +#endif + +static CCnvCharacterSetConverter* characterSetConverter; +static RFs fileServerSession; +static TBuf8<970> temp; +static TBuf16<485> originalUnicode; +static TBuf8<485> generatedForeign; +static TBuf16<485> generatedUnicode; + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +void CT_TURKISHLOCKINGSINGLE::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +//translate from unicode big endian TDesC8 to TDes16 +void CT_TURKISHLOCKINGSINGLE::Unicode_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4021 Available:\n ")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4022 +@SYMTestCaseDesc Testcase to test new converter can be prepared +@SYMTestPriority High +@SYMTestActions Test for PrepareToConvertToOrFromL() +@SYMTestExpectedResults The test passed, If EAvailable is returned +@SYMPREQ PREQ22265 +@SYMREQ REQ10670 +*/ +void CT_TURKISHLOCKINGSINGLE::PrepareNewConverterL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4022 Testing new converter can be prepared ")); + CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, fileServerSession); + test( CCnvCharacterSetConverter::EAvailable == avaible ); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4023 +@SYMTestCaseDesc Convert Unicode code to foreign character set +@SYMTestPriority High +@SYMTestActions Test for ConvertFromUnicode() +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ22265 +@SYMREQ REQ10670 +*/ +void CT_TURKISHLOCKINGSINGLE::ConvertFromUnicodeToForeignL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4023 Testing encoding from Unicode to Foreign ")); + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Unicode_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4024 +@SYMTestCaseDesc Convert foreign character set to Unicode code +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ22265 +@SYMREQ REQ10670 +*/ +void CT_TURKISHLOCKINGSINGLE::ConvertFromForeignToUnicodeL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4024 Testing encoding from Foreign to Unicode ")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Unicode_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4025 +@SYMTestCaseDesc Convert illegal character from foreign character set to unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ22265 +@SYMREQ REQ10670 +*/ +void CT_TURKISHLOCKINGSINGLE::ConvertIllegalForeignCharacter() + { + //test 0x1b + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4025 Testing EErrorIllFormedInput ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x1b; //the escape character + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( -20 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4026 +@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ22265 +@SYMREQ REQ10670 +*/ +void CT_TURKISHLOCKINGSINGLE::ConvertOutOfRangeForeignCharacters() + { + //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4026 Testing Characters not in the Scope ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x80; + TInt state=CCnvCharacterSetConverter::KStateDefault; + _LIT16(KExpected2, "\xfffd"); //the expected foreign + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + test( generatedUnicode == KExpected2 ); + } + +void CT_TURKISHLOCKINGSINGLE::DoE32MainL() + { + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + characterSetConverter=CCnvCharacterSetConverter::NewLC(); + + ListAlltheConvertersL(); + PrepareNewConverterL(); + ConvertFromUnicodeToForeignL(); + ConvertFromForeignToUnicodeL(); + ConvertIllegalForeignCharacter(); + ConvertOutOfRangeForeignCharacters(); + + CleanupStack::PopAndDestroy(2); + } + + +CT_TURKISHLOCKINGSINGLE::CT_TURKISHLOCKINGSINGLE() + { + SetTestStepName(KTestStep_T_TURKISHLOCKINGSINGLE); + } + +TVerdict CT_TURKISHLOCKINGSINGLE::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishlockingsingle.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishlockingsingle.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_TURKISHLOCKINGSINGLE_H__ +#define __T_TURKISHLOCKINGSINGLE_H__ + +//#include +#include + +class CT_TURKISHLOCKINGSINGLE : public CTestStep + { +public: + CT_TURKISHLOCKINGSINGLE(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ConvertOutOfRangeForeignCharacters(); + void ConvertIllegalForeignCharacter(); + void ConvertFromForeignToUnicodeL(); + void ConvertFromUnicodeToForeignL(); + void PrepareNewConverterL(); + void ListAlltheConvertersL(); + void Unicode_Big(TDesC8& aSource, TDes16& aTarget); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + }; + +_LIT(KTestStep_T_TURKISHLOCKINGSINGLE, "T_TURKISHLOCKINGSINGLE"); + +#endif //__T_TURKISHLOCKINGSINGLE_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishlockingsingle.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishlockingsingle.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_TURKISHLOCKINGSINGLE tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_TURKISHLOCKINGSINGLE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishsingle.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishsingle.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,240 @@ +/* +* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_turkishsingle.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierTurkishSingleSms7Bit; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\gsm7_turkish_single_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\gsm7_turkish_single_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\gsm7_turkish_single_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\gsm7_turkish_single_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\gsm7_turkish_single_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\gsm7_turkish_single_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\gsm7_turkish_single_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\gsm7_turkish_single_for_expect.dat"); +#endif + +static CCnvCharacterSetConverter* characterSetConverter; +static RFs fileServerSession; +static TBuf8<974> temp; +static TBuf16<487> originalUnicode; +static TBuf8<487> generatedForeign; +static TBuf16<487> generatedUnicode; + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +void CT_TURKISHSINGLE::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +//translate from unicode big endian TDesC8 to TDes16 +void CT_TURKISHSINGLE::Unicode_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4009 Available:\n ")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4010 +@SYMTestCaseDesc Testcase to test new converter can be prepared +@SYMTestPriority High +@SYMTestActions Test for PrepareToConvertToOrFromL() +@SYMTestExpectedResults The test passed, If EAvailable is returned +@SYMPREQ PREQ22265 +@SYMREQ REQ10670 +*/ +void CT_TURKISHSINGLE::PrepareNewConverterL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4010 Testing new converter can be prepared ")); + CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, fileServerSession); + test( CCnvCharacterSetConverter::EAvailable == avaible ); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4011 +@SYMTestCaseDesc Convert Unicode code to foreign character set +@SYMTestPriority High +@SYMTestActions Test for ConvertFromUnicode() +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ22265 +@SYMREQ REQ10670 +*/ +void CT_TURKISHSINGLE::ConvertFromUnicodeToForeignL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4011 Testing encoding from Unicode to Foreign ")); + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Unicode_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4012 +@SYMTestCaseDesc Convert foreign character set to Unicode code +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ22265 +@SYMREQ REQ10670 +*/ +void CT_TURKISHSINGLE::ConvertFromForeignToUnicodeL() + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4012 Testing encoding from Foreign to Unicode ")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Unicode_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4013 +@SYMTestCaseDesc Convert illegal character from foreign character set to unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ22265 +@SYMREQ REQ10670 +*/ +void CT_TURKISHSINGLE::ConvertIllegalForeignCharacter() + { + //test 0x1b + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4013 Testing EErrorIllFormedInput ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x1b; //the escape character + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( -20 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + } + +/** +@SYMTestCaseID SYSLIB-CHARCONV-UT-4014 +@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode +@SYMTestPriority High +@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF +@SYMTestExpectedResults Test must not fail +@SYMPREQ PREQ22265 +@SYMREQ REQ10670 +*/ +void CT_TURKISHSINGLE::ConvertOutOfRangeForeignCharacters() + { + //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4014 Testing Characters not in the Scope ")); + generatedForeign.SetLength(1); + generatedForeign[0] = 0x80; + TInt state=CCnvCharacterSetConverter::KStateDefault; + _LIT16(KExpected2, "\xfffd"); //the expected foreign + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + test( generatedUnicode == KExpected2 ); + } + +void CT_TURKISHSINGLE::DoE32MainL() + { + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + characterSetConverter=CCnvCharacterSetConverter::NewLC(); + + ListAlltheConvertersL(); + PrepareNewConverterL(); + ConvertFromUnicodeToForeignL(); + ConvertFromForeignToUnicodeL(); + ConvertIllegalForeignCharacter(); + ConvertOutOfRangeForeignCharacters(); + + CleanupStack::PopAndDestroy(2); + } + +CT_TURKISHSINGLE::CT_TURKISHSINGLE() + { + SetTestStepName(KTestStep_T_TURKISHSINGLE); + } + +TVerdict CT_TURKISHSINGLE::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishsingle.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishsingle.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,45 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_TURKISHSINGLE_H__ +#define __T_TURKISHSINGLE_H__ + +//#include +#include + +class CT_TURKISHSINGLE : public CTestStep + { +public: + CT_TURKISHSINGLE(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ConvertOutOfRangeForeignCharacters(); + void ConvertIllegalForeignCharacter(); + void ConvertFromForeignToUnicodeL(); + void ConvertFromUnicodeToForeignL(); + void PrepareNewConverterL(); + void ListAlltheConvertersL(); + void Unicode_Big(TDesC8& aSource, TDes16& aTarget); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + + }; + +_LIT(KTestStep_T_TURKISHSINGLE, "T_TURKISHSINGLE"); + +#endif //__T_TURKISHSINGLE_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishsingle.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_turkishsingle.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_TURKISHSINGLE tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_TURKISHSINGLE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_ucs2.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_ucs2.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,618 @@ +/* +* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_ucs2.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +const TInt KMibValue = 1000; + +const TInt KBufferLength1=1; +const TInt KBufferLength6=6; +const TInt KBufferLength8=8; +const TInt KBufferLength40=40; + +const TPtrC8 KForeignBufferEven12LE(_S8("\xff\xfe\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a")); +const TPtrC8 KForeignBufferOdd13LE(_S8("\xff\xfe\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b")); +const TPtrC8 KForeignBufferEven12BE(_S8("\xfe\xff\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49")); +const TPtrC8 KForeignBufferOdd13BE(_S8("\xfe\xff\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49\x4b")); + +const TPtrC8 KForeignBufferEvenWithoutBOM10LE(_S8("\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a")); +const TPtrC8 KForeignBufferOddWithoutBOM11LE(_S8("\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b")); +const TPtrC8 KForeignBufferEvenWithoutBOM10BE(_S8("\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49")); +const TPtrC8 KForeignBufferOddWithoutBOM11BE(_S8("\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49\x4b")); + +const TPtrC8 KForeignBufferEven24LE(_S8("\xff\xfe\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56")); +const TPtrC8 KForeignBufferOdd25LE(_S8("\xff\xfe\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57")); +const TPtrC8 KForeignBufferEven24BE(_S8("\xfe\xff\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49\x4c\x4b\x4e\x4d\x50\x4f\x52\x51\x54\x53\x56\x55")); +const TPtrC8 KForeignBufferOdd25BE(_S8("\xfe\xff\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49\x4c\x4b\x4e\x4d\x50\x4f\x52\x51\x54\x53\x56\x55\x57")); + +const TPtrC8 KForeignBufferEvenWithoutBOM22LE(_S8("\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56")); +const TPtrC8 KForeignBufferOddWithoutBOM23LE(_S8("\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57")); +const TPtrC8 KForeignBufferEvenWithoutBOM22BE(_S8("\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49\x4c\x4b\x4e\x4d\x50\x4f\x52\x51\x54\x53\x56\x55")); +const TPtrC8 KForeignBufferOddWithoutBOM23BE(_S8("\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49\x4c\x4b\x4e\x4d\x50\x4f\x52\x51\x54\x53\x56\x55\x57")); + +const TPtrC16 KUnicodeBufferEven14BE(_S16("\xfeff\x4142\x4344\x4546\x4748\x494a\x4b4c\x4d4e\x4f50\x5152\x5354\x5556\x5758\x595a")); +const TPtrC16 KUnicodeBufferOdd15BE(_S16("\xfeff\x4142\x4344\x4546\x4748\x494a\x4b4c\x4d4e\x4f50\x5152\x5354\x5556\x5758\x595a\x5b5c")); + +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0553 +@SYMTestCaseDesc 8 bit to UCS2 Little Endian Conversion - Single pass test +@SYMTestPriority Medium +@SYMTestActions Tests a 8 bit string to 16 bit UCS2 conversion. + Test with and without Byte Order Mark. Byte Order Mark is set to Little Endian. + Output buffer is large enough to contain the complete input string + on a single pass +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_UCS2::LEConversionSinglePassBOM(CCnvCharacterSetConverter& aCharacterSetConverter) +{ + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0553 ")); + TBuf16 generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + TInt numberOfUnconvertibleCharacters=0; + TInt indexOfFirstByteOfFirstUnconvertibleCharacter=0; + TInt numberLeft =0; + + // set the default endianness to little Endian + aCharacterSetConverter.SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::ELittleEndian); + + // test even number of foreign bytes + aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEven12LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + INFO_PRINTF1(_L("\nLittleEndianConversionSinglePassEvenBOM - OK")); + + // test even number of foreign bytes without BOM + aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEvenWithoutBOM10LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + INFO_PRINTF1(_L("\nLittleEndianConversionSinglePassEvenBOM - OK")); + + // test odd number of foreign bytes + state=CCnvCharacterSetConverter::KStateDefault; + numberLeft = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOdd13LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(numberLeft==1); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + + // test odd number of foreign bytes without BOM + numberLeft = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOddWithoutBOM11LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); + test(numberLeft==1); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + + INFO_PRINTF1(_L("\nLittleEndianConversionSinglePassOddBOM - OK")); +} +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0554 +@SYMTestCaseDesc 8 bit to UCS2 Little Endian Conversion - Multiple pass test +@SYMTestPriority Medium +@SYMTestActions Tests a 8 bit string to 16 bit UCS2 conversion. + With and without Byte Order Mark. Byte Order Mark is set to Little Endian. + Output buffer is NOT large enough to contain the complete input string + on a single pass. Multiple calls are made to complete translation. +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_UCS2::LEConversionMultiplePassBOM(CCnvCharacterSetConverter& aCharacterSetConverter) +{ + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0554 ")); + TBuf16 generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + TInt numberOfUnconvertibleCharacters=0; + TInt indexOfFirstByteOfFirstUnconvertibleCharacter=0; + + // set the default endianness to little Endian + aCharacterSetConverter.SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::ELittleEndian); + + // test even number of foreign bytes + // first pass + TInt numberUnconverted; + numberUnconverted = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEven24LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); + test(numberUnconverted==10); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + + // test even number of foreign bytes without BOM + numberUnconverted = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEvenWithoutBOM22LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); + test(numberUnconverted==10); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + + // second pass + numberUnconverted = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEven24LE.Right(numberUnconverted), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(numberUnconverted==0); + test(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + INFO_PRINTF1(_L("\nLittleEndianConversionMultiplePassOddEven - OK")); + + // without BOM + numberOfUnconvertibleCharacters=10; + aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEvenWithoutBOM22LE.Right(numberOfUnconvertibleCharacters), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + INFO_PRINTF1(_L("\nLittleEndianConversionMultiplePassOddEven - OK")); + + + // test odd number of foreign bytes + // first pass + state=CCnvCharacterSetConverter::KStateDefault; + numberUnconverted = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOdd25LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(numberUnconverted==11); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); + + // without BOM + numberUnconverted = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOddWithoutBOM23LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(numberUnconverted==11); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); + + // second pass + numberUnconverted = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOdd25LE.Right(numberUnconverted), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); + test(numberUnconverted==1); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + + // without BOM + numberUnconverted = 11; + numberUnconverted = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOddWithoutBOM23LE.Right(numberUnconverted), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(numberUnconverted==1); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + test(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); + + + INFO_PRINTF1(_L("\nLittleEndianConversionMultiplePassOddBOM - OK")); +} +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0555 +@SYMTestCaseDesc 8 bit to UCS2 Big Endian Conversion - Single pass +@SYMTestPriority Medium +@SYMTestActions Tests a 8 bit string to 16 bit UCS2 conversion. + With and without Byte Order Mark. Byte Order Mark is set to Big Endian. + Output buffer is large enough to contain the complete input string + on a single pass +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_UCS2::BEConversionSinglePassBOM(CCnvCharacterSetConverter& aCharacterSetConverter) +{ + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0555 ")); + TBuf16 generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + TInt numberOfUnconvertibleCharacters=0; + TInt indexOfFirstByteOfFirstUnconvertibleCharacter=0; + TInt numberLeft=0; + + // set the default endianness to Big Endian + aCharacterSetConverter.SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::EBigEndian); + + // test even number of foreign bytes + aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEven12BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + INFO_PRINTF1(_L("\nBigEndianConversionSinglePassEvenBOM - OK")); + + // test even number of foreign bytes without BOM + aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEvenWithoutBOM10BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + INFO_PRINTF1(_L("\nBigEndianConversionSinglePassEvenBOM - OK")); + + + // test odd number of foreign bytes + state=CCnvCharacterSetConverter::KStateDefault; + numberLeft = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOdd13BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); + test(numberLeft==1); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + + // test odd number of foreign bytes without BOM + numberLeft = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOddWithoutBOM11BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); + test(numberLeft==1); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + + INFO_PRINTF1(_L("\nBigEndianConversionSinglePassOddBOM - OK")); +} +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0556 +@SYMTestCaseDesc 8 bit to UCS2 Big Endian Conversion - Multiple pass test +@SYMTestPriority Medium +@SYMTestActions Tests a 8 bit string to 16 bit UCS2 conversion. + With and without Byte Order Mark. Byte Order Mark is set to Big Endian. + Output buffer is NOT large enough to contain the complete input string + on a single pass. Multiple calls are made to complete translation. +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_UCS2::BEConversionMultiplePassBOM(CCnvCharacterSetConverter& aCharacterSetConverter) +{ + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0556 ")); + TBuf16 generatedUnicode; + TInt state=CCnvCharacterSetConverter::KStateDefault; + TInt numberOfUnconvertibleCharacters=0; + TInt indexOfFirstByteOfFirstUnconvertibleCharacter=0; + TInt numberUnconverted=0; + + // set the default endianness to Big Endian + aCharacterSetConverter.SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::EBigEndian); + + // test even number of foreign bytes + // first pass + numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEven24BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); + test(numberUnconverted==10); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + + // without BOM + numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEvenWithoutBOM22BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); + test(numberUnconverted==10); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + + // second pass + numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEven24BE.Right(numberUnconverted), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); + test(numberUnconverted==0); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + INFO_PRINTF1(_L("\nBigEndianConversionMultiplePassOddEven - OK")); + + // without BOM + numberOfUnconvertibleCharacters=10; + numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEvenWithoutBOM22BE.Right(numberOfUnconvertibleCharacters), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + INFO_PRINTF1(_L("\nBigEndianConversionMultiplePassOddEven - OK")); + + // test odd number of foreign bytes + // first pass + state=CCnvCharacterSetConverter::KStateDefault; + numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOdd25BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(numberUnconverted==11); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); + + // without BOM + numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOddWithoutBOM23BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(numberUnconverted==11); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + test(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); + + // second pass + numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOdd25BE.Right(numberUnconverted), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); + test(numberUnconverted==1); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + + // without BOM + numberOfUnconvertibleCharacters=11; + numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOddWithoutBOM23BE.Right(numberOfUnconvertibleCharacters), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); + test(numberUnconverted==1); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + + + INFO_PRINTF1(_L("\nBigEndianConversionMultiplePassOddBOM - OK")); +} +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0557 +@SYMTestCaseDesc UCS2 to 8 bit Big Endian Conversion - Single pass test +@SYMTestPriority Medium +@SYMTestActions Tests a 16 bit UCS2 to 8 bit descriptor conversion. + Byte Order Mark is present and is set to Big Endian. + Output buffer is large enough to contain the complete input string + on a single pass +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_UCS2::UCS2BEConversionSinglePassBOM(CCnvCharacterSetConverter& aCharacterSetConverter) +{ + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0557 ")); + TBuf8 generatedForeign; + CCnvCharacterSetConverter::TArrayOfAscendingIndices indicesOfUnconvertibleCharacters; + + // set the default endianness to Big Endian + aCharacterSetConverter.SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::EBigEndian); + + // test even number of foreign bytes + aCharacterSetConverter.ConvertFromUnicode( generatedForeign, + KUnicodeBufferEven14BE, + indicesOfUnconvertibleCharacters ); + + test(generatedForeign==_L8("\xfe\xff\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a")); + INFO_PRINTF1(_L("\nUCS2BEConversionSinglePassEvenBOM - OK")); + + // test odd number of foreign bytes + aCharacterSetConverter.ConvertFromUnicode( generatedForeign, + KUnicodeBufferOdd15BE, + indicesOfUnconvertibleCharacters ); + + test(generatedForeign==_L8("\xfe\xff\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c")); + INFO_PRINTF1(_L("\nUCS2BEConversionSinglePassOddBOM - OK")); +} +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0558 +@SYMTestCaseDesc UCS2 to 8 bit Big Endian Conversion - Multiple pass test +@SYMTestPriority Medium +@SYMTestActions Tests a 16 bit UCS2 to 8 bit descriptor conversion. + Byte Order Mark is present and is set to Big Endian. + Output buffer is NOT large enough to contain the complete input string + on a single pass +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_UCS2::UCS2BEConversionMultiplePassBOM (CCnvCharacterSetConverter& aCharacterSetConverter) +{ + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0558 ")); + TBuf8 generatedForeign; + TBuf8 generatedForeign2; + TInt result=0; + CCnvCharacterSetConverter::TArrayOfAscendingIndices indicesOfUnconvertibleCharacters; + + // set the default endianness to Big Endian + aCharacterSetConverter.SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::EBigEndian); + + // *** Test even number of bytes *** + // test even number of foreign bytes - pass 1 + result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, + KUnicodeBufferEven14BE, + indicesOfUnconvertibleCharacters ); + test(generatedForeign==_L8("\xfe\xff\x41\x42\x43\x44")); + test(result==11); + + // test even number of foreign bytes - pass 2 + result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, + KUnicodeBufferEven14BE.Right(result), + indicesOfUnconvertibleCharacters ); + test(result==8); + test(generatedForeign==_L8("\x45\x46\x47\x48\x49\x4A")); + + // test even number of foreign bytes - pass 3 + result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, + KUnicodeBufferEven14BE.Right(result), + indicesOfUnconvertibleCharacters ); + test(result==5); + test(generatedForeign==_L8("\x4b\x4c\x4d\x4e\x4f\x50")); + + + // test even number of foreign bytes - pass 4 + result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, + KUnicodeBufferEven14BE.Right(result), + indicesOfUnconvertibleCharacters ); + test(result==2); + test(generatedForeign==_L8("\x51\x52\x53\x54\x55\x56")); + + // test even number of foreign bytes - pass 5 + result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign2, + KUnicodeBufferEven14BE.Right(result), + indicesOfUnconvertibleCharacters ); + test(generatedForeign2==_L8("\x57\x58\x59\x5a")); + test(result==0); + + INFO_PRINTF1(_L("\nUCS2LEConversionMultiplePassEvenBOM - OK")); + + // *** Test odd numer of bytes *** + result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, + KUnicodeBufferOdd15BE, + indicesOfUnconvertibleCharacters ); + test(generatedForeign==_L8("\xfe\xff\x41\x42\x43\x44")); + + // test even number of foreign bytes - pass 2 + result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, + KUnicodeBufferOdd15BE.Right(result), + indicesOfUnconvertibleCharacters ); + test(generatedForeign==_L8("\x45\x46\x47\x48\x49\x4a")); + + // test even number of foreign bytes - pass 3 + result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, + KUnicodeBufferOdd15BE.Right(result), + indicesOfUnconvertibleCharacters ); + test(generatedForeign==_L8("\x4b\x4c\x4d\x4e\x4f\x50")); + + // test even number of foreign bytes - pass 4 + result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, + KUnicodeBufferOdd15BE.Right(result), + indicesOfUnconvertibleCharacters ); + test(generatedForeign==_L8("\x51\x52\x53\x54\x55\x56")); + + + // test even number of foreign bytes - pass 5 + result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, + KUnicodeBufferOdd15BE.Right(result), + indicesOfUnconvertibleCharacters ); + test(generatedForeign==_L8("\x57\x58\x59\x5a\x5b\x5c")); + test(result==0); + + INFO_PRINTF1(_L("\nUCS2LEConversionMultiplePassOddBOM - OK")); +} +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0559 +@SYMTestCaseDesc Tests a 16 bit UCS2 to 8 bit & 16 bit UCS2 to 8 bit conversion with empty buffers. +@SYMTestPriority Medium +@SYMTestActions Attempt for conversion when input and output buffers are small +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_UCS2::TooSmallBufferConversion (CCnvCharacterSetConverter& aCharacterSetConverter) + { + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0559 ")); + TBuf16 generatedUnicode1; + TBuf8 generatedForeign1; + + TInt state=CCnvCharacterSetConverter::KStateDefault; + TInt numberOfUnconvertibleCharacters=0; + TInt indexOfFirstByteOfFirstUnconvertibleCharacter=0; + + CCnvCharacterSetConverter::TArrayOfAscendingIndices indicesOfUnconvertibleCharacters; + + // set the default endianness to little Endian + aCharacterSetConverter.SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::ELittleEndian); + + // convert to UCS2 using an output buffer that is too small + TInt result = aCharacterSetConverter.ConvertToUnicode(generatedUnicode1, KForeignBufferEven12LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); + test(generatedUnicode1==_L16("\x4241")); + test(result==8); + test(numberOfUnconvertibleCharacters==0); + test(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); + INFO_PRINTF1(_L("\n8bit->UCS2 output buffer size 1 - OK")); + + INFO_PRINTF1(_L("\nConversionTooSmallBuffer - OK")); + } +/** +@SYMTestCaseID SYSLIB-CHARCONV-CT-0560 +@SYMTestCaseDesc Conversion tests from UCS2 GUID to MIB +@SYMTestPriority Medium +@SYMTestActions Tests retreiving the MIB value from the UCS2 GUID + Tests retreiving the UCS2 GUID from the MIB value +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CT_UCS2::CharacterSetValueAndMIBTests(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession) +{ + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0560 ")); + // check that the character set value of '1000' is converted to the UCS2 GUID (0x101ff492) + test(aCharacterSetConverter.ConvertMibEnumOfCharacterSetToIdentifierL(KMibValue,aFileServerSession)==KCharacterSetIdentifierUcs2); + INFO_PRINTF1(_L("\nMIB->Char Set GUID - OK")); + + // check that the UCS2 GUID (0x101ff492) is converted to the character set value of '1000' + test(aCharacterSetConverter.ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierUcs2,aFileServerSession)==KMibValue); + INFO_PRINTF1(_L("\nChar Set GUID->MIB - OK")); +} + + +void CT_UCS2::DoE32MainL() + { + RFs fileServerSession; + CleanupClosePushL(fileServerSession); + User::LeaveIfError(fileServerSession.Connect()); + CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); + CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + TInt i; + for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + // test MIB to Character Set ID (and visa versa) conversion + CharacterSetValueAndMIBTests(*characterSetConverter, fileServerSession); + + // prepare for conversion + INFO_PRINTF1(_L("\nTesting 8 bit -> UCS2 conversion")); + TRAPD( error, characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierUcs2, *arrayOfCharacterSetsAvailable, fileServerSession)); + if ( error != KErrNone ) + { + RDebug::Print(_L("PrepareToConvertToOrFromL failed code:%d\n"),error); + RDebug::Print(_L("KCharacterSetIdentifierUcs2 is not available so tests failed\n")); + User::LeaveIfError(error); + } + + + // *** 8 bit to UCS2 conversion *** + INFO_PRINTF1(_L("\n8->UCS2 Little Endian Conversion - Single pass")); + LEConversionSinglePassBOM(*characterSetConverter); + + INFO_PRINTF1(_L("\n8->UCS2 Little Endian Conversion - Multiple pass")); + LEConversionMultiplePassBOM(*characterSetConverter); + + INFO_PRINTF1(_L("\n8->UCS2 Big Endian Conversion - Single pass")); + BEConversionSinglePassBOM(*characterSetConverter); + + INFO_PRINTF1(_L("\n8->UCS2 Big Endian Conversion - Multiple pass")); + BEConversionMultiplePassBOM(*characterSetConverter); + + + // *** UCS2 to 8 bit conversion *** + INFO_PRINTF1(_L("\nUCS2->8 Big Endian Conversion - Single pass")); + UCS2BEConversionSinglePassBOM(*characterSetConverter); + + INFO_PRINTF1(_L("\nUCS2->8 Big Endian Conversion - Multiple pass")); + UCS2BEConversionMultiplePassBOM(*characterSetConverter); + + // *** attempted conversion when input/output buffers are too small + INFO_PRINTF1(_L("\nTooSmallBufferConversion")); + TooSmallBufferConversion(*characterSetConverter); + + INFO_PRINTF1(_L("\n")); + CleanupStack::PopAndDestroy(3);// arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession + } + +CT_UCS2::CT_UCS2() + { + SetTestStepName(KTestStep_T_UCS2); + } + +TVerdict CT_UCS2::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_ucs2.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_ucs2.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,48 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_UCS2_H__ +#define __T_UCS2_H__ + +//#include +#include + +class CT_UCS2 : public CTestStep + { +public: + CT_UCS2(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void LEConversionSinglePassBOM(CCnvCharacterSetConverter& aCharacterSetConverter); + void LEConversionMultiplePassBOM(CCnvCharacterSetConverter& aCharacterSetConverter); + void BEConversionSinglePassBOM(CCnvCharacterSetConverter& aCharacterSetConverter); + void BEConversionMultiplePassBOM(CCnvCharacterSetConverter& aCharacterSetConverter); + void UCS2BEConversionSinglePassBOM(CCnvCharacterSetConverter& aCharacterSetConverter); + void UCS2BEConversionMultiplePassBOM (CCnvCharacterSetConverter& aCharacterSetConverter); + void TooSmallBufferConversion (CCnvCharacterSetConverter& aCharacterSetConverter); + void CharacterSetValueAndMIBTests(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession); + + + + + }; + +_LIT(KTestStep_T_UCS2, "T_UCS2"); + +#endif //__T_UCS2_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_ucs2.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_ucs2.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_UCS2 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_UCS2 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1250.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1250.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_win1250.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1250; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1250_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\win1250_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1250_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\win1250_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1250_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\win1250_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1250_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\win1250_for_expect.dat"); +#endif + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +void CT_WIN1250::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +void CT_WIN1250::Merge_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + INFO_PRINTF1(_L("Encoding from Unicode to Foreign")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); + TBuf8<512> temp; + TBuf16<256> originalUnicode; + TBuf8<256> generatedForeign; + TBuf16<256> generatedUnicode; + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Merge_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + + INFO_PRINTF1(_L("Encoding from Foreign to Unicode")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Merge_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + + CleanupStack::PopAndDestroy(3); + } + +CT_WIN1250::CT_WIN1250() + { + SetTestStepName(KTestStep_T_WIN1250); + } + +TVerdict CT_WIN1250::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1250.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1250.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_WIN1250_H__ +#define __T_WIN1250_H__ + +//#include +#include + +class CT_WIN1250 : public CTestStep + { +public: + CT_WIN1250(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + void Merge_Big(TDesC8& aSource, TDes16& aTarget); + }; + +_LIT(KTestStep_T_WIN1250, "T_WIN1250"); + +#endif //__T_WIN1250_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1250.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1250.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_WIN1250 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1250 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1251.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1251.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_win1251.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1251; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1251_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\win1251_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1251_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\win1251_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1251_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\win1251_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1251_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\win1251_for_expect.dat"); +#endif + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +void CT_WIN1251::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +void CT_WIN1251::Merge_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + INFO_PRINTF1(_L("Encoding from Unicode to Foreign")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); + TBuf8<512> temp; + TBuf16<256> originalUnicode; + TBuf8<256> generatedForeign; + TBuf16<256> generatedUnicode; + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Merge_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + + INFO_PRINTF1(_L("Encoding from Foreign to Unicode")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Merge_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + + CleanupStack::PopAndDestroy(3); + } + +CT_WIN1251::CT_WIN1251() + { + SetTestStepName(KTestStep_T_WIN1251); + } + +TVerdict CT_WIN1251::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1251.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1251.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_WIN1251_H__ +#define __T_WIN1251_H__ + +//#include +#include + +class CT_WIN1251 : public CTestStep + { +public: + CT_WIN1251(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + void Merge_Big(TDesC8& aSource, TDes16& aTarget); + }; + +_LIT(KTestStep_T_WIN1251, "T_WIN1251"); + +#endif //__T_WIN1251_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1251.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1251.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_WIN1251 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1251 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1253.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1253.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_win1253.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1253; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1253_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\win1253_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1253_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\win1253_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1253_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\win1253_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1253_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\win1253_for_expect.dat"); +#endif + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +void CT_WIN1253::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +void CT_WIN1253::Merge_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + INFO_PRINTF1(_L("Encoding from Unicode to Foreign")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); + TBuf8<512> temp; + TBuf16<256> originalUnicode; + TBuf8<256> generatedForeign; + TBuf16<256> generatedUnicode; + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Merge_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + + INFO_PRINTF1(_L("Encoding from Foreign to Unicode")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Merge_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + + CleanupStack::PopAndDestroy(3); + } + + CT_WIN1253::CT_WIN1253() + { + SetTestStepName(KTestStep_T_WIN1253); + } + + TVerdict CT_WIN1253::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1253.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1253.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_WIN1253_H__ +#define __T_WIN1253_H__ + +//#include +#include + +class CT_WIN1253 : public CTestStep + { +public: + CT_WIN1253(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + void Merge_Big(TDesC8& aSource, TDes16& aTarget); + }; + +_LIT(KTestStep_T_WIN1253, "T_WIN1253"); + +#endif //__T_WIN1253_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1253.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1253.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_WIN1253 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1253 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1254.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1254.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,140 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_win1254.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1254; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1254_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\win1254_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1254_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\win1254_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1254_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\win1254_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1254_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\win1254_for_expect.dat"); +#endif + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +void CT_WIN1254::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +void CT_WIN1254::Merge_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + INFO_PRINTF1(_L("Encoding from Unicode to Foreign")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); + TBuf8<512> temp; + TBuf16<256> originalUnicode; + TBuf8<256> generatedForeign; + TBuf16<256> generatedUnicode; + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Merge_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + + INFO_PRINTF1(_L("Encoding from Foreign to Unicode")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Merge_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + + CleanupStack::PopAndDestroy(3); + } + +// Global Functions + +CT_WIN1254::CT_WIN1254() + { + SetTestStepName(KTestStep_T_WIN1254); + } + +TVerdict CT_WIN1254::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1254.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1254.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_WIN1254_H__ +#define __T_WIN1254_H__ + +//#include +#include + +class CT_WIN1254 : public CTestStep + { +public: + CT_WIN1254(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + void Merge_Big(TDesC8& aSource, TDes16& aTarget); + }; + +_LIT(KTestStep_T_WIN1254, "T_WIN1254"); + +#endif //__T_WIN1254_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1254.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1254.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_WIN1254 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1254 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1255.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1255.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_win1255.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1255; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1255_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\win1255_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1255_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\win1255_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1255_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\win1255_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1255_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\win1255_for_expect.dat"); +#endif + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +void CT_WIN1255::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +void CT_WIN1255::Merge_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + INFO_PRINTF1(_L("Encoding from Unicode to Foreign")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); + TBuf8<466> temp; + TBuf16<233> originalUnicode; + TBuf8<233> generatedForeign; + TBuf16<233> generatedUnicode; + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Merge_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + + INFO_PRINTF1(_L("Encoding from Foreign to Unicode")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Merge_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + + CleanupStack::PopAndDestroy(3); + } + +CT_WIN1255::CT_WIN1255() + { + SetTestStepName(KTestStep_T_WIN1255); + } + +TVerdict CT_WIN1255::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1255.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1255.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_WIN1255_H__ +#define __T_WIN1255_H__ + +//#include +#include + +class CT_WIN1255 : public CTestStep + { +public: + CT_WIN1255(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + void Merge_Big(TDesC8& aSource, TDes16& aTarget); + }; + +_LIT(KTestStep_T_WIN1255, "T_WIN1255"); + +#endif //__T_WIN1255_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1255.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1255.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_WIN1255 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1255 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1256.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1256.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_win1256.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1256; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1256_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\win1256_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1256_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\win1256_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1256_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\win1256_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1256_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\win1256_for_expect.dat"); +#endif + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +void CT_WIN1256::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +void CT_WIN1256::Merge_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + INFO_PRINTF1(_L("Encoding from Unicode to Foreign")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); + TBuf8<512> temp; + TBuf16<256> originalUnicode; + TBuf8<256> generatedForeign; + TBuf16<256> generatedUnicode; + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Merge_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + + INFO_PRINTF1(_L("Encoding from Foreign to Unicode")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Merge_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + + CleanupStack::PopAndDestroy(3); + } + +CT_WIN1256::CT_WIN1256() + { + SetTestStepName(KTestStep_T_WIN1256); + } + +TVerdict CT_WIN1256::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1256.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1256.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_WIN1256_H__ +#define __T_WIN1256_H__ + +//#include +#include + +class CT_WIN1256 : public CTestStep + { +public: + CT_WIN1256(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + void Merge_Big(TDesC8& aSource, TDes16& aTarget); + }; + +_LIT(KTestStep_T_WIN1256, "T_WIN1256"); + +#endif //__T_WIN1256_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1256.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1256.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_WIN1256 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1256 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1257.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1257.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_win1257.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1257; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1257_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\win1257_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1257_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\win1257_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1257_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\win1257_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1257_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\win1257_for_expect.dat"); +#endif + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +void CT_WIN1257::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +void CT_WIN1257::Merge_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + INFO_PRINTF1(_L("Encoding from Unicode to Foreign")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); + TBuf8<512> temp; + TBuf16<256> originalUnicode; + TBuf8<256> generatedForeign; + TBuf16<256> generatedUnicode; + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Merge_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + + INFO_PRINTF1(_L("Encoding from Foreign to Unicode")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Merge_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + + CleanupStack::PopAndDestroy(3); + } + +CT_WIN1257::CT_WIN1257() + { + SetTestStepName(KTestStep_T_WIN1257); + } + +TVerdict CT_WIN1257::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1257.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1257.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_WIN1257_H__ +#define __T_WIN1257_H__ + +//#include +#include + +class CT_WIN1257 : public CTestStep + { +public: + CT_WIN1257(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + void Merge_Big(TDesC8& aSource, TDes16& aTarget); + }; + +_LIT(KTestStep_T_WIN1257, "T_WIN1257"); + +#endif //__T_WIN1257_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1257.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1257.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_WIN1257 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1257 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1258.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1258.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_win1258.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1258; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1258_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\win1258_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1258_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\win1258_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1258_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\win1258_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1258_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\win1258_for_expect.dat"); +#endif + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +void CT_WIN1258::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +void CT_WIN1258::Merge_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + INFO_PRINTF1(_L("Encoding from Unicode to Foreign")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); + TBuf8<512> temp; + TBuf16<256> originalUnicode; + TBuf8<256> generatedForeign; + TBuf16<256> generatedUnicode; + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Merge_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + + INFO_PRINTF1(_L("Encoding from Foreign to Unicode")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Merge_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + + CleanupStack::PopAndDestroy(3); + } + +CT_WIN1258::CT_WIN1258() + { + SetTestStepName(KTestStep_T_WIN1258); + } + +TVerdict CT_WIN1258::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1258.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1258.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_WIN1258_H__ +#define __T_WIN1258_H__ + +//#include +#include + +class CT_WIN1258 : public CTestStep + { +public: + CT_WIN1258(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + void Merge_Big(TDesC8& aSource, TDes16& aTarget); + }; + +_LIT(KTestStep_T_WIN1258, "T_WIN1258"); + +#endif //__T_WIN1258_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1258.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win1258.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_WIN1258 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN1258 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win874.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win874.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,138 @@ +/* +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#include +#include +#include +#include +#include "t_win874.h" + +const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin874; + +#ifdef __WINS__ +_LIT(KInputUnicodeFilename, "c:\\test\\data\\win874_uni_input.dat"); +_LIT(KInputForeignFilename, "c:\\test\\data\\win874_for_input.dat"); +_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win874_uni_expect.dat"); +_LIT(KExpectForeignFilename, "c:\\test\\data\\win874_for_expect.dat"); +#else +_LIT(KInputUnicodeFilename, "z:\\test\\data\\win874_uni_input.dat"); +_LIT(KInputForeignFilename, "z:\\test\\data\\win874_for_input.dat"); +_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win874_uni_expect.dat"); +_LIT(KExpectForeignFilename, "z:\\test\\data\\win874_for_expect.dat"); +#endif + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +void CT_WIN874::ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) + { + RFile file; + TInt err = file.Open(aFs, aFilename, EFileRead); + test(err == KErrNone); + CleanupClosePushL(file); + err = file.Read(aDes); + test(err == KErrNone); + CleanupStack::PopAndDestroy(&file); + } + +void CT_WIN874::Merge_Big(TDesC8& aSource, TDes16& aTarget) + { + TInt length = aSource.Length(); + TInt i = 0; + for(i=0;i* arrayOfCharacterSetsAvailable=\ + CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); + + INFO_PRINTF1(_L("Available:\n")); + for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) + { + const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; + characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); + TPtrC charactersSetName(charactersSet.Name()); + if (charactersSet.NameIsFileName()) + { + charactersSetName.Set(TParsePtrC(charactersSetName).Name()); + } + INFO_PRINTF2(_L(" %S\n"), &charactersSetName); + } + + INFO_PRINTF1(_L("Encoding from Unicode to Foreign")); + characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); + TBuf8<450> temp; + TBuf16<225> originalUnicode; + TBuf8<225> generatedForeign; + TBuf16<225> generatedUnicode; + ReadDescL(temp, KInputUnicodeFilename, fileServerSession); + Merge_Big(temp, originalUnicode); + test(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); + ReadDescL(temp, KExpectForeignFilename, fileServerSession); + test(generatedForeign == temp); + + INFO_PRINTF1(_L("Encoding from Foreign to Unicode")); + ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); + TInt state=CCnvCharacterSetConverter::KStateDefault; + test( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); + ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); + originalUnicode.Zero(); + Merge_Big(temp, originalUnicode); + test(generatedUnicode == originalUnicode); + + CleanupStack::PopAndDestroy(3); + } + +CT_WIN874::CT_WIN874() + { + SetTestStepName(KTestStep_T_WIN874); + } + +TVerdict CT_WIN874::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + TRAPD(error1, DoE32MainL()); + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win874.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win874.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_WIN874_H__ +#define __T_WIN874_H__ + +//#include +#include + +class CT_WIN874 : public CTestStep + { +public: + CT_WIN874(); +protected: + TVerdict doTestStepL(); +private: + void DoE32MainL(); + void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs); + void Merge_Big(TDesC8& aSource, TDes16& aTarget); + }; + +_LIT(KTestStep_T_WIN874, "T_WIN874"); + +#endif //__T_WIN874_H__ diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/t_win874.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/charconvplugins/test/rtest/tsrc/main/t_win874.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_WIN874 tests +// +LOAD_SUITE t_charconvpluginserver +RUN_TEST_STEP 200 t_charconvpluginserver T_WIN874 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tautodetect.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tautodetect.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,770 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -_LIT8(KUnicode,"ÿþHi there"); -_LIT8(KUnicode2, "\xff\xfe\x48\x00\x69\x00\x20\x00\x74\x00\x68\x00\x65\x00\x72\x00\x65\x00"); -_LIT8(KUnicode3, "\xfe\xff\x48\x00\x69\x00\x20\x00\x74\x00\x68\x00\x65\x00\x72\x00\x65\x00"); -_LIT8(KSMS7InvalidEmail, "\x21\x00\x70\x2e\x63 \x21\x00\x70\x2e\x63 \x21\x00\x70\x2e\x63\x7e\x7e"); -_LIT8(KSMS7ValidEmail, "\x42\x00\x70\x2e\x63 \x42\x00\x70\x2e\x63 \x42\x00\x70\x2e\x63\x7e\x7e"); -_LIT8(KSJISPhrase, "\x81@\x81y\x83o\x83\x93\x83R\x83N\x82Q\x82T\x93\xfa\x81\x81\x89\xaa\x93""c\x8e\xa0\x8ds\x81z\x83\x84\x83\x93\x83S\x83\x93\x82\xa9\x82\xe7\x82\xcc\x8f\xee\x95\xf1\x82\xc9\x82\xe6\x82\xe9\x82\xc6\x81""A\x83~\x83\x83\x83\x93\x83}\x81[\x82\xcc\x96\xaf\x8e\xe5\x89\xbb\x89^\x93\xae\x8ew\x93\xb1\x8e\xd2\x83""A\x83""E\x83\x93\x81""E\x83T\x83\x93\x81""E\x83X\x81[\x81""E\x83`\x81[\x82\xb3\x82\xf1\x82\xe7\x8d\x91\x96\xaf\x96\xaf\x8e\xe5\x98""A\x96\xbf\x81i\x82m\x82k\x82""c\x81j\x82\xcc\x83\x81\x83\x93\x83o\x81[\x82\xaa\x93\xf1\x8f\\x8el\x93\xfa\x81""A\x8e\xd4\x82\xc5\x83\x84\x83\x93\x83S\x83\x93\x8dx\x8aO\x82\xc9\x8fo\x82\xbd\x82\xc6\x82\xb1\x82\xeb\x81""A\x8cR\x90\xad\x93\x96\x8b\xc7\x82\xc9\x90\xa7\x8e~\x82\xb3\x82\xea\x82\xbd\x82\xbd\x82\xdf\x81""A\x93\xb9\x98H\x82\xed\x82\xab\x82\xc9\x88\xda\x82\xb3\x82\xea\x82\xbd\x8e\xd4\x93\xf1\x91\xe4\x82\xcc\x92\x86\x82\xc5\x82\xeb\x82\xa4\x8f\xe9\x82\xf0\x8en\x82\xdf\x82\xbd\x81""B\x83X\x81[\x81""E\x83`\x81[\x82\xb3\x82\xf1\x82\xaa\x81""A\x93\x96\x8b\xc7\x82\xcc\x8ds\x93\xae\x90\xa7\x8c\xc0\x82\xf0\x94j\x82\xc1\x82\xc4\x8dx\x8aO\x82\xc9\x8fo\x82\xbd\x82\xcc\x82\xcd\x8b\xe3\x94\xaa\x94N\x94\xaa\x8c\x8e\x88\xc8\x97\x88\x81""A\x93\xf1\x94N\x82\xd4\x82\xe8\x81""B\x96\xaf\x8e\xe5\x89\xbb\x89^\x93\xae\x82\xd6\x82\xcc\x8d\x91\x8d\xdb\x93I\x82\xc8\x8ex\x8e\x9d\x8fW\x82\xdf\x82\xf0\x91_\x82\xc1\x82\xc4\x92\xb7\x8a\xfa\x82\xeb\x82\xa4\x8f\xe9\x82\xf0\x8ds\x82\xa4\x89\xc2\x94\\x90\xab\x82\xe0\x82\xa0\x82\xe8\x81""A\x8cR\x90\xad\x91\xa4\x82\xcd\x91\xce\x89\x9e\x82\xc9\x8b\xea\x97\xb6\x82\xb5\x82\xc4\x82\xa2\x82\xe9\x81""B

"); -_LIT8(KBig5, "\xa1@\xa1@\xa5\xbb\xb3\xf8\xb0T\xa1]\xb0O\xaa\xcc\xb1\xe4\xd9y\xa1^\xac\xb0\xb3""e\xb9\xfd\xb8\xa8\xb9\xea\xa4\xa4\xa5\xa1\xa6\xe8\xb3\xa1\xa4j\xb6}\xb5o\xbe\xd4\xb2\xa4\xa9M\xa7\xf5\xb4P\xb2M\xb0\xc6\xc1`\xb2z\xc3\xf6\xa4_\xb1\xd0\xa8|\xb9\xef\xa4""f\xa4\xe4\xb4\xa9\xab\xfc\xa5\xdc\xba\xeb\xaf\xab\xa1""A\xa5\xbb\xa5\xab\xb1N\xb2\xd5\xc2\xb4\xb1\xd0\xaev\xb9\xce\xadu\xa4\xba\xbbX\xa5j\xb6}\xaei\xb9\xef\xa4""f\xa4\xe4\xb4\xa9\xa1""A\xad\xba\xa7\xe5""115\xa6W\xb1\xd0\xaev\xb1N\xa6""b\xb7s\xbe\xc7\xb4\xc1\xb6}\xbe\xc7\xa4\xa7\xbb\xda\xb1\xd2\xb5{\xadu\xa4\xba\xbbX\xa5j\xa1""C\xacQ\xa4\xd1\xa4W\xa4\xc8\xa1""A\xa5\xab\xa9""e\xae\xd1\xb0O"); -_LIT8(KEUP, "\xa1\xcb\xa1\xa3\xa4\xb3\xa4\xec\xa4\xcf\xa1\xa4\xb9\xe2\xc9\xe9\xb2\xd9\xa4\xce\xa5\xd9\xa5\xf3\xa5\xc1\xa5\xde\xa1\xbc\xa5\xaf\xa4\xe4\xa5\xa2\xa5\xd7\xa5\xea\xa5\xb1\xa1\xbc\xa5\xb7\xa5\xe7\xa5\xf3\xa4\xf2\xbc\xc2\xb9\xd4\xa4\xb9\xa4\xeb\xa4\xc8\xa1\xa4\xbd\xe8\xcd\xfd\xa4\xac\xb4\xb0\xce\xbb\xa4\xb9\xa4\xeb\xc1\xb0\xa4\xcb\xa5\xd5\xa5\xea\xa1\xbc\xa5\xba\xa4\xb9\xa4\xeb\xc9\xd4\xb6\xf1\xb9\xe7\xa4\xac\xb3\xce\xc7\xa7\xa4\xb5\xa4\xec\xa4\xbf\xa4\xbf\xa4\xe1\xa1\xa3\xa4\xb7\xa4\xab\xa4\xb7\xcc\xe4\xc2\xea\xa4\xcf\xa1\xa4\xa4\xbd\xa4\xce\xb8\xb6\xb0\xf8\xa4\xac\xa1\xd6\xa5\xb7\xa5\xea\xa5\xb3\xa5\xf3\xa4\xce\xa5\xde\xa1\xbc\xa5\xb8\xa5\xf3\xc9\xd4\xc2\xad\xa1\xd7\xa4\xc0\xa4\xc3\xa4\xbf\xc5\xc0\xa4\xc0\xa1\xa3"); -_LIT8(KEUC2, "Enlightenment\xa4\xce\xa5\xc6\xa1\xbc\xa5\xde\xa4\xc8\xa4\xcf\xa1\xa2\xa5\xa6\xa5\xa3\xa5\xf3\xa5\xc9\xa5\xa6\xa5\xde\xa5\xcd\xa1\xbc\xa5\xb8\xa5\xe3\xa4\xce\xb3\xb0\xb4\xd1\xc9\xf4\xca\xac\xa4\xce\xcd\xd7\xc1\xc7\xa4\xf2\xa4\xd2\xa4\xc8\xa4\xde\xa4\xc8\xa4\xe1\xa4\xcb\xa4\xb7\xa4\xc6\xc0\xda\xa4\xea\xc2\xd8\xa4\xa8\xa4\xe9\xa4\xec\xa4\xeb\xa4\xe8\xa4\xa6\xa4\xcb\xa4\xb7\xa4\xbf\xa4\xe2\xa4\xce\xa1\xa2\xa4\xc8\xb9\xcd\xa4\xa8\xa4\xeb\xa4\xb3\xa4\xc8\xa4\xac\xa4\xc7\xa4\xad\xa4\xde\xa4\xb9\xa1\xa3\xa4\xc4\xa4\xde\xa4\xea\xa1\xa2""1\xa4\xc4\xa4\xce\xa5\xa6\xa5\xa3\xa5\xf3\xa5\xc9\xa5\xa6\xa5\xde\xa5\xcd\xa1\xbc\xa5\xb8\xa5\xe3\xa4\xca\xa4\xce\xa4\xcb\xa1\xa2Windows\xc9\xf7\xa4\xcb\xa4\xe2\xa1\xa2Mac\xc9\xf7\xa4\xcb\xa4\xe2\xa1\xa2\xa4\xb5\xa4\xde\xa4\xb6\xa4\xde\xa4\xcb\xa5\xab\xa5\xb9\xa5\xbf\xa5\xde\xa5\xa4\xa5\xba\xa4\xb9\xa4\xeb\xa4\xb3\xa4\xc8\xa4\xac\xa4\xc7\xa4\xad\xa4\xde\xa4\xb9\xa1\xa3"); -_LIT8(KSJIS, "\x82\xb1\x82\xcc\x83z\x81[\x83\x80\x83y\x81[\x83W\x82\xcd\x81""A\x82\xa9\x82\xed\x82\xa2\x82\xa2\x83L\x83\x83\x83\x89\x83N\x83^\x81[\x81g\x83s\x83\x93\x83O\x81[\x81h\x82\xf0\x82\xbd\x82\xad\x82\xb3\x82\xf1\x82\xcc\x90l\x82\xbd\x82\xbf\x82\xc9\x8f\xd0\x89\xee\x82\xb5\x81""A\x82\xdc\x82\xbd\x81""A\x8c\xf0\x97\xac\x82\xf0\x8e\x9d\x82\xc1\x82\xc4\x82\xa2\x82\xbd\x82\xbe\x82\xab\x82\xbd\x82\xa2\x82\xc6\x8ev\x82\xc1\x82\xc4\x8d\xec\x90\xac\x82\xb3\x82\xea\x82\xbd\x83y\x81[\x83W\x82\xc5\x82\xb7\x81""B\x82\xb1\x82\xcc\x83z\x81[\x83\x80\x83y\x81[\x83W\x82\xcd\x8a""F\x82\xb3\x82\xf1\x82\xcc\x81g\x83N\x83`\x83R\x83~\x81h\x82\xc5\x90\xac\x82\xe8\x97\xa7\x82\xc1\x82\xc4\x82\xa2\x82\xdc\x82\xb7\x81""B\x82\xba\x82\xd0\x8f\xee\x95\xf1\x82\xf0\x82\xa8\x8a\xf1\x82\xb9\x89\xba\x82\xb3\x82\xa2\x81I"); -_LIT8(SJISNET, "20\x94NTRUSTe\x93\xfa\x96{\x82\xcd\x81""A\x8f\xee\x95\xf1\x82\xcc\x8aJ\x8e\xa6\x82\xc6\x8d\x90\x92m\x8b`\x96\xb1\x82\xc9\x8a\xd6\x82\xb7\x82\xe9\x8c\xb4\x91\xa5\x82\xf0\x8dL\x82\xdf\x82\xe9\x82\xb1\x82\xc6\x82\xc9\x82\xe6\x82\xe8\x81""A\x83""C\x83\x93\x83^\x81[\x83l\x83""b\x83g\x8f\xe3\x82\xc9\x82\xa8\x82\xaf\x82\xe9\x83\x86\x81[\x83U\x81[\x82\xc6\x82\xcc\x8f\xee\x95\xf1\x8aJ\x8e\xa6\x82\xc9\x8a\xd6\x82\xb7\x82\xe9\x90M\x97\x8a\x8a\xd6\x8cW\x82\xf0\x91\xc5\x82\xbf\x97\xa7\x82\xc4\x82\xe9\x82\xb1\x82\xc6\x82\xf0\x8eg\x96\xbd\x82\xc6\x82\xb7\x82\xe9\x81""A\x93\xc6\x97\xa7\x82\xcc\x94\xf1\x89""c\x97\x98\x91g\x90""D\x82\xc5\x82\xb7\x81""B\x82\xb1\x82\xcc\x83""E\x83""F\x83u\x83T\x83""C\x83g\x82\xcd\x8bM\x93""a\x82\xcc\x83v\x83\x89\x83""C\x83o\x83V\x81[\x82\xc9\x91\xce\x82\xb7\x82\xe9\x82\xbb\x82\xcc\x8c\xf6\x96\xf1\x82\xf0\x8e\xc0\x8f\xd8\x82\xb7\x82\xe9\x88\xd3\x96\xa1\x82\xc5\x81""A\x82\xb1\x82\xb1\x82\xc9\x8f\xee\x95\xf1\x82\xcc\x8e\xe6\x82\xe8\x88\xb5\x82\xa2\x8a\xee\x8f\x80\x82\xf0\x8aJ\x8e\xa6\x82\xb5\x82\xbd\x82\xe0\x82\xcc\x82\xc5\x81""A\x82\xb1\x82\xcc\x83v\x83\x89\x83""C\x83o\x83V\x81[\x8e\xe6\x82\xe8\x88\xb5\x82\xa2\x8a\xee\x8f\x80\x82\xc9\x82\xc2\x82\xa2\x82\xc4\x82\xcd\x81""ATRUSTe\x82\xc9\x82\xe6\x82\xe8\x81""A\x82\xbb\x82\xcc\x8f\x87\x8e\xe7\x82\xc9\x8a\xd6\x82\xb7\x82\xe9\x8c\x9f\x93\xa2\x82\xc6\x8a\xc4\x8d\xb8\x82\xc6\x82\xf0\x8e\xf3\x82\xaf\x82\xbd\x82\xe0\x82\xcc\x82\xc5\x82\xb7\x81""B"); -_LIT8(BIG5A, "\xb0\xea\xae""a\xbcs\xbc\xbd\xb9q\xb5\xf8\xbd\xe8\xb6q\xba\xca\xb7\xfe\xc0\xcb\xc5\xe7\xb4\xfa\xb8\xd5\xa4\xa4\xa4\xdf - \xb9\xef\xad\xb5\xb5\xf8\xc0W\xb2\xa3\xab~\xaa\xba\xb1`\xb7\xc5\xb9q\xa9\xca\xaf\xe0\xa1""B\xa6w\xa5\xfe\xa1""B\xb9q\xba\xcf\xad\xdd\xae""e\xa7@\xc0\xf4\xb9\xd2\xb4\xfa\xb8\xd5\xa9M\xba\xca\xb7\xfe\xa9\xe2\xac""d"); -_LIT8(BIG5C, "\xac\xfc \xb0\xea \xb0\xc8 \xb0| \xa8\xc8 \xa4\xd3 \xb0\xc6 \xa7U \xad\xeb \xc1\xc2 \xb2Q \xc4R \xa4\xb5 \xa4\xe9 \xa6""b \xa6\xb9 \xb6\xa1 \xa4@ \xa6\xb8 \xbcy \xaf\xac \xa4\xa4 \xa6@ \xab\xd8 \xac""F \xa4\xad \xa4Q \xa9P \xa6~ \xaa\xba \xa4j \xab\xac \xac\xe3 \xb0Q \xb7| \xa4\xa4 \xaa\xed \xa5\xdc \xa1""A \xa4\xa4 \xa6@ \xc0\xb3 \xb8\xd3 \xb9\xef \xa5x \xc6W \xb1\xc4"); -_LIT8(GB2312B, "\xd0\xc2\xce\xc5, \xd0\xa1\xcb\xb5\xa3\xac\xd4\xd3\xd6\xbe\xa3\xac\xb6\xc1\xd5\xdf\xa3\xac\xc2\xdb\xcc\xb3\xa3\xac\xce\xc4\xd5\xaa\xa3\xac\xb1\xa8\xd6\xbd\xa3\xac\xd0\xa6\xbb\xb0\xa3\xac\xcc\xe5\xd3\xfd\xa3\xac\xc7\xe9\xb8\xd0\xa3\xac\xc1\xf4\xd1\xa7\xa3\xac\xbf\xe1\xd5\xbe\xa3\xac"); -_LIT8(GB2312C, "\xa1\xa1\xa1\xf1\xcd\xf5\xbb\xdb\xa3\xa8\xb1\xbe\xb1\xa8\xcc\xd8\xd4\xbc\xa3\xa9\xb1\xb1\xbe\xa9\xb1\xa8\xb5\xc0

\xa1\xa1\xa1\xa1\xc0\xfa\xbd\xec\xb0\xc2\xd4\xcb\xbb\xe1\xca\xd7"); -_LIT8(GB2312Corrupt, "\xa1\xa1\xa1\xf1\xcd\xf5\xbb\xdb\xa3""fff\xb1\xbe\xb1\xa8\xcc\xd8\xd4\xbc\xa3\xa9""ff\xb1\xb1\xbe\xa9\xb1\xa8\xb5\xc0\xa1\xa1\xa1\xa1\xc0\xfa\xbd\xec\xb0\xc2\xd4\xcb\xbb\xe1\xca\xd7");//FAILED -_LIT8(BIG5Corrupt, "\xac\xfc \xb0\xea \xb0\xc8 \xb0| \xa8\xc8 \xa4\xd3 \xb0\xc6 \xa7U ddd\xad\xeb \xc1\xc2 \xb2Q \xc4R \xa4""ddd\xb5 \xa4\xe9 \xa6""b \xa6\xb9 \xb6\xa1 \xa4@ \xa6\xb8 \xbcy \xaf\xac \xa4\xa4 \xa6@ \xab\xd8 \xac""F \xa4\xad \xa4Q \xa9P \xa6~ \xaa\xba \xa4j \xab\xac \xac\xe3 \xb0Q \xb7| \xa4\xa4 \xaa\xed \xa5\xdc \xa1""A \xa4\xa4 \xa6@ddd \xc0\xb3 \xb8\xd3 \xb9\xef \xa5x \xc6W \xb1\xc4"); -_LIT8(BIG5Ahalf, "this is to test the data with ASCII mixured \xea\xae""a\xbcs\xbc\xbd\xb9q\xb5\xf8\xbd\xe8\xb6q\xba\xca\xb7\xfe\xc0\xcb\xc5\xe7\xb4\xfa\xb8\xd5\xa4\xa4\xa4\xdf - \xb9\xef\xad\xb5\xb5\xf8\xc0W\xb2\xa3\xab~\xaa\xba\xb1`\xb7\xc5\xb9q\xa9\xca\xaf\xe0\xa1""B\xa6w\xa5\xfe\xa1""B\xb9q\xba\xcf\xad\xdd\xae""e\xa7@\xc0\xf4\xb9\xd2\xb4\xfa\xb8\xd5\xa9M\xba\xca\xb7\xfe\xa9\xe2\xac""d"); -_LIT8(KASCII, "SO what result do I get for a text that is pure Ascii and nothing else. Not something stupid I hope!"); -_LIT8(KUTF8, "\xe4\xbc\x80\xe6\xac\x80\xe2\x80\x80\xe5\x8c\x80\xe6\xbc\x80\xe2\x80\x80\xe4\xa0\x80\xe6\x94\x80\xe7\x88\x80\xe6\x94\x80\xe2\x80\x80\xe6\xa4\x80\xe7\x8c\x80\xe2\x80\x80\xe6\x84\x80\xe2\x80\x80\xe7\x90\x80\xe6\x94\x80\xe7\xa0\x80\xe7\x90\x80\xe2\x80\x80\xe7\x90\x80\xe6\xa0\x80\xe6\x84\x80\xe7\x90\x80\xe2\x80\x80\xe7\x9c\x80\xe6\xa4\x80\xe6\xb0\x80\xe6\xb0\x80\xe2\x80\x80\xe6\x88\x80\xe6\x94\x80\xe2\x80\x80\xe6\x8c\x80\xe6\xbc\x80\xe6\xb8\x80\xe7\x98\x80\xe6\x94\x80\xe7\x88\x80\xe7\x90\x80\xe6\x94\x80\xe6\x90\x80\xe2\x80\x80\xe6\xa4\x80\xe6\xb8\x80\xe7\x90\x80\xe6\xbc\x80\xe2\x80\x80\xe6\x84\x80\xe2\x80\x80\xe5\x94\x80\xe5\x90\x80\xe4\x98\x80\xe2\xb4\x80\xe3\x9c\x80\xe2\x80\x80\xe7\xb8\x80\xe2\x80\x80\xe5\x90\x80\xe6\x94\x80\xe7\xa0\x80\xe7\x90\x80"); -_LIT8(KDodgyShiftJIS,"¡“ú‚Í’a¶“ú‚¾‚悤‚ꂵ‚¢‚È‚Ÿ`™™"); -_LIT8(KDodgyShiftJIS2,"20000222T100000Z;;;\x92\xa9\x82\xbe\x82\xe6\x8b\x4e\x82\xab\x82\xeb\x82\xa7\x81\x60\x81\x60\x81\x49\x81\x49\x81\x49"); -_LIT8(KDodgyShiftJIS3,"\x83\x5c\x83\x5c\x83\x5c\x82\xa0\x82\xa2\x82\xa4\x82\xa6\x82\xa8\x83\x5c\x83\x5c\x83\x5c\x82\xa9\x82\xab\x82\xad\x82\xaf\x82\xb1\x82\x5c"); -_LIT8(KISO,"\x6d\x6f\x72\x6f\x0d\x0a\x6d\x69\x74\xe4\x20\x6b\x75\x75\x6c\x75\x75\x3f"); -_LIT8(KSomeISO, "\x48\x65\x6a\x21\x20\x0d\x0a\x0d\x0a\x68\xe4\x72\x20\x6b\x6f\x6d\x6d\x65\x72\x20\x65\x74\x74\x20\x6d\x61\x69\x6c\x20\x6d\x65\x64\x20\x6d\x61\x73\x73\x61\x20\x74\x65\x78\x74\x20\x6f\x63\x68\x20\x65\x74\x74\x20\x61\x74\x74\x61\x63\x68\x6d\x65\x6e\x74\x2e\x20\x44\x65\x74\x74\x61\x20\x6c\x69\x6c\x6c\x61\x20\x6d\x61\x69\x6c"); -_LIT8(KUnicodeFail,"\x0d"); -_LIT8(KISODEF,"\xd7\x6d\x30\xf7"); // Test for defect raised in 6.1 (EXT-5HLEKN) -_LIT8(KShortUnicode1, "\xff\xfe\x29\x00\x3d\x00"); -_LIT8(KShortUnicode2, "\xff\xfe\x41\x00\x61\x00"); - -/** -* Work around for DEF063276. -* These literals are now loaded from a z:\test\data\KLittleEndian.dat and -* z:\test\data\KBigEndian.dat respectivly. -* Bullseye Coverage corrupts these literals to avoid this they are stored in files as to not be touched by Bullseye Coverage. -*/ - -// Test for defect INC037743 - Charconv recognises Little Endian as Big Endian -/*_LIT8(KLittleEndian, - "\x43\x00\x68\x00\x61\x00\x74\x00\x20\x00\x68\x00\x69\x00\x73\x00" - "\x74\x00\x6F\x00\x72\x00\x79\x00\x20\x00\x32\x00\x0A\x00\x43\x00" - "\x68\x00\x61\x00\x74\x00\x20\x00\x72\x00\x6F\x00\x6F\x00\x6D\x00" - "\x20\x00\x27\x00\x77\x00\x76\x00\x3A\x00\x6A\x00\x75\x00\x68\x00" - "\x61\x00\x75\x00\x74\x00\x69\x00\x6F\x00\x2F\x00\x32\x00\x30\x00" - "\x70\x00\x6D\x00\x74\x00\x40\x00\x6E\x00\x6F\x00\x6B\x00\x69\x00" - "\x61\x00\x2E\x00\x63\x00\x6F\x00\x6D\x00\x27\x00\x0A\x00\x53\x00" - "\x74\x00\x61\x00\x72\x00\x74\x00\x3A\x00\x20\x00\x30\x00\x31\x00" - "\x2F\x00\x30\x00\x39\x00\x2F\x00\x32\x00\x30\x00\x30\x00\x33\x00" - "\x20\x00\x32\x00\x32\x00\x3A\x00\x34\x00\x33\x00\x3A\x00\x32\x00" - "\x38\x00\x0A\x00\x49\x00\x76\x00\x61\x00\x6E\x00\x20\x00\x57\x00" - "\x65\x00\x6C\x00\x63\x00\x6F\x00\x6D\x00\x65\x00\x20\x00\x74\x00" - "\x6F\x00\x20\x00\x63\x00\x68\x00\x61\x00\x74\x00\x20\x00\x72\x00" - "\x6F\x00\x6F\x00\x6D\x00\x21\x00\x20\x00\x54\x00\x6F\x00\x70\x00" - "\x69\x00\x63\x00\x20\x00\x69\x00\x73\x00\x20\x00\x59\x00\x6C\x00" - "\x65\x00\x69\x00\x73\x00\x74\x00\xE4\x00\x20\x00\x76\x00\x65\x00" - "\x6C\x00\x6C\x00\x6F\x00\x6E\x00\x74\x00\x61\x00\x61\x00\x2E\x00" - "\x0A\x00\x4D\x00\x69\x00\x6B\x00\x61\x00\x54\x00\x20\x00\x6A\x00" - "\x6F\x00\x69\x00\x6E\x00\x65\x00\x64\x00\x0A\x00"); - -_LIT8(KBigEndian, - "\x00\x43\x00\x68\x00\x61\x00\x74\x00\x20\x00\x68\x00\x69\x00\x73" - "\x00\x74\x00\x6F\x00\x72\x00\x79\x00\x20\x00\x32\x00\x0A\x00\x43" - "\x00\x68\x00\x61\x00\x74\x00\x20\x00\x72\x00\x6F\x00\x6F\x00\x6D" - "\x00\x20\x00\x27\x00\x77\x00\x76\x00\x3A\x00\x6A\x00\x75\x00\x68" - "\x00\x61\x00\x75\x00\x74\x00\x69\x00\x6F\x00\x2F\x00\x32\x00\x30" - "\x00\x70\x00\x6D\x00\x74\x00\x40\x00\x6E\x00\x6F\x00\x6B\x00\x69" - "\x00\x61\x00\x2E\x00\x63\x00\x6F\x00\x6D\x00\x27\x00\x0A\x00\x53" - "\x00\x74\x00\x61\x00\x72\x00\x74\x00\x3A\x00\x20\x00\x30\x00\x31" - "\x00\x2F\x00\x30\x00\x39\x00\x2F\x00\x32\x00\x30\x00\x30\x00\x33" - "\x00\x20\x00\x32\x00\x32\x00\x3A\x00\x34\x00\x33\x00\x3A\x00\x32" - "\x00\x38\x00\x0A\x00\x49\x00\x76\x00\x61\x00\x6E\x00\x20\x00\x57" - "\x00\x65\x00\x6C\x00\x63\x00\x6F\x00\x6D\x00\x65\x00\x20\x00\x74" - "\x00\x6F\x00\x20\x00\x63\x00\x68\x00\x61\x00\x74\x00\x20\x00\x72" - "\x00\x6F\x00\x6F\x00\x6D\x00\x21\x00\x20\x00\x54\x00\x6F\x00\x70" - "\x00\x69\x00\x63\x00\x20\x00\x69\x00\x73\x00\x20\x00\x59\x00\x6C" - "\x00\x65\x00\x69\x00\x73\x00\x74\x00\xE4\x00\x20\x00\x76\x00\x65" - "\x00\x6C\x00\x6C\x00\x6F\x00\x6E\x00\x74\x00\x61\x00\x61\x00\x2E" - "\x00\x0A\x00\x4D\x00\x69\x00\x6B\x00\x61\x00\x54\x00\x20\x00\x6A" - "\x00\x6F\x00\x69\x00\x6E\x00\x65\x00\x64\x00\x0A\x00");*/ - -// Swedish test file for INC037705, This is "test2.txt" from the defect -_LIT8(KSwedish, - "\x55\x74\x61\x6E\x73\x6B\x72\x69\x66\x74\x65\x6E\x3A\x0D\x0A\x53" - "\x65\x72\x65\x6E\x69\x73\x73\x69\x6D\x6F\x20\x65\x74\x20\x43\x6C" - "\x61\x72\x69\x73\x73\x69\x6D\x6F\x20\x44\x6F\x6D\x69\x6E\x6F\x0D" - "\x0A\x44\x6F\x6D\x69\x6E\x6F\x20\x47\x75\x73\x74\x61\x66\x66\x6F" - "\x20\x53\x75\x65\x63\x6F\x72\x75\x6D\x0D\x0A\x65\x74\x20\x47\x6f" - "\x74\x68\x6F\x72\x75\x6D\x20\x52\x65\x67\x69\x20\x44\x6F\x6D\x69" - "\x6E\x6F\x20\x53\x75\x6F\x0D\x0A\x43\x6C\x65\x6D\x65\x6E\x74\x69" - "\x70\x70\x69\x6D\x6F\x0D\x0A\x0D\x0A\x4E\xE5\x64\x20\x6F\x63\x68" - ); - -// Finnish test file for INC037705, This is "test3.txt" from the defect -_LIT8(KFinnish, - "\x59\x68\x64\x65\x73\x74\x6F\x69\x73\x74\x61\x20\x72\x75\x6E\x6F" - "\x0D\x0A\x0D\x0A\x56\x69\x6B\x61\x20\x6F\x6E\x20\x41\x68\x74\x69" - "\x61\x20\x73\x61\x6E\x6F\x61\x2C\x20\x76\x65\x69\x74\x69\x6B\x6B" - "\xE4\x74\xE4\x20\x76\x69\x65\x72\x65\x74\x65\x6C\x6C\xE4\x2E\x20" - "\x0D\x0A\x0D\x0A\x41\x68\x74\x69\x20\x70\x6F\x69\x6B\x61\x20\x53" - "\x61\x61\x72\x65\x6C\x61\x69\x6E\x65\x6E\x2C\x20\x74\x75\x6F\x20" - "\x6F\x6E\x20\x6C\x69\x65\x74\x6F\x20\x4C\x65\x6D\x6D\x69\x6E\x20" - "\x70\x6F\x69\x6B\x61\x2C\x20\x0D\x0A\x6B\x61\x73\x76\x6F\x69\x20" - ); - -// This is the last two lines from GotchaLog.txt -// from INC043016 - AV21 via BTH received TXT file could not be opened -// Which is enough to reproduce the defect -_LIT8(KGotcha, - "\x0A\x0D\x0A\x4D\x65\x6D\x6F\x72\x79\x20\x74\x65\x73\x74\x20\x2D" - "\x6F\x64\x75\x6C\x65\x20\x65\x6E\x64\x0D\x0A\x2B\x2B\x2B\x2B\x2B" - ); - -/////////////////////////////////////////////////////////////////////////////////////// - -//UTF8 return values. -const TInt KUtf8NoBomMaxSuccessConfidenceLevel = 100; -const TInt KUtf8NoBomMinSuccessConfidenceLevel = 75; -const TInt KUtf8BomConfidenceLevel = 95; -const TInt KUtf8NoStringConfidenceLevel = 89; -const TInt KUtf8ConfidenceFailure = 0; - - -RTest TheTest(_L("TAutoDetect")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/** -* Utility for DEF063276 fix. -*/ - -_LIT(KLittleEndianFilename, "z:\\test\\data\\KLittleEndian.dat"); -_LIT(KBigEndianFilename, "z:\\test\\data\\KBigEndian.dat"); - -// Utility for DEF089572 fix -_LIT(KSMS7bitFilename, "z:\\test\\data\\KSMS7bit.dat"); - -static void ReadDesc(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// - -const TInt KMinimumThresholdForConvertableCharacter=70; - -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0548 -@SYMTestCaseDesc Tests for auto detecting the character set - Test for CCnvCharacterSetConverter::AutoDetectCharacterSetL() -@SYMTestPriority Medium -@SYMTestActions Attempt to determine the character set of the sample text from those supported on the phone -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestAutodetectL(const CArrayFix& aArrayOfCharacterSetsAvailable, const TDesC8& aSample, const TUint& aResult) - { - TInt Confidence = 0; - TUint Character = 0; - CCnvCharacterSetConverter::AutoDetectCharacterSetL (Confidence,Character, aArrayOfCharacterSetsAvailable,aSample); - TEST(Character==aResult); - TheTest.Printf(_L(".")); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-1307 -@SYMTestCaseDesc Tests for auto detecting the character set -@SYMTestPriority Medium -@SYMTestActions Tests for CCnvCharacterSetConverter::AutoDetectCharSetL() -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestAutodetect1L( - const CArrayFix& aArrayOfCharacterSetsAvailable, - const TDesC8& aSample, - const TUint& aResult, - CCnvCharacterSetConverter* aConverter) - { - TInt Confidence = 0; - TUint Character = 0; - aConverter->AutoDetectCharSetL(Confidence,Character, aArrayOfCharacterSetsAvailable,aSample); - TEST(Character==aResult); - TheTest.Printf(_L(".")); - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0549 -@SYMTestCaseDesc Tests for CCnvCharacterSetConverter::ConvertibleToCharacterSetL() function -@SYMTestPriority Medium -@SYMTestActions Tests the likelihood that a sample is encoded in a CharacterSetIdentifier -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestConvertibleToCharacterL(const TUint aCharsetIdentifier, const CArrayFix& aArrayOfCharacterSetsAvailable, const TDesC8& aSample, const TInt flag) - { - TInt confidence = 0; - CCnvCharacterSetConverter::ConvertibleToCharacterSetL(confidence,aCharsetIdentifier, aArrayOfCharacterSetsAvailable, aSample); - if (flag) - TEST(confidence >= KMinimumThresholdForConvertableCharacter ); - else - TEST(confidence < KMinimumThresholdForConvertableCharacter ); - } - -LOCAL_C TInt TestConvertibleToCharacterReturnResultL(const TUint aCharsetIdentifier, const CArrayFix& aArrayOfCharacterSetsAvailable, const TDesC8& aSample) - { - TInt confidence = 0; - CCnvCharacterSetConverter::ConvertibleToCharacterSetL(confidence,aCharsetIdentifier, aArrayOfCharacterSetsAvailable, aSample); - - return confidence; - } - -LOCAL_C void TestConvertibleToCharacterWithSpecificResultL(const TUint aCharsetIdentifier, const CArrayFix& aArrayOfCharacterSetsAvailable, const TDesC8& aSample, const TInt aResult) - { - TInt confidence = TestConvertibleToCharacterReturnResultL(aCharsetIdentifier, aArrayOfCharacterSetsAvailable, aSample); - - TEST(confidence==aResult); - } - -const TInt KMaxSampleLengthForAutoDetection = 1024; - -/** -This test code uses the method as is used by notepad in \Notepad\LibSrc\NpdUtil.cpp - -@SYMTestCaseID SYSLIB-CHARCONV-CT-0550 -@SYMTestCaseDesc Tests to autodetect a character read from file -@SYMTestPriority Medium -@SYMTestActions Tests to determine the character set of the sample text read from a file -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestAutoDetectFromFileL(const TDesC16& aFileName, const TUint& aResult ) - { - // get file server session and open file - RFile file; - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - User::LeaveIfError(file.Open(fileServerSession, aFileName, EFileRead)); - - // get up to KMaxSampleLengthForAutoDetection bytes of file for autodetect - TInt size(0); - User::LeaveIfError( file.Size(size) ); - - TBuf8 sample; - User::LeaveIfError( file.Read(sample, - size > KMaxSampleLengthForAutoDetection ? KMaxSampleLengthForAutoDetection : size) ); - - TInt confidence(0); - TUint charset(0); - - // if the first two bytes say unicode, don't bother with autodetect - if ( size >= 2 && - ( ( sample[0] == 0xfe && sample[1] == 0xff ) || - ( sample[0] == 0xff && sample[1] == 0xfe ) ) ) - { - charset = 0; // Unicode - } - else - { - //ok, try autodetect, first get available character sets - const CArrayFix* - lists = CCnvCharacterSetConverter:: - CreateArrayOfCharacterSetsAvailableLC( fileServerSession ); - - // now try AutoDetect - CCnvCharacterSetConverter::AutoDetectCharacterSetL(confidence, charset, *lists, sample); - CleanupStack::PopAndDestroy(); // filserver - } - - TheTest.Printf(_L("file %S charset = 0x%x confidence %d expected 0x%x\n"), - &aFileName, charset, confidence, aResult ); - - // check the character set expected was the one autodetected - TEST(charset==aResult); - - CleanupStack::PopAndDestroy(1); // fileserver - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0551 -@SYMTestCaseDesc Tests for conversion of characters read from a file to Unicode -@SYMTestPriority Medium -@SYMTestActions Logs out number of uncoverted bytes left at end,number of uncovertable characters, - index of first byte of first unconvertible character -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestConvertFromFileL(const TDesC16& aFileName, const TUint& aCharacterSetIdentifier ) - { - // get file server session and open file - RFile file; - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - User::LeaveIfError(file.Open(fileServerSession, aFileName, EFileRead)); - - // get up to KMaxSampleLengthForAutoDetection bytes of file for autodetect - TInt size(0); - User::LeaveIfError( file.Size(size) ); - - TBuf8 sample; - User::LeaveIfError( file.Read(sample, - size > KMaxSampleLengthForAutoDetection ? KMaxSampleLengthForAutoDetection : size) ); - - TheTest.Printf(_L("Comnverting to unicode file %S size = %d \n"), - &aFileName, size ); - - TInt NumberOfUnconvertibleCharacters=0; - TInt IndexOfFirstByteOfFirstUnconvertibleCharacter=0; - TInt state = CCnvCharacterSetConverter::KStateDefault; - TBuf16 result; - - CCnvCharacterSetConverter *Converter = CCnvCharacterSetConverter::NewLC(); - TRAPD( ConverterErr, Converter->PrepareToConvertToOrFromL( aCharacterSetIdentifier, fileServerSession)); - if ( ConverterErr!= KErrNone ) - { - TheTest.Printf(_L("PrepareToConvertToOrFromL left on file %S ConverterErr = 0x%x \n"), - &aFileName, ConverterErr ); - } - - TInt bytesLeft = Converter->ConvertToUnicode( result, - sample, - state, - NumberOfUnconvertibleCharacters, - IndexOfFirstByteOfFirstUnconvertibleCharacter); - - TheTest.Printf(_L("ConvertToUnicode returned %d unconverted bytes left at the end\n"),bytesLeft ); - TheTest.Printf(_L("NumberOfUnconvertibleCharacters=%d \n"),NumberOfUnconvertibleCharacters); - TheTest.Printf(_L("IndexOfFirstByteOfFirstUnconvertibleCharacter=%d \n"),IndexOfFirstByteOfFirstUnconvertibleCharacter); - - CleanupStack::PopAndDestroy(2); // fileserver, CCnvCharacterSetConverter -} - -/** -INC056019 SS NTT - Character set recognition is not optimized. -To improve a performace old static autodetection method was deprecated -and a new AutoDetectCharSet method introduced. - -@SYMTestCaseID SYSLIB-CHARCONV-CT-1308 -@SYMTestCaseDesc Performance test for auto detection of characters set -@SYMTestPriority Medium -@SYMTestActions Tests for the new AutoDetectCharSet() function -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestAutoDetectionPerformanceL( - const CArrayFix* aArrayOfCharacterSetsAvailable) - { - TInt i; - - ///////////////////////////////////////////////////////////////// - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-1308 Testing ten calls to Static AutoDetection ")); - TTime starttime; - starttime.UniversalTime(); - for (i=0; i<10; i++) - { - TheTest.Printf(_L("\n%d run "),i+1); - TestAutodetectL(*aArrayOfCharacterSetsAvailable,KSomeISO, KCharacterSetIdentifierIso88591); - } - TTime endtime; - endtime.UniversalTime(); - TTimeIntervalMicroSeconds difftime=endtime.MicroSecondsFrom(starttime); - TheTest.Printf(_L("\nTen Static calls duration =%d microseconds\n\n"), difftime.Int64()); - - ///////////////////////////////////////////////////////////////// - TInt charsetCnvCount = aArrayOfCharacterSetsAvailable->Count(); - TInt dllCharsetCnvCount = 0; - //Count the number of character set converter dlls. - for(i=0;iAt(i); - if(charset.NameIsFileName()) - { - ++dllCharsetCnvCount; - } - } - if(dllCharsetCnvCount == 0) - { - TheTest.Printf(_L("No character set converter dlls! Exit subtest.\n")); - return; - } - - ///////////////////////////////////////////////////////////////// - CCnvCharacterSetConverter* converter = CCnvCharacterSetConverter::NewLC(); - - ///////////////////////////////////////////////////////////////// - TheTest.Next(_L("Testing ten calls to optimized AutoDetection. Non-optimal cache size.")); - converter->SetMaxCacheSize(dllCharsetCnvCount / 2 + 1); - //Fill the cache - TestAutodetect1L(*aArrayOfCharacterSetsAvailable,KSomeISO, KCharacterSetIdentifierIso88591,converter); - // - starttime.UniversalTime(); - for (i=0; i<10; i++) - { - TheTest.Printf(_L("\n%d run "),i+1); - TestAutodetect1L(*aArrayOfCharacterSetsAvailable,KSomeISO, KCharacterSetIdentifierIso88591,converter); - } - endtime.UniversalTime(); - difftime=endtime.MicroSecondsFrom(starttime); - TheTest.Printf(_L("\nTen non-static calls duration =%d microseconds\n\n"), difftime.Int64()); - - ///////////////////////////////////////////////////////////////// - TheTest.Next(_L("Testing ten calls to optimized AutoDetection. Optimal cache size.")); - converter->SetMaxCacheSize(dllCharsetCnvCount + 1); - //Fill the cache - TestAutodetect1L(*aArrayOfCharacterSetsAvailable,KSomeISO, KCharacterSetIdentifierIso88591,converter); - // - starttime.UniversalTime(); - for (i=0; i<10; i++) - { - TheTest.Printf(_L("\n%d run "),i+1); - TestAutodetect1L(*aArrayOfCharacterSetsAvailable,KSomeISO, KCharacterSetIdentifierIso88591,converter); - } - endtime.UniversalTime(); - difftime=endtime.MicroSecondsFrom(starttime); - TheTest.Printf(_L("\nTen non-static calls duration =%d microseconds\n\n"), difftime.Int64()); - - ///////////////////////////////////////////////////////////////// - CleanupStack::PopAndDestroy(converter); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4002 -@SYMTestCaseDesc Test detection of a UTF-8 character set with and without a BOM. -@SYMTestPriority Medium -@SYMTestActions Tests for IsCharacterSetUTF8() function -@SYMTestExpectedResults Tests must not fail -@SYMREQ REQ0000 -*/ -//INC118714L -LOCAL_C void TestForUtf8BomL() - { - TheTest.Start(_L("@SYMTestCaseID:SYSLIB-CHARCONV-UT-4002 Testing BOM in UTF-8")); - - RFs fs; - TEST(fs.Connect() == KErrNone); - CleanupClosePushL(fs); - - TInt confidenceLevel = 0; - TBuf8<255> testData; - CArrayFix* charsets = - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fs); - CCnvCharacterSetConverter* converter = CCnvCharacterSetConverter::NewLC(); - - //No BOM - - // Ensure that UTF-8 doesn't run over ASCII. - TheTest.Next(_L("No BOM, Valid UTF-8 and ASCII String.")); - TestAutodetect1L(*charsets,_L8("\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64"), - KCharacterSetIdentifierAscii,converter); - - //Length - // Verify our original length issue is still gone. - TheTest.Next(_L("No BOM, valid UTF-8 string, > 100 chars.")); - // must be >= 100 characters. - testData = _L8("\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x30\x30\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\xce\x9f"); - TestAutodetect1L(*charsets, testData , - KCharacterSetIdentifierUtf8,converter); - confidenceLevel = TestConvertibleToCharacterReturnResultL(KCharacterSetIdentifierUtf8, - *charsets,testData ); - TEST(confidenceLevel == KUtf8NoBomMaxSuccessConfidenceLevel); - - TheTest.Next(_L("No BOM, valid UTF-8 string, < 100 chars.")); - testData = _L8("\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\xce\x9f"); - TestAutodetect1L(*charsets,testData, - KCharacterSetIdentifierUtf8,converter); - TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, - *charsets,testData,KUtf8NoBomMinSuccessConfidenceLevel); - - // Then get a bit more concerned. - // One one-byte character overlaps several encodings. - TheTest.Next(_L("No BOM, valid UTF-8 string, 1 char.")); - testData = _L8("\x7D"); - TestAutodetect1L(*charsets,testData, - KCharacterSetIdentifierAscii,converter); - TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, - *charsets,testData, KUtf8NoBomMinSuccessConfidenceLevel); - - TheTest.Next(_L("No BOM, valid UTF-8 string, 0 chars.")); - testData = _L8(""); - TestAutodetect1L(*charsets,testData, - KCharacterSetIdentifierAscii,converter); - TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, - *charsets,testData, KUtf8NoStringConfidenceLevel ); - - TheTest.Next(_L("No BOM (i.e. BOM in middle of string), valid UTF-8 string.")); - // string is both UTF-8 and ISO 8895-1. - testData = _L8("00000000:\xef\xbb\xbf\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64"); - TestAutodetect1L(*charsets,testData, - KCharacterSetIdentifierIso88591,converter); - TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, - *charsets,testData, KUtf8NoBomMinSuccessConfidenceLevel); - - - //BOM tests - - // This text is both GBK and UTF-8 compliant. As it stands now we search - // the plug-ins first (incl. GBK). So although it may seem counter-intuititve - // it is a correct test. - TheTest.Next(_L("With BOM, UTF-8 and GBK string.")); - testData = _L8("\xef\xbb\xbf\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64"); - TestAutodetect1L(*charsets,testData, - KCharacterSetIdentifierGb18030,converter); - TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, - *charsets,testData, KUtf8BomConfidenceLevel); - - TheTest.Next(_L("With BOM, UTF-8 and GBK string, 4 chars.")); - testData = _L8("\xef\xbb\xbf\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64"); - TestAutodetect1L(*charsets,testData, - KCharacterSetIdentifierGb18030,converter); - TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, - *charsets,testData, KUtf8BomConfidenceLevel); - - TheTest.Next(_L("BOM, valid UTF-8.")); - testData = _L8("\xef\xbb\xbf\x7F\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64"); - TestAutodetect1L(*charsets,testData, - KCharacterSetIdentifierUtf8,converter); - TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, - *charsets,testData, KUtf8BomConfidenceLevel); - - TheTest.Next(_L("BOM, valid UTF-8, 4 chars.")); - testData = _L8("\xef\xbb\xbf\x7F"); - TestAutodetect1L(*charsets,testData, - KCharacterSetIdentifierUtf8,converter); - TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, - *charsets,testData, KUtf8BomConfidenceLevel); - - TheTest.Next(_L("BOM, valid UTF-8, 3 chars.")); - testData = _L8("\xef\xbb\xbf"); - TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, - *charsets,testData, KUtf8BomConfidenceLevel); - - TheTest.Next(_L("BOM, valid UTF-8, 2 chars.")); - testData = _L8("\xef\xbb"); - TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, - *charsets,testData, KUtf8NoBomMinSuccessConfidenceLevel); - - TheTest.Next(_L("BOM, valid UTF-8, 1 char.")); - testData = _L8("\xef"); - TestAutodetect1L(*charsets,testData, - KCharacterSetIdentifierIso88591,converter); - TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, - *charsets,testData, KUtf8NoBomMinSuccessConfidenceLevel); - - TheTest.Next(_L("Invalid BOM, valid UTF-8.")); - testData = _L8("\xfe\xff\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64"); - TestAutodetect1L(*charsets,testData, - KCharacterSetIdentifierUnicodeBig,converter); - TestConvertibleToCharacterWithSpecificResultL(KCharacterSetIdentifierUtf8, - *charsets,testData, KUtf8ConfidenceFailure); - - - CleanupStack::Pop(3); //charsets, converter, fs - delete converter; - delete charsets; - fs.Close(); - - TheTest.End(); - } - - -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0552 -@SYMTestCaseDesc AutoDetection of character tests -@SYMTestPriority Medium -@SYMTestActions Calls up auto detection conversion test functions -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void DoE32MainL() - { - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - const CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - - TheTest.Start(_L("@SYMTestCaseID:SYSLIB-CHARCONV-CT-0552 About to start the AutoDetection\n")); - TheTest.Printf(_L("Embedded Test Tag\n")); - TheTest.Printf(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-307 Tests for CCnvCharacterSetConverter::AutoDetectCharSetL() \n")); - TheTest.Printf(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0548 Test for CCnvCharacterSetConverter::AutoDetectCharacterSetL() \n")); - TheTest.Printf(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0549 Tests for CCnvCharacterSetConverter::ConvertibleToCharacterSetL() function \n")); - TheTest.Printf(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0550 Tests to autodetect a character read from file \n")); - TheTest.Printf(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0551 Tests for conversion of characters read from a file to Unicode \n")); - - TestConvertibleToCharacterL(KCharacterSetIdentifierUtf8,*arrayOfCharacterSetsAvailable,KUTF8,1); - TestConvertibleToCharacterL(KCharacterSetIdentifierAscii,*arrayOfCharacterSetsAvailable,KASCII,1); - TestConvertibleToCharacterL(KCharacterSetIdentifierUnicodeBig,*arrayOfCharacterSetsAvailable,KUnicode,1); - TestConvertibleToCharacterL(KCharacterSetIdentifierUnicodeBig,*arrayOfCharacterSetsAvailable,KUnicode3,1); - TestConvertibleToCharacterL(KCharacterSetIdentifierShiftJis,*arrayOfCharacterSetsAvailable,KSJISPhrase,1); - TestConvertibleToCharacterL(KCharacterSetIdentifierShiftJis,*arrayOfCharacterSetsAvailable,KSJISPhrase,1); - TestConvertibleToCharacterL(KCharacterSetIdentifierGb2312,*arrayOfCharacterSetsAvailable,GB2312B,1); - TestConvertibleToCharacterL(KCharacterSetIdentifierEucJpPacked,*arrayOfCharacterSetsAvailable,KEUC2,1); - TestConvertibleToCharacterL(KCharacterSetIdentifierEucJpPacked,*arrayOfCharacterSetsAvailable,KEUP,1); - - TestConvertibleToCharacterL(KCharacterSetIdentifierIso88591,*arrayOfCharacterSetsAvailable,KSomeISO,1); - TestConvertibleToCharacterL(KCharacterSetIdentifierIso88591,*arrayOfCharacterSetsAvailable,KISODEF,1); - TestConvertibleToCharacterL(KCharacterSetIdentifierCodePage1252,*arrayOfCharacterSetsAvailable,KISODEF,0); - - - TestConvertibleToCharacterL(KCharacterSetIdentifierEucJpPacked,*arrayOfCharacterSetsAvailable,KUTF8,0); - TestConvertibleToCharacterL(KCharacterSetIdentifierHz,*arrayOfCharacterSetsAvailable,KASCII,0); - TestConvertibleToCharacterL(KCharacterSetIdentifierCodePage1252,*arrayOfCharacterSetsAvailable,KUnicode,0); - TestConvertibleToCharacterL(KCharacterSetIdentifierSms7Bit,*arrayOfCharacterSetsAvailable,KUnicode3,0); - TestConvertibleToCharacterL(KCharacterSetIdentifierSms7Bit,*arrayOfCharacterSetsAvailable,KSJISPhrase,0); - TestConvertibleToCharacterL(KCharacterSetIdentifierSms7Bit,*arrayOfCharacterSetsAvailable,KSMS7InvalidEmail,0); - TestConvertibleToCharacterL(KCharacterSetIdentifierSms7Bit,*arrayOfCharacterSetsAvailable,KSMS7ValidEmail,1); - TestConvertibleToCharacterL(KCharacterSetIdentifierIso2022Jp,*arrayOfCharacterSetsAvailable,KSJISPhrase,0); - TestConvertibleToCharacterL(KCharacterSetIdentifierIso2022Jp,*arrayOfCharacterSetsAvailable,GB2312B,0); - TestConvertibleToCharacterL(KCharacterSetIdentifierIso2022Jp,*arrayOfCharacterSetsAvailable,KEUC2,0); - TestConvertibleToCharacterL(KCharacterSetIdentifierIso2022Jp,*arrayOfCharacterSetsAvailable,KEUP,0); - TestConvertibleToCharacterL(KCharacterSetIdentifierEucJpPacked,*arrayOfCharacterSetsAvailable,KSomeISO,0); - TestConvertibleToCharacterL(KCharacterSetIdentifierEucJpPacked,*arrayOfCharacterSetsAvailable,KUnicodeFail,0); - - TestAutodetectL(*arrayOfCharacterSetsAvailable,KEUP,KCharacterSetIdentifierEucJpPacked); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KEUC2,KCharacterSetIdentifierEucJpPacked); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KUnicode,KCharacterSetIdentifierUnicodeLittle); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KUnicode2,KCharacterSetIdentifierUnicodeLittle); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KUnicode3,KCharacterSetIdentifierUnicodeBig); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KSJISPhrase,KCharacterSetIdentifierShiftJis); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KDodgyShiftJIS,KCharacterSetIdentifierShiftJis); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KDodgyShiftJIS2,KCharacterSetIdentifierShiftJis); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KDodgyShiftJIS3,KCharacterSetIdentifierShiftJis); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KBig5,KCharacterSetIdentifierBig5); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KSJIS,KCharacterSetIdentifierShiftJis); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KASCII,KCharacterSetIdentifierAscii); - TestAutodetectL(*arrayOfCharacterSetsAvailable,SJISNET,KCharacterSetIdentifierShiftJis); - TestAutodetectL(*arrayOfCharacterSetsAvailable,BIG5A,KCharacterSetIdentifierBig5); - TestAutodetectL(*arrayOfCharacterSetsAvailable,BIG5C,KCharacterSetIdentifierBig5); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KUTF8,KCharacterSetIdentifierUtf8); - TestAutodetectL(*arrayOfCharacterSetsAvailable,BIG5Corrupt,KCharacterSetIdentifierBig5); - TestAutodetectL(*arrayOfCharacterSetsAvailable,BIG5Ahalf,KCharacterSetIdentifierBig5); - TestAutodetectL(*arrayOfCharacterSetsAvailable,GB2312B,KCharacterSetIdentifierGb18030); - TestAutodetectL(*arrayOfCharacterSetsAvailable,GB2312C,KCharacterSetIdentifierGb18030); - TestAutodetectL(*arrayOfCharacterSetsAvailable,GB2312Corrupt,KCharacterSetIdentifierGb18030); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KISO, KCharacterSetIdentifierIso88591); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KSomeISO, KCharacterSetIdentifierIso88591); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KShortUnicode1,KCharacterSetIdentifierUnicodeLittle); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KShortUnicode2,KCharacterSetIdentifierUnicodeLittle); - - // INC086007 (and PDEF088039) - start - _LIT8(Kexport,"https://espmg002.ext.nokia.com/push/unifi \nhttps://nam.ext.nokia.com/ \n\nhttp://gutenberg.spiegel.de/doyle/napoleon/Druckversion_napoleon.htm\nhttp://gutenberg.spiegel.de/doyle/baskervi/Druckversion_baske-de.htm\n\nhttp://www.heise.de/newsticker/heise.rdf\nhttp://www.teltarif.de/db/news.rss\nhttp://www.linuxdevices.com/backend/headlines10.rdf\nhttp://www.dpreview.com/news/dpr.rdf\nhttp://planet.maemo.org/rss10.xml\nhttp://www.macnews.de/index.php?_mcnpage=71148\nhttp://www.tecchannel.de/news/feed/complete.rss\nhttp://www.n-tv.de/23.rss\nhttp://www.br-online.de/global/export/dynRdf.jsp?channel=\nhttp://www.wdr.de/xml/newsticker.rdf\nhttp://www.tagesschau.de/newsticker.rdf\nhttp://www.n24.de/rss/?rubrik=home\nhttp://www.n24.de/rss/?rubrik=wirtschaft\nhttp://www.n24.de/rss/?rubrik=politik\nhttp://www.welt.de/z/newsticker/ticker_welt.xml\nhttp://www.ftd.de/static/ticker/ftd-topnews.rdf\nhttp://www.ftd.de/static/container/rss/ftd-rss-1200.rdf\nhttp://www.ftd.de/static/container/rss/ftd-rss-200.rdf\nhttp://www.ftd.de/static/container/rss/ftd-rss-300.rdf\nhttp://rss.cnn.com/rss/cnn_world.rss\nhttp://rss.cnn.com/rss/cnn_tech.rss\nhttp://rss.cnn.com/rss/money_topstories.rss\nhttp://rss.cnn.com/rss/cnn_space.rss\nhttp://news.yandex.ru/index.rss\nhttp://news.yandex.ru/world.rss\nhttp://news.yandex.ru/politics.rss\nhttp://news.yandex.ru/science.rss\nhttp://www.jpost.com/servlet/Satellite?pagename=JPost/Page/RSS&cid=1123495333389\n\n\n\n"); - TestAutodetectL(*arrayOfCharacterSetsAvailable, Kexport, KCharacterSetIdentifierAscii); - - // test for DEF089572 - ONB: TAUTODETECT failing on Coverage builds - TBuf8<300> buf; - ReadDesc(buf, KSMS7bitFilename, fileServerSession); - TestAutodetectL(*arrayOfCharacterSetsAvailable, buf, KCharacterSetIdentifierSms7Bit); - - // INC086007 (and PDEF088039) - end - - //test for INC037743 - Charconv recognises Little Endian as Big Endian - - // Fix for DEF063276. - - ReadDesc(buf, KLittleEndianFilename, fileServerSession); - TestAutodetectL(*arrayOfCharacterSetsAvailable,buf, KCharacterSetIdentifierUnicodeLittle); - - ReadDesc(buf, KBigEndianFilename, fileServerSession); - TestAutodetectL(*arrayOfCharacterSetsAvailable,buf, KCharacterSetIdentifierUnicodeBig); - - // End fix - - // tests for INC037581 - SS66 - Long .txt note fails to open in msg centre inbox - TestAutodetectL(*arrayOfCharacterSetsAvailable,KFinnish, KCharacterSetIdentifierIso88591); - TestAutodetectL(*arrayOfCharacterSetsAvailable,KSwedish, KCharacterSetIdentifierIso88591); - - // tests for INC043016 - AV21 via BTH received TXT file could not be opened - TestAutodetectL(*arrayOfCharacterSetsAvailable,KGotcha, KCharacterSetIdentifierAscii); // changed to Ascii from Utf8 as part of INC086007 - - //test for INC037705 read in file and try to autodetect() -#ifdef __WINS__ - TestAutoDetectFromFileL(_L("C:\\test\\data\\finnish.txt"), KCharacterSetIdentifierIso88591); - TestAutoDetectFromFileL(_L("C:\\test\\data\\swedish.txt"), KCharacterSetIdentifierIso88591); -#else - TestAutoDetectFromFileL(_L("Z:\\test\\data\\finnish.txt"), KCharacterSetIdentifierIso88591); - TestAutoDetectFromFileL(_L("Z:\\test\\data\\swedish.txt"), KCharacterSetIdentifierIso88591); -#endif - - - //test for INC037705: read in file and try to convertToUnicode() -#ifdef __WINS__ - TestConvertFromFileL(_L("C:\\test\\data\\finnish.txt"), KCharacterSetIdentifierIso88591); - TestConvertFromFileL(_L("C:\\test\\data\\swedish.txt"), KCharacterSetIdentifierIso88591); -#else - TestConvertFromFileL(_L("Z:\\test\\data\\finnish.txt"), KCharacterSetIdentifierIso88591); - TestConvertFromFileL(_L("Z:\\test\\data\\swedish.txt"), KCharacterSetIdentifierIso88591); -#endif - - TestAutoDetectionPerformanceL(arrayOfCharacterSetsAvailable); - - TestForUtf8BomL(); - - - TheTest.Printf(_L("\n")); - CleanupStack::PopAndDestroy(2); - } - - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tbig5.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tbig5.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TBig5")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0515 -@SYMTestCaseDesc Tests for defect number EDNSHAY-45VJAU -@SYMTestPriority Medium -@SYMTestActions Tests for CCnvCharacterSetConverter::ConvertToUnicode() function -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void DoE32MainL() - { - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0515 Available:\n ")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TInt state=CCnvCharacterSetConverter::KStateDefault; - TheTest.Next(_L("Testing fix for defect number EDNSHAY-45VJAU")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierBig5, *arrayOfCharacterSetsAvailable, fileServerSession); - TBuf16<28> generatedUnicode; - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, _L8("++ ZAC"), state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tbuiltin.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tbuiltin.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,844 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -/** -* Work around for DEF063276. -* This literal is now loaded from a z:\test\data\KOriginalSms7Bit.dat -* Bullseye Coverage corrupts this literal at position \x1b\x30 to \x1b\x37 -* to avoid this literal is stored in a file as to not be touched by Bullseye Coverage. -*/ - -/* -_LIT8(KOriginalSms7Bit, "\ -\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\ -\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a \x1c\x1d\x1e\x1f\ -\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\ -\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\ -\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\ -\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\ -\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\ -\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\ -\x1b\x00\x1b\x01\x1b\x02\x1b\x03\x1b\x04\x1b\x05\x1b\x06\x1b\x07\x1b\x08\x1b\x09\x1b\x0a\x1b\x0b\x1b\x0c\x1b\x0d\x1b\x0e\x1b\x0f\ -\x1b\x10\x1b\x11\x1b\x12\x1b\x13\x1b\x14\x1b\x15\x1b\x16\x1b\x17\x1b\x18\x1b\x19\x1b\x1a\x1b\x1b\x1b\x1c\x1b\x1d\x1b\x1e\x1b\x1f\ -\x1b\x20\x1b\x21\x1b\x22\x1b\x23\x1b\x24\x1b\x25\x1b\x26\x1b\x27\x1b\x28\x1b\x29\x1b\x2a\x1b\x2b\x1b\x2c\x1b\x2d\x1b\x2e\x1b\x2f\ -\x1b\x30\x1b\x31\x1b\x32\x1b\x33\x1b\x34\x1b\x35\x1b\x36\x1b\x37\x1b\x38\x1b\x39\x1b\x3a\x1b\x3b\x1b\x3c\x1b\x3d\x1b\x3e\x1b\x3f\ -\x1b\x40\x1b\x41\x1b\x42\x1b\x43\x1b\x44\x1b\x45\x1b\x46\x1b\x47\x1b\x48\x1b\x49\x1b\x4a\x1b\x4b\x1b\x4c\x1b\x4d\x1b\x4e\x1b\x4f\ -\x1b\x50\x1b\x51\x1b\x52\x1b\x53\x1b\x54\x1b\x55\x1b\x56\x1b\x57\x1b\x58\x1b\x59\x1b\x5a\x1b\x5b\x1b\x5c\x1b\x5d\x1b\x5e\x1b\x5f\ -\x1b\x60\x1b\x61\x1b\x62\x1b\x63\x1b\x64\x1b\x65\x1b\x67\x1b\x67\x1b\x68\x1b\x69\x1b\x6a\x1b\x6b\x1b\x6c\x1b\x6d\x1b\x6e\x1b\x6f\ -\x1b\x70\x1b\x71\x1b\x72\x1b\x73\x1b\x74\x1b\x75\x1b\x76\x1b\x77\x1b\x78\x1b\x79\x1b\x7a\x1b\x7b\x1b\x7c\x1b\x7d\x1b\x7e\x1b\x7f"); -*/ - - -_LIT8(KExpectedSms7Bit, "\ -\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\ -\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a \x1c\x1d\x1e\x1f\ -\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\ -\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\ -\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\ -\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\ -\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\ -\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\ -\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x1b\x0a\x0b\x0c\x0d\x0e\x0f\ -\x10\x11\x12\x13\x1b\x14\x15\x16\x17\x18\x19\x1a\x3f\x1c\x1d\x1e\x1f\ -\x20\x21\x22\x23\x24\x25\x26\x27\x1b\x28\x1b\x29\x2a\x2b\x2c\x2d\x2e\x1b\x2f\ -\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x1b\x3c\x1b\x3d\x1b\x3e\x3f\ -\x1b\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\ -\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\ -\x60\x61\x62\x63\x64\x1b\x65\x67\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\ -\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f"); -_LIT16(KExpectedUnicodeFromSms7Bit, "\ -\x0040\x00a3$\x00a5\x00e8\x00e9\x00f9\x00ec\x00f2\x00e7\x000a\x00d8\x00f8\x000d\x00c5\x00e5\ -\x0394\x005f\x03a6\x0393\x039b\x03a9\x03a0\x03a8\x03a3\x0398\x039e \x00c6\x00e6\x00df\x00c9\ -\x0020!\"#\x00a4%&'()*+,-./0123456789:;<=>?\ -\x00a1\x0041\x0042\x0043\x0044\x0045\x0046GHIJKLMNOPQRSTUVWXYZ\x00c4\x00d6\x00d1\x00dc\x00a7\ -\x00bf\x0061\x0062\x0063\x0064\x0065\x0066ghijklmnopqrstuvwxyz\x00e4\x00f6\x00f1\x00fc\x00e0\ -\x0040\x00a3$\x00a5\x00e8\x00e9\x00f9\x00ec\x00f2\x00c7\x000c\x00d8\x00f8\x000d\x00c5\x00e5\ -\x0394\x005f\x03a6\x0393\x005e\x03a9\x03a0\x03a8\x03a3\x0398\x039e\xfffd\x00c6\x00e6\x00df\x00c9\ -\x0020!\"#\x00a4%&'{}*+,-.\\0123456789:;[~]?\ -|\x0041\x0042\x0043\x0044\x0045\x0046GHIJKLMNOPQRSTUVWXYZ\x00c4\x00d6\x00d1\x00dc\x00a7\ -\x00bf\x0061\x0062\x0063\x0064\x20ac\x0067ghijklmnopqrstuvwxyz\x00e4\x00f6\x00f1\x00fc\x00e0"); - - - -// 1 line of the original defect data from email in unicode - _LIT16(KEmailToConvert, "\ -\x006C\x0069\x006E\x0065\x0020\x0065\x006E\x0064\x0073\x0020\x0069\ -\x006E\x0020\x006A\x0061\x0070\x0061\x006E\x0065\x0073\x0065\x0020\ -\x3075\x3064\x3059\x3057\x306B\x3072\x3080\x000d\x000a"); - - - - // the expected result when converted to ISO2022JP -_LIT8(KExpectedIso2022jp, "\ -\x6C\x69\x6E\x65\x20\x65\x6E\x64\x73\x20\x69\x6E\x20\ -\x6A\x61\x70\x61\x6E\x65\x73\x65\x20\x1B\x24\x42\x24\x55\x24\x44\ -\x24\x39\x24\x37\x24\x4B\x24\x52\x24\x60\x1B\x28\x42\x0D\x0A"); -//\x1B\x28\x4A"); - -// 1 line of the original defect data from email in unicode - _LIT16(KEmailEndingInJapanese, "\ -\x006C\x0069\x006E\x0065\x0020\x0065\x006E\x0064\x0073\x0020\x0069\ -\x006E\x0020\x006A\x0061\x0070\x0061\x006E\x0065\x0073\x0065\x0020\ -\x3075\x3064\x3059\x3057\x306B\x3072\x3080"); - - // the expected result when converted to ISO2022JP -_LIT8(KExpectedEmailEndingInJapanese, "\ -\x6C\x69\x6E\x65\x20\x65\x6E\x64\x73\x20\x69\x6E\x20\ -\x6A\x61\x70\x61\x6E\x65\x73\x65\x20\x1B\x24\x42\x24\x55\x24\x44\ -\x24\x39\x24\x37\x24\x4B\x24\x52\x24\x60\x1B\x28\x42"); - -_LIT(KOriginalSms7BitFile, "z:\\test\\data\\KOriginalSms7Bit.dat"); - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TBuiltin")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -// this is the test plugin implementation ID in rather than KCharacterSetIdentifierShiftJis -const TUint KCharacterSetTestShiftJisKddiau=0x01000001; - -/** -* Utility for DEF063276 fix. -*/ - -static void ReadDesc(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0499 -@SYMTestCaseDesc Tests for conversion of SMS 7 bit data to Unicode, and from Unicode to original data -@SYMTestPriority Medium -@SYMTestActions Tests for CCnvCharacterSetConverter::ConvertToUnicode(),CCnvCharacterSetConverter::ConvertFromUnicode() -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -void TestFix_EDNJJUN_4RWH2A(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession, CArrayFix& aArrayOfCharacterSetsAvailable) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0499 ")); - TBuf16<300> generatedUnicode; - TBuf8<300> generatedSms7Bit; - TRAPD(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, aArrayOfCharacterSetsAvailable, aFileServerSession)); - TEST2(errCode, KErrNone); - TInt state=CCnvCharacterSetConverter::KStateDefault; - - // Fix for DEF063276. - - TBuf8<400> buf; - ReadDesc(buf, KOriginalSms7BitFile, aFileServerSession); - - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, buf, state)==0); - // End fix. - - TEST(generatedUnicode.Length()==259); - TEST(generatedUnicode==KExpectedUnicodeFromSms7Bit); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSms7Bit, generatedUnicode)==0); - TEST(generatedSms7Bit.Length()==269); - TEST(generatedSms7Bit==KExpectedSms7Bit); - } - -/** -Test_DEF049749 test code for DEF049749 - Char convs don t handle correcly Shift JIS emoji - -@SYMTestCaseID SYSLIB-CHARCONV-CT-0500 -@SYMTestCaseDesc Tests for defect number DEF049749 -@SYMTestPriority Medium -@SYMTestActions Tests for conversion from Shift JIS Emoji character set to Unicode - Tests for CCnvCharacterSetConverter::EErrorIllFormedInput error flag -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -void Test_DEF049749(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession, CArrayFix& aArrayOfCharacterSetsAvailable) - { - // original defect data - _LIT8(KCodeToConvert, "\xF8\x9F\xF8\x9F\x81\x40\x3B\x3B\x3B\x3B"); - _LIT16(KExpectedUnicode, "\xFFFD\xFFFD\x3000\x003b\x003b\x003b\x003b"); - TBuf16<300> generatedUnicode; - - // check now able to convert the original defect data - TRAPD(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); - TEST2(errCode, KErrNone); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TInt ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KCodeToConvert, state); - - // in DEF049749 CCnvCharacterSetConverter::EErrorIllFormedInput was incorrectly returned. - // rather than the number of unconverted bytes left, which should be 0 - TEST(ret ==0); - TEST(generatedUnicode==KExpectedUnicode); - - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0500 User-defined ShiftJIS region->FFFD ")); - /* check the user defined region (ref CJKV Ken Lunde page206) - F040-F97E and F080-F9FC */ - TBuf8<300> sampleUserDefined; - for (TInt leadByte = 0xF0; leadByte != 0xF9; leadByte++) - { - // a leadbyte missing the trail byte then another character - sampleUserDefined.Format(_L8("%c\x3F"), leadByte); - _LIT16(KExpectedUnicode4, "\xFFFD\x3F"); - TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); - TEST2(errCode, KErrNone); - ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); - TEST(ret ==0); - TEST(generatedUnicode==KExpectedUnicode4); - - // a single leadbyte missing the trail byte - sampleUserDefined.Format(_L8("%c"), leadByte); - TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); - TEST2(errCode, KErrNone); - ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); - TEST(ret == CCnvCharacterSetConverter::EErrorIllFormedInput); - - // Default version of Shift-JIS converter now contains mappings for ezweb private use - // in range 0xF7BC to 0xF7FC so following tests would fail in this area - JG 30/06/2005 - if ((leadByte < 0xF3) || (leadByte > 0xF7)) - { - for (TInt trailbyte = 0x40; trailbyte != 0xFD; - trailbyte += (trailbyte == 0x7E? 2 : 1)) - { - TInt errCode = KErrNone; - - // emoji character on its own - sampleUserDefined.Format(_L8("%c%c"), leadByte, trailbyte); - _LIT16(KExpectedUnicode1, "\xFFFD"); - TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); - TEST2(errCode, KErrNone); - ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); - TEST(ret ==0); - TEST(generatedUnicode==KExpectedUnicode1); - - // followed by a single character - sampleUserDefined.Format(_L8("%c%cx"), leadByte, trailbyte); - _LIT16(KExpectedUnicode2, "\xFFFDx"); - TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); - TEST2(errCode, KErrNone); - ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); - TEST(ret ==0); - TEST(generatedUnicode==KExpectedUnicode2); - - // preceeded by a single character - sampleUserDefined.Format(_L8("x%c%c"), leadByte, trailbyte); - _LIT16(KExpectedUnicode3, "x\xFFFD"); - TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); - TEST2(errCode, KErrNone); - ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); - TEST(ret ==0); - TEST(generatedUnicode==KExpectedUnicode3); - } - } - } - - TheTest.Next(_L("All double-byte characters convert to single Unicode")); - TText8 LeadBytes[] = { 0x81, 0x9F, 0xE0, 0xEA, 0xEB, 0xF9, 0xFA, 0xFC }; - TText8 TrailBytes[] = { 0x40, 0x7E, 0x80, 0xFC }; - TText8* leadp; - for (leadp = LeadBytes; - leadp != LeadBytes + sizeof(LeadBytes)/sizeof(LeadBytes[0]); - ++leadp) - { - // a single leadbyte missing the trail byte - sampleUserDefined.Format(_L8("%c"), *leadp); - TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); - TEST2(errCode, KErrNone); - ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); - TEST(ret == CCnvCharacterSetConverter::EErrorIllFormedInput); - - // lead byte then illegal trail byte, which is a legal byte on its own - sampleUserDefined.Format(_L8("%c%c"), *leadp, 0x3F); - TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); - TEST2(errCode, KErrNone); - ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); - TEST(ret == 0); - TEST(generatedUnicode == _L16("\xFFFD\x3F")); - - for (TText8* trailp = TrailBytes; - trailp != TrailBytes + sizeof(TrailBytes)/sizeof(TrailBytes[0]); - ++trailp) - { - sampleUserDefined.Format(_L8("%c%c"), *leadp, *trailp); - TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); - TEST2(errCode, KErrNone); - ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); - TEST(ret == 0); - TEST(generatedUnicode.Length() == 1); - } - } - - TheTest.Next(_L("All single-byte characters convert to single Unicode")); - TText8 SingleBytes[] = { 0, 0x7F, 0x80, 0xA0, 0xA1, 0xFD, 0xFE, 0xFF }; - for (TText8* singlep = SingleBytes; - singlep != SingleBytes + sizeof(SingleBytes)/sizeof(SingleBytes[0]); - ++singlep) - { - // a single leadbyte missing the trail byte - sampleUserDefined.Format(_L8("%c"), *singlep); - TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); - TEST2(errCode, KErrNone); - ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); - TEST(ret == 0); - TEST(generatedUnicode.Length() == 1); - } - - TheTest.Next(_L("Valid lead byte + invalid trail byte -> FFFD + something")); - TText8 NotTrailBytes[] = { 0x3F, 0x7F, 0xFD, 0xFE, 0xFF }; - for (leadp = LeadBytes; - leadp != LeadBytes + sizeof(LeadBytes)/sizeof(LeadBytes[0]); - ++leadp) - { - for (TText8* trailp = NotTrailBytes; - trailp != NotTrailBytes + sizeof(NotTrailBytes)/sizeof(NotTrailBytes[0]); - ++trailp) - { - sampleUserDefined.Format(_L8("%c%c"), *leadp, *trailp); - TRAP(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aArrayOfCharacterSetsAvailable, aFileServerSession)); - TEST2(errCode, KErrNone); - ret = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, sampleUserDefined, state); - TEST(ret == 0); - TEST(generatedUnicode.Length() == 2); - TEST(generatedUnicode[0] == 0xFFFD); - } - } - } - -/** -Test_DEF053900 test code for DEF053900 - Problems encoding Japanese emails to ISO-2022-JP - -@SYMTestCaseID SYSLIB-CHARCONV-CT-1306 -@SYMTestCaseDesc Tests for defect number DEF053900 -@SYMTestPriority Medium -@SYMTestActions Attempt for converting from Japanese character set email to Unicode. -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -void Test_DEF053900(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession, CArrayFix& aArrayOfCharacterSetsAvailable) - { - // check now able to convert the original defect data - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-1306 ")); - TBuf8<300> generatedIso2022; - TRAPD(errCode, aCharacterSetConverter.PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022Jp, aArrayOfCharacterSetsAvailable, aFileServerSession)); - TEST2(errCode, KErrNone); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TInt ret = aCharacterSetConverter.ConvertFromUnicode(generatedIso2022, KEmailToConvert, state); - // check the converted data is as expected - TEST(ret ==0); - TEST(generatedIso2022==KExpectedIso2022jp); - ret = aCharacterSetConverter.ConvertFromUnicode(generatedIso2022, KEmailEndingInJapanese, state); - TEST(ret ==0); - TEST(generatedIso2022==KExpectedEmailEndingInJapanese); -} - -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0501 -@SYMTestCaseDesc Tests for CCnvCharacterSetConverter class -@SYMTestPriority Medium -@SYMTestActions Tests for conversion from empty descriptors to different character sets -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void DoE32MainL() - { - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TBuf16<128> originalUnicode; - TBuf8<128> generatedForeign; - TBuf16<128> generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - TUint characterCode; - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0501 Testing empty descriptors (Code Page 1252) ")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierCodePage1252, *arrayOfCharacterSetsAvailable, fileServerSession); - originalUnicode=KNullDesC16; - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==KNullDesC8); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("Testing empty descriptors (ISO-8859-1)")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso88591, *arrayOfCharacterSetsAvailable, fileServerSession); - originalUnicode=KNullDesC16; - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==KNullDesC8); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("Testing empty descriptors (ASCII)")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierAscii, *arrayOfCharacterSetsAvailable, fileServerSession); - originalUnicode=KNullDesC16; - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==KNullDesC8); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("Testing empty descriptors (SMS 7-bit)")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, *arrayOfCharacterSetsAvailable, fileServerSession); - originalUnicode=KNullDesC16; - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==KNullDesC8); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("Testing exhaustive single-character Code Page 1252 round trips")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierCodePage1252, *arrayOfCharacterSetsAvailable, fileServerSession); - for (characterCode=0x00; characterCode<=0x7f; ++characterCode) - { - originalUnicode.Format(_L16("%c"), characterCode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TBuf8<1> expectedForeign; - expectedForeign.Format(_L8("%c"), characterCode); - TEST(generatedForeign==expectedForeign); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - } - originalUnicode.Format(_L16("%c"), 0x20ac); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x80")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x201a); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x82")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x0192); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x83")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x201e); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x84")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x2026); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x85")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x2020); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x86")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x2021); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x87")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x02c6); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x88")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x2030); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x89")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x0160); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x8a")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x2039); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x8b")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x0152); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x8c")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x017d); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x8e")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x017e); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x9e")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x2018); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x91")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x2019); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x92")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x201c); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x93")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x201d); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x94")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x2022); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x95")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x2013); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x96")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x2014); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x97")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x02dc); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x98")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x2122); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x99")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x0161); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x9a")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x203a); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x9b")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x0153); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x9c")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - originalUnicode.Format(_L16("%c"), 0x0178); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x9f")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - for (characterCode=0xa0; characterCode<0xff; ++characterCode) - { - originalUnicode.Format(_L16("%c"), characterCode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TBuf8<1> expectedForeign; - expectedForeign.Format(_L8("%c"), characterCode); - TEST(generatedForeign==expectedForeign); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - } - TheTest.Next(_L("Testing exhaustive single-character ISO-8859-1 round trips")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso88591, *arrayOfCharacterSetsAvailable, fileServerSession); - for (characterCode=0x00; characterCode<=0xff; ++characterCode) - { - const TBool unconvertibleCharacter=(characterCode==0x80); - TInt numberOfUnconvertibleCharacters; - TInt indexOfFirstUnconvertibleCharacter; - originalUnicode.Format(_L16("%c"), characterCode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter)==0); - if (characterCode != 0x80) - TEST(numberOfUnconvertibleCharacters==(unconvertibleCharacter? 1: 0)); - if (numberOfUnconvertibleCharacters>0) - { - TEST(indexOfFirstUnconvertibleCharacter==0); - } - TBuf8<1> expectedForeign; - expectedForeign.Format(_L8("%c"), unconvertibleCharacter? 0x1a: characterCode); - TEST(generatedForeign==expectedForeign); - TBuf8<1> originalForeign; - originalForeign.Format(_L8("%c"), characterCode); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - if (characterCode != 0x80) - TEST(numberOfUnconvertibleCharacters==(unconvertibleCharacter? 1: 0)); - if (numberOfUnconvertibleCharacters>0) - { - TEST(indexOfFirstUnconvertibleCharacter==0); - } - if (unconvertibleCharacter) - { - TEST(generatedUnicode.Length()==1); - if (characterCode==0x80) - TEST(generatedUnicode[0]==0x20ac); - else - TEST(generatedUnicode[0]==0xfffd); - } - else - { - TEST(generatedUnicode==originalUnicode); - } - } - TheTest.Next(_L("Testing exhaustive single-character ASCII round trips")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierAscii, *arrayOfCharacterSetsAvailable, fileServerSession); - for (characterCode=0x00; characterCode<=0xff; ++characterCode) - { - const TBool unconvertibleCharacter=(characterCode>=0x80); - TInt numberOfUnconvertibleCharacters; - originalUnicode.Format(_L16("%c"), characterCode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters)==0); - TEST(numberOfUnconvertibleCharacters==(unconvertibleCharacter? 1: 0)); - TBuf8<1> expectedForeign; - expectedForeign.Format(_L8("%c"), unconvertibleCharacter? 0x1a: characterCode); - TEST(generatedForeign==expectedForeign); - TBuf8<1> originalForeign; - originalForeign.Format(_L8("%c"), characterCode); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state, numberOfUnconvertibleCharacters)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(numberOfUnconvertibleCharacters==(unconvertibleCharacter? 1: 0)); - if (unconvertibleCharacter) - { - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0xfffd); - } - else - { - TEST(generatedUnicode==originalUnicode); - } - } - TheTest.Next(_L("Testing exhaustive SMS 7-bit round trip (default table)")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, fileServerSession); - originalUnicode.SetLength(0); - const TPtrC16 formatOfSixteenCharacters=_L16("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"); - originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x0040, 0x00a3, 0x0024, 0x00a5, 0x00e8, 0x00e9, 0x00f9, 0x00ec, 0x00f2, 0x00e7, 0x000a, 0x00d8, 0x00f8, 0x000d, 0x00c5, 0x00e5); - originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x0394, 0x005f, 0x03a6, 0x0393, 0x039b, 0x03a9, 0x03a0, 0x03a8, 0x03a3, 0x0398, 0x039e, '!', 0x00c6, 0x00e6, 0x00df, 0x00c9); - originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x0020, 0x0021, 0x0022, 0x0023, 0x00a4, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f); - originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003a, 0x003b, 0x003c, 0x003d, 0x003e, 0x003f); - originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x00a1, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f); - originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x00c4, 0x00d6, 0x00d1, 0x00dc, 0x00a7); - originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x00bf, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c, 0x006d, 0x006e, 0x006f); - originalUnicode.AppendFormat(formatOfSixteenCharacters, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x00e4, 0x00f6, 0x00f1, 0x00fc, 0x00e0); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign.Length()==0x80); - for (characterCode=0x00; characterCode<0x80; ++characterCode) - { - TEST(generatedForeign[characterCode]==(characterCode==0x1b)? '!': characterCode); - } - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("Testing Greek range of SMS 7-bit")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, *arrayOfCharacterSetsAvailable, fileServerSession); - TBuf16<16> expectedUnicode; - originalUnicode.Format(formatOfSixteenCharacters.Left(7*2), 0x0386, 0x0388, 0x0389, 0x038a, 0x038c, 0x038e, 0x038f); - expectedUnicode.Format(formatOfSixteenCharacters.Left(7*2), 0x0041, 0x0045, 0x0048, 0x0049, 0x004f, 0x0059, 0x03a9); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x41\x45\x48\x49\x4f\x59\x15")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==expectedUnicode); - originalUnicode.Format(formatOfSixteenCharacters, 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f); - expectedUnicode.Format(formatOfSixteenCharacters, 0x0049, 0x0041, 0x0042, 0x0393, 0x0394, 0x0045, 0x005a, 0x0048, 0x0398, 0x0049, 0x004b, 0x039b, 0x004d, 0x004e, 0x039e, 0x004f); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x49\x41\x42\x13\x10\x45\x5a\x48\x19\x49\x4b\x14\x4d\x4e\x1a\x4f")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==expectedUnicode); - originalUnicode.Format(formatOfSixteenCharacters.Left(15*2), 0x03a0, 0x03a1, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x03ac, 0x03ad, 0x03ae, 0x03af); - expectedUnicode.Format(formatOfSixteenCharacters.Left(15*2), 0x03a0, 0x0050, 0x03a3, 0x0054, 0x0059, 0x03a6, 0x0058, 0x03a8, 0x03a9, 0x0049, 0x0059, 0x0041, 0x0045, 0x0048, 0x0049); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x16\x50\x18\x54\x59\x12\x58\x17\x15\x49\x59\x41\x45\x48\x49")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==expectedUnicode); - originalUnicode.Format(formatOfSixteenCharacters, 0x03b0, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf); - expectedUnicode.Format(formatOfSixteenCharacters, 0x0059, 0x0041, 0x0042, 0x0393, 0x0394, 0x0045, 0x005a, 0x0048, 0x0398, 0x0049, 0x004b, 0x039b, 0x004d, 0x004e, 0x039e, 0x004f); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x59\x41\x42\x13\x10\x45\x5a\x48\x19\x49\x4b\x14\x4d\x4e\x1a\x4f")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==expectedUnicode); - originalUnicode.Format(formatOfSixteenCharacters.Left(15*2), 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, 0x03c8, 0x03c9, 0x03ca, 0x03cb, 0x03cc, 0x03cd, 0x03ce); - expectedUnicode.Format(formatOfSixteenCharacters.Left(15*2), 0x03a0, 0x0050, 0x03a3, 0x03a3, 0x0054, 0x0059, 0x03a6, 0x0058, 0x03a8, 0x03a9, 0x0049, 0x0059, 0x004f, 0x0059, 0x03a9); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x16\x50\x18\x18\x54\x59\x12\x58\x17\x15\x49\x59\x4f\x59\x15")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==expectedUnicode); - originalUnicode.Format(formatOfSixteenCharacters.Left(6*2), 0x03d0, 0x03d1, 0x03d2, 0x03d3, 0x03d4, 0x03d5); - expectedUnicode.Format(formatOfSixteenCharacters.Left(6*2), 0x0042, 0x0398, 0x0059, 0x0059, 0x0059, 0x03a6); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x42\x19\x59\x59\x59\x12")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==expectedUnicode); - { - TheTest.Next(_L("Testing converting from Internet-standard names to UIDs")); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("US-ASCII"), fileServerSession)==KCharacterSetIdentifierAscii); - HBufC8* standardName=characterSetConverter->ConvertCharacterSetIdentifierToStandardNameL(KCharacterSetIdentifierAscii, fileServerSession); - TEST(*standardName==_L8("US-ASCII")); - delete standardName; - } - { - TheTest.Next(_L("Testing fix for defect EDNEMUA-4KGFEY in \"Symbian Defect Tracking v3.0\"")); - CCnvCharacterSetConverter* characterSetConverter2=CCnvCharacterSetConverter::NewLC(); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, *arrayOfCharacterSetsAvailable, fileServerSession); - characterSetConverter2->PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, *arrayOfCharacterSetsAvailable, fileServerSession); - characterSetConverter2->SetDowngradeForExoticLineTerminatingCharacters(CCnvCharacterSetConverter::EDowngradeExoticLineTerminatingCharactersToJustLineFeed); - originalUnicode.Format(_L16("Line1%cLine2%cLine3\x0aLine4\x0d\x0a"), 0x2029, 0x2028); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("Line1\x0d\x0aLine2\x0d\x0aLine3\x0aLine4\x0d\x0a")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==_L16("Line1\x0d\x0aLine2\x0d\x0aLine3\x0aLine4\x0d\x0a")); - TEST(characterSetConverter2->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==_L16("Line1\x0d\x0aLine2\x0d\x0aLine3\x0aLine4\x0d\x0a")); - TEST(characterSetConverter2->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("Line1\x0aLine2\x0aLine3\x0aLine4\x0d\x0a")); - TEST(characterSetConverter2->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==_L16("Line1\x0aLine2\x0aLine3\x0aLine4\x0d\x0a")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==_L16("Line1\x0aLine2\x0aLine3\x0aLine4\x0d\x0a")); - CleanupStack::PopAndDestroy(); // characterSetConverter2 - } - { - TheTest.Next(_L("Testing fix for defect EDNPSTN-4L5K2G in \"Symbian Defect Tracking v3.0\" (i.e. the extension table)")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierSms7Bit, *arrayOfCharacterSetsAvailable, fileServerSession); - originalUnicode.Format(_L16("%c^{}\\abc[~]|%c"), 0x000c, 0x20ac); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x1b\x0a\x1b\x14\x1b\x28\x1b\x29\x1b\x2f""abc\x1b\x3c\x1b\x3d\x1b\x3e\x1b\x40\x1b\x65")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - } - { - TheTest.Next(_L("Testing fix for defect EDNJJUN-4RWH2A in \"Symbian Defect Tracking v3.0\" (SMS 7-bit [0x1b, 0x41] should be converted to 0x0041, etc.)")); - TestFix_EDNJJUN_4RWH2A(*characterSetConverter, fileServerSession, *arrayOfCharacterSetsAvailable); - } - - // - TheTest.Next(_L("Testing fix for defect DEF049749")); - Test_DEF049749(*characterSetConverter, fileServerSession, *arrayOfCharacterSetsAvailable); - - TheTest.Next(_L("Testing fix for defect DEF053900")); - Test_DEF053900(*characterSetConverter, fileServerSession, *arrayOfCharacterSetsAvailable); - - CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tcp949.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tcp949.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,163 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -// Local Functions -/////////////////////////////////////////////////////////////////////////////////////// -/* -Below four plugins all use cp949table.dll, and first three are same converter. -cp949 (code page 949) 0x200100FF -ksc5601 (Korean) 0x200113CD -EUCKR (EUC-KR) 0x2000E526 -iso2022kr (Korean) 0x20010101 - */ -RTest TheTest(_L("TestCP949")); - - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -const TInt KBufferLength=100; - -LOCAL_C void TestConversionToUnicodeFromCP949(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalCP949, TInt aExpectedResult = 0) - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalCP949, state); - TEST(returnValue == aExpectedResult ); - TEST(generatedUnicode==aExpectedUnicode); - } - -LOCAL_C void TestConversionFromUnicodeToCP949(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, const TDesC8& aExpectedCP949, TInt aExpectedResult = 0) - { - TBuf8 generatedCP949; - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedCP949, aOriginalUnicode); - TEST(returnValue == aExpectedResult); - TEST(generatedCP949==aExpectedCP949); - } - -LOCAL_C void TestConversion( CCnvCharacterSetConverter& aCharacterSetConverter ) -{ - TestConversionFromUnicodeToCP949(aCharacterSetConverter, _L16("\x0079"), _L8("\x79")); - TestConversionToUnicodeFromCP949(aCharacterSetConverter, _L16("\x0079"), _L8("\x79")); - - TestConversionFromUnicodeToCP949(aCharacterSetConverter, _L16("\xAC02"), _L8("\x81\x41")); - TestConversionToUnicodeFromCP949(aCharacterSetConverter, _L16("\xAC02"), _L8("\x81\x41")); -} - -LOCAL_C void TestConversionIso2022kr( CCnvCharacterSetConverter& aCharacterSetConverter ) -{ - TestConversionFromUnicodeToCP949(aCharacterSetConverter, _L16("\x0079"), _L8("\x1b\x24\x43\x0f\x79")); - TestConversionToUnicodeFromCP949(aCharacterSetConverter, _L16("\x0079"), _L8("\x1b\x24\x43\x0f\x79")); - - TestConversionFromUnicodeToCP949(aCharacterSetConverter, _L16("\xc7b8"), _L8("\x1b\x24\x43\x0e\x20\x0f\x41")); - TestConversionToUnicodeFromCP949(aCharacterSetConverter, _L16("\xc7b8\x0079"), _L8("\x1b\x24\x43\x0f\xa0\x41\x79")); - - TestConversionFromUnicodeToCP949(aCharacterSetConverter, _L16("\xAC02"), _L8("\x1b\x24\x43\x0f\x81\x41")); - TestConversionToUnicodeFromCP949(aCharacterSetConverter, _L16("\xAC02"), _L8("\x1b\x24\x43\x0f\x81\x41")); -} - -LOCAL_C void DoE32MainL() - { - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - CArrayFix* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - - TheTest.Start(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - TheTest.Next(_L("Testing CP949")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierCP949, *arrayOfCharacterSetsAvailable, fileServerSession); - TestConversion( *characterSetConverter ); - - TheTest.Next(_L("Testing ksc5601")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierKsc5601, *arrayOfCharacterSetsAvailable, fileServerSession); - TestConversion( *characterSetConverter ); - - TheTest.Next(_L("Testing EUCKR")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierEUCKR, *arrayOfCharacterSetsAvailable, fileServerSession); - TestConversion( *characterSetConverter ); - - TheTest.Next(_L("Testing Iso2022kr")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022kr, *arrayOfCharacterSetsAvailable, fileServerSession); - TestConversionIso2022kr( *characterSetConverter ); - - CleanupStack::PopAndDestroy(3); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/test_multi_plugins.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/test_multi_plugins.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,114 +0,0 @@ -/* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* Test to verify that a single charconv plugin with mulitple implementations -* can be built. -* -*/ - - -#include -#include -#include -#include -#include -#include "tis1620.h" - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("test multi plugins")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -/** -@SYMTestCaseID SYSLIB-CharConv-UT-1882 -@SYMTestCaseDesc Verify a charconv plugin with multiple implementations can be built. -@SYMTestPriority Normal -@SYMTestActions Load the two implementations in tis1620.dll which is -a charconv plugin that has two implementations. -@SYMTestExpectedResults Both implementations loaded successfully. -@SYMDEF DEF088036 -*/ -LOCAL_C void DoE32MainL() - { - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-1882 test DEF088036 started.\r\n ")); - CActiveScheduler* scheduler = new(ELeave) CActiveScheduler; - CleanupStack::PushL(scheduler); - CActiveScheduler::Install(scheduler); - - // load 2nd plug in - - TUid ImpId2={KTIS1620bImplUid}; - - CCharacterSetConverterPluginInterface* ex = - CCharacterSetConverterPluginInterface::NewL(ImpId2); - TEST(ex != NULL); - delete ex; - ex = NULL; - - // load 1st plugin - TUid ImpId1={KTIS1620aImplUid}; - ex = CCharacterSetConverterPluginInterface::NewL(ImpId1); - TEST(ex != NULL); - delete ex; - - REComSession::FinalClose(); - - CleanupStack::PopAndDestroy(scheduler); - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/teucjp_packed.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/teucjp_packed.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,331 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TEUCJP_PACKED")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// - - -const TInt KBufferLength=100; -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0535 -@SYMTestCaseDesc Tests for truncated conversion from Unicode to EucJpPacked -@SYMTestPriority Medium -@SYMTestActions Tests for truncated conversion from Unicode to EucJpPacked and back to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionFromUnicodeToEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0535 ")); - for (TInt i=aOriginalUnicode.Length(); i>=0; --i) - { - TBuf8 generatedEucJpPacked; - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedEucJpPacked, aOriginalUnicode.Left(i)); - TEST(returnValue>=0); - TBuf8 generatedsecondPartOfEucJpPacked; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfEucJpPacked, aOriginalUnicode.Mid(i-returnValue))==0); - generatedEucJpPacked.Append(generatedsecondPartOfEucJpPacked); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedEucJpPacked, state)==0); - TEST(generatedUnicode==aOriginalUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0536 -@SYMTestCaseDesc Splitting and converting from Unicode to EucJpPacked test -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting, from Unicode to EucJpPacked and back to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingFromUnicodeToEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfEucJpPacked, const TDesC8& aExpectedEucJpPacked, const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0536 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint8 eucJpPackedBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr8 generatedFirstPartOfEucJpPacked(eucJpPackedBuffer, i); - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfEucJpPacked, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); - TEST(generatedFirstPartOfEucJpPacked==aExpectedEucJpPacked.Left(aExpectedLengthOfFirstPartOfEucJpPacked)); - TBuf8 generatedSecondPartOfEucJpPacked; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfEucJpPacked, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); - TEST(generatedSecondPartOfEucJpPacked==aExpectedEucJpPacked.Mid(aExpectedLengthOfFirstPartOfEucJpPacked)); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfEucJpPacked, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfEucJpPacked, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - generatedUnicode.Append(generatedSecondPartOfUnicode); - TEST(generatedUnicode==aOriginalUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0537 -@SYMTestCaseDesc Tests for truncated conversion from EucJpPacked to Unicode -@SYMTestPriority Medium -@SYMTestActions Tests for truncated conversion from EucJpPacked to Unicode and back to EucJpPacked -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionToUnicodeFromEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpPacked) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0537 ")); - for (TInt i=aOriginalEucJpPacked.Length(); i>=3; --i) // 3 is the length of GBK's longest multi-byte characters - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalEucJpPacked.Left(i), state); - TEST(returnValue>=0); - TBuf16 generatedsecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalEucJpPacked.Mid(i-returnValue), state)==0); - generatedUnicode.Append(generatedsecondPartOfUnicode); - TEST(generatedUnicode==aExpectedUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0538 -@SYMTestCaseDesc Splitting and converting from EucJpPacked to Unicode test -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting, from EucJpPacked to Unicode and back to EucJpPacked -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingToUnicodeFromEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfEucJpPackedBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpPacked) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0538 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint16 unicodeBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalEucJpPacked, state)==aExpectedNumberOfEucJpPackedBytesNotConvertedAtSplit); - TEST(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalEucJpPacked.Right(aExpectedNumberOfEucJpPackedBytesNotConvertedAtSplit), state)==0); - TEST(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf8 generatedEucJpPacked; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedEucJpPacked, generatedFirstPartOfUnicode)==0); - TBuf8 generatedSecondPartOfEucJpPacked; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfEucJpPacked, generatedSecondPartOfUnicode)==0); - generatedEucJpPacked.Append(generatedSecondPartOfEucJpPacked); - TEST(generatedEucJpPacked==aOriginalEucJpPacked); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0539 -@SYMTestCaseDesc Conversion of bad EucJpPacked format to Unicode test -@SYMTestPriority Medium -@SYMTestActions Tests to convert Ill formed EucJpPacked input to Unicode. -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestIsIllFormedEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aEucJpPacked) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0539 ")); - TBuf16<50> generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - TPtrC8 remainderOfEucJpPacked(aEucJpPacked); - TInt lastReturnValue=KMaxTInt; - FOREVER - { - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfEucJpPacked, state); - if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) - { - break; - } - TEST(returnValue>0); - TEST(returnValue* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - TInt i; - for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0540 Testing EUC-JP (packed) conversions ")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierEucJpPacked, *arrayOfCharacterSetsAvailable, fileServerSession); - // - TheTest.Next(_L("Empty descriptor")); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 0, 10, 0, 0, KNullDesC8, KNullDesC16); - TestSplittingConvertingToUnicodeFromEucJpPacked(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); - TheTest.Next(_L("Testing converting to EUC-JP (packed)")); - TBuf16<50> originalUnicode; - originalUnicode.Format(_L16("Some %c%c%c%c%c%c"), 0xff9a, 0xff70, 0x6f22, 0x5b57, 0x5379, 0x5dce); - const TPtrC8 expectedEucJpPacked(_S8("Some \x8e\xda\x8e\xb0\xb4\xc1\xbb\xfa\x8f\xb4\xc1\x8f\xbb\xfa")); - TestTruncatedConversionFromUnicodeToEucJpPacked(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 0, 0, 11, 0, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 1, 1, 10, 1, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 2, 2, 9, 2, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 3, 3, 8, 3, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 4, 4, 7, 4, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 5, 6, 6, 5, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 7, 8, 5, 7, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 9, 10, 4, 9, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 11, 12, 3, 11, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 13, 15, 2, 13, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 16, 18, 1, 16, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 19, 30, 0, 19, expectedEucJpPacked, originalUnicode); - TheTest.Next(_L("Testing converting to Unicode")); - const TPtrC8 originalEucJpPacked(_S8("pool\xbe\xae\xc3\xd3\x8e\xcc\x8e\xdf\x8e\xd9\x8f\xc0\xcd\x8f\xc8\xc5pool\x8e\xcc\x8e\xdf\x8e\xd9\xbe\xae\xc3\xd3\x8f\xc0\xcd\x8f\xc8\xc5\xbe\xae\xc3\xd3pool\x8f\xc0\xcd\x8f\xc8\xc5\x8e\xcc\x8e\xdf\x8e\xd9pool")); - TBuf16<50> expectedUnicode; - expectedUnicode.Format(_L16("pool%c%c%c%c%c%c%cpool%c%c%c%c%c%c%c%c%cpool%c%c%c%c%cpool"), 0x5c0f, 0x6c60, 0xff8c, 0xff9f, 0xff99, 0x641e, 0x6f0d, 0xff8c, 0xff9f, 0xff99, 0x5c0f, 0x6c60, 0x641e, 0x6f0d, 0x5c0f, 0x6c60, 0x641e, 0x6f0d, 0xff8c, 0xff9f, 0xff99); - TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode, originalEucJpPacked); - TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode.Mid(4, 2), originalEucJpPacked.Mid(4, 4)); - TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode.Mid(6, 3), originalEucJpPacked.Mid(8, 6)); - TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode.Mid(9, 2), originalEucJpPacked.Mid(14, 6)); - static const TInt numberOfCharactersInEachHomogeneousRun[13]={4, 2, 3, 2, 4, 3, 2, 2, 2, 4, 2, 3, 4}; - static const TInt numberOfBytesPerCharacterInEachHomogeneousRun[13]={1, 2, 2, 3, 1, 2, 2, 3, 2, 1, 3, 2, 1}; - TInt e=64; - TInt u=0; - for (i=0; i<13; ++i) - { - TInt j; - for (j=0; j -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TEUCJP_PACKED_2")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -// this is the test plug implementation ID in rather than KCharacterSetIdentifierEucJpPacked -const TUint KCharacterSetTestEucjpPacked_2=0x01000005; - -const TInt KBufferLength=100; -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0535 -@SYMTestCaseDesc Tests for truncated conversion from Unicode to EucJpPacked -@SYMTestPriority Medium -@SYMTestActions Tests for truncated conversion from Unicode to EucJpPacked and back to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionFromUnicodeToEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0535 ")); - for (TInt i=aOriginalUnicode.Length(); i>=0; --i) - { - TBuf8 generatedEucJpPacked; - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedEucJpPacked, aOriginalUnicode.Left(i)); - TEST(returnValue>=0); - TBuf8 generatedsecondPartOfEucJpPacked; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfEucJpPacked, aOriginalUnicode.Mid(i-returnValue))==0); - generatedEucJpPacked.Append(generatedsecondPartOfEucJpPacked); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedEucJpPacked, state)==0); - TEST(generatedUnicode==aOriginalUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0536 -@SYMTestCaseDesc Splitting and converting from Unicode to EucJpPacked test -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting, from Unicode to EucJpPacked and back to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingFromUnicodeToEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfEucJpPacked, const TDesC8& aExpectedEucJpPacked, const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0536 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint8 eucJpPackedBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr8 generatedFirstPartOfEucJpPacked(eucJpPackedBuffer, i); - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfEucJpPacked, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); - TEST(generatedFirstPartOfEucJpPacked==aExpectedEucJpPacked.Left(aExpectedLengthOfFirstPartOfEucJpPacked)); - TBuf8 generatedSecondPartOfEucJpPacked; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfEucJpPacked, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); - TEST(generatedSecondPartOfEucJpPacked==aExpectedEucJpPacked.Mid(aExpectedLengthOfFirstPartOfEucJpPacked)); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfEucJpPacked, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfEucJpPacked, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - generatedUnicode.Append(generatedSecondPartOfUnicode); - TEST(generatedUnicode==aOriginalUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0537 -@SYMTestCaseDesc Tests for truncated conversion from EucJpPacked to Unicode -@SYMTestPriority Medium -@SYMTestActions Tests for truncated conversion from EucJpPacked to Unicode and back to EucJpPacked -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionToUnicodeFromEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpPacked) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0537 ")); - for (TInt i=aOriginalEucJpPacked.Length(); i>=3; --i) // 3 is the length of GBK's longest multi-byte characters - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalEucJpPacked.Left(i), state); - TEST(returnValue>=0); - TBuf16 generatedsecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalEucJpPacked.Mid(i-returnValue), state)==0); - generatedUnicode.Append(generatedsecondPartOfUnicode); - TEST(generatedUnicode==aExpectedUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0538 -@SYMTestCaseDesc Splitting and converting from EucJpPacked to Unicode test -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting, from EucJpPacked to Unicode and back to EucJpPacked -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingToUnicodeFromEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfEucJpPackedBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpPacked) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0538 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint16 unicodeBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalEucJpPacked, state)==aExpectedNumberOfEucJpPackedBytesNotConvertedAtSplit); - TEST(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalEucJpPacked.Right(aExpectedNumberOfEucJpPackedBytesNotConvertedAtSplit), state)==0); - TEST(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf8 generatedEucJpPacked; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedEucJpPacked, generatedFirstPartOfUnicode)==0); - TBuf8 generatedSecondPartOfEucJpPacked; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfEucJpPacked, generatedSecondPartOfUnicode)==0); - generatedEucJpPacked.Append(generatedSecondPartOfEucJpPacked); - TEST(generatedEucJpPacked==aOriginalEucJpPacked); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0539 -@SYMTestCaseDesc Conversion of bad EucJpPacked format to Unicode test -@SYMTestPriority Medium -@SYMTestActions Tests to convert Ill formed EucJpPacked input to Unicode. -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestIsIllFormedEucJpPacked(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aEucJpPacked) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0539 ")); - TBuf16<50> generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - TPtrC8 remainderOfEucJpPacked(aEucJpPacked); - TInt lastReturnValue=KMaxTInt; - FOREVER - { - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfEucJpPacked, state); - if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) - { - break; - } - TEST(returnValue>0); - TEST(returnValue* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - TInt i; - for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0540 Testing EUC-JP (packed) conversions ")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetTestEucjpPacked_2, *arrayOfCharacterSetsAvailable, fileServerSession); - // - TheTest.Next(_L("Empty descriptor")); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 0, 10, 0, 0, KNullDesC8, KNullDesC16); - TestSplittingConvertingToUnicodeFromEucJpPacked(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); - TheTest.Next(_L("Testing converting to EUC-JP (packed)")); - TBuf16<50> originalUnicode; - originalUnicode.Format(_L16("Some %c%c%c%c%c%c"), 0xff9a, 0xff70, 0x6f22, 0x5b57, 0x5379, 0x5dce); - const TPtrC8 expectedEucJpPacked(_S8("Some \x8e\xda\x8e\xb0\xb4\xc1\xbb\xfa\x8f\xb4\xc1\x8f\xbb\xfa")); - TestTruncatedConversionFromUnicodeToEucJpPacked(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 0, 0, 11, 0, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 1, 1, 10, 1, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 2, 2, 9, 2, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 3, 3, 8, 3, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 4, 4, 7, 4, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 5, 6, 6, 5, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 7, 8, 5, 7, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 9, 10, 4, 9, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 11, 12, 3, 11, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 13, 15, 2, 13, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 16, 18, 1, 16, expectedEucJpPacked, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpPacked(*characterSetConverter, 19, 30, 0, 19, expectedEucJpPacked, originalUnicode); - TheTest.Next(_L("Testing converting to Unicode")); - const TPtrC8 originalEucJpPacked(_S8("pool\xbe\xae\xc3\xd3\x8e\xcc\x8e\xdf\x8e\xd9\x8f\xc0\xcd\x8f\xc8\xc5pool\x8e\xcc\x8e\xdf\x8e\xd9\xbe\xae\xc3\xd3\x8f\xc0\xcd\x8f\xc8\xc5\xbe\xae\xc3\xd3pool\x8f\xc0\xcd\x8f\xc8\xc5\x8e\xcc\x8e\xdf\x8e\xd9pool")); - TBuf16<50> expectedUnicode; - expectedUnicode.Format(_L16("pool%c%c%c%c%c%c%cpool%c%c%c%c%c%c%c%c%cpool%c%c%c%c%cpool"), 0x5c0f, 0x6c60, 0xff8c, 0xff9f, 0xff99, 0x641e, 0x6f0d, 0xff8c, 0xff9f, 0xff99, 0x5c0f, 0x6c60, 0x641e, 0x6f0d, 0x5c0f, 0x6c60, 0x641e, 0x6f0d, 0xff8c, 0xff9f, 0xff99); - TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode, originalEucJpPacked); - TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode.Mid(4, 2), originalEucJpPacked.Mid(4, 4)); - TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode.Mid(6, 3), originalEucJpPacked.Mid(8, 6)); - TestTruncatedConversionToUnicodeFromEucJpPacked(*characterSetConverter, expectedUnicode.Mid(9, 2), originalEucJpPacked.Mid(14, 6)); - static const TInt numberOfCharactersInEachHomogeneousRun[13]={4, 2, 3, 2, 4, 3, 2, 2, 2, 4, 2, 3, 4}; - static const TInt numberOfBytesPerCharacterInEachHomogeneousRun[13]={1, 2, 2, 3, 1, 2, 2, 3, 2, 1, 3, 2, 1}; - TInt e=64; - TInt u=0; - for (i=0; i<13; ++i) - { - TInt j; - for (j=0; j expectedUnicodeBackSlash; - expectedUnicodeBackSlash.Format(_L16("pool%c"), 0x005c); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicodeBackSlash; - TEST(characterSetConverter->ConvertToUnicode(generatedUnicodeBackSlash, originalEucJpPackedYen, state) == 0); - TEST(generatedUnicodeBackSlash==expectedUnicodeBackSlash); - - CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/teucjpdirectmap.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/teucjpdirectmap.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,292 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TEUCJPDIRECTMAP")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// - - -const TInt KBufferLength=100; - -LOCAL_C void TestTruncatedConversionFromUnicodeToEucJpDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) - { - for (TInt i=aOriginalUnicode.Length(); i>=0; --i) - { - TBuf8 generatedEucJpDirectmap; - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedEucJpDirectmap, aOriginalUnicode.Left(i)); - TEST(returnValue>=0); - TBuf8 generatedsecondPartOfEucJpDirectmap; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfEucJpDirectmap, aOriginalUnicode.Mid(i-returnValue))==0); - generatedEucJpDirectmap.Append(generatedsecondPartOfEucJpDirectmap); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedEucJpDirectmap, state)==0); - TEST(generatedUnicode==aOriginalUnicode); - } - } - -LOCAL_C void TestSplittingConvertingFromUnicodeToEucJpDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfEucJpDirectmap, const TDesC8& aExpectedEucJpDirectmap, const TDesC16& aOriginalUnicode) - { - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint8 eucJpDirectmapBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr8 generatedFirstPartOfEucJpDirectmap(eucJpDirectmapBuffer, i); - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfEucJpDirectmap, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); - TEST(generatedFirstPartOfEucJpDirectmap==aExpectedEucJpDirectmap.Left(aExpectedLengthOfFirstPartOfEucJpDirectmap)); - TBuf8 generatedSecondPartOfEucJpDirectmap; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfEucJpDirectmap, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); - TEST(generatedSecondPartOfEucJpDirectmap==aExpectedEucJpDirectmap.Mid(aExpectedLengthOfFirstPartOfEucJpDirectmap)); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfEucJpDirectmap, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfEucJpDirectmap, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - generatedUnicode.Append(generatedSecondPartOfUnicode); - TEST(generatedUnicode==aOriginalUnicode); - } - } - -LOCAL_C void TestTruncatedConversionToUnicodeFromEucJpDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpDirectmap) - { - for (TInt i=aOriginalEucJpDirectmap.Length(); i>=3; --i) - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalEucJpDirectmap.Left(i), state); - TEST(returnValue>=0); - TBuf16 generatedsecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalEucJpDirectmap.Mid(i-returnValue), state)==0); - generatedUnicode.Append(generatedsecondPartOfUnicode); - TEST(generatedUnicode==aExpectedUnicode); - } - } - -LOCAL_C void TestSplittingConvertingToUnicodeFromEucJpDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfEucJpDirectmapBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalEucJpDirectmap) - { - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint16 unicodeBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalEucJpDirectmap, state)==aExpectedNumberOfEucJpDirectmapBytesNotConvertedAtSplit); - TEST(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalEucJpDirectmap.Right(aExpectedNumberOfEucJpDirectmapBytesNotConvertedAtSplit), state)==0); - TEST(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf8 generatedEucJpDirectmap; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedEucJpDirectmap, generatedFirstPartOfUnicode)==0); - TBuf8 generatedSecondPartOfEucJpDirectmap; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfEucJpDirectmap, generatedSecondPartOfUnicode)==0); - generatedEucJpDirectmap.Append(generatedSecondPartOfEucJpDirectmap); - TEST(generatedEucJpDirectmap==aOriginalEucJpDirectmap); - } - } - -LOCAL_C void TestIsIllFormedEucJpDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aEucJpDirectmap) - { - TBuf16<50> generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - TPtrC8 remainderOfEucJpDirectmap(aEucJpDirectmap); - TInt lastReturnValue=KMaxTInt; - FOREVER - { - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfEucJpDirectmap, state); - if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) - { - break; - } - TEST(returnValue>0); - TEST(returnValue* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - TInt i; - for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TheTest.Start(_L("Testing EUC-JP (DirectMap) conversions ")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierEucJpDirectmap, *arrayOfCharacterSetsAvailable, fileServerSession); - // - TheTest.Next(_L("Empty descriptor")); - TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 0, 10, 0, 0, KNullDesC8, KNullDesC16); - TestSplittingConvertingToUnicodeFromEucJpDirectmap(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); - TheTest.Next(_L("Testing converting to EUC-JP (DirectMap)")); - TBuf16<50> originalUnicode; - originalUnicode.Format(_L16("Some %c%c%c%c%c%c"), 0xff9a, 0xff70, 0x6f22, 0x5b57, 0x5379, 0x5dce); - const TPtrC8 expectedEucJpDirectmap(_S8("Some \x8e\xda\x8e\xb0\xb4\xc1\xbb\xfa\x8f\xb4\xc1\x8f\xbb\xfa")); - TestTruncatedConversionFromUnicodeToEucJpDirectmap(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 0, 0, 11, 0, expectedEucJpDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 1, 1, 10, 1, expectedEucJpDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 2, 2, 9, 2, expectedEucJpDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 3, 3, 8, 3, expectedEucJpDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 4, 4, 7, 4, expectedEucJpDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 5, 6, 6, 5, expectedEucJpDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 7, 8, 5, 7, expectedEucJpDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 9, 10, 4, 9, expectedEucJpDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 11, 12, 3, 11, expectedEucJpDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 13, 15, 2, 13, expectedEucJpDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 16, 18, 1, 16, expectedEucJpDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToEucJpDirectmap(*characterSetConverter, 19, 30, 0, 19, expectedEucJpDirectmap, originalUnicode); - TheTest.Next(_L("Testing converting to Unicode")); - const TPtrC8 originalEucJpDirectmap(_S8("pool\xbe\xae\xc3\xd3\x8e\xcc\x8e\xdf\x8e\xd9\x8f\xc0\xcd\x8f\xc8\xc5pool\x8e\xcc\x8e\xdf\x8e\xd9\xbe\xae\xc3\xd3\x8f\xc0\xcd\x8f\xc8\xc5\xbe\xae\xc3\xd3pool\x8f\xc0\xcd\x8f\xc8\xc5\x8e\xcc\x8e\xdf\x8e\xd9pool")); - TBuf16<50> expectedUnicode; - expectedUnicode.Format(_L16("pool%c%c%c%c%c%c%cpool%c%c%c%c%c%c%c%c%cpool%c%c%c%c%cpool"), 0x5c0f, 0x6c60, 0xff8c, 0xff9f, 0xff99, 0x641e, 0x6f0d, 0xff8c, 0xff9f, 0xff99, 0x5c0f, 0x6c60, 0x641e, 0x6f0d, 0x5c0f, 0x6c60, 0x641e, 0x6f0d, 0xff8c, 0xff9f, 0xff99); - TestTruncatedConversionToUnicodeFromEucJpDirectmap(*characterSetConverter, expectedUnicode, originalEucJpDirectmap); - TestTruncatedConversionToUnicodeFromEucJpDirectmap(*characterSetConverter, expectedUnicode.Mid(4, 2), originalEucJpDirectmap.Mid(4, 4)); - TestTruncatedConversionToUnicodeFromEucJpDirectmap(*characterSetConverter, expectedUnicode.Mid(6, 3), originalEucJpDirectmap.Mid(8, 6)); - TestTruncatedConversionToUnicodeFromEucJpDirectmap(*characterSetConverter, expectedUnicode.Mid(9, 2), originalEucJpDirectmap.Mid(14, 6)); - static const TInt numberOfCharactersInEachHomogeneousRun[13]={4, 2, 3, 2, 4, 3, 2, 2, 2, 4, 2, 3, 4}; - static const TInt numberOfBytesPerCharacterInEachHomogeneousRun[13]={1, 2, 2, 3, 1, 2, 2, 3, 2, 1, 3, 2, 1}; - TInt e=64; - TInt u=0; - for (i=0; i<13; ++i) - { - TInt j; - for (j=0; j expectedUnicodeBackSlash; - expectedUnicodeBackSlash.Format(_L16("pool%c"), 0x005c); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicodeBackSlash; - TEST(characterSetConverter->ConvertToUnicode(generatedUnicodeBackSlash, originalEucJpDirectmapYen, state) == 0); - TEST(generatedUnicodeBackSlash==expectedUnicodeBackSlash); - - CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/textendedsms.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/textendedsms.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,254 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\extendedsms_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\extendedsms_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\extendedsms_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\extendedsms_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\extendedsms_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\extendedsms_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\extendedsms_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\extendedsms_for_expect.dat"); -#endif - -GLDEF_C RTest TheTest(_L("TExtendedSMS")); -GLDEF_C CCnvCharacterSetConverter* characterSetConverter; -GLDEF_C RFs fileServerSession; -GLDEF_C TBuf8<1254> temp; -GLDEF_C TBuf16<627> originalUnicode; -GLDEF_C TBuf8<627> generatedForeign; -GLDEF_C TBuf16<627> generatedUnicode; - -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -//Local functions - -//read test data from file -void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -//translate from unicode big endian TDesC8 to TDes16 -void Unicode_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4003 Available Converters\n ")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4004 -@SYMTestCaseDesc Testcase to test new converter name can be prepared for converting -@SYMTestPriority High -@SYMTestActions Test for PrepareToConvertToOrFromL() -@SYMTestExpectedResults The test passed, If EAvailable is returned -@SYMPREQ PREQ2090 -@SYMREQ REQ10364 -*/ -void PrepareNewConverterL() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4004 Preparing the new converter ")); - CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierExtendedSms7Bit, fileServerSession); - TEST( CCnvCharacterSetConverter::EAvailable == avaible ); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4005 -@SYMTestCaseDesc Convert Unicode code to foreign character set -@SYMTestPriority High -@SYMTestActions Test for ConvertFromUnicode() -@SYMTestExpectedResults Test is passed if the generated cod and Expected code is same -@SYMPREQ PREQ2090 -@SYMREQ REQ10364 -*/ -void ConvertFromUnicodeToForeignL() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4005 Encoding from Unicode to Foreign ")); - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Unicode_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4006 -@SYMTestCaseDesc Convert foreign character set to Unicode code -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F -@SYMTestExpectedResults Test is passed if contents of generatedUnicode buffer with OriginalUnicode buffer are same. -@SYMPREQ PREQ2090 -@SYMREQ REQ10364 -*/ -void ConvertFromForeignToUnicodeL() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4006 Encoding from Foreign to Unicode ")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Unicode_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4007 -@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF -@SYMTestExpectedResults The test is passed if generated code is same as expected code -@SYMPREQ PREQ2090 -@SYMREQ REQ10364 -*/ -void ConvertOutOfRangeForeignCharacters() - { - //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4007 Testing Characters not in the Scope ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x81; - TInt state=CCnvCharacterSetConverter::KStateDefault; - _LIT16(KExpected2, "\xfffd"); //the expected foreign - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - TEST( generatedUnicode == KExpected2 ); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4008 -@SYMTestCaseDesc Convert illegal character from foreign character set to unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B -@SYMTestExpectedResults Test is passed if KErrCorrupt is returned -@SYMPREQ PREQ2090 -@SYMREQ REQ10364 -*/ -void ConvertIllegalForeignCharacter() - { - //test 0x1b - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4008 Testing EErrorIllFormedInput ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x1b; //the escape character - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( KErrCorrupt == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - } - -LOCAL_C void DoE32MainL() - { - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - characterSetConverter=CCnvCharacterSetConverter::NewLC(); - - ListAlltheConvertersL(); - PrepareNewConverterL(); - ConvertFromUnicodeToForeignL(); - ConvertFromForeignToUnicodeL(); - ConvertOutOfRangeForeignCharacters(); - ConvertIllegalForeignCharacter(); - - CleanupStack::PopAndDestroy(2); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tgb18030.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tgb18030.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,746 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TGB18030")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// - - -const TInt KMibValue = 114; -const TInt KBufferLength=100; - -LOCAL_C void TestTruncatedConversionFromUnicodeToGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) - { - for (TInt i=aOriginalUnicode.Length(); i>=0; --i) - { - TBuf8 generatedGb18030; - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedGb18030, aOriginalUnicode.Left(i)); - TEST(returnValue>=0); - TBuf8 generatedsecondPartOfGb18030; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfGb18030, aOriginalUnicode.Mid(i-returnValue))==0); - generatedGb18030.Append(generatedsecondPartOfGb18030); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedGb18030, state)==0); - TEST(generatedUnicode==aOriginalUnicode); - } - } - -LOCAL_C void TestSplittingConvertingFromUnicodeToGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, - TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, - TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfGb18030, - const TDesC8& aExpectedGb18030, const TDesC16& aOriginalUnicode) - { - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint8 gb18030Buffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr8 generatedFirstPartOfGb18030(gb18030Buffer, i); - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfGb18030, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); - TEST(generatedFirstPartOfGb18030==aExpectedGb18030.Left(aExpectedLengthOfFirstPartOfGb18030)); - TBuf8 generatedSecondPartOfGb18030; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfGb18030, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); - TEST(generatedSecondPartOfGb18030==aExpectedGb18030.Mid(aExpectedLengthOfFirstPartOfGb18030)); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfGb18030, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfGb18030, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - generatedUnicode.Append(generatedSecondPartOfUnicode); - TEST(generatedUnicode==aOriginalUnicode); - } - } - -LOCAL_C void TestTruncatedConversionToUnicodeFromGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalGb18030) - { - for (TInt i=aOriginalGb18030.Length(); i>=4; --i) // 4 is the length of GB18030's longest multi-byte characters - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalGb18030.Left(i), state); - TEST(returnValue>=0); - TBuf16 generatedsecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalGb18030.Mid(i-returnValue), state)==0); - generatedUnicode.Append(generatedsecondPartOfUnicode); - TEST(generatedUnicode==aExpectedUnicode); - } - } - -LOCAL_C void TestSplittingConvertingToUnicodeFromGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, - - TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, - TInt aExpectedNumberOfGb18030BytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, - const TDesC16& aExpectedUnicode, const TDesC8& aOriginalGb18030) - { - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint16 unicodeBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalGb18030, state)==aExpectedNumberOfGb18030BytesNotConvertedAtSplit); - TEST(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalGb18030.Right(aExpectedNumberOfGb18030BytesNotConvertedAtSplit), state)==0); - TEST(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf8 generatedGb18030; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedGb18030, generatedFirstPartOfUnicode)==0); - TBuf8 generatedSecondPartOfGb18030; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfGb18030, generatedSecondPartOfUnicode)==0); - generatedGb18030.Append(generatedSecondPartOfGb18030); - TEST(generatedGb18030==aOriginalGb18030); - } - } - - -LOCAL_C void CharacterSetValueAndMIBTests(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession) -{ - // check that the character set value of '114' is converted to the GB18030 UID (0x10287038) - TEST(aCharacterSetConverter.ConvertMibEnumOfCharacterSetToIdentifierL(KMibValue,aFileServerSession)==KCharacterSetIdentifierGb18030); - TheTest.Printf(_L("\nMIB->Char Set UID - OK")); - - // check that the UCS2 GUID (0x10287038) is converted to the character set value of '114' - TEST(aCharacterSetConverter.ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierGb18030,aFileServerSession)==KMibValue); - TheTest.Printf(_L("\nChar Set UID->MIB - OK")); -} - - -/** -*/ -LOCAL_C void TestConversionToUnicodeFromGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalGb18030, TInt aExpectedResult = 0) - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalGb18030, state); - TEST(returnValue == aExpectedResult ); - TEST(generatedUnicode==aExpectedUnicode); - } - - -/** -*/ -LOCAL_C void TestConversionFromUnicodeToGb18030(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, TInt aExpectedResult = 0) - { - TBuf8 generatedGb18030; - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedGb18030, aOriginalUnicode); - TEST(returnValue == aExpectedResult); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedGb18030, state)==0); - TEST(generatedUnicode==aOriginalUnicode); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-CT-4051 -@SYMTestCaseDesc Check GB18030 plugin support conversion between one byte GB18030 character and Unicode -@SYMTestPriority High -@SYMTestActions 1. Select characters from one-byte character set of GB2312-80 - 2. Pass it to charconv and convert it to Unicode - 3. Pass the above Unicode to charconv and convert it to GB18030 -@SYMTestExpectedResults Conversion is successful, and the returned Unicode/GB18030 is as defined -@SYMREQ REQ12065 PREQ12066 -*/ - -LOCAL_C void OneByteConversion( CCnvCharacterSetConverter& aCharacterSetConverter ) -{ - TPtrC8 originalGb18030; - TBuf16 originalUnicode; - - // One-byte gb - originalGb18030.Set(_L8("\x40")); - originalUnicode.Format(_L16("%c"), 0x40); - - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); - - // one-byte uincode - _LIT16(Uni_0, "\x0000"); - _LIT8(Gb_0, "\x00"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_0); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_0, Gb_0); - - _LIT16(Uni_1, "\x0079"); - _LIT8(Gb_1, "\x79"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_1); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_1, Gb_1); - - _LIT16(Uni_2, "\x0080"); - _LIT8(Gb_2, "\x81\x30\x81\x30"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_2); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_2, Gb_2); - - _LIT16(Uni_3, "\x0081"); - _LIT8(Gb_3, "\x81\x30\x81\x31"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_3); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_3, Gb_3); - - _LIT16(Uni_4, "\x00fe"); - _LIT8(Gb_4, "\x81\x30\x8B\x36"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_4); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_4, Gb_4); - - _LIT16(Uni_5, "\x00ff"); - _LIT8(Gb_5, "\x81\x30\x8B\x37"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_5); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_5, Gb_5); -} - - -/** -@SYMTestCaseID TI18N-CHARCONV-CT-4052 -@SYMTestCaseDesc Check GB18030 plug-in support conversion between two-byte GB18030 character and Unicode -@SYMTestPriority High -@SYMTestActions 1. Select characters from two-byte character set from GB2312-80 - 2. Pass it to charconv and convert it to Unicode - 3. Pass the above Unicode to charconv and convert it to GB18030 - 4. Select characters from two-byte characters set from GBK, outside of GB2312-80, same with GBK - 5. Pass to charconv and convert to Unicode - 6. Pass the above Unicode to charconv, and conver it to GB18030 - 7. Select characters from two-byte characters set from GBK, outside of GB2312-80, different from GBK - 8. Pass to charconv and convert to Unicode - 9. Pass the above Unicode to charconv, and conver it to GB18030 -@SYMTestExpectedResults Conversion is successful, and the returned Unicode/GB18030 is as defined -@SYMREQ REQ12065 REQ12066 -*/ - -LOCAL_C void TwoByteConversion( CCnvCharacterSetConverter& aCharacterSetConverter ) -{ - TPtrC8 originalGb18030; - TBuf16 originalUnicode; - - // two-byte gb - originalGb18030.Set(_L8("\xec\xe1")); - originalUnicode.Format(_L16("%c"), 0x706c); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); - - originalGb18030.Set(_L8("\x81\x81")); - originalUnicode.Format(_L16("%c"), 0x4e96); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); - - originalGb18030.Set(_L8("\xa2\xe3")); - originalUnicode.Format(_L16("%c"), 0x20ac); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); - originalGb18030.Set(_L8("\xa6\xd9")); - originalUnicode.Format(_L16("%c"), 0xe78d); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); - originalGb18030.Set(_L8("\xa8\xbc")); - originalUnicode.Format(_L16("%c"), 0x1e3f); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); - - - // two-byte unicode - _LIT16(Uni_6, "\x0100"); - _LIT8(Gb_6, "\x81\x30\x8B\x38"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_6); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_6, Gb_6); - - _LIT16(Uni_7, "\x0101"); - _LIT8(Gb_7, "\xA8\xA1"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_7); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_7, Gb_7); - - _LIT16(Uni_8, "\x0ffe"); - _LIT8(Gb_8, "\x81\x33\x83\x38"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_8); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_8, Gb_8); - - _LIT16(Uni_9, "\x0fff"); - _LIT8(Gb_9, "\x81\x33\x83\x39"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_9); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_9, Gb_9); - - _LIT16(Uni_10, "\x1000"); - _LIT8(Gb_10, "\x81\x33\x84\x30"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_10); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_10, Gb_10); - - _LIT16(Uni_11, "\x1001"); - _LIT8(Gb_11, "\x81\x33\x84\x31"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_11); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_11, Gb_11); - - _LIT16(Uni_12, "\xfffe"); - _LIT8(Gb_12, "\x84\x31\xA4\x38"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_12); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_12, Gb_12); - - _LIT16(Uni_13, "\xffff"); - _LIT8(Gb_13, "\x84\x31\xA4\x39"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_13); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_13, Gb_13); -} - -/** -@SYMTestCaseID TI18N-CHARCONV-CT-4056 -@SYMTestCaseDesc Check GB18030 plug-in support conversion between four-byte GB18030 character and Unicode -@SYMTestPriority High -@SYMTestActions 1. Select characters from CJK A - 2. Pass it to charconv and convert it to Unicode - 3. Pass the above Unicode to charconv and convert it to GB18030 - 4. Select characters from CJK B - 5. Pass it to charconv and convert it to Unicode - 6. Pass the above Unicode to charconv and convert it to GB18030 -@SYMTestExpectedResults Conversion is successful, and the returned Unicode/GB18030 is as defined -@SYMREQ REQ12065 REQ12066 -*/ - -LOCAL_C void FourByteConversion( CCnvCharacterSetConverter& aCharacterSetConverter ) -{ - TPtrC8 originalGb18030; - TBuf16 originalUnicode; - - // four-byte gb - originalGb18030.Set(_L8("\x82\x30\xA7\x30")); - originalUnicode.Format(_L16("%c"), 0x3622); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); - - originalGb18030.Set(_L8("\x95\x32\xad\x35")); - originalUnicode.Format(_L16("%c%c"), 0xd840, 0xddad );//0x201ad) - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); - - // four-byte unicode - _LIT16(Uni_14, "\xd840\xdc00"); - _LIT8(gb_14, "\x95\x32\x82\x36"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_14); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_14, gb_14); - - _LIT16(Uni_15, "\xd840\xdc01"); - _LIT8(gb_15, "\x95\x32\x82\x37"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_15); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_15, gb_15); - - _LIT16(Uni_16, "\xD87F\xdffe"); - _LIT8(gb_16, "\x9a\x34\x84\x30"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_16); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_16, gb_16); - - _LIT16(Uni_17, "\xD87F\xdfff"); - _LIT8(gb_17, "\x9a\x34\x84\x31"); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, Uni_17); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, Uni_17, gb_17); -} - - -/** -@SYMTestCaseID TI18N-CHARCONV-CT-4054 -@SYMTestCaseDesc Check GB18030 plug-in support conversion between one-byte GB18030 character and Unicode, negative input -@SYMTestPriority High -@SYMTestActions 1. Select one-byte characters which are not mapped to Unicode - 2. Pass it to charconv and convert it to Unicode - 3. Select one-byte code point which is not valid in GB18030 - 4. Pass it to charconv and convert it to Unicode -@SYMTestExpectedResults No side effect -@SYMREQ REQ12065 REQ12066 -*/ - -LOCAL_C void OneByteConversionNegative( CCnvCharacterSetConverter& aCharacterSetConverter ) -{ - TPtrC8 originalGb18030; - TBuf16 originalUnicode; - - originalGb18030.Set(_L8("\x0e")); - originalUnicode.Format(_L16("%c"), 0x0e); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030); - - originalGb18030.Set(_L8("\xa0")); - originalUnicode.Copy( _L("") ); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030, CCnvCharacterSetConverter::EErrorIllFormedInput ); -} - - -/** -@SYMTestCaseID TI18N-CHARCONV-CT-4055 -@SYMTestCaseDesc Check GB18030 plug-in support conversion between two-byte GB18030 character and Unicode, negative input -@SYMTestPriority High -@SYMTestActions 1. Select two-byte characters which are not mapped to Unicode - 2. Pass it to charconv and convert it to Unicode - 3. Select two-byte code points which are not valid in GB18030 - 4. Pass it to charconv and convert it to Unicode -@SYMTestExpectedResults No side effect -@SYMREQ REQ12065 REQ12066 -*/ - -LOCAL_C void TwoByteConversionNegative( CCnvCharacterSetConverter& aCharacterSetConverter ) -{ - TPtrC8 originalGb18030; - TBuf16 originalUnicode; - - originalGb18030.Set(_L8("\xa0\x7f")); - originalUnicode.Copy( _L("") ); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030, CCnvCharacterSetConverter::EErrorIllFormedInput ); -} - - -/** -@SYMTestCaseID TI18N-CHARCONV-CT-4056 -@SYMTestCaseDesc Check GB18030 plug-in support conversion between four-byte GB18030 character and Unicode, negative input -@SYMTestPriority High -@SYMTestActions 1. Select four-byte characters which are not mapped to Unicode - 2. Pass it to charconv and convert it to Unicode - 3. Select four-byte code points which are not valid in GB18030 - 4. Pass it to charconv and convert it to Unicode -@SYMTestExpectedResults No side effect -@SYMREQ REQ12065 REQ12066 -*/ - -LOCAL_C void FourByteConversionNegative( CCnvCharacterSetConverter& aCharacterSetConverter ) -{ - TPtrC8 originalGb18030; - TBuf16 originalUnicode; - - originalGb18030.Set(_L8("\x81\x30\x81\x3a")); - originalUnicode.Copy( _L("") ); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030, CCnvCharacterSetConverter::EErrorIllFormedInput ); -} - - -/** -@SYMTestCaseID TI18N-CHARCONV-CT-4053 -@SYMTestCaseDesc Check GB18030 plug-in support conversion between problematic GB18030 character and Unicode, negative input -@SYMTestPriority High -@SYMTestActions 1. Select characters whose trailing byte is in the range of leading bytes - 2. Pass it to charconv and convert it to Unicode - 3. Select Unicode whose leading/trailing byte is in the range of low-ANSI - 4. Pass it to charconv and convert it to GB18030 - 5. Select characters whose trailing byte is special symbol like backslash - 6. Pass it to charconv and convert it to Unicode -@SYMTestExpectedResults No side effect -@SYMREQ REQ12065 REQ12066 -*/ - -LOCAL_C void ProblemProneCharcters( CCnvCharacterSetConverter& aCharacterSetConverter ) -{ - TPtrC8 originalGb18030; - TBuf16 originalUnicode; - - originalGb18030.Set(_L8("\x81\x81\xba\xba\xa0\xa0\xf7\xf7")); - originalUnicode.Format(_L16("%c%c%c%c"), 0x4e96, 0x6c49, 0x724b, 0x9f22); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030 ); - - originalGb18030.Set(_L8("\xc4\x40\x83\xa0\xa0\x7c\xa0\x86")); - originalUnicode.Format(_L16("%c%c%c%c"), 0x8140, 0x512c, 0x7218, 0x7222); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030 ); - - originalGb18030.Set(_L8("\x81\x43\x81\x63\xf7\x4d\xf7\x6d\xa0\x53\xa0\x73")); - originalUnicode.Format(_L16("%c%c%c%c%c%c"), 0x4E06, 0x4E67, 0x9C49, 0x9C69, 0x71EC, 0x720F); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030 ); - - originalGb18030.Set(_L8("\x9f\xaa\x81\xae\xf7\xbf\xbf\xaa\xb0\x5b\xb1\x5b\xb1\x5c\xb2\x5c\xb2\x5d\xc3\x5d\xd4\x5f\xe5\x5f\xd6\x7b\xe7\x7b\xF7\x7C\xFD\x7C\xAA\x7D\xFE\x7D")); - originalUnicode.Format(_L16("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"), 0x716A, 0x4F04, 0x9ABA, 0x5F00, 0x7667, 0x76F5, 0x76F6, 0x7788, 0x7789, 0x80C5, 0x8a3D, 0x9329, 0x8B20, 0x940A, 0x9C78, 0x9F76, 0x7347, 0x464c); - TestConversionFromUnicodeToGb18030(aCharacterSetConverter, originalUnicode); - TestConversionToUnicodeFromGb18030(aCharacterSetConverter, originalUnicode, originalGb18030 ); -} - - -LOCAL_C void DoE32MainL() - { - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TPtrC8 originalGb18030; - TBuf16 originalUnicode; - TBuf8 generatedGb18030; - TBuf16 generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - - // test that we can get MIB and Charset values - CharacterSetValueAndMIBTests(*characterSetConverter, fileServerSession); - - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb18030, *arrayOfCharacterSetsAvailable, fileServerSession); - - TheTest.Start( _L("GB18030 one byte support") ); - OneByteConversion( *characterSetConverter ); - - TheTest.Next( _L("GB18030 two byte support") ); - TwoByteConversion( *characterSetConverter ); - - TheTest.Next( _L("GB18030 four byte support") ); - FourByteConversion( *characterSetConverter ); - - TheTest.Next( _L("GB18030 one byte support with negative input") ); - OneByteConversionNegative( *characterSetConverter ); - - TheTest.Next( _L("GB18030 two byte support with negative input") ); - TwoByteConversionNegative( *characterSetConverter ); - - TheTest.Next( _L("GB18030 four byte support with negative input") ); - FourByteConversionNegative( *characterSetConverter ); - - TheTest.Next( _L("Problem prone characters") ); - ProblemProneCharcters( *characterSetConverter ); - - TheTest.Next(_L("Testing characters shared with GB 2312-80 and characters only in GBK")); - - originalGb18030.Set(_L8("A\xfd\x7d\xdd\xb6\xb1\xc9\xe9\x8e\xe8\x9d""E b\xd3\x59\xd2\x40\x95\xc0")); // 20 byte, 12 char - originalUnicode.Format(_L16("A%c%c%c%c%cE b%c%c%c"), 0x9f77, 0x837b, 0x9119, 0x95b9, 0x94e6, 0x89bb, 0x8938, 0x66b2); - TestTruncatedConversionFromUnicodeToGb18030(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 0, 0, 12, 0, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 1, 2, 11, 1, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 3, 4, 10, 3, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 5, 6, 9, 5, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 7, 8, 8, 7, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 9, 10, 7, 9, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 11, 11, 6, 11, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 12, 12, 5, 12, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 13, 13, 4, 13, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 14, 15, 3, 14, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 16, 17, 2, 16, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 18, 19, 1, 18, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 20, 40, 0, 20, originalGb18030, originalUnicode); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode, originalGb18030); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(1, 2), originalGb18030.Mid(1, 4)); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 0, 0, 20, 0, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 1, 1, 19, 1, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 2, 2, 17, 2, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 3, 3, 15, 3, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 4, 4, 13, 4, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 5, 5, 11, 5, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 6, 6, 9, 6, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 7, 7, 8, 7, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 8, 8, 7, 8, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 9, 9, 6, 9, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 10, 10, 4, 10, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 11, 11, 2, 11, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 12, 30, 0, 12, originalUnicode, originalGb18030); - - TheTest.Next(_L("Testing GB18030 characters where the first byte has the high-bit set and the second byte doesn't")); - originalGb18030.Set(_L8("\x20\x5d\xa0\x5d\xa0\xdd")); - originalUnicode.Format(_L16(" ]%c%c"), 0x71f7, 0x72a6); - TestTruncatedConversionFromUnicodeToGb18030(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 0, 0, 4, 0, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 1, 1, 3, 1, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 2, 3, 2, 2, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 4, 5, 1, 4, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 6, 20, 0, 6, originalGb18030, originalUnicode); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 0, 0, 6, 0, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 1, 1, 5, 1, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 2, 2, 4, 2, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 3, 3, 2, 3, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 4, 20, 0, 4, originalUnicode, originalGb18030); - - TheTest.Next(_L("Testing truncated GB18030 sequences")); - originalGb18030.Set(_L8("qwe\xb5")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGb18030, state)==1); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==_L16("qwe")); - - originalGb18030.Set(_L8("qwe\x81\x30")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGb18030, state)==2); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==_L16("qwe")); - - TheTest.Next(_L("Testing 4 byte characters, including surrogate pair")); - originalGb18030.Set(_L8("C\x81\x30\x81\x30\x82\x30\x81\x30\x95\x32\x82\x36")); // 13 byte - originalUnicode.Format(_L16("C%c%c%c%c"), 0x0080, 0x34A3, 0xD840, 0xDC00); // 4 Char (3 UCS2, 1 surrogate pair) - TestTruncatedConversionFromUnicodeToGb18030(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 0, 0, 5, 0, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 1, 4, 4, 1, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 5, 8, 3, 5, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 9, 12, 2, 9, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 13, 40, 0, 13, originalGb18030, originalUnicode); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode, originalGb18030); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(1, 2), originalGb18030.Mid(1, 8)); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(3, 2), originalGb18030.Mid(9, 4)); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 0, 0, 13, 0, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 1, 1, 12, 1, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 2, 2, 8, 2, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 3, 4, 4, 3, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 5, 30, 0, 5, originalUnicode, originalGb18030); - - TheTest.Next(_L("Testing GB18030 characters which have different mapping with GB2312-80")); - originalGb18030.Set(_L8("\xa1\xaa\xa1\xa4\xa8\x44\x81\x39\xa7\x39")); // 10 byte - originalUnicode.Format(_L16("%c%c%c%c"), 0x2014, 0x00B7, 0x2015, 0x30FB); // 4 char (UCS2) - TestTruncatedConversionFromUnicodeToGb18030(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 0, 1, 4, 0, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 2, 3, 3, 2, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 4, 5, 2, 4, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 6, 9, 1, 6, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 10, 20, 0, 10, originalGb18030, originalUnicode); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode, originalGb18030); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(0, 2), originalGb18030.Mid(0, 4)); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(2, 2), originalGb18030.Mid(4, 6)); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 0, 0, 10, 0, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 1, 1, 8, 1, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 2, 2, 6, 2, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 3, 3, 4, 3, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 4, 10, 0, 4, originalUnicode, originalGb18030); - - TheTest.Next(_L("Testing 2 byte GB18030 characters which have different mapping with GBK")); - originalGb18030.Set(_L8("\xa1\xa4\xa1\xaa\xa8\xbc\xa8\xbf\xa9\x8a")); // 10 byte - originalUnicode.Format(_L16("%c%c%c%c%c"), 0x00b7, 0x2014, 0x1e3f, 0x01f9, 0x2ff0); // 5 char (UCS2) - TestTruncatedConversionFromUnicodeToGb18030(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 0, 1, 5, 0, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 2, 3, 4, 2, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 4, 5, 3, 4, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 10, 20, 0, 10, originalGb18030, originalUnicode); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode, originalGb18030); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(0, 2), originalGb18030.Mid(0, 4)); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(2, 3), originalGb18030.Mid(4, 6)); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 0, 0, 10, 0, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 1, 1, 8, 1, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 2, 2, 6, 2, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 5, 10, 0, 5, originalUnicode, originalGb18030); - - TheTest.Next(_L("Testing 2/4 byte GB18030 characters mapping to PUA codes")); - originalGb18030.Set(_L8("\xFE\xFE\xFE\xD4\xFD\xE8\xA7\xFE\xA3\xEB\x84\x31\xA4\x39\x83\x36\xF0\x37\xA3\xB1")); // 20 byte - originalUnicode.Format(_L16("%c%c%c%c%c%c%c%c"), 0xE4C5, 0xE49B, 0xE451, 0xE7BB, 0xFF4B, 0xFFFF, 0xE9AC, 0xFF11); // 8 char (UCS2) - TestTruncatedConversionFromUnicodeToGb18030(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 0, 1, 8, 0, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 2, 3, 7, 2, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 4, 5, 6, 4, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 10, 13, 3, 10, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 14, 17, 2, 14, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 18, 19, 1, 18, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 20, 40, 0, 20, originalGb18030, originalUnicode); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode, originalGb18030); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(0, 2), originalGb18030.Mid(0, 4)); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(2, 3), originalGb18030.Mid(4, 6)); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(5, 2), originalGb18030.Mid(10, 8)); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(7, 1), originalGb18030.Mid(18, 2)); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 0, 0, 20, 0, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 1, 1, 18, 1, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 2, 2, 16, 2, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 6, 6, 6, 6, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 7, 7, 2, 7, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 8, 10, 0, 8, originalUnicode, originalGb18030); - - TheTest.Next(_L("Testing combined GB18030 characters including 1/2/4 byte")); - originalGb18030.Set(_L8("A\x95\x32\x82\x36\x32\x81\x40\xC2\xB7\x8E\xEB\x95\x33\x96\x30\x81\x37\x81\x30\xFE\xF1")); //22 bytes - originalUnicode.Format(_L16("A%c%c%c%c%c%c%c%c%c%c"), 0xD840, 0xDC00, 0x0032, 0x4E02, 0x8DEF, 0x5EAA, 0xD841, 0xDDAE, 0x23EC, 0xE4B8 ); //11 chars (UCS2) - TestTruncatedConversionFromUnicodeToGb18030(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 0, 0, 11, 0, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 1, 4, 10, 1, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 5, 5, 8, 5, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 6, 6, 7, 6, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 8, 9, 6, 8, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 10, 11, 5, 10, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 12, 15, 4, 12, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 16, 19, 2, 16, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 20, 21, 1, 20, originalGb18030, originalUnicode); - TestSplittingConvertingFromUnicodeToGb18030(*characterSetConverter, 22, 30, 0, 22, originalGb18030, originalUnicode); - - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode, originalGb18030); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(0, 1), originalGb18030.Mid(0, 1)); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(1, 2), originalGb18030.Mid(1, 4)); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(3, 1), originalGb18030.Mid(5, 1)); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(4, 3), originalGb18030.Mid(6, 6)); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(7, 3), originalGb18030.Mid(12, 8)); - TestTruncatedConversionToUnicodeFromGb18030(*characterSetConverter, originalUnicode.Mid(10, 1), originalGb18030.Mid(20, 2)); - - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 0, 0, 22, 0, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 1, 2, 21, 1, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 3, 3, 17, 3, originalUnicode, originalGb18030); - - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 4, 4, 16, 4, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 7, 8, 10, 7, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 9, 9, 6, 9, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 10, 10, 2, 10, originalUnicode, originalGb18030); - TestSplittingConvertingToUnicodeFromGb18030(*characterSetConverter, 11, 20, 0, 11, originalUnicode, originalGb18030); - - CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tgb2312.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tgb2312.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,186 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TGB2312")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0502 -@SYMTestCaseDesc Tests for converting GB 2312-80 character set to Unicode -@SYMTestPriority Medium -@SYMTestActions Tests for simple GB 2312-80 round trips, - Tests for varying the default Endianness -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void DoE32MainL() - { - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0502 Testing simple GB 2312-80 round trips ")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312, *arrayOfCharacterSetsAvailable, fileServerSession); - TBuf8<256> originalGb2312; - TBuf16<256> originalUnicode; - TBuf8<256> generatedGb2312; - TBuf16<256> generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - // - TheTest.Next(_L("Empty descriptor")); - originalUnicode=_L16(""); - TEST(characterSetConverter->ConvertFromUnicode(generatedGb2312, originalUnicode)==0); - TEST(generatedGb2312==_L8("")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedGb2312, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==originalUnicode); - TheTest.Next(_L("A couple of sample characters")); - originalGb2312=_L8("\xb9\xa4\xc8\xcb"); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGb2312, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode.Length()==2); - TEST(generatedUnicode[0]==0x5de5); - TEST(generatedUnicode[1]==0x4eba); - TEST(characterSetConverter->ConvertFromUnicode(generatedGb2312, generatedUnicode)==0); - TEST(generatedGb2312==originalGb2312); - TheTest.Next(_L("Converting trunctated GB 2312-80 which ends half-way through a multi-byte character")); - originalGb2312=_L8("\xb9\xa4\xc8"); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGb2312, state)==1); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0x5de5); - originalGb2312=_L8("\xc8"); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGb2312, state)==CCnvCharacterSetConverter::EErrorIllFormedInput); - TheTest.Next(_L("Testing varying the default endianness")); - originalGb2312=_L8("\xb4\xf2"); - characterSetConverter->SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::ELittleEndian); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGb2312, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0x6253); - TEST(characterSetConverter->ConvertFromUnicode(generatedGb2312, generatedUnicode)==0); - TEST(generatedGb2312==originalGb2312); - characterSetConverter->SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::EBigEndian); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGb2312, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode.Length()==1); - TEST(generatedUnicode[0]==0x6253); - TEST(characterSetConverter->ConvertFromUnicode(generatedGb2312, generatedUnicode)==0); - TEST(generatedGb2312==originalGb2312); - TheTest.Next(_L("Testing a many-to-one conversion")); - originalUnicode.SetLength(4); - originalUnicode[0]=0x30fb; - originalUnicode[1]=0x00b7; - originalUnicode[2]=0x2014; - originalUnicode[3]=0x2015; - TEST(characterSetConverter->ConvertFromUnicode(generatedGb2312, originalUnicode)==0); - TEST(generatedGb2312==_L8("\xa1\xa4\xa1\xa4\xa1\xaa\xa1\xaa")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, generatedGb2312, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode.Length()==4); - TEST(generatedUnicode[0]==0x00b7); - TEST(generatedUnicode[1]==0x00b7); - TEST(generatedUnicode[2]==0x2015); - TEST(generatedUnicode[3]==0x2015); - TheTest.Next(_L("Testing GB2312 being aliased to GBK")); - TUint charSetId = characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("GB2312"), fileServerSession); - TEST(charSetId==KCharacterSetIdentifierGbk); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("csGB2312"), fileServerSession)==KCharacterSetIdentifierGbk); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("iso-ir-58"), fileServerSession)==KCharacterSetIdentifierGbk); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("chinese"), fileServerSession)==KCharacterSetIdentifierGbk); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("csISO58GB231280"), fileServerSession)==KCharacterSetIdentifierGbk); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(57, fileServerSession)==KCharacterSetIdentifierGbk); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(2025, fileServerSession)==KCharacterSetIdentifierGbk); - characterSetConverter->PrepareToConvertToOrFromL(charSetId, *arrayOfCharacterSetsAvailable, fileServerSession); - originalUnicode.SetLength(3); - originalUnicode[0]=0x9556; // this has a corresponding GB2312 character - originalUnicode[1]=0x9555; // this has a corresponding GBK character not in GB2312... - originalUnicode[2]=0x9394; // ... as does this - TEST(characterSetConverter->ConvertFromUnicode(generatedGb2312, originalUnicode)==0); - TEST(generatedGb2312.Length()==6); - TEST(generatedGb2312==_L8("\xef\xda\xe9\x46\xe6\x67")); - CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tgbk.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tgbk.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,332 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TGBK")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// - - -const TInt KMibValue = 113; -const TInt KBufferLength=100; -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0509 -@SYMTestCaseDesc Tests for truncated conversion from Unicode to GBK -@SYMTestPriority Medium -@SYMTestActions Tests for truncated conversion from Unicode to Gbk and back to Unicode. - Tests for the generated Unicode with original Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionFromUnicodeToGbk(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0509 ")); - for (TInt i=aOriginalUnicode.Length(); i>=0; --i) - { - TBuf8 generatedGbk; - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedGbk, aOriginalUnicode.Left(i)); - TEST(returnValue>=0); - TBuf8 generatedsecondPartOfGbk; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfGbk, aOriginalUnicode.Mid(i-returnValue))==0); - generatedGbk.Append(generatedsecondPartOfGbk); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedGbk, state)==0); - TEST(generatedUnicode==aOriginalUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0510 -@SYMTestCaseDesc Splitting and converting from Unicode to GBK test -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting from Unicode to Gbk and back to Unicode - Tests for the generated Unicode with original Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingFromUnicodeToGbk(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfGbk, const TDesC8& aExpectedGbk, const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0510 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint8 gbkBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr8 generatedFirstPartOfGbk(gbkBuffer, i); - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfGbk, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); - TEST(generatedFirstPartOfGbk==aExpectedGbk.Left(aExpectedLengthOfFirstPartOfGbk)); - TBuf8 generatedSecondPartOfGbk; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfGbk, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); - TEST(generatedSecondPartOfGbk==aExpectedGbk.Mid(aExpectedLengthOfFirstPartOfGbk)); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfGbk, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfGbk, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - generatedUnicode.Append(generatedSecondPartOfUnicode); - TEST(generatedUnicode==aOriginalUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0511 -@SYMTestCaseDesc Tests for truncated conversion from GBK to Unicode -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after truncation from Unicode to Hz and back to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionToUnicodeFromGbk(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalGbk) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0511 ")); - for (TInt i=aOriginalGbk.Length(); i>=2; --i) // 2 is the length of GBK's longest multi-byte characters - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalGbk.Left(i), state); - TEST(returnValue>=0); - TBuf16 generatedsecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalGbk.Mid(i-returnValue), state)==0); - generatedUnicode.Append(generatedsecondPartOfUnicode); - TEST(generatedUnicode==aExpectedUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0512 -@SYMTestCaseDesc Splitting and converting from GBK to Unicode test -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting from Hz to Unicode and back to Hz -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingToUnicodeFromGbk(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfGbkBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalGbk) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0512 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint16 unicodeBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalGbk, state)==aExpectedNumberOfGbkBytesNotConvertedAtSplit); - TEST(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalGbk.Right(aExpectedNumberOfGbkBytesNotConvertedAtSplit), state)==0); - TEST(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf8 generatedGbk; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedGbk, generatedFirstPartOfUnicode)==0); - TBuf8 generatedSecondPartOfGbk; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfGbk, generatedSecondPartOfUnicode)==0); - generatedGbk.Append(generatedSecondPartOfGbk); - TEST(generatedGbk==aOriginalGbk); - } - } - - -/** -Tests retreiving the MIB value from the GBK UID -Tests retreiving the GBK UID from the MIB value - -@SYMTestCaseID SYSLIB-CHARCONV-CT-0513 -@SYMTestCaseDesc Tests for conversion from MIB to UID and UID to MIB -@SYMTestPriority Medium -@SYMTestActions Tests CCnvCharacterSetConverter::ConvertMibEnumOfCharacterSetToIdentifierL(), - CCnvCharacterSetConverter::ConvertCharacterSetIdentifierToMibEnumL() functions -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void CharacterSetValueAndMIBTests(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession) -{ - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0513 ")); - // check that the character set value of '113' is converted to the GBK UID (0x10003ecb) - TEST(aCharacterSetConverter.ConvertMibEnumOfCharacterSetToIdentifierL(KMibValue,aFileServerSession)==KCharacterSetIdentifierGbk); - TheTest.Printf(_L("\nMIB->Char Set UID - OK")); - - // check that the UCS2 GUID (0x10003ecb) is converted to the character set value of '113' - TEST(aCharacterSetConverter.ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierGbk,aFileServerSession)==KMibValue); - TheTest.Printf(_L("\nChar Set UID->MIB - OK")); -} -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0514 -@SYMTestCaseDesc Conversion tests for GBK to Unicode -@SYMTestPriority Medium -@SYMTestActions Tests for conversion from GBK to Unicode and vice versa. -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void DoE32MainL() - { - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TPtrC8 originalGbk; - TBuf16 originalUnicode; - TBuf8 generatedGbk; - TBuf16 generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - - // test that we can get MIB and Charset values - CharacterSetValueAndMIBTests(*characterSetConverter, fileServerSession); - - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk, *arrayOfCharacterSetsAvailable, fileServerSession); - - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0514 Testing characters shared with GB 2312-80 and characters only in GBK ")); - originalGbk.Set(_L8("A\xfd\x7d\xdd\xb6\xb1\xc9\xe9\x8e\xe8\x9d""E b\xd3\x59\xd2\x40\x95\xc0")); - originalUnicode.Format(_L16("A%c%c%c%c%cE b%c%c%c"), 0x9f77, 0x837b, 0x9119, 0x95b9, 0x94e6, 0x89bb, 0x8938, 0x66b2); - TestTruncatedConversionFromUnicodeToGbk(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 0, 0, 12, 0, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 1, 2, 11, 1, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 3, 4, 10, 3, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 5, 6, 9, 5, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 7, 8, 8, 7, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 9, 10, 7, 9, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 11, 11, 6, 11, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 12, 12, 5, 12, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 13, 13, 4, 13, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 14, 15, 3, 14, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 16, 17, 2, 16, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 18, 19, 1, 18, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 20, 40, 0, 20, originalGbk, originalUnicode); - TestTruncatedConversionToUnicodeFromGbk(*characterSetConverter, originalUnicode, originalGbk); - TestTruncatedConversionToUnicodeFromGbk(*characterSetConverter, originalUnicode.Mid(1, 2), originalGbk.Mid(1, 4)); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 0, 0, 20, 0, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 1, 1, 19, 1, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 2, 2, 17, 2, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 3, 3, 15, 3, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 4, 4, 13, 4, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 5, 5, 11, 5, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 6, 6, 9, 6, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 7, 7, 8, 7, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 8, 8, 7, 8, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 9, 9, 6, 9, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 10, 10, 4, 10, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 11, 11, 2, 11, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 12, 30, 0, 12, originalUnicode, originalGbk); - - TheTest.Next(_L("Testing GBK characters where the first byte has the high-bit set and the second byte doesn't")); - originalGbk.Set(_L8("\x20\x5d\xa0\x5d\xa0\xdd")); - originalUnicode.Format(_L16(" ]%c%c"), 0x71f7, 0x72a6); - TestTruncatedConversionFromUnicodeToGbk(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 0, 0, 4, 0, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 1, 1, 3, 1, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 2, 3, 2, 2, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 4, 5, 1, 4, originalGbk, originalUnicode); - TestSplittingConvertingFromUnicodeToGbk(*characterSetConverter, 6, 20, 0, 6, originalGbk, originalUnicode); - TestTruncatedConversionToUnicodeFromGbk(*characterSetConverter, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 0, 0, 6, 0, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 1, 1, 5, 1, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 2, 2, 4, 2, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 3, 3, 2, 3, originalUnicode, originalGbk); - TestSplittingConvertingToUnicodeFromGbk(*characterSetConverter, 4, 20, 0, 4, originalUnicode, originalGbk); - - TheTest.Next(_L("Testing the many-to-many mapping in GBK")); - originalGbk.Set(_L8("\xa8\x44\xa1\xaa")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGbk, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode.Length()==2); - TEST(generatedUnicode[0]==0x2015); - TEST(generatedUnicode[1]==0x2015); - originalUnicode.SetLength(2); - originalUnicode[0]=0x2014; - originalUnicode[1]=0x2015; - TEST(characterSetConverter->ConvertFromUnicode(generatedGbk, originalUnicode)==0); - TEST(generatedGbk==_L8("\xa1\xaa\xa1\xaa")); - - TheTest.Next(_L("Testing truncated GBK sequences")); - originalGbk.Set(_L8("qwe\xb5")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGbk, state)==1); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==_L16("qwe")); - originalGbk.Set(_L8("qwe\x80")); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalGbk, state)==1); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedUnicode==_L16("qwe")); - CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tgeneralforeign.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tgeneralforeign.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,828 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TGeneralForeign")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// - -const TUint KTibetanCharacter=0x0f65; -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0498 -@SYMTestCaseDesc Tests for CCnvCharacterSetConverter::ConvertToUnicode(), - CCnvCharacterSetConverter::ConvertFromUnicode() functions -@SYMTestPriority Medium -@SYMTestActions Tests for converting various character sets to Unicode and from Unicode back to original character set. -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void DoE32MainL() - { - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0498 ")); - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("No of CharacterSets available:%d\n"),sizeof(arrayOfCharacterSetsAvailable )); - - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TPtrC8 originalForeign; - - HBufC * originalUnicodeHBuf = HBufC::NewLC(128); - TPtr16 originalUnicode = originalUnicodeHBuf->Des(); - - HBufC * generatedUnicodeHBuf = HBufC::NewLC(128); - TPtr16 generatedUnicode = generatedUnicodeHBuf->Des(); - - HBufC * expectedUnicodeHBuf = HBufC::NewLC(128); - TPtr16 expectedUnicode = expectedUnicodeHBuf->Des(); - - HBufC8 * generatedForeignHBuf = HBufC8::NewLC(128); - TPtr8 generatedForeign = generatedForeignHBuf->Des(); - - TInt state=CCnvCharacterSetConverter::KStateDefault; - - TheTest.Next(_L("Big-5")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierBig5, *arrayOfCharacterSetsAvailable, fileServerSession); - originalForeign.Set(_L8("\xa2\xaf\xa1\x40\xc7\xcd\xc7\xce\xc7\xcfk\xa3\x7e")); - expectedUnicode.Format(_L16("%c%c%c%c%ck%c"), 0xff10, 0x3000, 0x0435, 0x0451, 0x0436, 0x310f); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); - TEST(generatedForeign==originalForeign); - - TheTest.Next(_L("CP850 - Test fix for defect DEF083102")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierCP850, *arrayOfCharacterSetsAvailable, fileServerSession); - originalForeign.Set(_L8("\x80\x9e\xa9\x9f\xfe\xe0")); - expectedUnicode.Format(_L16("%c%c%c%c%c%c"), 0x00c7, 0x20a7, 0x2310, 0x0192, 0x25a0, 0x03b1); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); - TEST(generatedForeign==originalForeign); - - TheTest.Next(_L("GB-12345-90")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb12345, *arrayOfCharacterSetsAvailable, fileServerSession); - 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")); - 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); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); - TEST(generatedForeign==originalForeign); - - TheTest.Next(_L("GB-2312-80")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312, *arrayOfCharacterSetsAvailable, fileServerSession); - originalForeign.Set(_L8("4\x27\x26\x27\x27\x27\x28\x29\x6e\x29\x6f\x30\x21\x30\x22\x77\x7e")); - expectedUnicode.Format(_L16("4%c%c%c%c%c%c%c%c"), 0x0415, 0x0401, 0x0416, 0x254a, 0x254b, 0x554a, 0x963f, 0x9f44); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); - TEST(generatedForeign==originalForeign); - - TheTest.Next(_L("GBK")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk, *arrayOfCharacterSetsAvailable, fileServerSession); - 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:")); - 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); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); - TEST(generatedForeign==originalForeign); - - TheTest.Next(_L("JIS X 0208")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, *arrayOfCharacterSetsAvailable, fileServerSession); - originalForeign.Set(_L8("\x81\xf6\x81\xf7\x81\xfc\x82\x4f\x82\x50+\x81\x40\xa1\xdf\xea\xa4")); - expectedUnicode.Format(_L16("%c%c%c%c%c+%c%c"), 0x2021, 0x00b6, 0x25ef, 0xff10, 0xff11, 0x3000, 0xff61, 0xff9f, 0x7199); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); - TEST(generatedForeign==originalForeign); - - TheTest.Next(_L("JIS X 0212")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierEucJpPacked, *arrayOfCharacterSetsAvailable, fileServerSession); - 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")); - expectedUnicode.Format(_L16("%c%c%c%c%c&%c%c%c%c%c"), 0x0166, 0xff8d, 0x00de, 0x8f9c, 0x00e6, 0x0111, 0x9fa5, 0x7fc3, 0x02d8, 0x02dd); - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, originalForeign, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, generatedUnicode)==0); - TEST(generatedForeign==originalForeign); - - TheTest.Next(_L("Testing unconvertible characters")); - TInt numberOfUnconvertibleCharacters; - TInt indexOfFirstUnconvertibleCharacter; - CCnvCharacterSetConverter::TArrayOfAscendingIndices indicesOfUnconvertibleCharacters; - originalUnicode.Format(_L16("%c"), KTibetanCharacter); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022Jp, *arrayOfCharacterSetsAvailable, fileServerSession); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x1b\x24\x42\x21\x29")); - characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("amb")); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("amb")); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("amb")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierAscii, *arrayOfCharacterSetsAvailable, fileServerSession); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022Jp, *arrayOfCharacterSetsAvailable, fileServerSession); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode)==0); - TEST(generatedForeign==_L8("\x1b\x24\x42\x21\x29")); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters)==0); - TEST(generatedForeign==_L8("\x1b\x24\x42\x21\x29")); - TEST(numberOfUnconvertibleCharacters==1); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter)==0); - TEST(generatedForeign==_L8("\x1b\x24\x42\x21\x29")); - TEST(numberOfUnconvertibleCharacters==1); - TEST(indexOfFirstUnconvertibleCharacter==0); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(generatedForeign==_L8("\x1b\x24\x42\x21\x29")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); - TEST(indicesOfUnconvertibleCharacters[0]==0); - indicesOfUnconvertibleCharacters.RemoveAll(); - characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("amb")); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters)==0); - TEST(generatedForeign==_L8("amb")); - TEST(numberOfUnconvertibleCharacters==1); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter)==0); - TEST(generatedForeign==_L8("amb")); - TEST(numberOfUnconvertibleCharacters==1); - TEST(indexOfFirstUnconvertibleCharacter==0); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(generatedForeign==_L8("amb")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); - TEST(indicesOfUnconvertibleCharacters[0]==0); - indicesOfUnconvertibleCharacters.RemoveAll(); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, _L16("amb"), numberOfUnconvertibleCharacters)==0); - TEST(generatedForeign==_L8("amb")); - TEST(numberOfUnconvertibleCharacters==0); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, _L16("amb"), numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter)==0); - TEST(generatedForeign==_L8("amb")); - TEST(numberOfUnconvertibleCharacters==0); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, _L16("amb"), indicesOfUnconvertibleCharacters)==0); - TEST(generatedForeign==_L8("amb")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); - indicesOfUnconvertibleCharacters.RemoveAll(); - originalUnicode.Format(_L16("Red, %cer, green. Je voudrais du j%con."), KTibetanCharacter, KTibetanCharacter); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(generatedForeign==_L8("Red, amb""er, green. Je voudrais du jambon.")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); - TEST(indicesOfUnconvertibleCharacters[0]==5); - TEST(indicesOfUnconvertibleCharacters[1]==33); - indicesOfUnconvertibleCharacters.RemoveAll(); - originalUnicode.Format(_L16("Red, amber, green%c Je voudrais du jambon%c"), KTibetanCharacter, KTibetanCharacter); - characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8(".")); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(generatedForeign==_L8("Red, amber, green. Je voudrais du jambon.")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); - TEST(indicesOfUnconvertibleCharacters[0]==17); - TEST(indicesOfUnconvertibleCharacters[1]==40); - indicesOfUnconvertibleCharacters.RemoveAll(); - originalUnicode.Format(_L16("%ced, amber, green. Je voudrais du jambon."), KTibetanCharacter); - characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("R")); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(generatedForeign==_L8("R""ed, amber, green. Je voudrais du jambon.")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); - TEST(indicesOfUnconvertibleCharacters[0]==0); - indicesOfUnconvertibleCharacters.RemoveAll(); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312, *arrayOfCharacterSetsAvailable, fileServerSession); - characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("e")); - originalUnicode.Format(_L16("R%cd, amb%cr, gr%c%cn. J%c voudrais du jambon."), KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(generatedForeign==_L8("Red, amber, green. Je voudrais du jambon.")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==5); - TEST(indicesOfUnconvertibleCharacters[0]==1); - TEST(indicesOfUnconvertibleCharacters[1]==8); - TEST(indicesOfUnconvertibleCharacters[2]==14); - TEST(indicesOfUnconvertibleCharacters[3]==15); - TEST(indicesOfUnconvertibleCharacters[4]==20); - indicesOfUnconvertibleCharacters.RemoveAll(); - originalUnicode.Format(_L16("Red, amber, green%c Je voudrais du jambon%c"), KTibetanCharacter, KTibetanCharacter); - characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8(".")); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(generatedForeign==_L8("Red, amber, green. Je voudrais du jambon.")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); - TEST(indicesOfUnconvertibleCharacters[0]==17); - TEST(indicesOfUnconvertibleCharacters[1]==40); - indicesOfUnconvertibleCharacters.RemoveAll(); - originalUnicode.Format(_L16("%ced, amber, green. Je voudrais du jambon."), KTibetanCharacter); - characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("R")); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(generatedForeign==_L8("Red, amber, green. Je voudrais du jambon.")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); - TEST(indicesOfUnconvertibleCharacters[0]==0); - indicesOfUnconvertibleCharacters.RemoveAll(); - - originalUnicode.Format(_L16("T %c%c%c%c%c %c%c%c%c%c %c%c%c%c%c %c%c%c%c%c %c%c%c%c%c %cT."), KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter,KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter,KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter,KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter); - characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("R")); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(generatedForeign==_L8("T RRRRR RRRRR RRRRR RRRRR RRRRR RT.")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==25); - TEST(indicesOfUnconvertibleCharacters[0]==2); - TEST(indicesOfUnconvertibleCharacters[1]==3); - TEST(indicesOfUnconvertibleCharacters[2]==4); - TEST(indicesOfUnconvertibleCharacters[3]==5); - TEST(indicesOfUnconvertibleCharacters[4]==6); - - TEST(indicesOfUnconvertibleCharacters[5]==8); - TEST(indicesOfUnconvertibleCharacters[6]==9); - TEST(indicesOfUnconvertibleCharacters[7]==10); - TEST(indicesOfUnconvertibleCharacters[8]==11); - TEST(indicesOfUnconvertibleCharacters[9]==12); - - TEST(indicesOfUnconvertibleCharacters[10]==14); - TEST(indicesOfUnconvertibleCharacters[11]==15); - TEST(indicesOfUnconvertibleCharacters[12]==16); - TEST(indicesOfUnconvertibleCharacters[13]==17); - TEST(indicesOfUnconvertibleCharacters[14]==18); - - TEST(indicesOfUnconvertibleCharacters[15]==20); - TEST(indicesOfUnconvertibleCharacters[16]==21); - TEST(indicesOfUnconvertibleCharacters[17]==22); - TEST(indicesOfUnconvertibleCharacters[18]==23); - TEST(indicesOfUnconvertibleCharacters[19]==24); - - TEST(indicesOfUnconvertibleCharacters[20]==26); - TEST(indicesOfUnconvertibleCharacters[21]==27); - TEST(indicesOfUnconvertibleCharacters[22]==28); - TEST(indicesOfUnconvertibleCharacters[23]==29); - TEST(indicesOfUnconvertibleCharacters[24]==30); - indicesOfUnconvertibleCharacters.RemoveAll(); - - - TUint8* const foreignBuffer=CONST_CAST(TUint8*, generatedForeign.Ptr()); - TPtr8 shortForeignOutputBuffer(NULL, 0, 0); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJis, *arrayOfCharacterSetsAvailable, fileServerSession); - originalUnicode.Format(_L16("%c%c%c%c%cT%c%c%c%c"), KTibetanCharacter, 0x7a83, KTibetanCharacter, 0xff78, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter, 0x68e5, KTibetanCharacter); - _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"); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 49); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(shortForeignOutputBuffer==KLit8ExpectedJis_1); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==6); - TEST(indicesOfUnconvertibleCharacters[0]==0); - TEST(indicesOfUnconvertibleCharacters[1]==2); - TEST(indicesOfUnconvertibleCharacters[2]==4); - TEST(indicesOfUnconvertibleCharacters[3]==6); - TEST(indicesOfUnconvertibleCharacters[4]==7); - TEST(indicesOfUnconvertibleCharacters[5]==9); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 48); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); - TEST(shortForeignOutputBuffer==KLit8ExpectedJis_1().Left(44)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==5); - TEST(indicesOfUnconvertibleCharacters[0]==0); - TEST(indicesOfUnconvertibleCharacters[1]==2); - TEST(indicesOfUnconvertibleCharacters[2]==4); - TEST(indicesOfUnconvertibleCharacters[3]==6); - TEST(indicesOfUnconvertibleCharacters[4]==7); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 37); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); - TEST(shortForeignOutputBuffer==KLit8ExpectedJis_1().Left(33)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==4); - TEST(indicesOfUnconvertibleCharacters[0]==0); - TEST(indicesOfUnconvertibleCharacters[1]==2); - TEST(indicesOfUnconvertibleCharacters[2]==4); - TEST(indicesOfUnconvertibleCharacters[3]==6); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 32); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==4); - TEST(shortForeignOutputBuffer==KLit8ExpectedJis_1().Left(28)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); - TEST(indicesOfUnconvertibleCharacters[0]==0); - TEST(indicesOfUnconvertibleCharacters[1]==2); - TEST(indicesOfUnconvertibleCharacters[2]==4); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 23); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==6); - TEST(shortForeignOutputBuffer==KLit8ExpectedJis_1().Left(19)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); - TEST(indicesOfUnconvertibleCharacters[0]==0); - TEST(indicesOfUnconvertibleCharacters[1]==2); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 14); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==8); - TEST(shortForeignOutputBuffer==KLit8ExpectedJis_1().Left(10)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); - TEST(indicesOfUnconvertibleCharacters[0]==0); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 4); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==10); - TEST(shortForeignOutputBuffer==KNullDesC8); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); - indicesOfUnconvertibleCharacters.RemoveAll(); - characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("\x1b\x28\x42_")); - _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_"); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 43); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(shortForeignOutputBuffer==KLit8ExpectedJis_2); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==6); - TEST(indicesOfUnconvertibleCharacters[0]==0); - TEST(indicesOfUnconvertibleCharacters[1]==2); - TEST(indicesOfUnconvertibleCharacters[2]==4); - TEST(indicesOfUnconvertibleCharacters[3]==6); - TEST(indicesOfUnconvertibleCharacters[4]==7); - TEST(indicesOfUnconvertibleCharacters[5]==9); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 42); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); - TEST(shortForeignOutputBuffer==KLit8ExpectedJis_2().Left(39)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==5); - TEST(indicesOfUnconvertibleCharacters[0]==0); - TEST(indicesOfUnconvertibleCharacters[1]==2); - TEST(indicesOfUnconvertibleCharacters[2]==4); - TEST(indicesOfUnconvertibleCharacters[3]==6); - TEST(indicesOfUnconvertibleCharacters[4]==7); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 32); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); - TEST(shortForeignOutputBuffer==KLit8ExpectedJis_2().Left(29)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==4); - TEST(indicesOfUnconvertibleCharacters[0]==0); - TEST(indicesOfUnconvertibleCharacters[1]==2); - TEST(indicesOfUnconvertibleCharacters[2]==4); - TEST(indicesOfUnconvertibleCharacters[3]==6); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 28); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==4); - TEST(shortForeignOutputBuffer==KLit8ExpectedJis_2().Left(25)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); - TEST(indicesOfUnconvertibleCharacters[0]==0); - TEST(indicesOfUnconvertibleCharacters[1]==2); - TEST(indicesOfUnconvertibleCharacters[2]==4); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 20); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==6); - TEST(shortForeignOutputBuffer==KLit8ExpectedJis_2().Left(17)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); - TEST(indicesOfUnconvertibleCharacters[0]==0); - TEST(indicesOfUnconvertibleCharacters[1]==2); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 12); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==8); - TEST(shortForeignOutputBuffer==KLit8ExpectedJis_2().Left(9)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); - TEST(indicesOfUnconvertibleCharacters[0]==0); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 3); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==10); - TEST(shortForeignOutputBuffer==KNullDesC8); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); - indicesOfUnconvertibleCharacters.RemoveAll(); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312, *arrayOfCharacterSetsAvailable, fileServerSession); - originalUnicode.Format(_L16("%c%c!%c%c%c"), 0x4e2d, KTibetanCharacter, KTibetanCharacter, 0x56fd, KTibetanCharacter); - _LIT8(KLit8ExpectedGb2312_1, "\xd6\xd0\xa3\xbf!\xa3\xbf\xb9\xfa\xa3\xbf"); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 11); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_1); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); - TEST(indicesOfUnconvertibleCharacters[0]==1); - TEST(indicesOfUnconvertibleCharacters[1]==3); - TEST(indicesOfUnconvertibleCharacters[2]==5); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 10); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); - TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_1().Left(9)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); - TEST(indicesOfUnconvertibleCharacters[0]==1); - TEST(indicesOfUnconvertibleCharacters[1]==3); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 6); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); - TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_1().Left(5)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); - TEST(indicesOfUnconvertibleCharacters[0]==1); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 3); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==5); - TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_1().Left(2)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); - indicesOfUnconvertibleCharacters.RemoveAll(); - characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("_")); - _LIT8(KLit8ExpectedGb2312_2, "\xd6\xd0_!_\xb9\xfa_"); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 8); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_2); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); - TEST(indicesOfUnconvertibleCharacters[0]==1); - TEST(indicesOfUnconvertibleCharacters[1]==3); - TEST(indicesOfUnconvertibleCharacters[2]==5); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 7); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); - TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_2().Left(7)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); - TEST(indicesOfUnconvertibleCharacters[0]==1); - TEST(indicesOfUnconvertibleCharacters[1]==3); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 4); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); - TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_2().Left(4)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); - TEST(indicesOfUnconvertibleCharacters[0]==1); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 2); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==5); - TEST(shortForeignOutputBuffer==KLit8ExpectedGb2312_2().Left(2)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); - indicesOfUnconvertibleCharacters.RemoveAll(); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierHz, *arrayOfCharacterSetsAvailable, fileServerSession); - originalUnicode.Format(_L16("%c%c%c%c^%cZ%c"), 0x6ee1, KTibetanCharacter, 0x80ea, KTibetanCharacter, KTibetanCharacter, KTibetanCharacter); - _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 - shortForeignOutputBuffer.Set(foreignBuffer, 0, 26); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(shortForeignOutputBuffer==KLit8ExpectedHz_1); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==4); - TEST(indicesOfUnconvertibleCharacters[0]==1); - TEST(indicesOfUnconvertibleCharacters[1]==3); - TEST(indicesOfUnconvertibleCharacters[2]==5); - TEST(indicesOfUnconvertibleCharacters[3]==7); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 25); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); - TEST(shortForeignOutputBuffer==KLit8ExpectedHz_1().Left(20)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); - TEST(indicesOfUnconvertibleCharacters[0]==1); - TEST(indicesOfUnconvertibleCharacters[1]==3); - TEST(indicesOfUnconvertibleCharacters[2]==5); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 18); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); - TEST(shortForeignOutputBuffer==KLit8ExpectedHz_1().Left(13)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); - TEST(indicesOfUnconvertibleCharacters[0]==1); - TEST(indicesOfUnconvertibleCharacters[1]==3); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 11); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==5); - TEST(shortForeignOutputBuffer==_L8("~{Bz#?kM~}")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); - TEST(indicesOfUnconvertibleCharacters[0]==1); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 7); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==7); - TEST(shortForeignOutputBuffer==_L8("~{Bz~}")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); - indicesOfUnconvertibleCharacters.RemoveAll(); - characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("_")); - _LIT8(KLit8ExpectedHz_2, "~{Bz~}_~{kM~}_^_Z_"); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 18); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(shortForeignOutputBuffer==KLit8ExpectedHz_2); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==4); - TEST(indicesOfUnconvertibleCharacters[0]==1); - TEST(indicesOfUnconvertibleCharacters[1]==3); - TEST(indicesOfUnconvertibleCharacters[2]==5); - TEST(indicesOfUnconvertibleCharacters[3]==7); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 17); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==1); - TEST(shortForeignOutputBuffer==KLit8ExpectedHz_2().Left(17)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==3); - TEST(indicesOfUnconvertibleCharacters[0]==1); - TEST(indicesOfUnconvertibleCharacters[1]==3); - TEST(indicesOfUnconvertibleCharacters[2]==5); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 15); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==3); - TEST(shortForeignOutputBuffer==KLit8ExpectedHz_2().Left(15)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); - TEST(indicesOfUnconvertibleCharacters[0]==1); - TEST(indicesOfUnconvertibleCharacters[1]==3); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 13); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==5); - TEST(shortForeignOutputBuffer==KLit8ExpectedHz_2().Left(13)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==1); - TEST(indicesOfUnconvertibleCharacters[0]==1); - indicesOfUnconvertibleCharacters.RemoveAll(); - shortForeignOutputBuffer.Set(foreignBuffer, 0, 6); - TEST(characterSetConverter->ConvertFromUnicode(shortForeignOutputBuffer, originalUnicode, indicesOfUnconvertibleCharacters)==7); - TEST(shortForeignOutputBuffer==KLit8ExpectedHz_2().Left(6)); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); - indicesOfUnconvertibleCharacters.RemoveAll(); - - TheTest.Next(_L("unconvertible foreign characters")); - TUint16* const unicodeBuffer=CONST_CAST(TUint16*, generatedUnicode.Ptr()); - TPtr16 shortUnicodeOutputBuffer(NULL, 0, 0); - TInt indexOfFirstByteOfFirstUnconvertibleCharacter; - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk, *arrayOfCharacterSetsAvailable, fileServerSession); - originalForeign.Set(TPtrC8(_S8("qwe\x80\x00rt\x81\x40\x81\x3f\xb6\x7e\xfe\xfe\xa1\xa1\xff\xff"), 19)); - expectedUnicode.Format(_L16("qwe%crt%c%c%c%c%c%c"), 0xfffd, 0x4e02, 0xfffd, 0x79ea, 0xfffd, 0x3000, 0xfffd); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 12); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==0); - TEST(shortUnicodeOutputBuffer==expectedUnicode); - TEST(numberOfUnconvertibleCharacters==4); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); - TEST(shortUnicodeOutputBuffer==expectedUnicode); - TEST(numberOfUnconvertibleCharacters==4); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 11); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==2); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(11)); - TEST(numberOfUnconvertibleCharacters==3); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==2); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(11)); - TEST(numberOfUnconvertibleCharacters==3); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 9); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==6); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(9)); - TEST(numberOfUnconvertibleCharacters==2); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==6); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(9)); - TEST(numberOfUnconvertibleCharacters==2); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 7); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==10); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(7)); - TEST(numberOfUnconvertibleCharacters==1); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==10); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(7)); - TEST(numberOfUnconvertibleCharacters==1); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 3); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==16); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); - TEST(numberOfUnconvertibleCharacters==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==16); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, *arrayOfCharacterSetsAvailable, fileServerSession); - originalForeign.Set(_S8("\xea\xa5\xaf\xea\xa6\x9a\xeb\xea\xeb@\xea\x56\xea\xfc")); - expectedUnicode.Format(_L16("%c%c%c%c%c@%c%c"), 0xfffd, 0xff6f, 0xfffd, 0x68a6, 0xfffd, 0x9dcf, 0xfffd); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 8); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==0); - TEST(shortUnicodeOutputBuffer==expectedUnicode); - TEST(numberOfUnconvertibleCharacters==4); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); - TEST(shortUnicodeOutputBuffer==expectedUnicode); - TEST(numberOfUnconvertibleCharacters==4); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 7); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==2); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(7)); - TEST(numberOfUnconvertibleCharacters==3); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==2); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(7)); - TEST(numberOfUnconvertibleCharacters==3); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 4); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==7); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(4)); - TEST(numberOfUnconvertibleCharacters==2); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==7); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(4)); - TEST(numberOfUnconvertibleCharacters==2); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 2); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==11); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(2)); - TEST(numberOfUnconvertibleCharacters==1); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==11); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(2)); - TEST(numberOfUnconvertibleCharacters==1); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 0); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==14); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(0)); - TEST(numberOfUnconvertibleCharacters==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==14); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(0)); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022Jp1, *arrayOfCharacterSetsAvailable, fileServerSession); - 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")); - expectedUnicode.Format(_L16("%c%c%c%c%c%c*+%c%c%c"), 0xfffd, 0xff8b, 0xfffd, 0xfffd, 0x6469, 0xfffd, 0x9f6e, 0xfffd, 0x6bf1); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 11); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==0); - TEST(shortUnicodeOutputBuffer==expectedUnicode); - TEST(numberOfUnconvertibleCharacters==5); - state=CCnvCharacterSetConverter::KStateDefault; - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); - TEST(shortUnicodeOutputBuffer==expectedUnicode); - TEST(numberOfUnconvertibleCharacters==5); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 9); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==4); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(9)); - TEST(numberOfUnconvertibleCharacters==4); - state=CCnvCharacterSetConverter::KStateDefault; - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==4); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(9)); - TEST(numberOfUnconvertibleCharacters==4); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 5); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==17); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(5)); - TEST(numberOfUnconvertibleCharacters==3); - state=CCnvCharacterSetConverter::KStateDefault; - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==17); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(5)); - TEST(numberOfUnconvertibleCharacters==3); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 3); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==21); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); - TEST(numberOfUnconvertibleCharacters==2); - state=CCnvCharacterSetConverter::KStateDefault; - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==21); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); - TEST(numberOfUnconvertibleCharacters==2); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 2); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==25); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(2)); - TEST(numberOfUnconvertibleCharacters==1); - state=CCnvCharacterSetConverter::KStateDefault; - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==25); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(2)); - TEST(numberOfUnconvertibleCharacters==1); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 0); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==30); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(0)); - TEST(numberOfUnconvertibleCharacters==0); - state=CCnvCharacterSetConverter::KStateDefault; - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==30); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(0)); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierHz, *arrayOfCharacterSetsAvailable, fileServerSession); - originalForeign.Set(_S8("{~{ !!\"o~}~~~{o\"x#R7~}}")); - expectedUnicode.Format(_L16("{%c%c%c~%c%c%c}"), 0xfffd, 0x3000, 0xfffd, 0x94eb, 0xfffd, 0x66f3); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 9); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==0); - TEST(shortUnicodeOutputBuffer==expectedUnicode); - TEST(numberOfUnconvertibleCharacters==3); - state=CCnvCharacterSetConverter::KStateDefault; - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); - TEST(shortUnicodeOutputBuffer==expectedUnicode); - TEST(numberOfUnconvertibleCharacters==3); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 6); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==7); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(6)); - TEST(numberOfUnconvertibleCharacters==2); - state=CCnvCharacterSetConverter::KStateDefault; - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==7); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(6)); - TEST(numberOfUnconvertibleCharacters==2); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 3); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==17); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); - TEST(numberOfUnconvertibleCharacters==1); - state=CCnvCharacterSetConverter::KStateDefault; - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==17); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(3)); - TEST(numberOfUnconvertibleCharacters==1); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==3); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 1); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters)==21); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(1)); - TEST(numberOfUnconvertibleCharacters==0); - state=CCnvCharacterSetConverter::KStateDefault; - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==21); - TEST(shortUnicodeOutputBuffer==expectedUnicode.Left(1)); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TheTest.Next(_L("unconvertible foreign characters - INC123064")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierUtf8, *arrayOfCharacterSetsAvailable, fileServerSession); - originalForeign.Set(_S8("\x33\x2e\xa1\x6d\xb0\xca\xb7\x50\xa4\xd1\xa6\x61\xa1\x6e\x3a\xb3\xf8\xb9\x44\xc5\xe9\xbe\xc2\xa7\xd6\xb0\x54\x20\x28\x32\x30\x30\x38\x2d\x30\x35\x2d\x30\x32\x29")); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 40); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); - TEST(numberOfUnconvertibleCharacters==10); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==2); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJavaConformantUtf8, *arrayOfCharacterSetsAvailable, fileServerSession); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 40); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); - TEST(numberOfUnconvertibleCharacters==10); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==2); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierUtf8, *arrayOfCharacterSetsAvailable, fileServerSession); - originalForeign.Set(_S8("RTHK ON INTERNET")); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 16); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJavaConformantUtf8, *arrayOfCharacterSetsAvailable, fileServerSession); - state=CCnvCharacterSetConverter::KStateDefault; - shortUnicodeOutputBuffer.Set(unicodeBuffer, 0, 16); - TEST(characterSetConverter->ConvertToUnicode(shortUnicodeOutputBuffer, originalForeign, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter)==0); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - // Cleanup: arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - // and originalUnicodeHBuf, generatedUnicodeHBuf, expectedUnicodeHBuf, generatedForeignHBuf - CleanupStack::PopAndDestroy(7); - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/thz.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/thz.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,364 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("THZ")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// - -const TInt KBufferLength=100; -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0503 -@SYMTestCaseDesc Tests for truncated conversion from Unicode to HZ character set -@SYMTestPriority Medium -@SYMTestActions Tests for generated Unicode with the original Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionFromUnicodeToHz(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0503 ")); - for (TInt i=aOriginalUnicode.Length(); i>=0; --i) - { - TBuf8 generatedHz; - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedHz, aOriginalUnicode.Left(i)); - TEST(returnValue>=0); - TBuf8 generatedsecondPartOfHz; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfHz, aOriginalUnicode.Mid(i-returnValue))==0); - generatedHz.Append(generatedsecondPartOfHz); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedHz, state)==0); - TEST(generatedUnicode==aOriginalUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0504 -@SYMTestCaseDesc Splitting and converting from Unicode to HZ test -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting from Unicode to Hz and back to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingFromUnicodeToHz(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, const TDesC8& aExpectedFirstPartOfHz, const TDesC8& aExpectedSecondPartOfHz, const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0504 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint8 hzBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr8 generatedFirstPartOfHz(hzBuffer, i); - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfHz, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); - TEST(generatedFirstPartOfHz==aExpectedFirstPartOfHz); - TBuf8 generatedSecondPartOfHz; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfHz, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); - TEST(generatedSecondPartOfHz==aExpectedSecondPartOfHz); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfHz, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfHz, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - generatedUnicode.Append(generatedSecondPartOfUnicode); - TEST(generatedUnicode==aOriginalUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0505 -@SYMTestCaseDesc Tests for truncated conversion from HZ to Unicode -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after truncation from HZ to Unicode and back to HZ -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionToUnicodeFromHz(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalHz) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0505 ")); - for (TInt i=aOriginalHz.Length(); i>=2; --i) // 2 is the length of HZ's "tilde" sequences - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalHz.Left(i), state); - TEST(returnValue>=0); - TBuf16 generatedsecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalHz.Mid(i-returnValue), state)==0); - generatedUnicode.Append(generatedsecondPartOfUnicode); - TEST(generatedUnicode==aExpectedUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0506 -@SYMTestCaseDesc Splitting and converting to Unicode from HZ test -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting from Hz to Unicode and back to Hz -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingToUnicodeFromHz(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfHzBytesNotConvertedAtSplit, TInt aExpectedStateAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalHz) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0506 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint16 unicodeBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); - TInt state=CCnvCharacterSetConverter::KStateDefault; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalHz, state); - TEST(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); - TEST((returnValue==aExpectedNumberOfHzBytesNotConvertedAtSplit) && (state==aExpectedStateAtSplit)); - { - TBuf16 generatedSecondPartOfUnicode; - state=aExpectedStateAtSplit; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalHz.Right(aExpectedNumberOfHzBytesNotConvertedAtSplit), state)==0); - TEST(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf8 generatedHz; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedHz, generatedFirstPartOfUnicode)==0); - TBuf8 generatedSecondPartOfHz; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfHz, generatedSecondPartOfUnicode)==0); - generatedHz.Append(generatedSecondPartOfHz); - TBuf16 regeneratedUnicode; - state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, generatedHz, state)==0); - TEST(regeneratedUnicode==aExpectedUnicode); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, aOriginalHz, state)==0); - TEST(regeneratedUnicode==aExpectedUnicode); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - } - { - TBuf16 generatedSecondPartOfUnicode; - state=aExpectedStateAtSplit; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalHz.Right(aExpectedNumberOfHzBytesNotConvertedAtSplit), state)==0); - TEST(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf8 generatedHz; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedHz, generatedFirstPartOfUnicode)==0); - TBuf8 generatedSecondPartOfHz; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfHz, generatedSecondPartOfUnicode)==0); - generatedHz.Append(generatedSecondPartOfHz); - TBuf16 regeneratedUnicode; - state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, generatedHz, state)==0); - TEST(regeneratedUnicode==aExpectedUnicode); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, aOriginalHz, state)==0); - TEST(regeneratedUnicode==aExpectedUnicode); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - } - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0507 -@SYMTestCaseDesc Conversion of bad HZ format to Unicode test -@SYMTestPriority Medium -@SYMTestActions Tests to convert bad Hz format to Unicode. - Check the status of CCnvCharacterSetConverter::EErrorIllFormedInput error flag -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestIsIllFormedHz(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aHz) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0507 ")); - TBuf16<50> generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - TPtrC8 remainderOfHz(aHz); - TInt lastReturnValue=KMaxTInt; - FOREVER - { - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfHz, state); - if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) - { - break; - } - TEST(returnValue>0); - TEST(returnValue* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TheTest.Next(_L("Testing HZ conversions")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierHz, *arrayOfCharacterSetsAvailable, fileServerSession); - // - TheTest.Next(_L("Empty descriptor")); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 0, 10, 0, KNullDesC8, KNullDesC8, KNullDesC16); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 0, 10, 0, CCnvCharacterSetConverter::KStateDefault, 0, KNullDesC16, KNullDesC8); - TheTest.Next(_L("Testing converting to HZ")); - TBuf16<50> originalUnicode; - originalUnicode.Format(_L16("%c%cxyz%c%c~%c~~%ce~a%c"), 0x4e2d, 0x56fd, 0x5979, 0x4ed6, 0x4eba, 0x4e09, 0x7259); - TestTruncatedConversionFromUnicodeToHz(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 0, 5, 16, KNullDesC8, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 6, 7, 15, _L8("~{VP~}"), _L8("~{9z~}xyz~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 8, 8, 14, _L8("~{VP9z~}"), _L8("xyz~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 9, 9, 13, _L8("~{VP9z~}x"), _L8("yz~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 10, 10, 12, _L8("~{VP9z~}xy"), _L8("z~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 11, 16, 11, _L8("~{VP9z~}xyz"), _L8("~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 17, 18, 10, _L8("~{VP9z~}xyz~{K}~}"), _L8("~{K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 19, 20, 9, _L8("~{VP9z~}xyz~{K}K{~}"), _L8("~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 21, 26, 8, _L8("~{VP9z~}xyz~{K}K{~}~~"), _L8("~{HK~}~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 27, 28, 7, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}"), _L8("~~~~~{H}~}e~~a~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 29, 30, 6, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~"), _L8("~~~{H}~}e~~a~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 31, 36, 5, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~~~"), _L8("~{H}~}e~~a~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 37, 37, 4, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~~~~{H}~}"), _L8("e~~a~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 38, 39, 3, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~~~~{H}~}e"), _L8("~~a~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 40, 40, 2, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~~~~{H}~}e~~"), _L8("a~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 41, 46, 1, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a"), _L8("~{Q@~}"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 47, 50, 0, _L8("~{VP9z~}xyz~{K}K{~}~~~{HK~}~~~~~{H}~}e~~a~{Q@~}"), KNullDesC8, originalUnicode); - TheTest.Next(_L("Testing converting to Unicode")); - const TPtrC8 originalHz(_S8("My name is ~{3W~} ~~~~{~~I ~{'X'Z'S'e~} in ~{11>)~}~~~~}~~~~")); - TBuf16<50> expectedUnicode; - expectedUnicode.Format(_L16("My name is %c ~~{~I %c%c%c%c in %c%c~~}~~"), 0x5319, 0x0436, 0x0438, 0x0432, 0x0443, 0x5317, 0x4eac); - TestTruncatedConversionToUnicodeFromHz(*characterSetConverter, expectedUnicode, originalHz); - TestTruncatedConversionToUnicodeFromHz(*characterSetConverter, _L16("Hello"), _L8("~{~}~{~}~{~}Hello")); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 0, 0, 60, CCnvCharacterSetConverter::KStateDefault, 0, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 1, 1, 59, CCnvCharacterSetConverter::KStateDefault, 1, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 2, 2, 58, CCnvCharacterSetConverter::KStateDefault, 2, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 3, 3, 57, CCnvCharacterSetConverter::KStateDefault, 3, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 4, 4, 56, CCnvCharacterSetConverter::KStateDefault, 4, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 5, 5, 55, CCnvCharacterSetConverter::KStateDefault, 5, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 6, 6, 54, CCnvCharacterSetConverter::KStateDefault, 6, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 7, 7, 53, CCnvCharacterSetConverter::KStateDefault, 7, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 8, 8, 52, CCnvCharacterSetConverter::KStateDefault, 8, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 9, 9, 51, CCnvCharacterSetConverter::KStateDefault, 9, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 10, 10, 50, CCnvCharacterSetConverter::KStateDefault, 10, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 11, 11, 47, CCnvCharacterSetConverter::KStateDefault+1, 11, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 12, 12, 43, CCnvCharacterSetConverter::KStateDefault, 12, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 13, 13, 42, CCnvCharacterSetConverter::KStateDefault, 13, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 14, 14, 40, CCnvCharacterSetConverter::KStateDefault, 14, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 15, 15, 38, CCnvCharacterSetConverter::KStateDefault, 15, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 16, 16, 37, CCnvCharacterSetConverter::KStateDefault, 16, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 17, 17, 35, CCnvCharacterSetConverter::KStateDefault, 17, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 18, 18, 34, CCnvCharacterSetConverter::KStateDefault, 18, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 19, 19, 31, CCnvCharacterSetConverter::KStateDefault+1, 19, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 20, 20, 29, CCnvCharacterSetConverter::KStateDefault+1, 20, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 21, 21, 27, CCnvCharacterSetConverter::KStateDefault+1, 21, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 22, 22, 25, CCnvCharacterSetConverter::KStateDefault+1, 22, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 23, 23, 21, CCnvCharacterSetConverter::KStateDefault, 23, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 24, 24, 20, CCnvCharacterSetConverter::KStateDefault, 24, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 25, 25, 19, CCnvCharacterSetConverter::KStateDefault, 25, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 26, 26, 18, CCnvCharacterSetConverter::KStateDefault, 26, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 27, 27, 15, CCnvCharacterSetConverter::KStateDefault+1, 27, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 28, 28, 13, CCnvCharacterSetConverter::KStateDefault+1, 28, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 29, 29, 9, CCnvCharacterSetConverter::KStateDefault, 29, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 30, 30, 7, CCnvCharacterSetConverter::KStateDefault, 30, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 31, 31, 5, CCnvCharacterSetConverter::KStateDefault, 31, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 32, 32, 4, CCnvCharacterSetConverter::KStateDefault, 32, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 33, 33, 2, CCnvCharacterSetConverter::KStateDefault, 33, expectedUnicode, originalHz); - TestSplittingConvertingToUnicodeFromHz(*characterSetConverter, 34, 40, 0, CCnvCharacterSetConverter::KStateDefault, 34, expectedUnicode, originalHz); - TheTest.Next(_L("Having '~' as the second byte of a Chinese character")); - originalUnicode.Format(_L16("1%c2"), 0x4e8c); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 0, 0, 3, KNullDesC8, _L8("1~{6~~}2"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 1, 6, 2, _L8("1"), _L8("~{6~~}2"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 7, 7, 1, _L8("1~{6~~}"), _L8("2"), originalUnicode); - TestSplittingConvertingFromUnicodeToHz(*characterSetConverter, 8, 20, 0, _L8("1~{6~~}2"), KNullDesC8, originalUnicode); - TheTest.Next(_L("Testing ill-formed HZ")); - TestIsIllFormedHz(*characterSetConverter, _L8("abc ~{C~} def")); - TestIsIllFormedHz(*characterSetConverter, _L8("abc ~{C;C~} def")); - TestIsIllFormedHz(*characterSetConverter, _L8("abc ~{C;C;C~} def")); - TestIsIllFormedHz(*characterSetConverter, _L8("abc ~")); - TestIsIllFormedHz(*characterSetConverter, _L8("abc ~{~")); - TestIsIllFormedHz(*characterSetConverter, _L8("abc ~{C")); - // note that...................................._L8("abc ~{C~") is actually well-formed - TestIsIllFormedHz(*characterSetConverter, _L8("abc ~{C;~")); - CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tiscii.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tiscii.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,152 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierIscii; -// Local Functions -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TestISCII")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -const TInt KBufferLength=100; - -LOCAL_C void TestConversionToUnicodeFromISCII(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalISCII, TInt aExpectedResult = 0) - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalISCII, state); - TEST(returnValue == aExpectedResult ); - TEST(generatedUnicode==aExpectedUnicode); - } - -LOCAL_C void TestConversionToUnicodeFromTruncatedISCII(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16&, const TDesC8& aOriginalISCII, TInt aExpectedResult = 0) - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalISCII, state); - TEST(returnValue != aExpectedResult ); - } - -LOCAL_C void TestConversionFromUnicodeToISCII(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, const TDesC8& aExpectedISCII, TInt aExpectedResult = 0) - { - TBuf8 generatedISCII; - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedISCII, aOriginalUnicode); - TEST(returnValue == aExpectedResult); - TEST(generatedISCII==aExpectedISCII); - } - -LOCAL_C void TestConversion( CCnvCharacterSetConverter& aCharacterSetConverter ) -{ - TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x0079"), _L8("\xef\x42\x79")); - TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x0079"), _L8("\x79")); - - TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x0079\x007a\x0070\x0071\x0072\x0073\x0074\x0075"), _L8("\xef\x42\x79\x7a\x70\x71\x72\x73\x74\x75")); - TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x0079\x007a\x0070\x0071\x0072\x0073\x0074\x0075"), _L8("\x79\x7a\x70\x71\x72\x73\x74\x75")); - TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x0079\x007a\x0070\x0071\x0072\x0073\x0074\x0075\x0901"), _L8("\x79\x7a\x70\x71\x72\x73\x74\x75\xa1")); - 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")); - - TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x0901"), _L8("\xef\x42\xa1")); - TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x0901\x0079"), _L8("\xa1\x79")); - TestConversionToUnicodeFromTruncatedISCII(aCharacterSetConverter, _L16("\x0901"), _L8("\xa1")); - - TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x094d"), _L8("\xef\x42\xe8")); - TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x200c"), _L8("\xef\x42\xe8")); - TestConversionToUnicodeFromISCII(aCharacterSetConverter, _L16("\x094d\x0079"), _L8("\xe8\x79")); - - TestConversionFromUnicodeToISCII(aCharacterSetConverter, _L16("\x0950"), _L8("\xef\x42\xa1\xe9")); -} - -LOCAL_C void DoE32MainL() - { - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - CArrayFix* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - - TheTest.Start(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); - - TestConversion( *characterSetConverter ); - - CleanupStack::PopAndDestroy(3); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tiso2022jp.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tiso2022jp.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,376 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TISO2022JP")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// - -const TInt KBufferLength=100; -const TInt KNotEnoughBufferLength=17; -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0522 -@SYMTestCaseDesc Tests for conversion from Unicode to ISO2022JP -@SYMTestPriority Medium -@SYMTestActions Tests for conversion from Unicode to ISO2022JP and back to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestConversionFromUnicodeToIso( - CCnvCharacterSetConverter& aCharacterSetConverter, - const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0522 ")); - TBuf8 generatedIso2022Jp; - generatedIso2022Jp.FillZ(KNotEnoughBufferLength); - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, aOriginalUnicode); - TEST(returnValue>=0); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TInt testresult; - testresult=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedIso2022Jp, state); - TEST(testresult==0); - // TEST(generatedUnicode==aOriginalUnicode); - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0523 -@SYMTestCaseDesc Tests for truncated conversion from Unicode to ISO2022JP -@SYMTestPriority Medium -@SYMTestActions Tests for truncated conversion from Unicode to ISO2022JP and back to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionFromUnicodeToIso2022Jp( - CCnvCharacterSetConverter& aCharacterSetConverter, - const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0523 ")); - for (TInt i=aOriginalUnicode.Length(); i>=0; --i) - { - TBuf8 generatedIso2022Jp; - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, aOriginalUnicode.Left(i)); - TEST(returnValue>=0); - TBuf8 generatedsecondPartOfIso2022Jp; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfIso2022Jp, aOriginalUnicode.Mid(i-returnValue))==0); - generatedIso2022Jp.Append(generatedsecondPartOfIso2022Jp); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedIso2022Jp, state)==0); - TEST(generatedUnicode==aOriginalUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0524 -@SYMTestCaseDesc Splitting and converting from Unicode to ISO2022JP test -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting, from Unicode to ISO2022JP and back to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingFromUnicodeToIso2022Jp( - CCnvCharacterSetConverter& aCharacterSetConverter, - TInt aMaximumLengthLowerLimit, - TInt aMaximumLengthUpperLimit, - TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, - const TDesC8& aExpectedFirstPartOfIso2022Jp, - const TDesC8& aExpectedSecondPartOfIso2022Jp, - const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0524 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint8 iso2022JpBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr8 generatedFirstPartOfIso2022Jp(iso2022JpBuffer, i); - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfIso2022Jp, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); - TEST(generatedFirstPartOfIso2022Jp==aExpectedFirstPartOfIso2022Jp); - TBuf8 generatedSecondPartOfIso2022Jp; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfIso2022Jp, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); - TEST(generatedSecondPartOfIso2022Jp==aExpectedSecondPartOfIso2022Jp); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfIso2022Jp, state)==0); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfIso2022Jp, state)==0); - generatedUnicode.Append(generatedSecondPartOfUnicode); - TEST(generatedUnicode==aOriginalUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0525 -@SYMTestCaseDesc Tests for truncated conversion from ISO2022JP to Unicode test -@SYMTestPriority Medium -@SYMTestActions Tests for truncated conversion from ISO2022JP to Unicode and back to ISO2022JP -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionToUnicodeFromIso2022Jp( - CCnvCharacterSetConverter& aCharacterSetConverter, - const TDesC16& aExpectedUnicode, - const TDesC8& aOriginalIso2022Jp) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0525 ")); - for (TInt i=aOriginalIso2022Jp.Length(); i>=3; --i) // 3 is the length of ISO-2022-JP's longest escape sequence - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalIso2022Jp.Left(i), state); - TEST(returnValue>=0); - TBuf16 generatedsecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalIso2022Jp.Mid(i-returnValue), state)==0); - generatedUnicode.Append(generatedsecondPartOfUnicode); - TEST(generatedUnicode==aExpectedUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0526 -@SYMTestCaseDesc Splitting and converting from ISO2022JP to Unicode test. -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting, from ISO2022JP to Unicode and back to ISO2022JP -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingToUnicodeFromIso2022Jp( - CCnvCharacterSetConverter& aCharacterSetConverter, - TInt aMaximumLengthLowerLimit, - TInt aMaximumLengthUpperLimit, - TInt aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit, - TInt aExpectedLengthOfFirstPartOfUnicode, - const TDesC16& aExpectedUnicode, - const TDesC8& aOriginalIso2022Jp) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0526 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint16 unicodeBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); - TInt state=CCnvCharacterSetConverter::KStateDefault; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalIso2022Jp, state); - TEST(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); - TEST(returnValue==aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalIso2022Jp.Right(aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit), state)==0); - TEST(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); - TBuf8 generatedIso2022Jp; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, generatedFirstPartOfUnicode)==0); - TBuf8 generatedSecondPartOfIso2022Jp; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfIso2022Jp, generatedSecondPartOfUnicode)==0); - generatedIso2022Jp.Append(generatedSecondPartOfIso2022Jp); - TBuf16 regeneratedUnicode; - state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, generatedIso2022Jp, state)==0); - TEST(regeneratedUnicode==aExpectedUnicode); - state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, aOriginalIso2022Jp, state)==0); - TEST(regeneratedUnicode==aExpectedUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0527 -@SYMTestCaseDesc Conversion of bad ISO2022JP format to Unicode test -@SYMTestPriority Medium -@SYMTestActions Tests to convert bad format ISO2022JP input to Unicode. -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestIsIllFormedIso2022Jp(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aIso2022Jp) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0527 ")); - TBuf16<50> generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - TPtrC8 remainderOfIso2022Jp(aIso2022Jp); - TInt lastReturnValue=KMaxTInt; - FOREVER - { - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfIso2022Jp, state); - if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) - { - break; - } - TEST(returnValue>0); - TEST(returnValue* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - TInt i; - for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TheTest.Next(_L("Testing ISO-2022-JP conversions")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022Jp, *arrayOfCharacterSetsAvailable, fileServerSession); - // - TheTest.Next(_L("Empty descriptor")); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 0, 10, 0, KNullDesC8, KNullDesC8, KNullDesC16); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); - TheTest.Next(_L("Testing converting to ISO-2022-JP")); - - _LIT(KTestUnicode,">.@>0l90"); - _LIT(KTestUnicode2,"\x0393\x03b1\x03c3\x03bf\x03c5\x3055\x3088"); - TestConversionFromUnicodeToIso(*characterSetConverter, KTestUnicode2); - TestConversionFromUnicodeToIso(*characterSetConverter, KTestUnicode); - - TBuf16<50> originalUnicode; - originalUnicode.Format(_L16("%c%c%c%c%c\xa5\\%c%c%c%c%c"), 0x0393, 0x03b1, 0x03c3, 0x03bf, 0x03c5, 0x3055, 0x3088, 0x3046, 0x306a, 0x3089); - TestTruncatedConversionFromUnicodeToIso2022Jp(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 3, 7, 12, _L8(""), _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 8, 9, 11, _L8("\x1b\x24\x42\x26\x23\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 10, 11, 10, _L8("\x1b\x24\x42\x26\x23\x26\x41\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 12, 13, 9, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 14, 15, 8, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 16, 19, 7, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x42"), _L8("\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 20, 23, 6, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42"), _L8("\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 24, 28, 5, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\"), _L8("\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 29, 30, 4, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 31, 32, 3, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 33, 34, 2, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 35, 36, 1, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x69\x1b\x28\x42"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 37, 50, 0, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), KNullDesC8, originalUnicode); - originalUnicode.Format(_L16("%cX%cY%cZ"), 0x6153, 0x6376, 0x65d9); - TestTruncatedConversionFromUnicodeToIso2022Jp(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 3, 7, 6, _L8(""), _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 8, 11, 5, _L8("\x1b\x24\x42XX\x1b\x28\x42"), _L8("X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 12, 16, 4, _L8("\x1b\x24\x42XX\x1b\x28\x42X"), _L8("\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 17, 20, 3, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42"), _L8("Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 21, 25, 2, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y"), _L8("\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 26, 29, 1, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42"), _L8("Z"), originalUnicode); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 30, 40, 0, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), KNullDesC8, originalUnicode); - TheTest.Next(_L("Testing converting to Unicode")); - const TPtrC8 originalIso2022Jp(_S8("\x1b\x24\x40\x1b\x28\x4aMy name is \x1b\x28\x4a\x1b\x28\x42\x1b\x24\x40\x25\x47\x25\x23\x25\x53\x25\x45\x1b\x28\x4a in \x1b\x24\x42\x46\x7c\x4b\x5c\x38\x6c\x1b\x28\x42\\~\x1b\x28\x4a\\~")); - TBuf16<50> expectedUnicode; - expectedUnicode.Format(_L16("My name is %c%c%c%c in %c%c%c\\~%c%c"), 0x30c7, 0x30a3, 0x30d3, 0x30c5, 0x65e5, 0x672c, 0x8a9e, 0x00a5, 0x203e); - TestTruncatedConversionToUnicodeFromIso2022Jp(*characterSetConverter, expectedUnicode, originalIso2022Jp); - TestTruncatedConversionToUnicodeFromIso2022Jp(*characterSetConverter, _L16(" Hello"), _L8("\x1b\x24\x42\x1b\x28\x4a\x1b\x24\x42\x1b\x28\x4a\x1b\x24\x42\x1b\x28\x4a Hello")); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 0, 0, 60, 0, expectedUnicode, originalIso2022Jp); - for (i=1; i<=10; ++i) - { - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, i, i, 54-i, i, expectedUnicode, originalIso2022Jp); - } - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 11, 11, 34, 11, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 12, 12, 32, 12, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 13, 13, 30, 13, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 14, 14, 28, 14, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 15, 15, 23, 15, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 16, 16, 22, 16, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 17, 17, 21, 17, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 18, 18, 20, 18, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 19, 19, 16, 19, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 20, 20, 14, 20, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 21, 21, 12, 21, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 22, 22, 7, 22, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 23, 23, 6, 23, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 24, 24, 2, 24, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 25, 25, 1, 25, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 26, 40, 0, 26, expectedUnicode, originalIso2022Jp); - TheTest.Next(_L("Testing the default ISO-2022-JP state")); - for (i=0; i<=6; ++i) - { - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, i, i, 6-i, i, _L16("Hello\xa5"), _L8("Hello\\")); - } - TheTest.Next(_L("Testing ill-formed ISO-2022-JP")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x1b\x28\x4a def")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x21\x21\x1b\x28\x4a def")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x21\x21\x21\x21\x1b\x28\x4a def")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\xff")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x26\x40")); - CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tiso2022jp1_2.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tiso2022jp1_2.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,342 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TISO2022JP1_2")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// - -const TUint KCharacterSetTestIso2022jp1_2=0x01000009; -const TInt KBufferLength=100; -const TInt KNotEnoughBufferLength=17; - -LOCAL_C void TestConversionFromUnicodeToIso( - CCnvCharacterSetConverter& aCharacterSetConverter, - const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" TestConversionFromUnicodeToIso ")); - TBuf8 generatedIso2022Jp; - generatedIso2022Jp.FillZ(KNotEnoughBufferLength); - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, aOriginalUnicode); - TEST(returnValue>=0); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TInt testresult; - testresult=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedIso2022Jp, state); - TEST(testresult==0); - // TEST(generatedUnicode==aOriginalUnicode); - } - -LOCAL_C void TestTruncatedConversionFromUnicodeToIso2022Jp( - CCnvCharacterSetConverter& aCharacterSetConverter, - const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" TestTruncatedConversionFromUnicodeToIso2022Jp ")); - for (TInt i=aOriginalUnicode.Length(); i>=0; --i) - { - TBuf8 generatedIso2022Jp; - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, aOriginalUnicode.Left(i)); - TEST(returnValue>=0); - TBuf8 generatedsecondPartOfIso2022Jp; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfIso2022Jp, aOriginalUnicode.Mid(i-returnValue))==0); - generatedIso2022Jp.Append(generatedsecondPartOfIso2022Jp); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedIso2022Jp, state)==0); - TEST(generatedUnicode==aOriginalUnicode); - } - } - -LOCAL_C void TestSplittingConvertingFromUnicodeToIso2022Jp( - CCnvCharacterSetConverter& aCharacterSetConverter, - TInt aMaximumLengthLowerLimit, - TInt aMaximumLengthUpperLimit, - TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, - const TDesC8& aExpectedFirstPartOfIso2022Jp, - const TDesC8& aExpectedSecondPartOfIso2022Jp, - const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" TestTruncatedConversionFromUnicodeToIso2022Jp ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint8 iso2022JpBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr8 generatedFirstPartOfIso2022Jp(iso2022JpBuffer, i); - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfIso2022Jp, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); - TEST(generatedFirstPartOfIso2022Jp==aExpectedFirstPartOfIso2022Jp); - TBuf8 generatedSecondPartOfIso2022Jp; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfIso2022Jp, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); - TEST(generatedSecondPartOfIso2022Jp==aExpectedSecondPartOfIso2022Jp); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfIso2022Jp, state)==0); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfIso2022Jp, state)==0); - generatedUnicode.Append(generatedSecondPartOfUnicode); - TEST(generatedUnicode==aOriginalUnicode); - } - } - -LOCAL_C void TestTruncatedConversionToUnicodeFromIso2022Jp( - CCnvCharacterSetConverter& aCharacterSetConverter, - const TDesC16& aExpectedUnicode, - const TDesC8& aOriginalIso2022Jp) - { - TheTest.Next(_L(" TestTruncatedConversionToUnicodeFromIso2022Jp ")); - for (TInt i=aOriginalIso2022Jp.Length(); i>=3; --i) // 3 is the length of ISO-2022-JP's longest escape sequence - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalIso2022Jp.Left(i), state); - TEST(returnValue>=0); - TBuf16 generatedsecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalIso2022Jp.Mid(i-returnValue), state)==0); - generatedUnicode.Append(generatedsecondPartOfUnicode); - TEST(generatedUnicode==aExpectedUnicode); - } - } - -LOCAL_C void TestSplittingConvertingToUnicodeFromIso2022Jp( - CCnvCharacterSetConverter& aCharacterSetConverter, - TInt aMaximumLengthLowerLimit, - TInt aMaximumLengthUpperLimit, - TInt aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit, - TInt aExpectedLengthOfFirstPartOfUnicode, - const TDesC16& aExpectedUnicode, - const TDesC8& aOriginalIso2022Jp) - { - TheTest.Next(_L(" TestSplittingConvertingToUnicodeFromIso2022Jp ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint16 unicodeBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); - TInt state=CCnvCharacterSetConverter::KStateDefault; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalIso2022Jp, state); - TEST(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); - TEST(returnValue==aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalIso2022Jp.Right(aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit), state)==0); - TEST(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); - TBuf8 generatedIso2022Jp; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, generatedFirstPartOfUnicode)==0); - TBuf8 generatedSecondPartOfIso2022Jp; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfIso2022Jp, generatedSecondPartOfUnicode)==0); - generatedIso2022Jp.Append(generatedSecondPartOfIso2022Jp); - TBuf16 regeneratedUnicode; - state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, generatedIso2022Jp, state)==0); -// TEST(regeneratedUnicode==aExpectedUnicode); - state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, aOriginalIso2022Jp, state)==0); - TEST(regeneratedUnicode==aExpectedUnicode); - } - } - -LOCAL_C void TestIsIllFormedIso2022Jp(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aIso2022Jp) - { - TheTest.Next(_L(" TestIsIllFormedIso2022Jp ")); - TBuf16<50> generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - TPtrC8 remainderOfIso2022Jp(aIso2022Jp); - TInt lastReturnValue=KMaxTInt; - FOREVER - { - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfIso2022Jp, state); - if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) - { - break; - } - TEST(returnValue>0); - TEST(returnValue.@>0l90"); - _LIT(KTestUnicode2,"\x0393\x03b1\x03c3\x03bf\x03c5\x3055\x3088"); - TestConversionFromUnicodeToIso(*characterSetConverter, KTestUnicode2); - TestConversionFromUnicodeToIso(*characterSetConverter, KTestUnicode); - - TBuf16<50> originalUnicode; - originalUnicode.Format(_L16("%c%c%c%c%c\xa5%c%c%c%c%c"), 0x0393, 0x03b1, 0x03c3, 0x03bf, 0x03c5, 0x3055, 0x3088, 0x3046, 0x306a, 0x3089); - TestTruncatedConversionFromUnicodeToIso2022Jp(*characterSetConverter, originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 3, 7, 12, _L8(""), _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 8, 9, 11, _L8("\x1b\x24\x42\x26\x23\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 10, 11, 10, _L8("\x1b\x24\x42\x26\x23\x26\x41\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 12, 13, 9, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 14, 15, 8, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 16, 19, 7, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x42"), _L8("\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 20, 23, 6, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42"), _L8("\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 24, 28, 5, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\"), _L8("\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 29, 30, 4, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 31, 32, 3, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 33, 34, 2, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 35, 36, 1, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 37, 50, 0, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), KNullDesC8, originalUnicode); - originalUnicode.Format(_L16("%cX%cY%cZ"), 0x6153, 0x6376, 0x65d9); - TestTruncatedConversionFromUnicodeToIso2022Jp(*characterSetConverter, originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 3, 7, 6, _L8(""), _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 8, 11, 5, _L8("\x1b\x24\x42XX\x1b\x28\x42"), _L8("X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 12, 16, 4, _L8("\x1b\x24\x42XX\x1b\x28\x42X"), _L8("\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 17, 20, 3, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42"), _L8("Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 21, 25, 2, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y"), _L8("\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 26, 29, 1, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42"), _L8("Z"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 30, 40, 0, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), KNullDesC8, originalUnicode); - TheTest.Next(_L("Testing converting to Unicode")); - const TPtrC8 originalIso2022Jp(_S8("\x1b\x24\x40\x1b\x28\x4aMy name is \x1b\x28\x4a\x1b\x28\x42\x1b\x24\x40\x25\x47\x25\x23\x25\x53\x25\x45\x1b\x28\x4a in \x1b\x24\x42\x46\x7c\x4b\x5c\x38\x6c\x1b\x28\x42\\~\x1b\x28\x4a\\~")); - TBuf16<50> expectedUnicode; - if (!isS60version) - expectedUnicode.Format(_L16("My name is %c%c%c%c in %c%c%c\\~%c%c"), 0x30c7, 0x30a3, 0x30d3, 0x30c5, 0x65e5, 0x672c, 0x8a9e, 0x00a5, 0x203e); - else - expectedUnicode.Format(_L16("My name is %c%c%c%c in %c%c%c\\~%c%c"), 0x30c7, 0x30a3, 0x30d3, 0x30c5, 0x65e5, 0x672c, 0x8a9e, 0x00a5, 0x7e); - TestTruncatedConversionToUnicodeFromIso2022Jp(*characterSetConverter, expectedUnicode, originalIso2022Jp); - TestTruncatedConversionToUnicodeFromIso2022Jp(*characterSetConverter, _L16(" Hello"), _L8("\x1b\x24\x42\x1b\x28\x4a\x1b\x24\x42\x1b\x28\x4a\x1b\x24\x42\x1b\x28\x4a Hello")); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 0, 0, 60, 0, expectedUnicode, originalIso2022Jp); - for (int i=1; i<=10; ++i) - { - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, i, i, 54-i, i, expectedUnicode, originalIso2022Jp); - } - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 11, 11, 34, 11, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 12, 12, 32, 12, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 13, 13, 30, 13, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 14, 14, 28, 14, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 15, 15, 23, 15, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 16, 16, 22, 16, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 17, 17, 21, 17, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 18, 18, 20, 18, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 19, 19, 16, 19, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 20, 20, 14, 20, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 21, 21, 12, 21, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 22, 22, 7, 22, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 23, 23, 6, 23, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 24, 24, 2, 24, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 25, 25, 1, 25, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 26, 40, 0, 26, expectedUnicode, originalIso2022Jp); - TheTest.Next(_L("Testing the default ISO-2022-JP state")); - for (int i=0; i<=6; ++i) - { - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, i, i, 6-i, i, _L16("Hello\xa5"), _L8("Hello\\")); - } - TheTest.Next(_L("Testing ill-formed ISO-2022-JP")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x1b\x28\x4a def")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x21\x21\x1b\x28\x4a def")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x21\x21\x21\x21\x1b\x28\x4a def")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\xff")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x26\x40")); - } - -LOCAL_C void DoE32MainL() - { - TheTest.Start(_L(" TISO2022JP_2 ")); - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - TInt i; - for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - TheTest.Next(_L("Testing ISO-2022-JP conversions")); - - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetTestIso2022jp1_2, *arrayOfCharacterSetsAvailable, fileServerSession); - TestIso2022Jp(characterSetConverter); - - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierIso2022Jp1, *arrayOfCharacterSetsAvailable, fileServerSession); - TestIso2022Jp(characterSetConverter, EFalse); - - CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tiso2022jp_2.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tiso2022jp_2.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,329 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TISO2022JP_2")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// - -const TUint KCharacterSetTestIso2022jp_2=0x01000006; -const TInt KBufferLength=100; -const TInt KNotEnoughBufferLength=17; - -LOCAL_C void TestConversionFromUnicodeToIso( - CCnvCharacterSetConverter& aCharacterSetConverter, - const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" TestConversionFromUnicodeToIso ")); - TBuf8 generatedIso2022Jp; - generatedIso2022Jp.FillZ(KNotEnoughBufferLength); - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, aOriginalUnicode); - TEST(returnValue>=0); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TInt testresult; - testresult=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedIso2022Jp, state); - TEST(testresult==0); - // TEST(generatedUnicode==aOriginalUnicode); - } - -LOCAL_C void TestTruncatedConversionFromUnicodeToIso2022Jp( - CCnvCharacterSetConverter& aCharacterSetConverter, - const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" TestTruncatedConversionFromUnicodeToIso2022Jp ")); - for (TInt i=aOriginalUnicode.Length(); i>=0; --i) - { - TBuf8 generatedIso2022Jp; - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, aOriginalUnicode.Left(i)); - TEST(returnValue>=0); - TBuf8 generatedsecondPartOfIso2022Jp; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfIso2022Jp, aOriginalUnicode.Mid(i-returnValue))==0); - generatedIso2022Jp.Append(generatedsecondPartOfIso2022Jp); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedIso2022Jp, state)==0); - TEST(generatedUnicode==aOriginalUnicode); - } - } - -LOCAL_C void TestSplittingConvertingFromUnicodeToIso2022Jp( - CCnvCharacterSetConverter& aCharacterSetConverter, - TInt aMaximumLengthLowerLimit, - TInt aMaximumLengthUpperLimit, - TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, - const TDesC8& aExpectedFirstPartOfIso2022Jp, - const TDesC8& aExpectedSecondPartOfIso2022Jp, - const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" TestTruncatedConversionFromUnicodeToIso2022Jp ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint8 iso2022JpBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr8 generatedFirstPartOfIso2022Jp(iso2022JpBuffer, i); - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfIso2022Jp, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); - TEST(generatedFirstPartOfIso2022Jp==aExpectedFirstPartOfIso2022Jp); - TBuf8 generatedSecondPartOfIso2022Jp; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfIso2022Jp, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); - TEST(generatedSecondPartOfIso2022Jp==aExpectedSecondPartOfIso2022Jp); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfIso2022Jp, state)==0); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfIso2022Jp, state)==0); - generatedUnicode.Append(generatedSecondPartOfUnicode); - TEST(generatedUnicode==aOriginalUnicode); - } - } - -LOCAL_C void TestTruncatedConversionToUnicodeFromIso2022Jp( - CCnvCharacterSetConverter& aCharacterSetConverter, - const TDesC16& aExpectedUnicode, - const TDesC8& aOriginalIso2022Jp) - { - TheTest.Next(_L(" TestTruncatedConversionToUnicodeFromIso2022Jp ")); - for (TInt i=aOriginalIso2022Jp.Length(); i>=3; --i) // 3 is the length of ISO-2022-JP's longest escape sequence - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalIso2022Jp.Left(i), state); - TEST(returnValue>=0); - TBuf16 generatedsecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalIso2022Jp.Mid(i-returnValue), state)==0); - generatedUnicode.Append(generatedsecondPartOfUnicode); - TEST(generatedUnicode==aExpectedUnicode); - } - } - -LOCAL_C void TestSplittingConvertingToUnicodeFromIso2022Jp( - CCnvCharacterSetConverter& aCharacterSetConverter, - TInt aMaximumLengthLowerLimit, - TInt aMaximumLengthUpperLimit, - TInt aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit, - TInt aExpectedLengthOfFirstPartOfUnicode, - const TDesC16& aExpectedUnicode, - const TDesC8& aOriginalIso2022Jp) - { - TheTest.Next(_L(" TestSplittingConvertingToUnicodeFromIso2022Jp ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint16 unicodeBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); - TInt state=CCnvCharacterSetConverter::KStateDefault; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalIso2022Jp, state); - TEST(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); - TEST(returnValue==aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalIso2022Jp.Right(aExpectedNumberOfIso2022JpBytesNotConvertedAtSplit), state)==0); - TEST(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); - TBuf8 generatedIso2022Jp; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedIso2022Jp, generatedFirstPartOfUnicode)==0); - TBuf8 generatedSecondPartOfIso2022Jp; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfIso2022Jp, generatedSecondPartOfUnicode)==0); - generatedIso2022Jp.Append(generatedSecondPartOfIso2022Jp); - TBuf16 regeneratedUnicode; - state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, generatedIso2022Jp, state)==0); - TEST(regeneratedUnicode==aExpectedUnicode); - state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, aOriginalIso2022Jp, state)==0); - TEST(regeneratedUnicode==aExpectedUnicode); - } - } - -LOCAL_C void TestIsIllFormedIso2022Jp(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aIso2022Jp) - { - TheTest.Next(_L(" TestIsIllFormedIso2022Jp ")); - TBuf16<50> generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - TPtrC8 remainderOfIso2022Jp(aIso2022Jp); - TInt lastReturnValue=KMaxTInt; - FOREVER - { - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfIso2022Jp, state); - if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) - { - break; - } - TEST(returnValue>0); - TEST(returnValue* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - TInt i; - for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TheTest.Next(_L("Testing ISO-2022-JP conversions")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetTestIso2022jp_2, *arrayOfCharacterSetsAvailable, fileServerSession); - // - TheTest.Next(_L("Empty descriptor")); - TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 0, 10, 0, KNullDesC8, KNullDesC8, KNullDesC16); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); - TheTest.Next(_L("Testing converting to ISO-2022-JP")); - - _LIT(KTestUnicode,">.@>0l90"); - _LIT(KTestUnicode2,"\x0393\x03b1\x03c3\x03bf\x03c5\x3055\x3088"); - TestConversionFromUnicodeToIso(*characterSetConverter, KTestUnicode2); - TestConversionFromUnicodeToIso(*characterSetConverter, KTestUnicode); - - TBuf16<50> originalUnicode; - originalUnicode.Format(_L16("%c%c%c%c%c\xa5%c%c%c%c%c"), 0x0393, 0x03b1, 0x03c3, 0x03bf, 0x03c5, 0x3055, 0x3088, 0x3046, 0x306a, 0x3089); - TestTruncatedConversionFromUnicodeToIso2022Jp(*characterSetConverter, originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 3, 7, 12, _L8(""), _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 8, 9, 11, _L8("\x1b\x24\x42\x26\x23\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 10, 11, 10, _L8("\x1b\x24\x42\x26\x23\x26\x41\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 12, 13, 9, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 14, 15, 8, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x1b\x28\x42"), _L8("\x1b\x24\x42\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 16, 19, 7, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x42"), _L8("\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 20, 23, 6, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42"), _L8("\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 24, 28, 5, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\"), _L8("\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 29, 30, 4, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 31, 32, 3, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 33, 34, 2, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x4a\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 35, 36, 1, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x1b\x28\x42"), _L8("\x1b\x24\x42\x24\x69\x1b\x28\x42"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 37, 50, 0, _L8("\x1b\x24\x42\x26\x23\x26\x41\x26\x52\x26\x4f\x26\x54\x1b\x28\x4a\\\x1b\x28\x42\\\x1b\x24\x42\x24\x35\x24\x68\x24\x26\x24\x4a\x24\x69\x1b\x28\x42"), KNullDesC8, originalUnicode); - originalUnicode.Format(_L16("%cX%cY%cZ"), 0x6153, 0x6376, 0x65d9); - TestTruncatedConversionFromUnicodeToIso2022Jp(*characterSetConverter, originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 3, 7, 6, _L8(""), _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 8, 11, 5, _L8("\x1b\x24\x42XX\x1b\x28\x42"), _L8("X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 12, 16, 4, _L8("\x1b\x24\x42XX\x1b\x28\x42X"), _L8("\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 17, 20, 3, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42"), _L8("Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 21, 25, 2, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y"), _L8("\x1b\x24\x42ZZ\x1b\x28\x42Z"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 26, 29, 1, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42"), _L8("Z"), originalUnicode); -// TestSplittingConvertingFromUnicodeToIso2022Jp(*characterSetConverter, 30, 40, 0, _L8("\x1b\x24\x42XX\x1b\x28\x42X\x1b\x24\x42YY\x1b\x28\x42Y\x1b\x24\x42ZZ\x1b\x28\x42Z"), KNullDesC8, originalUnicode); - TheTest.Next(_L("Testing converting to Unicode")); - const TPtrC8 originalIso2022Jp(_S8("\x1b\x24\x40\x1b\x28\x4aMy name is \x1b\x28\x4a\x1b\x28\x42\x1b\x24\x40\x25\x47\x25\x23\x25\x53\x25\x45\x1b\x28\x4a in \x1b\x24\x42\x46\x7c\x4b\x5c\x38\x6c\x1b\x28\x42\\~\x1b\x28\x4a\\~")); - TBuf16<50> expectedUnicode; -// expectedUnicode.Format(_L16("My name is %c%c%c%c in %c%c%c\\~%c%c"), 0x30c7, 0x30a3, 0x30d3, 0x30c5, 0x65e5, 0x672c, 0x8a9e, 0x00a5, 0x203e); - expectedUnicode.Format(_L16("My name is %c%c%c%c in %c%c%c\\~%c%c"), 0x30c7, 0x30a3, 0x30d3, 0x30c5, 0x65e5, 0x672c, 0x8a9e, 0x00a5, 0x7e); - TestTruncatedConversionToUnicodeFromIso2022Jp(*characterSetConverter, expectedUnicode, originalIso2022Jp); - TestTruncatedConversionToUnicodeFromIso2022Jp(*characterSetConverter, _L16(" Hello"), _L8("\x1b\x24\x42\x1b\x28\x4a\x1b\x24\x42\x1b\x28\x4a\x1b\x24\x42\x1b\x28\x4a Hello")); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 0, 0, 60, 0, expectedUnicode, originalIso2022Jp); - for (i=1; i<=10; ++i) - { - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, i, i, 54-i, i, expectedUnicode, originalIso2022Jp); - } - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 11, 11, 34, 11, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 12, 12, 32, 12, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 13, 13, 30, 13, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 14, 14, 28, 14, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 15, 15, 23, 15, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 16, 16, 22, 16, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 17, 17, 21, 17, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 18, 18, 20, 18, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 19, 19, 16, 19, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 20, 20, 14, 20, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 21, 21, 12, 21, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 22, 22, 7, 22, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 23, 23, 6, 23, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 24, 24, 2, 24, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 25, 25, 1, 25, expectedUnicode, originalIso2022Jp); - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, 26, 40, 0, 26, expectedUnicode, originalIso2022Jp); - TheTest.Next(_L("Testing the default ISO-2022-JP state")); - for (i=0; i<=6; ++i) - { - TestSplittingConvertingToUnicodeFromIso2022Jp(*characterSetConverter, i, i, 6-i, i, _L16("Hello\xa5"), _L8("Hello\\")); - } - TheTest.Next(_L("Testing ill-formed ISO-2022-JP")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x1b\x28\x4a def")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x21\x21\x1b\x28\x4a def")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\x42\x21\x21\x21\x21\x21\x1b\x28\x4a def")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x24\xff")); - TestIsIllFormedIso2022Jp(*characterSetConverter, _L8("abc \x1b\x26\x40")); - CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tiso8859x.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tiso8859x.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,252 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include -#include "tiso8859x.h" - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TISO8859X")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0541 -@SYMTestCaseDesc Tests for conversion from ISO 8859 to Unicode -@SYMTestPriority Medium -@SYMTestActions Tests for a filename and then convert to Unicode from ISO8859X -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void test1L() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0541 ")); - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - TInt i; - for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TInt state=CCnvCharacterSetConverter::KStateDefault; - for (i=0; i message; - message.Format(_L("Testing ISO 8859-%d"), iso8859TestData.iItems[i].iX); - TheTest.Next(message); - characterSetConverter->PrepareToConvertToOrFromL(iso8859TestData.iItems[i].iCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC16 originalUnicode(iso8859TestData.iItems[i].iUnicode, iso8859TestData.iItems[i].iTextLength); - TPtrC8 expectedIso8859(iso8859TestData.iItems[i].iIso8859, iso8859TestData.iItems[i].iTextLength); - TBuf16<256> generatedUnicode; - TEST(characterSetConverter->ConvertToUnicode(generatedUnicode, expectedIso8859, state)==0); - TEST(generatedUnicode==originalUnicode); - TBuf8<256> generatedIso8859; - TEST(characterSetConverter->ConvertFromUnicode(generatedIso8859, originalUnicode)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TEST(generatedIso8859==expectedIso8859); - } - CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -/** -Test code for INC042690 - Bi-directional MIME types are not supported in Charconv -The bi-directional MIME types only indicate how to treat the layout of the mail, -the actual character conversion should be the same as for the exisiting ISO-8859-6/ISO-8859-8 plugins - -@SYMTestCaseID SYSLIB-CHARCONV-CT-0542 -@SYMTestCaseDesc Tests the Bi-directional MIME -@SYMTestPriority Medium -@SYMTestActions Tests for conversions of ISO_8859-6 UID to MIB -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void testInc042690L() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0542 Test for INC042690 ")); - - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - - // check that the character set value of '81' is converted to the ISO_8859-6 UID (0x10008a29) - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(81,fileServerSession)==KCharacterSetIdentifierIso88596); - TheTest.Printf(_L("\nMIB 81->Char Set ISO_8859-6 UID - OK")); - - // check that the character set value of '82' is converted to the ISO_8859-6 UID (0x10008a29) - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(82,fileServerSession)==KCharacterSetIdentifierIso88596); - TheTest.Printf(_L("\nMIB 82->Char Set ISO_8859-6 UID - OK")); - - // check that the character set value of '84' is converted to the ISO_8859-8 UID (0x10008a2a) - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(84,fileServerSession)==KCharacterSetIdentifierIso88598); - TheTest.Printf(_L("\nMIB 84->Char Set ISO_8859-8 UID - OK")); - - // check that the character set value of '85' is converted to the ISO_8859-8 UID (0x10008a2a) - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(85,fileServerSession)==KCharacterSetIdentifierIso88598); - TheTest.Printf(_L("\nMIB 85->Char Set ISO_8859-8 UID - OK")); - - // check that the ISO_8859-6 UID (0x10008a29) is converted to the character set value of '9' - TEST(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierIso88596,fileServerSession)==9); - TheTest.Printf(_L("\nChar Set ISO_8859-6 UID->MIB - OK")); - - // check that the ISO_8859-8 UID (0x10008a2a) is converted to the character set value of '11' - TEST(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierIso88598,fileServerSession)==11); - TheTest.Printf(_L("\nChar Set ISO_8859-8 UID->MIB - OK")); - - TheTest.Printf(_L("\nTest for INC042690 complete:\n")); - CleanupStack::PopAndDestroy(2); // characterSetConverter and fileServerSession - } -/** -Test code for INC043911 - IANAMib 1014 not supported - -@SYMTestCaseID SYSLIB-CHARCONV-CT-0543 -@SYMTestCaseDesc Tests for CCnvCharacterSetConverter::ConvertMibEnumOfCharacterSetToIdentifierL() function -@SYMTestPriority Medium -@SYMTestActions Tests for a conversions of MIB to UTF-16BE UID -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void testInc043911L() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0543 Test for INC043911 ")); - - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - - // check that the character set value of '1013' is converted to the UTF-16BE UID (0x101f4052) - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(1013,fileServerSession)==KCharacterSetIdentifierUnicodeBig); - TheTest.Printf(_L("\nMIB 1013->Char Set UTF-16BE UID - OK")); - - // check that the character set value of '1014' is converted to the UTF-16LE UID (0x101f3fae) - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(1014,fileServerSession)==KCharacterSetIdentifierUnicodeLittle); - TheTest.Printf(_L("\nMIB 1014->Char Set UTF-16LE UID - OK")); - - // check that the character set value of '1015' is converted to the UTF-16 UID (0x101ff492) - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(1015,fileServerSession)==KCharacterSetIdentifierUcs2); - TheTest.Printf(_L("\nMIB 1015->Char Set UTF-16 UID - OK")); - - - TheTest.Printf(_L("\nTest for INC043911 complete:\n")); - CleanupStack::PopAndDestroy(2); // characterSetConverter and fileServerSession - } -/** -Test code for DEF050040 - Propagated: Baltic (ISO8859-13) missing in Basic.txt - -@SYMTestCaseID SYSLIB-CHARCONV-CT-0544 -@SYMTestCaseDesc Tests for defect number DEF050040 -@SYMTestPriority Medium -@SYMTestActions Tests for CCnvCharacterSetConverter::ConvertMibEnumOfCharacterSetToIdentifierL() - Tests for a conversions of MIB to ISO-8859-13 UID -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void testDef050040L() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0544 Test for DEF050040 ")); - - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - - // check that the character set value of '109' is converted to the ISO-8859-13 UID (0x10008a2c) - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(109,fileServerSession)==KCharacterSetIdentifierIso885913); - TheTest.Printf(_L("\nMIB 109->Char Set ISO-8859-13 UID - OK")); - - TheTest.Printf(_L("\nTest for DEF050040 complete:\n")); - CleanupStack::PopAndDestroy(2); // characterSetConverter and fileServerSession - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0545 -@SYMTestCaseDesc Tests for conversion of ISO8859 to Unicode -@SYMTestPriority Medium -@SYMTestActions Calls up conversion test functions of ISO8859 to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void DoE32MainL() - { - TheTest.Start(_L("@SYMTestCaseID:SYSLIB-CHARCONV-CT-0545 Tests for conversion of ISO8859 to Unicode")); - test1L(); - testInc042690L(); - testInc043911L(); - testDef050040L(); - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tj5_docomo.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tj5_docomo.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,790 +0,0 @@ -/* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* test code for the J5 character converter plug-in that can convert -* from any of the following character sets: -* Windows-31J (Microsoft code page 932), -* JIS (ISO-2022-JP-1), -* EUC, -* UTF8 -* and UCS2. -* This differs from TJ5_Kddiau (test cases 0209 to 0216) in that it uses an alternative version of -* the Shift-JIS plug-in which can handle DoCoMo operator specific extensions. -* Note the following values of test case ID number have been allocated for this code 1349-1356 -* -*/ - - -#include -#include -#include -#include -#include -#include "shiftjis.h" -#include - -// test data files -#ifdef __WINS__ - // on C drive for emulator - _LIT16(KAnsiTxt,"c:\\test\\data\\Ansi.test"); - _LIT16(KImodeTxt,"c:\\test\\data\\imode.test"); - _LIT16(KJpEUCjTxt,"c:\\test\\data\\JpEUC-J.test"); - _LIT16(KJpJISTxt,"c:\\test\\data\\JpJIS.test"); - _LIT16(KJpSJISTxt,"c:\\test\\data\\JpSJIS.test"); - _LIT16(KJpUnicodeTxt,"c:\\test\\data\\JpUnicode.test"); - _LIT16(KJpUTF8Txt,"c:\\test\\data\\JpUTF8.test"); - _LIT16(KmoperaTxt,"c:\\test\\data\\mopera.test"); - _LIT16(KMScodeFontTxt,"c:\\test\\data\\MScodefont.test"); - _LIT16(KSJISTxt,"c:\\test\\data\\S-JIS.test"); - - _LIT16(KAnsiUni,"c:\\test\\data\\Ansi.uni"); - _LIT16(KImodeUni,"c:\\test\\data\\imode.uni"); - _LIT16(KJpEUCjUni,"c:\\test\\data\\JpEUC-J.uni"); - _LIT16(KJpJISUni,"c:\\test\\data\\JpJIS.uni"); - _LIT16(KJpSJISUni,"c:\\test\\data\\JpSJIS.uni"); - _LIT16(KJpUnicodeUni,"c:\\test\\data\\JpUnicode.uni"); - _LIT16(KJpUTF8Uni,"c:\\test\\data\\JpUTF8.uni"); - _LIT16(KmoperaUni,"c:\\test\\data\\mopera.uni"); - _LIT16(KMScodeFontUni,"c:\\test\\data\\MScodefont.uni"); - _LIT16(KSJISUni,"c:\\test\\data\\S-JIS_docomo.uni"); -#else - // on Z drive for target ROM - _LIT16(KAnsiTxt,"z:\\test\\data\\Ansi.test"); - _LIT16(KImodeTxt,"z:\\test\\data\\imode.test"); - _LIT16(KJpEUCjTxt,"z:\\test\\data\\JpEUC-J.test"); - _LIT16(KJpJISTxt,"z:\\test\\data\\JpJIS.test"); - _LIT16(KJpSJISTxt,"z:\\test\\data\\JpSJIS.test"); - _LIT16(KJpUnicodeTxt,"z:\\test\\data\\JpUnicode.test"); - _LIT16(KJpUTF8Txt,"z:\\test\\data\\JpUTF8.test"); - _LIT16(KmoperaTxt,"z:\\test\\data\\mopera.test"); - _LIT16(KMScodeFontTxt,"z:\\test\\data\\MScodefont.test"); - _LIT16(KSJISTxt,"z:\\test\\data\\S-JIS.test"); - - _LIT16(KAnsiUni,"z:\\test\\data\\Ansi.uni"); - _LIT16(KImodeUni,"z:\\test\\data\\imode.uni"); - _LIT16(KJpEUCjUni,"z:\\test\\data\\JpEUC-J.uni"); - _LIT16(KJpJISUni,"z:\\test\\data\\JpJIS.uni"); - _LIT16(KJpSJISUni,"z:\\test\\data\\JpSJIS.uni"); - _LIT16(KJpUnicodeUni,"z:\\test\\data\\JpUnicode.uni"); - _LIT16(KJpUTF8Uni,"z:\\test\\data\\JpUTF8.uni"); - _LIT16(KmoperaUni,"z:\\test\\data\\mopera.uni"); - _LIT16(KMScodeFontUni,"z:\\test\\data\\MScodefont.uni"); - _LIT16(KSJISUni,"z:\\test\\data\\S-JIS_docomo.uni"); -#endif - - _LIT16(KAnsiOut,"c:\\test\\data\\Ansi.out"); - _LIT16(KImodeOut,"c:\\test\\data\\imode.out"); - _LIT16(KJpEUCjOut,"c:\\test\\data\\JpEUC-J.out"); - _LIT16(KJpJISOut,"c:\\test\\data\\JpJIS.out"); - _LIT16(KJpSJISOut,"c:\\test\\data\\JpSJIS.out"); - _LIT16(KJpUnicodeOut,"c:\\test\\data\\JpUnicode.out"); - _LIT16(KJpUTF8Out,"c:\\test\\data\\JpUTF8.out"); - _LIT16(KmoperaOut,"c:\\test\\data\\mopera.out"); - _LIT16(KMScodeFontOut,"c:\\test\\data\\MScodefont.out"); - _LIT16(KSJISOut,"c:\\test\\data\\S-JIS_docomo.out"); - -// this has been copied from J5, as this not exported -// and only needed for testing -enum TJ5Encoding - { - EShiftjis = 1, - EIso2022jp1, - EEucjp, - EUtf8, - EUcs2, - EUnknown - }; - - -//this is the identifier for the shiftjis kddi/au test plugin rather than the -//shiftjis docomo plugin identifier -const TUint KCharacterSetTestShiftJisKddiau=0x01000001; - - -/** - For development only! - used for generating unicode files - Save the converted file as unicode - */ -#ifdef __WINS__ -LOCAL_C void SaveConvertedUnicodeAsFile( RFs &fileServerSession, - const TDesC &aFileName, - const TDesC &aConvertedUnicode) - { - RFile file; - User::LeaveIfError( file.Replace( fileServerSession, aFileName, EFileWrite )); - - // get a pointer to 8bit data - const TUint16* p16 = aConvertedUnicode.Ptr(); - TPtrC8 p8( (TUint8 *)p16, aConvertedUnicode.Size() ); - - - file.Write( p8, aConvertedUnicode.Size()); - file.Close(); - } -#endif - - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-1349-CP -@SYMTestCaseDesc Check that the J5 converter is available for testing -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions The character conversion framework is called to check J5 is loaded. -@SYMTestExpectedResults J5 is in the list of avalable converters. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void checkJ5Available(RTest aTest, RFs &aFileServerSession) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1349-CP ")); - TBool J5found = EFalse; - - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(aFileServerSession); - - // check the list of available converters looking for J5 - aTest.Printf(_L("charconv plugins available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - - if ( charactersSetName.Compare(_L("J5")) == 0) - J5found = ETrue; - } - aTest.Printf(_L(" %S\n"), &charactersSetName); - } - - if (J5found) - aTest.Printf(_L("J5 available\n") ); - else - { - aTest.Printf(_L("Test failed J5 not available\n") ); - } - - aTest(J5found); - - // PopAndDestroy characterSetConverter - CleanupStack::PopAndDestroy(1); - } - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-1350-CP -@SYMTestCaseDesc Convert the file supplied (aForeign) to unicode and then - check the converted data against aExpectedUnicode -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions The J5 character converter is used convert ansi.test. -@SYMTestExpectedResults The result is checked against the expected result imode.uni. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void convertFileUsingJ5L(RTest& aTest, - RFs fileServerSession, - CCnvCharacterSetConverter*aJ5converter, - const TDesC &aForeign, - const TDesC &aExpectedUnicode, - const TDesC &aOutputUnicode ) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1350-CP ")); - aTest.Printf(_L("Read %S check that it converts to %S \n"),&aForeign, &aExpectedUnicode); - - // open the file & read into sourceBuffer - RFile source, expected; - User::LeaveIfError( source.Open( fileServerSession, aForeign, EFileRead )); - User::LeaveIfError( expected.Open( fileServerSession, aExpectedUnicode, EFileRead )); - TInt sourceSize = 0, expectedSize = 0; - source.Size(sourceSize); - expected.Size(expectedSize); - - // create buffers for source file and expected unicode file - HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); - TPtr8 sourcePtr(sourceBuffer->Des()); - HBufC8 * expectedBuffer = HBufC8::NewLC(expectedSize); - TPtr8 expectedPtr(expectedBuffer->Des()); - - // buffer to convert into - HBufC * outputBuffer = HBufC::NewLC(expectedSize); - TPtr outputPtr(outputBuffer->Des()); - - // read the whole source & output file into the buffer - User::LeaveIfError( source.Read( sourcePtr, sourceSize )); - User::LeaveIfError( expected.Read( expectedPtr, expectedSize )); - - // measure the time taken to convert. - TTime startTime, stopTime; - startTime.UniversalTime(); - - // now convert using J5 into unicode in the output buffer - TInt state = CCnvCharacterSetConverter::KStateDefault; - TInt error = KErrNone; - error = aJ5converter->ConvertToUnicode(outputPtr, sourcePtr, state); - if (error != KErrNone ) - { - aTest.Printf(_L("ConvertToUnicode returned %d\n"), error); - } - - stopTime.UniversalTime(); - TTimeIntervalMicroSeconds timeTaken = stopTime.MicroSecondsFrom(startTime); - TInt result = timeTaken.Int64(); - aTest.Printf(_L("Time for autodetect and convert to unicode %S using J5 %d microseconds\n"), - &aForeign, result ); - - TInt outputLength = outputBuffer->Length() ; // 16 bit words - TInt expectedLength = expectedPtr.Length() / 2 ; // Bytes (hence divide by 2!) - TInt checkLength = Min(outputLength, expectedLength) ; - - if (outputLength != expectedLength) - { - aTest.Printf(_L("Fail: Output length incorrect (expected %d bytes after conversion, got %d\n"), - expectedLength, outputLength) ; - } - // check that the output buffer contains the same as the expected buffer - TInt j=0; - TUint8 firstByte =0; - TUint8 secondbyte =0; - - for ( TInt i=0; i < checkLength; i++, j+=2) - { - // two bytes in the file - one 16bit unicode value - firstByte = TUint8(outputPtr[i] & 0x00ff); - secondbyte = (outputPtr[i] & 0xff00) >> 8 ; - - if ( ( firstByte == expectedPtr[j] ) && ( secondbyte == expectedPtr[j+1] ) ) - { - // useful for development - /*aTest.Printf(_L(" %02x%02x = %02x%02x ok\n"), - secondbyte, firstByte, expectedPtr[j+1], expectedPtr[j]);*/ - } - else - { - aTest.Printf(_L("line:%d %02x%02x (output) != %02x%02x (expected) fail\n"), - i, secondbyte, firstByte, expectedPtr[j+1], expectedPtr[j]); - } - } - -#ifdef __WINS__ - // for debugging save as file - SaveConvertedUnicodeAsFile( fileServerSession, aOutputUnicode, outputPtr ); -#endif - - source.Close(); - expected.Close(); - - // sourceBuffer, expectedBufffer, outputBuffer - CleanupStack::PopAndDestroy(3); - } - - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-1351-CP -@SYMTestCaseDesc Check that J5 converts to UTF8 when ConvertFromUnicode() is called -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions The J5 character converter is used to convert unicode to UTF8 -@SYMTestExpectedResults The result is checked against the expected UTF8. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void convertFromUnicodeUsingJ5(RTest& aTest, - RFs fileServerSession, - CCnvCharacterSetConverter*aJ5converter ) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1351-CP ")); - /* sample UTF8 for testing */ - _LIT16(KsampleUnicode,"\x0069\x002d\x006d\x006f\x0064\x0065\xFFFD"); - _LIT8(KsampleAsUTF8,"\x69\x2D\x6D\x6F\x64\x65\xEF\xBF\xBD"); - TBuf8<100> utf8buffer; - - aTest.Printf(_L("Check J5 convertd from Unicode to UTF8 \n")); - - CCnvCharacterSetConverter::TAvailability available = aJ5converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJ5, fileServerSession); - if ( available != CCnvCharacterSetConverter::EAvailable) - User::Leave(KErrNotSupported); - - // J5 convert from unicode - TInt state = CCnvCharacterSetConverter::KStateDefault; - TInt numberNotConverted =0; - numberNotConverted = aJ5converter->ConvertFromUnicode(utf8buffer, KsampleUnicode, state); - if (numberNotConverted != 0) - { - aTest.Printf(_L("numberNotConverted = %d"), numberNotConverted ); - } - - // compare the UTF8 created to that supplied - aTest(utf8buffer==KsampleAsUTF8); - - } - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-1352-CP -@SYMTestCaseDesc Check that the J5 converter autodetection -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions The J5 character converter is used convert sample files. -@SYMTestExpectedResults The result is passed back for testing in the state paramater. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void checkDetection(RTest& aTest, - RFs fileServerSession, - const TDesC &aForeign, - TInt aExpectedCode ) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1352-CP ")); - __UHEAP_MARK; - aTest.Printf(_L("Read %S check that it converts to %d \n"),&aForeign, aExpectedCode); - - // open the file & read into sourceBuffer - RFile source; - User::LeaveIfError( source.Open( fileServerSession, aForeign, EFileRead )); - TInt sourceSize = 0; - source.Size(sourceSize); - - // create buffers for source file - HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); - TPtr8 sourcePtr(sourceBuffer->Des()); - - // buffer to convert into - HBufC * outputBuffer = HBufC::NewLC(sourceSize * 2); - TPtr outputPtr(outputBuffer->Des()); - - // read the whole source & output file into the buffer - User::LeaveIfError( source.Read( sourcePtr, sourceSize )); - source.Close(); - - // load the converter ready for testing - CCnvCharacterSetConverter* J5Converter=CCnvCharacterSetConverter::NewLC(); - CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; - available = J5Converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJ5, fileServerSession); - if ( available != CCnvCharacterSetConverter::EAvailable) - User::Leave(KErrNotSupported); - - // now convert using J5 into unicode in the output buffer - TInt state = CCnvCharacterSetConverter::KStateDefault; - TInt numberCharsNotConverted = 0; - numberCharsNotConverted = J5Converter->ConvertToUnicode(outputPtr, sourcePtr, state); - if ( numberCharsNotConverted != 0) - aTest.Printf(_L("number of characters not converted:%d of %d\n"), - numberCharsNotConverted, sourceSize ); - - // check that J5 has been able to convert all the data - aTest(J5Converter->ConvertToUnicode(outputPtr, sourcePtr, state)==0); - - // look at the code returned in the state - if ( aExpectedCode == state ) - { - aTest.Printf(_L(" expected:%d found:%d ok\n"), aExpectedCode , state ); - } - else - { - aTest.Printf(_L(" expected:%d found:%d failed \n"), aExpectedCode , state ); - aTest( aExpectedCode == state); - } - - // sourceBuffer, expectedBufffer, J5Converter - CleanupStack::PopAndDestroy(3); - __UHEAP_MARKEND; - } - - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-1353-CP -@SYMTestCaseDesc Check the J5 on some small data samples -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions The sample data is converted to unicode by J5. -@SYMTestExpectedResults The converted unicode data is checked against expected data. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void convertDataUsingJ5(RTest& aTest, - RFs &fileServerSession, - const TDesC8 &aForeign, - const TDesC16 &aUnicode ) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1353-CP ")); - // for the unicode created - TBuf16<512> unicode; - - // load the converter ready for testing - CCnvCharacterSetConverter* J5Converter=CCnvCharacterSetConverter::NewLC(); - CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; - available = J5Converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJ5, fileServerSession); - if ( available != CCnvCharacterSetConverter::EAvailable) - User::Leave(KErrNotSupported); - - // J5 decode to unicode - TInt state = CCnvCharacterSetConverter::KStateDefault; - TInt numberNotConverted =0; - numberNotConverted = J5Converter->ConvertToUnicode(unicode, aForeign, state); - if (numberNotConverted != 0) - { - aTest.Printf(_L("numberNotConverted = %d"), numberNotConverted ); - } - - // compare the unicode created to that supplied - aTest(unicode==aUnicode); - - // tidy up J5Converter - CleanupStack::PopAndDestroy(1); - } - - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-1354-CP -@SYMTestCaseDesc Check that J5 does not interfere with the normal operation of Autodetect - And make a rough timing measurement. -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions Autodetect using other plugins is tested when J5 is available -@SYMTestExpectedResults Autodetect still works and does NOT select J5. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void checkNormalAutodetectL( RTest& aTest, RFs &aFileServerSession, const TDesC &aForeign ) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1354-CP ")); - aTest.Printf(_L("Test normal autodetect \n") ); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(aFileServerSession); - - // open the file & read into sourceBuffer - RFile source; - User::LeaveIfError( source.Open( aFileServerSession, aForeign, EFileRead )); - TInt sourceSize = 0; - source.Size(sourceSize); - - // create buffers for source file - HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); - TPtr8 sourcePtr(sourceBuffer->Des()); - - // read the whole source file into the buffer - User::LeaveIfError( source.Read( sourcePtr, sourceSize )); - source.Close(); - - // measure the time taken to autodetect. - TTime startTime, stopTime; - startTime.UniversalTime(); - - // do the autodetect - TInt confidenceLevel =0; - TUint characterSetIdentifier = 0; - characterSetConverter->AutoDetectCharSetL( confidenceLevel, - characterSetIdentifier, *arrayOfCharacterSetsAvailable, sourcePtr); - - //characterSetIdentifier could either be the ShiftJis Kddi/au identifier or the Shiftjis Docomo Test identifier - //as both plugins are visible to ECOM - aTest((characterSetIdentifier == KCharacterSetIdentifierShiftJis) - ||(characterSetIdentifier == KCharacterSetTestShiftJisKddiau)); - - stopTime.UniversalTime(); - TTimeIntervalMicroSeconds timeTaken = stopTime.MicroSecondsFrom(startTime); - TInt result = timeTaken.Int64(); - aTest.Printf(_L("Time taken for old autodetect %S = %d microseconds\n"), - &aForeign, result ); - - // characterSetConverter,arrayOfCharacterSetsAvailable, sourceBuffer - CleanupStack::PopAndDestroy(3); - } - - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-1355-CP -@SYMTestCaseDesc Check the conversion speed of shiftjis -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions The sample data is converted to unicode by J5. -@SYMTestExpectedResults The converted unicode data is checked against expected data. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void checkConversionSpeedL(RTest& aTest, RFs &aFileServerSession, const TDesC &aForeign) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1355-CP ")); - aTest.Printf(_L("Test conversion speed \n") ); - - // open the file & read into sourceBuffer - RFile source; - User::LeaveIfError( source.Open( aFileServerSession, aForeign, EFileRead )); - TInt sourceSize = 0, expectedSize = 0; - source.Size(sourceSize); - - // assume that every byte coverts to 2 bytes of unicode and the buffer will be big enough - expectedSize = sourceSize * 2; - - // create buffer for source file - HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); - TPtr8 sourcePtr(sourceBuffer->Des()); - - // for the unicode created - HBufC * outputBuffer = HBufC::NewLC(expectedSize); - TPtr outputPtr(outputBuffer->Des()); - - // load the converter ready for testing - CCnvCharacterSetConverter* charConverter=CCnvCharacterSetConverter::NewLC(); - CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; - available = charConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, aFileServerSession); - if ( available != CCnvCharacterSetConverter::EAvailable) - User::Leave(KErrNotSupported); - - // read the whole source file into the buffer - User::LeaveIfError( source.Read( sourcePtr, sourceSize )); - source.Close(); - - // measure the time taken to convert. - TTime startTime, stopTime; - startTime.UniversalTime(); - - // now convert using J5 into unicode in the output buffer - TInt state = CCnvCharacterSetConverter::KStateDefault; - TInt numberCharsNotConverted = 0; - - // repeat this to get a more accurate measurement - const int scale =10; - TInt i=0; - for ( i=0; iConvertToUnicode(outputPtr, sourcePtr, state); - if ( numberCharsNotConverted != 0) - aTest.Printf(_L("number of characters not converted:%d \n"), - numberCharsNotConverted ); - } - - stopTime.UniversalTime(); - TTimeIntervalMicroSeconds timeTaken = stopTime.MicroSecondsFrom(startTime); - TInt result = timeTaken.Int64()/scale; - aTest.Printf(_L("Time taken for converting %S to unicode using shiftjis:%d microseconds\n"), - &aForeign, result ); - - - // characterSetConverter, sourceBuffer, outputBuffer - CleanupStack::PopAndDestroy(3); - } - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-1356-CP -@SYMTestCaseDesc Check some UCS2 conversions -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions The UCS2 sample data is converted to unicode by J5. -@SYMTestExpectedResults The converted unicode data is checked against expected data. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void checkUCS2converstion(RTest& aTest, CCnvCharacterSetConverter *aJ5converter ) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-1356-CP ")); - // buffer to convert into - TBuf16<512> unicode; - TInt numberOfUnconvertibleCharacters; - TInt indexOfFirstByteOfFirstUnconvertibleCharacter; - - // small sample of EBigEndian UCS2 with no Byte order markers - aTest.Printf(_L("Check J5 conversion of EBigEndian UCS2 with no Byte order markers to unicode \n")); - _LIT8(Kucs2sample1,"\x0\x69\x0\x2d\x0\x6d\x0\x6f\x0\x64\x0\x65"); - _LIT16(KucsAsUnicode1,"\x0069\x002d\x006d\x006f\x0064\x0065"); - - // J5 convert from unicode - TInt state = CCnvCharacterSetConverter::KStateDefault; - TInt numberNotConverted =0; - numberNotConverted = aJ5converter->ConvertToUnicode(unicode, Kucs2sample1, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter ); - aTest(numberNotConverted == 0); - aTest(numberOfUnconvertibleCharacters == 0); - aTest(indexOfFirstByteOfFirstUnconvertibleCharacter == -1); - - // compare the unicode created to that supplied - aTest(unicode==KucsAsUnicode1); - - // small sample of ELittleEndian UCS2 with no Byte order markers - aTest.Printf(_L("Check J5 conversion of ELittleEndian UCS2 with no Byte order markers to unicode \n")); - _LIT8(Kucs2sample2,"\x69\x0\x2d\x0\x6d\x0\x6f\x0\x64\x0\x65\x0"); - _LIT16(KucsAsUnicode2,"\x0069\x002d\x006d\x006f\x0064\x0065"); - state = CCnvCharacterSetConverter::KStateDefault; - numberNotConverted = aJ5converter->ConvertToUnicode(unicode, Kucs2sample2, state); - aTest(numberNotConverted == 0); - - // compare the unicode created to that supplied - aTest(unicode==KucsAsUnicode2); - - // check UCS2 converter handles output buffer too small case - aTest.Printf(_L("Check J5 conversion of UCS2 with small output buffer \n")); - TBuf16<4> smallOutputBuffer; - numberNotConverted = aJ5converter->ConvertToUnicode(smallOutputBuffer, Kucs2sample2, state); - // check numberNotConverted = size of KucsAsUnicode2(12bytes) - smallOutputBuffer(8bytes) = 4 - aTest.Printf(_L("numberNotConverted %d should be 4 \n"), numberNotConverted ); - aTest( numberNotConverted == 4); - - // check UCS2 converter handles a odd number of input bytes - aTest.Printf(_L("Check J5 conversion of UCS2 handles a odd number of input bytes \n")); - _LIT8(Kucs2sample3,"\xff\xfe\x69\x0\x2d\x0\x6d\x0\x6f\x0\x64\x0\x65\x0\x23"); - _LIT16(KucsAsUnicode3,"\x0069\x002d\x006d\x006f\x0064\x0065"); - numberNotConverted = aJ5converter->ConvertToUnicode(unicode, Kucs2sample3, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - aTest.Printf(_L("numberOfUnconvertibleCharacters %d should be the 1 odd byte at the end\n"), numberOfUnconvertibleCharacters ); - aTest(unicode==KucsAsUnicode3); - aTest(numberNotConverted == 1); - aTest(numberOfUnconvertibleCharacters == 0); - aTest(indexOfFirstByteOfFirstUnconvertibleCharacter == -1); - } - - -/** - test code starts here... - */ -LOCAL_C void DoE32MainL() - { - RTest test=_L("TJ5"); - CleanupClosePushL(test); - test.Start(_L("Docomo TJ5 start")); - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - - // check the J5 converter is available - checkJ5Available( test, fileServerSession ); - - // Convert some sample data to unicode using J5 and check result - _LIT8(KShiftJis,"\x82\xB1\x82\xF1\x82\xC9\x82\xBF\x82\xCD\x82\xC9\x82\xBF\x82\xCD"); - _LIT16(KUnicode,"\x3053\x3093\x306B\x3061\x306F\x306B\x3061\x306F"); - // test J5 on simple example shift jis test data, - convertDataUsingJ5(test, fileServerSession, KShiftJis, KUnicode ); - - // small sample of code set 1&3 EUC_JP - _LIT8(KCodeSet2EucJp,"\x8f\xa2\xc2\xa1\xf1\xa1\xf2\x8f\xa2\xc2\x5c\x8f\xa2\xc3\xa1\xf8"); - // should convert to ¡¢£¤¥¦§ - _LIT16(KCodeSet2EucJpAsUnicode,"\x00A1\x00A2\x00A3\x00A1\x00A5\x00A6\x00A7"); - convertDataUsingJ5( test, fileServerSession, KCodeSet2EucJp, KCodeSet2EucJpAsUnicode); - - /* example of code set 3 EUC_JP 8faba98fa9c18fabae8fabb28fabb18fabb48fabb38fabc0 converts to åæçèéêëì*/ - /* Note this could also be decoded as shiftjis */ - _LIT8(KCodeSet3EucJp,"\x8f\xab\xa9\x8f\xa9\xc1\x8f\xab\xae\x8f\xab\xb2\x8f\xab\xb1\x8f\xab\xb4\x8f\xab\xb3\x8f\xab\xc0"); - _LIT16(KCodeSet3EucJpAsUnicode,"\x00E5\x00E6\x00E7\x00E8\x00E9\x00EA\x00EB\x00EC"); - convertDataUsingJ5( test, fileServerSession, KCodeSet3EucJp, KCodeSet3EucJpAsUnicode); - - // small sample of UTF8 ®¯°±²³ - _LIT8(Kutf8,"\xc2\x8e\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3"); - _LIT16(Kutf8AsUnicode,"\x008E\x00AF\x00B0\x00B1\x00B2\x00B3"); - convertDataUsingJ5( test, fileServerSession, Kutf8, Kutf8AsUnicode); - - // small sample of ISO2022jp - _LIT8(Kiso2022jp,"\x1B\x24\x42\x24\x33\x24\x73\x24"); - _LIT16(Kiso2022jpAsUnicode,"\x3053\x3093"); - convertDataUsingJ5( test, fileServerSession, Kiso2022jp, Kiso2022jpAsUnicode); - - // some shiftjis which starts with two bytes that could be EUC 0xe1,0x81 - _LIT8(KShiftJisWithEucStart,"\xE1\x81\x82\xB1\x82\xF1\x82\xC9\x82\xBF\x82\xCD\x82\xC9\x82\xBF\x82\xCD"); - _LIT16(KUnicodeShiftJisWithEucStart,"\x7601\x3053\x3093\x306B\x3061\x306F\x306B\x3061\x306F"); - convertDataUsingJ5(test, fileServerSession, KShiftJisWithEucStart, KUnicodeShiftJisWithEucStart ); - - // some shiftjis which starts with two bytes that could be UTF8 0xc2,0x8e - _LIT8(KShiftJisWithUtf8Start,"\xC2\x8E\x82\xB1\x82\xF1\x82\xC9\x82\xBF\x82\xCD\x82\xC9\x82\xBF\x82\xCD"); - _LIT16(KUnicodeShiftJisWithUtf8Start,"\xFF82\x7345\xFF71\x3093\x306B\x3061\x306F\x306B\x3061\x306F"); - convertDataUsingJ5(test, fileServerSession, KShiftJisWithUtf8Start, KUnicodeShiftJisWithUtf8Start ); - - // Small shiftjis sample with some half width Katakana - _LIT8(KShiftJisHalfWidthKatakana,"\xB0\xE0\x70\xB0\x70"); - _LIT16(KUnicodeShiftJisHalfWidthKatakana,"\xFF70\x703E\xFF70\x0070"); - convertDataUsingJ5(test, fileServerSession, KShiftJisHalfWidthKatakana, KUnicodeShiftJisHalfWidthKatakana ); - - /* Read in a text file and convert to unicode using J5 - then check the correct converstion was used by checking - returned state variable */ - // Note ansi.txt is valid for several conversions EUtf8, Eucjp - checkDetection( test, fileServerSession, KAnsiTxt, EEucjp); - checkDetection( test, fileServerSession, KImodeTxt, EShiftjis); - checkDetection( test, fileServerSession, KJpEUCjTxt, EEucjp); - checkDetection( test, fileServerSession, KJpJISTxt, EIso2022jp1); - checkDetection( test, fileServerSession, KJpSJISTxt, EShiftjis); - checkDetection( test, fileServerSession, KJpUnicodeTxt, EUcs2); - checkDetection( test, fileServerSession, KJpUTF8Txt, EUtf8); - checkDetection( test, fileServerSession, KmoperaTxt, EShiftjis); - checkDetection( test, fileServerSession, KMScodeFontTxt,EShiftjis ); - checkDetection( test, fileServerSession, KSJISTxt, EShiftjis ); - - // load the converter ready for testing - CCnvCharacterSetConverter* J5Converter=CCnvCharacterSetConverter::NewLC(); - CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; - available = J5Converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJ5, fileServerSession); - if ( available != CCnvCharacterSetConverter::EAvailable) - User::Leave(KErrNotSupported); - - // check some UCS2 examples - checkUCS2converstion( test, J5Converter ); - - // Convert the file Ansi.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KAnsiTxt, KAnsiUni, KAnsiOut ); - - // Convert the file imode.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KImodeTxt, KImodeUni, KImodeOut ); - - // Convert the file JpEUC-J.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpEUCjTxt, KJpEUCjUni, KJpEUCjOut ); - - // Convert the file JpJIS.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpJISTxt, KJpJISUni, KJpJISOut); - - // Convert the file JpSJIS.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpSJISTxt, KJpSJISUni, KJpSJISOut ); - - // Convert the file JpUnicode.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpUnicodeTxt, KJpUnicodeUni, KJpUnicodeOut ); - - // Convert the file JpUTF8.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpUTF8Txt, KJpUTF8Uni, KJpUTF8Out); - - // Convert the file mopera.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KmoperaTxt, KmoperaUni, KmoperaOut); - - // Convert the file MScodefont.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KMScodeFontTxt, KMScodeFontUni, KMScodeFontOut); - - // Convert the file S-JIS.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KSJISTxt, KSJISUni, KSJISOut); - - - // Check that J5 converts to UTF8 when ConvertFromUnicode() is called - convertFromUnicodeUsingJ5( test, fileServerSession, J5Converter ); - - // autodetect speed benchmark test - checkNormalAutodetectL( test, fileServerSession, KMScodeFontTxt ); - checkNormalAutodetectL( test, fileServerSession, KSJISTxt ); - checkNormalAutodetectL( test, fileServerSession, KImodeTxt ); - - // conversion speed benchmark test - checkConversionSpeedL(test, fileServerSession, KMScodeFontTxt); - checkConversionSpeedL(test, fileServerSession, KSJISTxt); - checkConversionSpeedL(test, fileServerSession, KImodeTxt); - - // J5Converter - CleanupStack::PopAndDestroy(1 /*, &J5Converter*/); - - // tidy up after text - test.End(); - User::After(3000000); - // test, fileServerSession - CleanupStack::PopAndDestroy(2, &test); - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - delete trapCleanup; - __UHEAP_MARKEND; - return error; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tj5_kddiau.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tj5_kddiau.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,789 +0,0 @@ -/* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* test code for the J5 character converter plug-in that can convert -* from any of the following character sets: -* Windows-31J (Microsoft code page 932), -* JIS (ISO-2022-JP-1), -* EUC, -* UTF8 -* and UCS2. -* Note the following values of test case ID number have been allocated for this code 0209-0223 -* -*/ - - -#include -#include -#include -#include -#include -#include "shiftjis.h" -#include - -// test data files -#ifdef __WINS__ - // on C drive for emulator - _LIT16(KAnsiTxt,"c:\\test\\data\\Ansi.test"); - _LIT16(KImodeTxt,"c:\\test\\data\\imode.test"); - _LIT16(KJpEUCjTxt,"c:\\test\\data\\JpEUC-J.test"); - _LIT16(KJpJISTxt,"c:\\test\\data\\JpJIS.test"); - _LIT16(KJpSJISTxt,"c:\\test\\data\\JpSJIS.test"); - _LIT16(KJpUnicodeTxt,"c:\\test\\data\\JpUnicode.test"); - _LIT16(KJpUTF8Txt,"c:\\test\\data\\JpUTF8.test"); - _LIT16(KmoperaTxt,"c:\\test\\data\\mopera.test"); - _LIT16(KMScodeFontTxt,"c:\\test\\data\\MScodefont.test"); - _LIT16(KSJISTxt,"c:\\test\\data\\S-JIS.test"); - - _LIT16(KAnsiUni,"c:\\test\\data\\Ansi.uni"); - _LIT16(KImodeUni,"c:\\test\\data\\imode_not_mapped.uni"); - _LIT16(KJpEUCjUni,"c:\\test\\data\\JpEUC-J.uni"); - _LIT16(KJpJISUni,"c:\\test\\data\\JpJIS.uni"); - _LIT16(KJpSJISUni,"c:\\test\\data\\JpSJIS.uni"); - _LIT16(KJpUnicodeUni,"c:\\test\\data\\JpUnicode.uni"); - _LIT16(KJpUTF8Uni,"c:\\test\\data\\JpUTF8.uni"); - _LIT16(KmoperaUni,"c:\\test\\data\\mopera_not_mapped.uni"); - _LIT16(KMScodeFontUni,"c:\\test\\data\\MScodefont.uni"); - _LIT16(KSJISUni,"c:\\test\\data\\S-JIS.uni"); -#else - // on Z drive for target ROM - _LIT16(KAnsiTxt,"z:\\test\\data\\Ansi.test"); - _LIT16(KImodeTxt,"z:\\test\\data\\imode.test"); - _LIT16(KJpEUCjTxt,"z:\\test\\data\\JpEUC-J.test"); - _LIT16(KJpJISTxt,"z:\\test\\data\\JpJIS.test"); - _LIT16(KJpSJISTxt,"z:\\test\\data\\JpSJIS.test"); - _LIT16(KJpUnicodeTxt,"z:\\test\\data\\JpUnicode.test"); - _LIT16(KJpUTF8Txt,"z:\\test\\data\\JpUTF8.test"); - _LIT16(KmoperaTxt,"z:\\test\\data\\mopera.test"); - _LIT16(KMScodeFontTxt,"z:\\test\\data\\MScodefont.test"); - _LIT16(KSJISTxt,"z:\\test\\data\\S-JIS.test"); - - _LIT16(KAnsiUni,"z:\\test\\data\\Ansi.uni"); - _LIT16(KImodeUni,"z:\\test\\data\\imode_not_mapped.uni"); - _LIT16(KJpEUCjUni,"z:\\test\\data\\JpEUC-J.uni"); - _LIT16(KJpJISUni,"z:\\test\\data\\JpJIS.uni"); - _LIT16(KJpSJISUni,"z:\\test\\data\\JpSJIS.uni"); - _LIT16(KJpUnicodeUni,"z:\\test\\data\\JpUnicode.uni"); - _LIT16(KJpUTF8Uni,"z:\\test\\data\\JpUTF8.uni"); - _LIT16(KmoperaUni,"z:\\test\\data\\mopera_not_mapped.uni"); - _LIT16(KMScodeFontUni,"z:\\test\\data\\MScodefont.uni"); - _LIT16(KSJISUni,"z:\\test\\data\\S-JIS.uni"); -#endif - - _LIT16(KAnsiOut,"c:\\test\\data\\Ansi.out"); - _LIT16(KImodeOut,"c:\\test\\data\\imode_not_mapped.out"); - _LIT16(KJpEUCjOut,"c:\\test\\data\\JpEUC-J.out"); - _LIT16(KJpJISOut,"c:\\test\\data\\JpJIS.out"); - _LIT16(KJpSJISOut,"c:\\test\\data\\JpSJIS.out"); - _LIT16(KJpUnicodeOut,"c:\\test\\data\\JpUnicode.out"); - _LIT16(KJpUTF8Out,"c:\\test\\data\\JpUTF8.out"); - _LIT16(KmoperaOut,"c:\\test\\data\\mopera_not_mapped.out"); - _LIT16(KMScodeFontOut,"c:\\test\\data\\MScodefont.out"); - _LIT16(KSJISOut,"c:\\test\\data\\S-JIS.out"); - -// this has been copied from J5, as this not exported -// and only needed for testing -enum TJ5Encoding - { - EShiftjis = 1, - EIso2022jp1, - EEucjp, - EUtf8, - EUcs2, - EUnknown - }; - -// this is the test plug in rather than KCharacterSetIdentifierJ5 -const TUint KCharacterSetTestJ5Kddiau=0x01000002; - -//this is the identifier for the shiftjis kddiau test plugin rather than the -// shiftjis docomo plugin identifier -const TUint KCharacterSetTestShiftJisKddiau=0x01000001; - - -#ifdef __WINS__ -/** - For development only! - used for generating unicode files - Save the converted file as unicode - */ -LOCAL_C void SaveConvertedUnicodeAsFile( RFs &fileServerSession, - const TDesC &aFileName, - const TDesC &aConvertedUnicode) - { - RFile file; - User::LeaveIfError( file.Replace( fileServerSession, aFileName, EFileWrite )); - - // get a pointer to 8bit data - const TUint16* p16 = aConvertedUnicode.Ptr(); - TPtrC8 p8( (TUint8 *)p16, aConvertedUnicode.Size() ); - - - file.Write( p8, aConvertedUnicode.Size()); - file.Close(); - } -#endif - - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-0209-CP -@SYMTestCaseDesc Check that the J5 converter is available for testing -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions The character conversion framework is called to check J5 is loaded. -@SYMTestExpectedResults J5 is in the list of avalable converters. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void checkJ5Available(RTest aTest, RFs &aFileServerSession) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0209-CP ")); - TBool J5found = EFalse; - - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(aFileServerSession); - - // check the list of available converters looking for J5 - aTest.Printf(_L("charconv plugins available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - - if ( charactersSetName.Compare(_L("J5_KDDIAU")) == 0) - J5found = ETrue; - } - aTest.Printf(_L(" %S\n"), &charactersSetName); - } - - if (J5found) - aTest.Printf(_L("test_j5_kddiau available\n") ); - else - { - aTest.Printf(_L("Test failed test_j5_kddiau not available\n") ); - } - - aTest(J5found); - - // PopAndDestroy arrayOfCharacterSetsAvailable - CleanupStack::PopAndDestroy(1); - } - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-0210-CP -@SYMTestCaseDesc Convert the file supplied (aForeign) to unicode and then - check the converted data against aExpectedUnicode -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions The J5 character converter is used convert ansi.test. -@SYMTestExpectedResults The result is checked against the expected result imode.uni. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void convertFileUsingJ5L(RTest& aTest, - RFs fileServerSession, - CCnvCharacterSetConverter*aJ5converter, - const TDesC &aForeign, - const TDesC &aExpectedUnicode, - const TDesC &aOutputUnicode ) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0210-CP ")); - aTest.Printf(_L("Read %S check that it converts to %S \n"),&aForeign, &aExpectedUnicode); - - // open the file & read into sourceBuffer - RFile source, expected; - User::LeaveIfError( source.Open( fileServerSession, aForeign, EFileRead )); - User::LeaveIfError( expected.Open( fileServerSession, aExpectedUnicode, EFileRead )); - TInt sourceSize = 0, expectedSize = 0; - source.Size(sourceSize); - expected.Size(expectedSize); - - // create buffers for source file and expected unicode file - HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); - TPtr8 sourcePtr(sourceBuffer->Des()); - HBufC8 * expectedBuffer = HBufC8::NewLC(expectedSize); - TPtr8 expectedPtr(expectedBuffer->Des()); - - // buffer to convert into - HBufC * outputBuffer = HBufC::NewLC(expectedSize); - TPtr outputPtr(outputBuffer->Des()); - - // read the whole source & output file into the buffer - User::LeaveIfError( source.Read( sourcePtr, sourceSize )); - User::LeaveIfError( expected.Read( expectedPtr, expectedSize )); - - // measure the time taken to convert. - TTime startTime, stopTime; - startTime.UniversalTime(); - - // now convert using J5 into unicode in the output buffer - TInt state = CCnvCharacterSetConverter::KStateDefault; - TInt error = KErrNone; - error = aJ5converter->ConvertToUnicode(outputPtr, sourcePtr, state); - if (error != KErrNone ) - { - aTest.Printf(_L("ConvertToUnicode returned %d\n"), error); - } - - stopTime.UniversalTime(); - TTimeIntervalMicroSeconds timeTaken = stopTime.MicroSecondsFrom(startTime); - TInt result = timeTaken.Int64(); - aTest.Printf(_L("Time for autodetect and convert to unicode %S using J5 %d microseconds\n"), - &aForeign, result ); - - TInt outputLength = outputBuffer->Length() ; // 16 bit words - TInt expectedLength = expectedPtr.Length() / 2 ; // Bytes (hence divide by 2!) - TInt checkLength = Min(outputLength, expectedLength) ; - - if (outputLength != expectedLength) - { - aTest.Printf(_L("Fail: Output length incorrect (expected %d bytes after conversion, got %d\n"), - expectedLength, outputLength) ; - } - // check that the output buffer contains the same as the expected buffer - TInt j=0; - TUint8 firstByte =0; - TUint8 secondbyte =0; - - for ( TInt i=0; i < checkLength; i++, j+=2) - { - // two bytes in the file - one 16bit unicode value - firstByte = TUint8(outputPtr[i] & 0x00ff); - secondbyte = (outputPtr[i] & 0xff00) >> 8 ; - - if ( ( firstByte == expectedPtr[j] ) && ( secondbyte == expectedPtr[j+1] ) ) - { - // useful for development - /*aTest.Printf(_L(" %02x%02x = %02x%02x ok\n"), - secondbyte, firstByte, expectedPtr[j+1], expectedPtr[j]);*/ - } - else - { - aTest.Printf(_L("line:%d %02x%02x (output) != %02x%02x (expected) fail\n"), - i, secondbyte, firstByte, expectedPtr[j+1], expectedPtr[j]); - } - } - -#ifdef __WINS__ - // for debugging save as file - SaveConvertedUnicodeAsFile( fileServerSession, aOutputUnicode, outputPtr ); -#endif - - source.Close(); - expected.Close(); - - // sourceBuffer, expectedBufffer, outputBuffer - CleanupStack::PopAndDestroy(3); - } - - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-0211-CP -@SYMTestCaseDesc Check that J5 converts to UTF8 when ConvertFromUnicode() is called -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions The J5 character converter is used to convert unicode to UTF8 -@SYMTestExpectedResults The result is checked against the expected UTF8. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void convertFromUnicodeUsingJ5(RTest& aTest, - RFs fileServerSession, - CCnvCharacterSetConverter*aJ5converter ) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0211-CP ")); - /* sample UTF8 for testing */ - _LIT16(KsampleUnicode,"\x0069\x002d\x006d\x006f\x0064\x0065\xFFFD"); - _LIT8(KsampleAsUTF8,"\x69\x2D\x6D\x6F\x64\x65\xEF\xBF\xBD"); - TBuf8<100> utf8buffer; - - aTest.Printf(_L("Check J5 convertd from Unicode to UTF8 \n")); - - CCnvCharacterSetConverter::TAvailability available = aJ5converter->PrepareToConvertToOrFromL(KCharacterSetTestJ5Kddiau, fileServerSession); - if ( available != CCnvCharacterSetConverter::EAvailable) - User::Leave(KErrNotSupported); - - // J5 convert from unicode - TInt state = CCnvCharacterSetConverter::KStateDefault; - TInt numberNotConverted =0; - numberNotConverted = aJ5converter->ConvertFromUnicode(utf8buffer, KsampleUnicode, state); - if (numberNotConverted != 0) - { - aTest.Printf(_L("numberNotConverted = %d"), numberNotConverted ); - } - - // compare the UTF8 created to that supplied - aTest(utf8buffer==KsampleAsUTF8); - - } - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-0212-CP -@SYMTestCaseDesc Check that the J5 converter autodetection -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions The J5 character converter is used convert sample files. -@SYMTestExpectedResults The result is passed back for testing in the state paramater. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void checkDetection(RTest& aTest, - RFs fileServerSession, - const TDesC &aForeign, - TInt aExpectedCode ) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0212-CP ")); - __UHEAP_MARK; - aTest.Printf(_L("Read %S check that it converts to %d \n"),&aForeign, aExpectedCode); - - // open the file & read into sourceBuffer - RFile source; - User::LeaveIfError( source.Open( fileServerSession, aForeign, EFileRead )); - TInt sourceSize = 0; - source.Size(sourceSize); - - // create buffers for source file - HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); - TPtr8 sourcePtr(sourceBuffer->Des()); - - // buffer to convert into - HBufC * outputBuffer = HBufC::NewLC(sourceSize * 2); - TPtr outputPtr(outputBuffer->Des()); - - // read the whole source & output file into the buffer - User::LeaveIfError( source.Read( sourcePtr, sourceSize )); - source.Close(); - - // load the converter ready for testing - CCnvCharacterSetConverter* J5Converter=CCnvCharacterSetConverter::NewLC(); - CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; - available = J5Converter->PrepareToConvertToOrFromL(KCharacterSetTestJ5Kddiau, fileServerSession); - if ( available != CCnvCharacterSetConverter::EAvailable) - User::Leave(KErrNotSupported); - - // now convert using J5 into unicode in the output buffer - TInt state = CCnvCharacterSetConverter::KStateDefault; - TInt numberCharsNotConverted = 0; - numberCharsNotConverted = J5Converter->ConvertToUnicode(outputPtr, sourcePtr, state); - if ( numberCharsNotConverted != 0) - aTest.Printf(_L("number of characters not converted:%d of %d\n"), - numberCharsNotConverted, sourceSize ); - - // check that J5 has been able to convert all the data - aTest(J5Converter->ConvertToUnicode(outputPtr, sourcePtr, state)==0); - - // look at the code returned in the state - if ( aExpectedCode == state ) - { - aTest.Printf(_L(" expected:%d found:%d ok\n"), aExpectedCode , state ); - } - else - { - aTest.Printf(_L(" expected:%d found:%d failed \n"), aExpectedCode , state ); - aTest( aExpectedCode == state); - } - - // sourceBuffer, expectedBufffer, J5Converter - CleanupStack::PopAndDestroy(3); - __UHEAP_MARKEND; - } - - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-0213-CP -@SYMTestCaseDesc Check the J5 on some small data samples -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions The sample data is converted to unicode by J5. -@SYMTestExpectedResults The converted unicode data is checked against expected data. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void convertDataUsingJ5(RTest& aTest, - RFs &fileServerSession, - const TDesC8 &aForeign, - const TDesC16 &aUnicode ) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0213-CP ")); - // for the unicode created - TBuf16<512> unicode; - - // load the converter ready for testing - CCnvCharacterSetConverter* J5Converter=CCnvCharacterSetConverter::NewLC(); - CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; - available = J5Converter->PrepareToConvertToOrFromL(KCharacterSetTestJ5Kddiau, fileServerSession); - if ( available != CCnvCharacterSetConverter::EAvailable) - User::Leave(KErrNotSupported); - - // J5 decode to unicode - TInt state = CCnvCharacterSetConverter::KStateDefault; - TInt numberNotConverted =0; - numberNotConverted = J5Converter->ConvertToUnicode(unicode, aForeign, state); - if (numberNotConverted != 0) - { - aTest.Printf(_L("numberNotConverted = %d"), numberNotConverted ); - } - - // compare the unicode created to that supplied - aTest(unicode==aUnicode); - - // tidy up J5Converter - CleanupStack::PopAndDestroy(1); - } - - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-0214-CP -@SYMTestCaseDesc Check that J5 does not interfere with the normal operation of Autodetect - And make a rough timing measurement. -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions Autodetect using other plugins is tested when J5 is available -@SYMTestExpectedResults Autodetect still works and does NOT select J5. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void checkNormalAutodetectL( RTest& aTest, RFs &aFileServerSession, const TDesC &aForeign ) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0214-CP ")); - aTest.Printf(_L("Test normal autodetect \n") ); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(aFileServerSession); - - // open the file & read into sourceBuffer - RFile source; - User::LeaveIfError( source.Open( aFileServerSession, aForeign, EFileRead )); - TInt sourceSize = 0; - source.Size(sourceSize); - - // create buffers for source file - HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); - TPtr8 sourcePtr(sourceBuffer->Des()); - - // read the whole source file into the buffer - User::LeaveIfError( source.Read( sourcePtr, sourceSize )); - source.Close(); - - // measure the time taken to autodetect. - TTime startTime, stopTime; - startTime.UniversalTime(); - - // do the autodetect - TInt confidenceLevel =0; - TUint characterSetIdentifier = 0; - characterSetConverter->AutoDetectCharSetL( confidenceLevel, - characterSetIdentifier, *arrayOfCharacterSetsAvailable, sourcePtr); - - //characterSetIdentifier could either be the ShiftJis identifier or the Shiftjis Kddiau Test identifier - //as both plugins are visible to ECOM - aTest((characterSetIdentifier == KCharacterSetIdentifierShiftJis) - ||(characterSetIdentifier == KCharacterSetTestShiftJisKddiau)); - - stopTime.UniversalTime(); - TTimeIntervalMicroSeconds timeTaken = stopTime.MicroSecondsFrom(startTime); - TInt result = timeTaken.Int64(); - aTest.Printf(_L("Time taken for old autodetect %S = %d microseconds\n"), - &aForeign, result ); - - // characterSetConverter,arrayOfCharacterSetsAvailable, sourceBuffer - CleanupStack::PopAndDestroy(3); - } - - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-0215-CP -@SYMTestCaseDesc Check the conversion speed of shiftjis -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions The sample data is converted to unicode by J5. -@SYMTestExpectedResults The converted unicode data is checked against expected data. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void checkConversionSpeedL(RTest& aTest, RFs &aFileServerSession, const TDesC &aForeign) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0215-CP ")); - aTest.Printf(_L("Test conversion speed \n") ); - - // open the file & read into sourceBuffer - RFile source; - User::LeaveIfError( source.Open( aFileServerSession, aForeign, EFileRead )); - TInt sourceSize = 0, expectedSize = 0; - source.Size(sourceSize); - - // assume that every byte coverts to 2 bytes of unicode and the buffer will be big enough - expectedSize = sourceSize * 2; - - // create buffer for source file - HBufC8 * sourceBuffer = HBufC8::NewLC(sourceSize); - TPtr8 sourcePtr(sourceBuffer->Des()); - - // for the unicode created - HBufC * outputBuffer = HBufC::NewLC(expectedSize); - TPtr outputPtr(outputBuffer->Des()); - - // load the converter ready for testing - CCnvCharacterSetConverter* charConverter=CCnvCharacterSetConverter::NewLC(); - CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; - available = charConverter->PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, aFileServerSession); - if ( available != CCnvCharacterSetConverter::EAvailable) - User::Leave(KErrNotSupported); - - // read the whole source file into the buffer - User::LeaveIfError( source.Read( sourcePtr, sourceSize )); - source.Close(); - - // measure the time taken to convert. - TTime startTime, stopTime; - startTime.UniversalTime(); - - // now convert using J5 into unicode in the output buffer - TInt state = CCnvCharacterSetConverter::KStateDefault; - TInt numberCharsNotConverted = 0; - - // repeat this to get a more accurate measurement - const int scale =10; - TInt i=0; - for ( i=0; iConvertToUnicode(outputPtr, sourcePtr, state); - if ( numberCharsNotConverted != 0) - aTest.Printf(_L("number of characters not converted:%d \n"), - numberCharsNotConverted ); - } - - stopTime.UniversalTime(); - TTimeIntervalMicroSeconds timeTaken = stopTime.MicroSecondsFrom(startTime); - TInt result = timeTaken.Int64()/scale; - aTest.Printf(_L("Time taken for converting %S to unicode using shiftjis:%d microseconds\n"), - &aForeign, result ); - - - // characterSetConverter, sourceBuffer, outputBuffer - CleanupStack::PopAndDestroy(3); - } - -/** -@SYMTestCaseID SYSLIB-CharConv-J5-U-0216-CP -@SYMTestCaseDesc Check some UCS2 conversions -@SYMTestStatus Implemented -@SYMTestPriority Critical -@SYMTestActions The UCS2 sample data is converted to unicode by J5. -@SYMTestExpectedResults The converted unicode data is checked against expected data. -@SYMTestType Unit -@SYMREQ REQ4828 -*/ -LOCAL_C void checkUCS2converstion(RTest& aTest, CCnvCharacterSetConverter *aJ5converter ) - { - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-J5-U-0216-CP ")); - // buffer to convert into - TBuf16<512> unicode; - TInt numberOfUnconvertibleCharacters; - TInt indexOfFirstByteOfFirstUnconvertibleCharacter; - - // small sample of EBigEndian UCS2 with no Byte order markers - aTest.Printf(_L("Check J5 conversion of EBigEndian UCS2 with no Byte order markers to unicode \n")); - _LIT8(Kucs2sample1,"\x0\x69\x0\x2d\x0\x6d\x0\x6f\x0\x64\x0\x65"); - _LIT16(KucsAsUnicode1,"\x0069\x002d\x006d\x006f\x0064\x0065"); - - // J5 convert from unicode - TInt state = CCnvCharacterSetConverter::KStateDefault; - TInt numberNotConverted =0; - numberNotConverted = aJ5converter->ConvertToUnicode(unicode, Kucs2sample1, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter ); - aTest(numberNotConverted == 0); - aTest(numberOfUnconvertibleCharacters == 0); - aTest(indexOfFirstByteOfFirstUnconvertibleCharacter == -1); - - // compare the unicode created to that supplied - aTest(unicode==KucsAsUnicode1); - - // small sample of ELittleEndian UCS2 with no Byte order markers - aTest.Printf(_L("Check J5 conversion of ELittleEndian UCS2 with no Byte order markers to unicode \n")); - _LIT8(Kucs2sample2,"\x69\x0\x2d\x0\x6d\x0\x6f\x0\x64\x0\x65\x0"); - _LIT16(KucsAsUnicode2,"\x0069\x002d\x006d\x006f\x0064\x0065"); - state = CCnvCharacterSetConverter::KStateDefault; - numberNotConverted = aJ5converter->ConvertToUnicode(unicode, Kucs2sample2, state); - aTest(numberNotConverted == 0); - - // compare the unicode created to that supplied - aTest(unicode==KucsAsUnicode2); - - // check UCS2 converter handles output buffer too small case - aTest.Printf(_L("Check J5 conversion of UCS2 with small output buffer \n")); - TBuf16<4> smallOutputBuffer; - numberNotConverted = aJ5converter->ConvertToUnicode(smallOutputBuffer, Kucs2sample2, state); - // check numberNotConverted = size of KucsAsUnicode2(12bytes) - smallOutputBuffer(8bytes) = 4 - aTest.Printf(_L("numberNotConverted %d should be 4 \n"), numberNotConverted ); - aTest( numberNotConverted == 4); - - // check UCS2 converter handles a odd number of input bytes - aTest.Printf(_L("Check J5 conversion of UCS2 handles a odd number of input bytes \n")); - _LIT8(Kucs2sample3,"\xff\xfe\x69\x0\x2d\x0\x6d\x0\x6f\x0\x64\x0\x65\x0\x23"); - _LIT16(KucsAsUnicode3,"\x0069\x002d\x006d\x006f\x0064\x0065"); - numberNotConverted = aJ5converter->ConvertToUnicode(unicode, Kucs2sample3, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - aTest.Printf(_L("numberOfUnconvertibleCharacters %d should be the 1 odd byte at the end\n"), numberOfUnconvertibleCharacters ); - aTest(unicode==KucsAsUnicode3); - aTest(numberNotConverted == 1); - aTest(numberOfUnconvertibleCharacters == 0); - aTest(indexOfFirstByteOfFirstUnconvertibleCharacter == -1); - } - - -/** - test code starts here... - */ -LOCAL_C void DoE32MainL() - { - RTest test=_L("TJ5_Kddiau"); - CleanupClosePushL(test); - test.Start(_L("TJ5 start")); - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - - // check the J5 converter is available - checkJ5Available( test, fileServerSession ); - - // Convert some sample data to unicode using J5 and check result - _LIT8(KShiftJis,"\x82\xB1\x82\xF1\x82\xC9\x82\xBF\x82\xCD\x82\xC9\x82\xBF\x82\xCD"); - _LIT16(KUnicode,"\x3053\x3093\x306B\x3061\x306F\x306B\x3061\x306F"); - // test J5 on simple example shift jis test data, - convertDataUsingJ5(test, fileServerSession, KShiftJis, KUnicode ); - - // small sample of code set 1&3 EUC_JP - _LIT8(KCodeSet2EucJp,"\x8f\xa2\xc2\xa1\xf1\xa1\xf2\x8f\xa2\xc2\x5c\x8f\xa2\xc3\xa1\xf8"); - // should convert to ¡¢£¤¥¦§ - _LIT16(KCodeSet2EucJpAsUnicode,"\x00A1\x00A2\x00A3\x00A1\x00A5\x00A6\x00A7"); - convertDataUsingJ5( test, fileServerSession, KCodeSet2EucJp, KCodeSet2EucJpAsUnicode); - - /* example of code set 3 EUC_JP 8faba98fa9c18fabae8fabb28fabb18fabb48fabb38fabc0 converts to åæçèéêëì*/ - /* Note this could also be decoded as shiftjis */ - _LIT8(KCodeSet3EucJp,"\x8f\xab\xa9\x8f\xa9\xc1\x8f\xab\xae\x8f\xab\xb2\x8f\xab\xb1\x8f\xab\xb4\x8f\xab\xb3\x8f\xab\xc0"); - _LIT16(KCodeSet3EucJpAsUnicode,"\x00E5\x00E6\x00E7\x00E8\x00E9\x00EA\x00EB\x00EC"); - convertDataUsingJ5( test, fileServerSession, KCodeSet3EucJp, KCodeSet3EucJpAsUnicode); - - // small sample of UTF8 ®¯°±²³ - _LIT8(Kutf8,"\xc2\x8e\xc2\xaf\xc2\xb0\xc2\xb1\xc2\xb2\xc2\xb3"); - _LIT16(Kutf8AsUnicode,"\x008E\x00AF\x00B0\x00B1\x00B2\x00B3"); - convertDataUsingJ5( test, fileServerSession, Kutf8, Kutf8AsUnicode); - - // small sample of ISO2022jp - _LIT8(Kiso2022jp,"\x1B\x24\x42\x24\x33\x24\x73\x24"); - _LIT16(Kiso2022jpAsUnicode,"\x3053\x3093"); - convertDataUsingJ5( test, fileServerSession, Kiso2022jp, Kiso2022jpAsUnicode); - - // some shiftjis which starts with two bytes that could be EUC 0xe1,0x81 - _LIT8(KShiftJisWithEucStart,"\xE1\x81\x82\xB1\x82\xF1\x82\xC9\x82\xBF\x82\xCD\x82\xC9\x82\xBF\x82\xCD"); - _LIT16(KUnicodeShiftJisWithEucStart,"\x7601\x3053\x3093\x306B\x3061\x306F\x306B\x3061\x306F"); - convertDataUsingJ5(test, fileServerSession, KShiftJisWithEucStart, KUnicodeShiftJisWithEucStart ); - - // some shiftjis which starts with two bytes that could be UTF8 0xc2,0x8e - _LIT8(KShiftJisWithUtf8Start,"\xC2\x8E\x82\xB1\x82\xF1\x82\xC9\x82\xBF\x82\xCD\x82\xC9\x82\xBF\x82\xCD"); - _LIT16(KUnicodeShiftJisWithUtf8Start,"\xFF82\x7345\xFF71\x3093\x306B\x3061\x306F\x306B\x3061\x306F"); - convertDataUsingJ5(test, fileServerSession, KShiftJisWithUtf8Start, KUnicodeShiftJisWithUtf8Start ); - - // Small shiftjis sample with some half width Katakana - _LIT8(KShiftJisHalfWidthKatakana,"\xB0\xE0\x70\xB0\x70"); - _LIT16(KUnicodeShiftJisHalfWidthKatakana,"\xFF70\x703E\xFF70\x0070"); - convertDataUsingJ5(test, fileServerSession, KShiftJisHalfWidthKatakana, KUnicodeShiftJisHalfWidthKatakana ); - - /* Read in a text file and convert to unicode using J5 - then check the correct converstion was used by checking - returned state variable */ - // Note ansi.txt is valid for several conversions EUtf8, Eucjp - checkDetection( test, fileServerSession, KAnsiTxt, EEucjp); - checkDetection( test, fileServerSession, KImodeTxt, EShiftjis); - checkDetection( test, fileServerSession, KJpEUCjTxt, EEucjp); - checkDetection( test, fileServerSession, KJpJISTxt, EIso2022jp1); - checkDetection( test, fileServerSession, KJpSJISTxt, EShiftjis); - checkDetection( test, fileServerSession, KJpUnicodeTxt, EUcs2); - checkDetection( test, fileServerSession, KJpUTF8Txt, EUtf8); - checkDetection( test, fileServerSession, KmoperaTxt, EShiftjis); - checkDetection( test, fileServerSession, KMScodeFontTxt,EShiftjis ); - checkDetection( test, fileServerSession, KSJISTxt, EShiftjis ); - - // load the converter ready for testing - CCnvCharacterSetConverter* J5Converter=CCnvCharacterSetConverter::NewLC(); - CCnvCharacterSetConverter::TAvailability available = CCnvCharacterSetConverter::EAvailable; - available = J5Converter->PrepareToConvertToOrFromL(KCharacterSetTestJ5Kddiau, fileServerSession); - if ( available != CCnvCharacterSetConverter::EAvailable) - User::Leave(KErrNotSupported); - - // check some UCS2 examples - checkUCS2converstion( test, J5Converter ); - - // Convert the file Ansi.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KAnsiTxt, KAnsiUni, KAnsiOut ); - - // Convert the file imode.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KImodeTxt, KImodeUni, KImodeOut ); - - // Convert the file JpEUC-J.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpEUCjTxt, KJpEUCjUni, KJpEUCjOut ); - - // Convert the file JpJIS.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpJISTxt, KJpJISUni, KJpJISOut); - - // Convert the file JpSJIS.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpSJISTxt, KJpSJISUni, KJpSJISOut ); - - // Convert the file JpUnicode.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpUnicodeTxt, KJpUnicodeUni, KJpUnicodeOut ); - - // Convert the file JpUTF8.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KJpUTF8Txt, KJpUTF8Uni, KJpUTF8Out); - - // Convert the file mopera.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KmoperaTxt, KmoperaUni, KmoperaOut); - - // Convert the file MScodefont.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KMScodeFontTxt, KMScodeFontUni, KMScodeFontOut); - - // Convert the file S-JIS.test supplied by Symbian Japan to unicode - convertFileUsingJ5L( test, fileServerSession, J5Converter, KSJISTxt, KSJISUni, KSJISOut); - - // Check that J5 converts to UTF8 when ConvertFromUnicode() is called - convertFromUnicodeUsingJ5( test, fileServerSession, J5Converter ); - - // autodetect speed benchmark test - checkNormalAutodetectL( test, fileServerSession, KMScodeFontTxt ); - checkNormalAutodetectL( test, fileServerSession, KSJISTxt ); - checkNormalAutodetectL( test, fileServerSession, KImodeTxt ); - - // conversion speed benchmark test - checkConversionSpeedL(test, fileServerSession, KMScodeFontTxt); - checkConversionSpeedL(test, fileServerSession, KSJISTxt); - checkConversionSpeedL(test, fileServerSession, KImodeTxt); - - // J5Converter - CleanupStack::PopAndDestroy(1 /*, &J5Converter*/); - - // tidy up after text - test.End(); - User::After(3000000); - // test, fileServerSession - CleanupStack::PopAndDestroy(2, &test); - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - delete trapCleanup; - __UHEAP_MARKEND; - return error; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tjis.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tjis.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,340 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TJIS")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// - -const TInt KBufferLength=100; -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0529 -@SYMTestCaseDesc Tests for truncated conversion from Unicode to JIS -@SYMTestPriority Medium -@SYMTestActions Tests for truncated conversion from Unicode to JIS and back to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionFromUnicodeToJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0529 ")); - for (TInt i=aOriginalUnicode.Length(); i>=0; --i) - { - TBuf8 generatedJis; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedJis, aOriginalUnicode.Left(i))>=0); - TBuf8 generatedsecondPartOfJis; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfJis, aOriginalUnicode.Mid(i))==0); - generatedJis.Append(generatedsecondPartOfJis); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedJis, state)==0); - TEST(generatedUnicode==aOriginalUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0530 -@SYMTestCaseDesc Splitting and converting from Unicode to JIS test -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting, from Unicode to JIS and back to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingFromUnicodeToJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, const TDesC8& aExpectedFirstPartOfJis, const TDesC8& aExpectedSecondPartOfJis, const TDesC16& aOriginalUnicode) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0530 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint8 jisBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr8 generatedFirstPartOfJis(jisBuffer, i); - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfJis, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); - TEST(generatedFirstPartOfJis==aExpectedFirstPartOfJis); - TBuf8 generatedSecondPartOfJis; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfJis, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); - TEST(generatedSecondPartOfJis==aExpectedSecondPartOfJis); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfJis, state)==0); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfJis, state)==0); - generatedUnicode.Append(generatedSecondPartOfUnicode); - TEST(generatedUnicode==aOriginalUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0531 -@SYMTestCaseDesc Tests for truncated conversion from JIS to Unicode -@SYMTestPriority Medium -@SYMTestActions Tests for truncated conversion from JIS to Unicode and back to JIS -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionToUnicodeFromJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalJis) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0531 ")); - for (TInt i=aOriginalJis.Length(); i>=6; --i) // 6 is the length of JIS' longest escape sequence - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalJis.Left(i), state); - TEST(returnValue>=0); - TBuf16 generatedsecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalJis.Mid(i-returnValue), state)==0); - generatedUnicode.Append(generatedsecondPartOfUnicode); - TEST(generatedUnicode==aExpectedUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0532 -@SYMTestCaseDesc Splitting and converting from JIS to Unicode test -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting, from JIS to Unicode and back to JIS -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingToUnicodeFromJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfJisBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalJis) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0532 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint16 unicodeBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); - TInt state=CCnvCharacterSetConverter::KStateDefault; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalJis, state); - TEST(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); - TEST(returnValue==aExpectedNumberOfJisBytesNotConvertedAtSplit); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalJis.Right(aExpectedNumberOfJisBytesNotConvertedAtSplit), state)==0); - TEST(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); - TBuf8 generatedJis; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedJis, generatedFirstPartOfUnicode)==0); - TBuf8 generatedSecondPartOfJis; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfJis, generatedSecondPartOfUnicode)==0); - generatedJis.Append(generatedSecondPartOfJis); - TBuf16 regeneratedUnicode; - state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, generatedJis, state)==0); - TEST(regeneratedUnicode==aExpectedUnicode); - state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(regeneratedUnicode, aOriginalJis, state)==0); - TEST(regeneratedUnicode==aExpectedUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0533 -@SYMTestCaseDesc Conversion of bad JIS format to Unicode test -@SYMTestPriority Medium -@SYMTestActions Tests to convert bad formatted JIS input to Unicode. -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestIsIllFormedJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aJis) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0533 ")); - TBuf16<50> generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - TPtrC8 remainderOfJis(aJis); - TInt lastReturnValue=KMaxTInt; - FOREVER - { - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfJis, state); - if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) - { - break; - } - TEST(returnValue>0); - TEST(returnValue* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - TInt i; - for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TheTest.Next(_L("Testing JIS conversions")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierJis, *arrayOfCharacterSetsAvailable, fileServerSession); - // - TheTest.Next(_L("Empty descriptor")); - TestSplittingConvertingFromUnicodeToJis(*characterSetConverter, 0, 10, 0, KNullDesC8, KNullDesC8, KNullDesC16); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); - TheTest.Next(_L("Testing converting to JIS")); - TBuf16<50> originalUnicode; - originalUnicode.Format(_L16("I %c%c%c%c%c%c%c%c"), 0x611b, 0x3059, 0x308b, 0xff74, 0xff9a, 0xff68, 0xff9d, 0x4e04); - TestTruncatedConversionFromUnicodeToJis(*characterSetConverter, originalUnicode); - 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); - 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); - 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); - 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); - 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); - 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); - 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); - 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); - 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); - 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); - 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); - TheTest.Next(_L("Testing converting to Unicode")); - - /** - * Work around for DEF063276. - * This literal is now loaded from a z:\test\data\originalJis.dat - * Bullseye Coverage corrupts this literal to avoid this it is stored in a file as to not be touched by Bullseye Coverage. - */ - // 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")); - - TBuf8<64> buf; - ReadDesc(buf, KOriginalJisFilename, fileServerSession); - - TBuf16<50> expectedUnicode; - expectedUnicode.Format(_L16("\xa5\\%c\xa5%c\xa5%c%c%c%c%c%c0$"), 0xff74, 0xff71, 0xff8a, 0xff9e, 0x963f, 0x4e0c, 0xff61, 0xff62); - TestTruncatedConversionToUnicodeFromJis(*characterSetConverter, expectedUnicode, buf); - 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")); - TestTruncatedConversionToUnicodeFromJis(*characterSetConverter, _L16(" Hello"), _L8("\x1b\x26\x40\x1b\x24\x42\x1b\x28\x4a Hello")); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 0, 0, 38, 0, expectedUnicode, buf); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 1, 1, 34, 1, expectedUnicode, buf); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 2, 2, 33, 2, expectedUnicode, buf); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 3, 3, 32, 3, expectedUnicode, buf); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 4, 4, 30, 4, expectedUnicode, buf); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 5, 5, 28, 5, expectedUnicode, buf); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 6, 6, 26, 6, expectedUnicode, buf); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 7, 7, 25, 7, expectedUnicode, buf); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 8, 8, 24, 8, expectedUnicode, buf); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 9, 9, 12, 9, expectedUnicode, buf); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 10, 10, 7, 10, expectedUnicode, buf); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 11, 11, 5, 11, expectedUnicode, buf); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 12, 12, 3, 12, expectedUnicode, buf); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 13, 13, 2, 13, expectedUnicode, buf); - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, 14, 30, 0, 14, expectedUnicode, buf); - - // End fix - TheTest.Next(_L("Testing the default JIS state")); - for (i=0; i<=6; ++i) - { - TestSplittingConvertingToUnicodeFromJis(*characterSetConverter, i, i, 6-i, i, _L16("Hello\xa5"), _L8("Hello\\")); - } - TheTest.Next(_L("Testing ill-formed JIS")); - TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b\x26\x40\x1b\x24\x42\x21\x1b\x28\x4a def")); - TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b\x26\x40\x1b\x24\x42\x21\x21\x21\x1b\x28\x4a def")); - TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b\x26\x40\x1b\x24\x42\x21\x21\x21\x21\x21\x1b\x28\x4a def")); - TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b")); - TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b\x24")); - TestIsIllFormedJis(*characterSetConverter, _L8("abc \x1b\x24\xff")); - CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tportuguesegsmsingle.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tportuguesegsmsingle.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,257 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierPortugueseSingleSms7Bit; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\gsm7_portuguese_single_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\gsm7_portuguese_single_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\gsm7_portuguese_single_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\gsm7_portuguese_single_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\gsm7_portuguese_single_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\gsm7_portuguese_single_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\gsm7_portuguese_single_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\gsm7_portuguese_single_for_expect.dat"); -#endif - -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TPortugueseGsmSingle")); -CCnvCharacterSetConverter* characterSetConverter; -RFs fileServerSession; -TBuf8<974> temp; -TBuf16<487> originalUnicode; -TBuf8<487> generatedForeign; -TBuf16<487> generatedUnicode; - -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -//translate from unicode big endian TDesC8 to TDes16 -static void Unicode_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Start(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4027 Available:\n ")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4028 -@SYMTestCaseDesc Testcase to test new converter can be prepared -@SYMTestPriority High -@SYMTestActions Test for PrepareToConvertToOrFromL() -@SYMTestExpectedResults The test passed, If EAvailable is returned -@SYMPREQ PREQ 2592 -@SYMREQ REQ 12583 -*/ -void PrepareNewConverterL() - { - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4028 Testing new converter can be prepared ")); - CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, fileServerSession); - TEST( CCnvCharacterSetConverter::EAvailable == avaible ); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4029 -@SYMTestCaseDesc Convert Unicode code to foreign character set -@SYMTestPriority High -@SYMTestActions Test for ConvertFromUnicode() -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ 2592 -@SYMREQ REQ 12583 -*/ -LOCAL_C void ConvertFromUnicodeToForeignL() - { - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4029 Testing encoding from Unicode to Foreign ")); - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Unicode_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4030 -@SYMTestCaseDesc Convert foreign character set to Unicode code -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ 2592 -@SYMREQ REQ 12583 -*/ -LOCAL_C void ConvertFromForeignToUnicodeL() - { - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4030 Testing encoding from Foreign to Unicode ")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Unicode_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4031 -@SYMTestCaseDesc Convert illegal character from foreign character set to unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ 2592 -@SYMREQ REQ 12583 -*/ -LOCAL_C void ConvertIllegalForeignCharacter() - { - //test 0x1b - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4031 Testing EErrorIllFormedInput ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x1b; //the escape character - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( -20 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4032 -@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ 2592 -@SYMREQ REQ 12583 -*/ -LOCAL_C void ConvertOutOfRangeForeignCharacters() - { - //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4032 Testing Characters not in the Scope ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x80; - TInt state=CCnvCharacterSetConverter::KStateDefault; - _LIT16(KExpected2, "\xfffd"); //the expected foreign - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - TEST( generatedUnicode == KExpected2 ); - } - -LOCAL_C void DoE32MainL() - { - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - characterSetConverter=CCnvCharacterSetConverter::NewLC(); - - ListAlltheConvertersL(); - PrepareNewConverterL(); - ConvertFromUnicodeToForeignL(); - ConvertFromForeignToUnicodeL(); - ConvertIllegalForeignCharacter(); - ConvertOutOfRangeForeignCharacters(); - - CleanupStack::PopAndDestroy(2); - } - - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tportugueselocking.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tportugueselocking.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,258 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierPortugueseLockingSms7Bit; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\portuguese_locking_gsm7ext_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\portuguese_locking_gsm7ext_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\portuguese_locking_gsm7ext_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\portuguese_locking_gsm7ext_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\portuguese_locking_gsm7ext_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\portuguese_locking_gsm7ext_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\portuguese_locking_gsm7ext_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\portuguese_locking_gsm7ext_for_expect.dat"); -#endif - -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TPortugueseLockingGsm7Ext")); -CCnvCharacterSetConverter* characterSetConverter; -RFs fileServerSession; -TBuf8<970> temp; -TBuf16<485> originalUnicode; -TBuf8<485> generatedForeign; -TBuf16<485> generatedUnicode; - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -//translate from unicode big endian TDesC8 to TDes16 -static void Unicode_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Start(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4033 Available:\n ")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4034 -@SYMTestCaseDesc Testcase to test new converter can be prepared -@SYMTestPriority High -@SYMTestActions Test for PrepareToConvertToOrFromL() -@SYMTestExpectedResults The test passed, If EAvailable is returned -@SYMPREQ PREQ 2592 -@SYMREQ REQ 12583 -*/ -void PrepareNewConverterL() - { - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4034 Testing new converter can be prepared ")); - CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, fileServerSession); - TEST( CCnvCharacterSetConverter::EAvailable == avaible ); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4035 -@SYMTestCaseDesc Convert Unicode code to foreign character set -@SYMTestPriority High -@SYMTestActions Test for ConvertFromUnicode() -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ 2592 -@SYMREQ REQ 12583 -*/ -LOCAL_C void ConvertFromUnicodeToForeignL() - { - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4035 Testing encoding from Unicode to Foreign ")); - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Unicode_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4036 -@SYMTestCaseDesc Convert foreign character set to Unicode code -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ 2592 -@SYMREQ REQ 12583 -*/ -LOCAL_C void ConvertFromForeignToUnicodeL() - { - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4036 Testing encoding from Foreign to Unicode ")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Unicode_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4037 -@SYMTestCaseDesc Convert illegal character from foreign character set to unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ 2592 -@SYMREQ REQ 12583 -*/ -LOCAL_C void ConvertIllegalForeignCharacter() - { - //test 0x1b - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4037 Testing EErrorIllFormedInput ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x1b; //the escape character - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( -20 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4038 -@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ 2592 -@SYMREQ REQ 12583 -*/ -LOCAL_C void ConvertOutOfRangeForeignCharacters() - { - //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4038 Testing Characters not in the Scope ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x80; - TInt state=CCnvCharacterSetConverter::KStateDefault; - _LIT16(KExpected2, "\xfffd"); //the expected foreign - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - TEST( generatedUnicode == KExpected2 ); - } - -LOCAL_C void DoE32MainL() - { - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - characterSetConverter=CCnvCharacterSetConverter::NewLC(); - - ListAlltheConvertersL(); - PrepareNewConverterL(); - ConvertFromUnicodeToForeignL(); - ConvertFromForeignToUnicodeL(); - ConvertIllegalForeignCharacter(); - ConvertOutOfRangeForeignCharacters(); - - CleanupStack::PopAndDestroy(2); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tportugueselockingsingle.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tportugueselockingsingle.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,260 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierPortugueseLockingAndSingleSms7Bit; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\portuguese_locking_single_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\portuguese_locking_single_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\portuguese_locking_single_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\portuguese_locking_single_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\portuguese_locking_single_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\portuguese_locking_single_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\portuguese_locking_single_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\portuguese_locking_single_for_expect.dat"); -#endif - -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TPortugueseLockingSingle")); -CCnvCharacterSetConverter* characterSetConverter; -RFs fileServerSession; -TBuf8<970> temp; -TBuf16<485> originalUnicode; -TBuf8<485> generatedForeign; -TBuf16<485> generatedUnicode; - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -//translate from unicode big endian TDesC8 to TDes16 -static void Unicode_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Start(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4039 Available:\n ")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4040 -@SYMTestCaseDesc Testcase to test new converter can be prepared -@SYMTestPriority High -@SYMTestActions Test for PrepareToConvertToOrFromL() -@SYMTestExpectedResults The test passed, If EAvailable is returned -@SYMPREQ PREQ2592 -@SYMREQ REQ12583 -*/ -void PrepareNewConverterL() - { - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4040 Testing new converter can be prepared ")); - CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, fileServerSession); - TEST( CCnvCharacterSetConverter::EAvailable == avaible ); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4041 -@SYMTestCaseDesc Convert Unicode code to foreign character set -@SYMTestPriority High -@SYMTestActions Test for ConvertFromUnicode() -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ2592 -@SYMREQ REQ12583 -*/ -LOCAL_C void ConvertFromUnicodeToForeignL() - { - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4041 Testing encoding from Unicode to Foreign ")); - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Unicode_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4042 -@SYMTestCaseDesc Convert foreign character set to Unicode code -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ2592 -@SYMREQ REQ12583 -*/ -LOCAL_C void ConvertFromForeignToUnicodeL() - { - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4042 Testing encoding from Foreign to Unicode ")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Unicode_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4043 -@SYMTestCaseDesc Convert illegal character from foreign character set to unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ2592 -@SYMREQ REQ12583 -*/ -LOCAL_C void ConvertIllegalForeignCharacter() - { - //test 0x1b - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4043 Testing EErrorIllFormedInput ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x1b; //the escape character - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( -20 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4044 -@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ2592 -@SYMREQ REQ12583 -*/ -LOCAL_C void ConvertOutOfRangeForeignCharacters() - { - //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4044 Testing Characters not in the Scope ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x80; - TInt state=CCnvCharacterSetConverter::KStateDefault; - _LIT16(KExpected2, "\xfffd"); //the expected foreign - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - TEST( generatedUnicode == KExpected2 ); - } - -LOCAL_C void DoE32MainL() - { - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - characterSetConverter=CCnvCharacterSetConverter::NewLC(); - - ListAlltheConvertersL(); - PrepareNewConverterL(); - ConvertFromUnicodeToForeignL(); - ConvertFromForeignToUnicodeL(); - ConvertIllegalForeignCharacter(); - ConvertOutOfRangeForeignCharacters(); - - CleanupStack::PopAndDestroy(2); - } - - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/treplacement.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/treplacement.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,169 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TReplacement")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0546 -@SYMTestCaseDesc Tests for the conversion of uncovertible Unicode characters -@SYMTestPriority Medium -@SYMTestActions Tests for the replacement of uncovertible Unicode characters -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void DoE32MainL() - { - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0546 ")); - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312, *arrayOfCharacterSetsAvailable, fileServerSession); - TheTest.Next(_L("Testing various values for iReplacementForUnconvertibleUnicodeCharacters")); - // - TheTest.Next(_L("Testing iReplacementForUnconvertibleUnicodeCharacters being long")); - { - TBuf16<50> originalUnicode; - originalUnicode.Format(_L16("Here is a Georgian character - %c"), 0x10da); - characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("[something quite long]")); - const TInt KLengthOfForeignBuffer=100; - TUint8 foreignBuffer[KLengthOfForeignBuffer]; - for (TInt i=31; ; ++i) - { - TEST(i<=KLengthOfForeignBuffer); - TPtr8 generatedForeign(foreignBuffer, i); - TInt numberOfUnconvertibleCharacters; - TInt indexOfFirstUnconvertibleCharacter; - const TInt returnValue=characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter); - if (i==53) - { - TEST(returnValue==0); - TEST(generatedForeign==_L8("Here is a Georgian character - [something quite long]")); - TEST(numberOfUnconvertibleCharacters==1); - TEST(indexOfFirstUnconvertibleCharacter==31); - break; - } - TEST(returnValue==1); - TEST(generatedForeign==_L8("Here is a Georgian character - ")); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstUnconvertibleCharacter==-1); // not something that the API guarantees (it's undefined if numberOfUnconvertibleCharacters==0), but we'll check it any - } - } - TheTest.Next(_L("Testing lots of unconvertible Unicode characters")); - { - characterSetConverter->SetReplacementForUnconvertibleUnicodeCharactersL(_L8("?Q")); - TInt numberOfUnconvertibleCharacters; - TInt indexOfFirstUnconvertibleCharacter; - TInt i; - TPtr16 originalUnicode(HBufC16::NewMaxLC(10+(sizeof(CCnvCharacterSetConverter::TArrayOfAscendingIndices)/sizeof(TUint16)))->Des()); - TPtr8 generatedForeign(HBufC8::NewLC(originalUnicode.Length()*sizeof(TUint16))->Des()); - originalUnicode.Fill(0x7535); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter)==0); - TEST(generatedForeign.Length()>0); - TEST(generatedForeign.Length()==originalUnicode.Length()*STATIC_CAST(TInt, sizeof(TUint16))); - TEST(numberOfUnconvertibleCharacters==0); - for (i=generatedForeign.Length()-1; i>=0; i-=2) - { - TEST(generatedForeign[i-1]==0xb5); - TEST(generatedForeign[i]==0xe7); - } - originalUnicode.Fill(0x0f0a); // a Tibetan character, not in GB 2312-80 - const TInt returnValue=characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode, numberOfUnconvertibleCharacters, indexOfFirstUnconvertibleCharacter); - TEST(returnValue==0); - TEST(generatedForeign.Length()>0); - TEST(generatedForeign.Length()==(originalUnicode.Length()-returnValue)*STATIC_CAST(TInt, sizeof(TUint16))); - TEST(numberOfUnconvertibleCharacters==25); - TEST(indexOfFirstUnconvertibleCharacter==0); - for (i=generatedForeign.Length()-1; i>=0; i-=2) - { - TEST(generatedForeign[i-1]=='?'); - TEST(generatedForeign[i]=='Q'); - } - CleanupStack::PopAndDestroy(2); // generatedForeign and originalUnicode - } - CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tshiftjis_docomo.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tshiftjis_docomo.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,496 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include -#include "shiftjis.h" -#include - - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TShiftJis_Docomo")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// - -const TInt KBufferLength=100; - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-1903 -@SYMTestCaseDesc Tests for truncated conversion from Unicode to ShiftJIS -@SYMTestPriority Medium -@SYMTestActions Tests for truncated conversion from Unicode to ShiftJIS and back to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, const TDesC16& aUnicodeAfterRoundTrip) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-1903 ")); - for (TInt i=aOriginalUnicode.Length(); i>=0; --i) - { - TBuf8 generatedShiftJis; - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedShiftJis, aOriginalUnicode.Left(i)); - TEST(returnValue>=0); - TBuf8 generatedsecondPartOfShiftJis; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfShiftJis, aOriginalUnicode.Mid(i-returnValue))==0); - generatedShiftJis.Append(generatedsecondPartOfShiftJis); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedShiftJis, state)==0); - TEST(generatedUnicode==aUnicodeAfterRoundTrip); - } - } - -LOCAL_C void TestTruncatedConversionFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) - { - TestTruncatedConversionFromUnicodeToShiftJis(aCharacterSetConverter, aOriginalUnicode, aOriginalUnicode); - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-1904 -@SYMTestCaseDesc Splitting and converting from Unicode to ShiftJIS test -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting from Unicode to ShiftJIS and back to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfShiftJis, const TDesC8& aExpectedShiftJis, const TDesC16& aOriginalUnicode, const TDesC16& aUnicodeAfterRoundTrip) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-1904 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint8 shiftJisBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr8 generatedFirstPartOfShiftJis(shiftJisBuffer, i); - TInt unconverted = aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfShiftJis, aOriginalUnicode) ; - TEST(unconverted == aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); - TEST(generatedFirstPartOfShiftJis==aExpectedShiftJis.Left(aExpectedLengthOfFirstPartOfShiftJis)); - TBuf8 generatedSecondPartOfShiftJis; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfShiftJis, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); - TEST(generatedSecondPartOfShiftJis==aExpectedShiftJis.Mid(aExpectedLengthOfFirstPartOfShiftJis)); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfShiftJis, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfShiftJis, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - generatedUnicode.Append(generatedSecondPartOfUnicode); - TEST(generatedUnicode==aUnicodeAfterRoundTrip); - } - } - -LOCAL_C void TestSplittingConvertingFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfShiftJis, const TDesC8& aExpectedShiftJis, const TDesC16& aOriginalUnicode) - { - TestSplittingConvertingFromUnicodeToShiftJis(aCharacterSetConverter, aMaximumLengthLowerLimit, aMaximumLengthUpperLimit, aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, aExpectedLengthOfFirstPartOfShiftJis, aExpectedShiftJis, aOriginalUnicode, aOriginalUnicode); - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-1905 -@SYMTestCaseDesc Tests for truncated conversion from ShiftJIS to Unicode -@SYMTestPriority Medium -@SYMTestActions Tests for truncated conversion from ShiftJIS to Unicode and back to ShiftJIS -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionToUnicodeFromShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJis) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-1905 ")); - for (TInt i=aOriginalShiftJis.Length(); i>=2; --i) // 2 is the length of GBK's longest multi-byte characters - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalShiftJis.Left(i), state); - TEST(returnValue>=0); - TBuf16 generatedsecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalShiftJis.Mid(i-returnValue), state)==0); - generatedUnicode.Append(generatedsecondPartOfUnicode); - TEST(generatedUnicode==aExpectedUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-1906 -@SYMTestCaseDesc Splitting and converting from ShiftJIS to Unicode test -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting from ShiftJIS to Unicode and back to ShiftJIS -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingToUnicodeFromShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfShiftJisBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJis) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-1906 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint16 unicodeBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalShiftJis, state)==aExpectedNumberOfShiftJisBytesNotConvertedAtSplit); - TEST(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalShiftJis.Right(aExpectedNumberOfShiftJisBytesNotConvertedAtSplit), state)==0); - TEST(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf8 generatedShiftJis; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedShiftJis, generatedFirstPartOfUnicode)==0); - TBuf8 generatedSecondPartOfShiftJis; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfShiftJis, generatedSecondPartOfUnicode)==0); - generatedShiftJis.Append(generatedSecondPartOfShiftJis); - TEST(generatedShiftJis==aOriginalShiftJis); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-1907 -@SYMTestCaseDesc Conversion of bad ShiftJIS format to Unicode test -@SYMTestPriority Medium -@SYMTestActions Tests for converting bad format ShiftJIS -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestIsIllFormedShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aShiftJis) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-1907 ")); - TBuf16<50> generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - TPtrC8 remainderOfShiftJis(aShiftJis); - TInt lastReturnValue=KMaxTInt; - FOREVER - { - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfShiftJis, state); - if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) - { - break; - } - TEST(returnValue>0); - TEST(returnValue outputBuffer; - TPtrC8 remainderOfForeignText(aShiftJisText); - - TInt state=CCnvCharacterSetConverter::KStateDefault; - TInt returnValue = aCharacterSetConverter.ConvertToUnicode(outputBuffer, - remainderOfForeignText, - state); - TInt charsProcessed = outputBuffer.Length(); - TInt charsToConvert = aShiftJisText.Length(); - TEST(charsProcessed == 20); - TEST(returnValue == (charsToConvert - charsProcessed)); - } - -LOCAL_C void TestConvertingLargeText(CCnvCharacterSetConverter& aCharacterSetConverter) - { - - const TInt size = 0x10000; - - HBufC8* sjisBuf = HBufC8::NewL(size); - TPtr8 sjisPtr = sjisBuf->Des(); - sjisPtr.Fill('a', sjisPtr.MaxLength()); - - for(TInt i=0xFFFF; i<=size; i++) - { - sjisPtr.SetLength(i); - DoTestConvertingLargeText(aCharacterSetConverter,sjisPtr); - } - - delete sjisBuf; - } - - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-1908 -@SYMTestCaseDesc ShiftJIS to Unicode and Unicode to ShiftJIS conversion tests -@SYMTestPriority Medium -@SYMTestActions Executes conversion tests of Unicode to ShiftJIS -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void DoE32MainL() - { - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-1908 Testing fix for defect EDNDBAR-4MCKCP in \"Symbian Defect Tracking v3.0\"")); - TBuf16<50> originalUnicode; - TBuf8<50> generatedShiftjis; - originalUnicode.Format(_L16("%c%c%c%ca"), 0x9999, 0x2029, 0xff61, 0x2028); - CCnvCharacterSetConverter::TArrayOfAscendingIndices indicesOfUnconvertibleCharacters; - TheTest.Next(_L("Calling CnvShiftJis::ConvertFromUnicode before CHARCONV.DLL's thread-local storage has been set")); - TEST(CnvShiftJis::ConvertFromUnicode(CCnvCharacterSetConverter::EBigEndian, _L8("?"), generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(generatedShiftjis==_L8("\x8d\x81?\xa1?a")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); - TEST(indicesOfUnconvertibleCharacters[0]==1); - TEST(indicesOfUnconvertibleCharacters[1]==3); - indicesOfUnconvertibleCharacters.RemoveAll(); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - TheTest.Next(_L("Calling CnvShiftJis::ConvertFromUnicode after CHARCONV.DLL's thread-local storage has been set")); - TEST(CnvShiftJis::ConvertFromUnicode(CCnvCharacterSetConverter::EBigEndian, _L8("?"), generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); // call this after the CCnvCharacterSetConverter object has been created (i.e. after CHARCONV.DLL's thread-local storage has been set) - TEST(generatedShiftjis==_L8("\x8d\x81?\xa1?a")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); - TEST(indicesOfUnconvertibleCharacters[0]==1); - TEST(indicesOfUnconvertibleCharacters[1]==3); - indicesOfUnconvertibleCharacters.RemoveAll(); - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - TInt i; - for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TheTest.Next(_L("Calling generic API's equivalent of CnvShiftJis::ConvertFromUnicode")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, *arrayOfCharacterSetsAvailable, fileServerSession); - TEST(characterSetConverter->ConvertFromUnicode(generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(generatedShiftjis==_L8("\x8d\x81\x0d\x0a\xa1\x0d\x0a""a")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); - characterSetConverter->SetDowngradeForExoticLineTerminatingCharacters(CCnvCharacterSetConverter::EDowngradeExoticLineTerminatingCharactersToJustLineFeed); - TEST(characterSetConverter->ConvertFromUnicode(generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(generatedShiftjis==_L8("\x8d\x81\x0a\xa1\x0a""a")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); - - TheTest.Next(_L("Testing fix for defect SIN-4XHE36 in \"Symbian Defect Tracking v4.0\"")); - _LIT8(inputShiftjis,"This \x09is a\x0d\x0atest\x09to see if Charconv\x0d\x0a""can process\x0d\x0a""control\x09""characters."); - _LIT8(roundTripShiftjis,"This \x09is a\x0atest\x09to see if Charconv\x0a""can process\x0a""control\x09""characters."); - TBuf16<100> outUnicode; - TInt sta=CCnvCharacterSetConverter::KStateDefault; - TInt unConvertibleNum; - TEST(characterSetConverter->ConvertToUnicode(outUnicode, inputShiftjis, sta,unConvertibleNum)==0); - TEST(unConvertibleNum==0); - TBuf8<100> outUtf8; - TBuf16<100> outUnicode1; - TBuf8<100> outShifJis; - TBuf8<100> idealShiftJis(roundTripShiftjis); - CnvUtfConverter::ConvertFromUnicodeToUtf8(outUtf8, outUnicode); - CnvUtfConverter::ConvertToUnicodeFromUtf8(outUnicode1, outUtf8); - characterSetConverter->ConvertFromUnicode(outShifJis, outUnicode1); - TEST(idealShiftJis==outShifJis); - - TheTest.Next(_L("Testing Shift-JIS conversions")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierAscii, *arrayOfCharacterSetsAvailable, fileServerSession); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, *arrayOfCharacterSetsAvailable, fileServerSession); - TheTest.Next(_L("Empty descriptor")); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 0, 10, 0, 0, KNullDesC8, KNullDesC16); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); - TheTest.Next(_L("Testing converting to Shift-JIS")); - originalUnicode.Format(_L16("%c%c%c is %c"), 0xff72, 0xff74, 0xff7d, 0x795e); - const TPtrC8 expectedShiftJis(_S8("\xb2\xb4\xbd is \x90\x5f")); - TestTruncatedConversionFromUnicodeToShiftJis(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 0, 0, 8, 0, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 1, 1, 7, 1, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 2, 2, 6, 2, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 3, 3, 5, 3, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 4, 4, 4, 4, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 5, 5, 3, 5, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 6, 6, 2, 6, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 7, 8, 1, 7, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 9, 20, 0, 9, expectedShiftJis, originalUnicode); - - TheTest.Next(_L("Testing converting to Unicode")); - const TPtrC8 originalShiftJis(_S8("My name is \xc3\xde\xa8\xcb\xde\xc2\xde or \x83\x66\x83\x42\x83\x72\x83\x64 in \x93\xfa\x96\x7b\x8c\xea")); - TBuf16<50> expectedUnicode; - expectedUnicode.Format(_L16("My name is %c%c%c%c%c%c%c or %c%c%c%c in %c%c%c"), 0xff83, 0xff9e, 0xff68, 0xff8b, 0xff9e, 0xff82, 0xff9e, 0x30c7, 0x30a3, 0x30d3, 0x30c5, 0x65e5, 0x672c, 0x8a9e); - TestTruncatedConversionToUnicodeFromShiftJis(*characterSetConverter, expectedUnicode, originalShiftJis); - TestTruncatedConversionToUnicodeFromShiftJis(*characterSetConverter, expectedUnicode.Right(3), originalShiftJis.Right(6)); - for (i=0; i<=21; ++i) - { - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, i, i, 40-i, i, expectedUnicode, originalShiftJis); - } - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 22, 22, 18, 22, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 23, 23, 16, 23, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 24, 24, 14, 24, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 25, 25, 12, 25, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 26, 26, 10, 26, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 27, 27, 9, 27, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 28, 28, 8, 28, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 29, 29, 7, 29, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 30, 30, 6, 30, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 31, 31, 4, 31, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 32, 32, 2, 32, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 33, 33, 0, 33, expectedUnicode, originalShiftJis); - TheTest.Next(_L("Testing ill-formed Shift-JIS")); - TestIsIllFormedShiftJis(*characterSetConverter, _L8("abc \x83")); - TestIsIllFormedShiftJis(*characterSetConverter, _L8("abc \x83\x41\xe7")); - { - TheTest.Next(_L("Testing fix for defect EDNEMUA-4KGFEY in \"Symbian Defect Tracking v3.0\"")); - CCnvCharacterSetConverter* characterSetConverter2=CCnvCharacterSetConverter::NewLC(); - characterSetConverter2->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, *arrayOfCharacterSetsAvailable, fileServerSession); - characterSetConverter2->SetDowngradeForExoticLineTerminatingCharacters(CCnvCharacterSetConverter::EDowngradeExoticLineTerminatingCharactersToJustLineFeed); - originalUnicode.Format(_L16("%c%c%cE%c%c%c%c%c%cE%c%c\x0d\x0a%c\x0a%c"), 0xff74, 0x9053, 0x2029, 0x9053, 0x2028, 0x9053, 0xff74, 0x2028, 0x9053, 0x2029, 0x9053, 0x9053, 0x9053); - TBuf16<50> unicodeAfterRoundTrip2; - unicodeAfterRoundTrip2.Format(_L16("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"), 0xff74, 0x9053, 0x000a, 0x0045, 0x9053, 0x000a, 0x9053, 0xff74, 0x000A, 0x9053, 0x0045, 0x000A, 0x9053, 0x2028, 0x9053, 0x000a, 0x9053); - const TPtrC8 expectedShiftJis2(_S8("\xb4\x93\xb9\x0a""E\x93\xb9\x0a\x93\xb9\xb4\x0a\x93\xb9""E\x0a\x93\xb9\x0d\x0a\x93\xb9\x0a\x93\xb9")); - TestTruncatedConversionFromUnicodeToShiftJis(*characterSetConverter2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 0, 0, 18, 0, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 1, 2, 17, 1, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 3, 3, 16, 3, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 4, 4, 15, 4, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 5, 6, 14, 5, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 7, 7, 13, 7, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 8, 9, 12, 8, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 10, 10, 11, 10, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 11, 11, 10, 11, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 12, 13, 9, 12, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 14, 14, 8, 14, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 15, 15, 7, 15, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 16, 17, 6, 16, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 18, 18, 5, 18, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - - // At the request of Symbian KK, where possible the Shift-JIS converter now converts sequences in Shift-JIS input to a single unicode - // line feed. With the current CharConv API we can't do this in the case where converting input text in 2 parts results in a pair being, - // split and you'll get a unicode pair. - - // Split at 18 characters will cause a problem as it splits a sequence. -// TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 19, 19, 4, 19, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 20, 21, 3, 20, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 22, 22, 2, 22, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 23, 24, 1, 23, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 25, 40, 0, 25, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TBuf16<50> unicodeAfterRoundTrip1; - unicodeAfterRoundTrip1.Format(_L16("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"), 0xff74, 0x9053, 0x2028, 0x0045, 0x9053, 0x2028, 0x9053, 0xff74, 0x2028, 0x9053, 0x0045, 0x2028, 0x9053, 0x2028, 0x9053, 0x000a, 0x9053); - const TPtrC8 expectedShiftJis1(_S8("\xb4\x93\xb9\x0d\x0a""E\x93\xb9\x0d\x0a\x93\xb9\xb4\x0d\x0a\x93\xb9""E\x0d\x0a\x93\xb9\x0d\x0a\x93\xb9\x0a\x93\xb9")); - TestTruncatedConversionFromUnicodeToShiftJis(*characterSetConverter, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 0, 0, 18, 0, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 1, 2, 17, 1, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 3, 4, 16, 3, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 5, 5, 15, 5, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 6, 7, 14, 6, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 8, 9, 13, 8, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 10, 11, 12, 10, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 12, 12, 11, 12, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 13, 14, 10, 13, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 15, 16, 9, 15, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 17, 17, 8, 17, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 18, 19, 7, 18, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 20, 21, 6, 20, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 22, 22, 5, 22, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - - // Split at 23 characters will cause a problem as it splits a sequence. -// TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 23, 23, 4, 23, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 24, 25, 3, 24, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 26, 26, 2, 26, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 27, 28, 1, 27, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 29, 40, 0, 29, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - CleanupStack::PopAndDestroy(characterSetConverter2); - } - - //Test converting text longer than 0xFFFF - TheTest.Next(_L("Testing fix for defect INC110495")); - CCnvCharacterSetConverter* characterSetConverter3 = CCnvCharacterSetConverter::NewLC(); - characterSetConverter3->PrepareToConvertToOrFromL( KCharacterSetIdentifierShiftJis, fileServerSession); - - TestConvertingLargeText(*characterSetConverter3); - CleanupStack::PopAndDestroy(characterSetConverter3); - - // Test to see if the default replaceable character is 0x20, which it should be for the - // docomo shiftjis converter. - - TheTest.Next(_L("Testing fix for defect INC110965")); - - { - CCnvCharacterSetConverter* characterSetConverter4 = CCnvCharacterSetConverter::NewLC(); - characterSetConverter4->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJis, *arrayOfCharacterSetsAvailable, fileServerSession); - characterSetConverter4->SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::EBigEndian); - - TBuf16<50> originalUnicode1; - TBuf8<50> generatedShiftjis1; - - // test code - [ ur, ur, 0x7b, 0x5b ] - originalUnicode1.Format(_L16("%c%c%c%c"), 0x00a5, 0x00e8, 0x007b, 0x005b); - - TEST(characterSetConverter4->ConvertFromUnicode(generatedShiftjis1,originalUnicode1,indicesOfUnconvertibleCharacters)==0); - TEST(generatedShiftjis1==_L8("\x20\x20\x7b\x5b")); - - CleanupStack::PopAndDestroy(characterSetConverter4); - } - - CleanupStack::PopAndDestroy(3); - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tshiftjis_kddiau.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tshiftjis_kddiau.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,422 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include -#include "shiftjis.h" -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TShiftJis_Kddiau")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// - -const TInt KBufferLength=100; - -// this is the test plug implementation ID in rather than KCharacterSetIdentifierShiftJis -const TUint KCharacterSetTestShiftJisKddiau=0x01000001; - -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0516 -@SYMTestCaseDesc Tests for truncated conversion from Unicode to ShiftJIS -@SYMTestPriority Medium -@SYMTestActions Tests for truncated conversion from Unicode to ShiftJIS and back to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode, const TDesC16& aUnicodeAfterRoundTrip) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0516 ")); - for (TInt i=aOriginalUnicode.Length(); i>=0; --i) - { - TBuf8 generatedShiftJis; - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedShiftJis, aOriginalUnicode.Left(i)); - TEST(returnValue>=0); - TBuf8 generatedsecondPartOfShiftJis; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfShiftJis, aOriginalUnicode.Mid(i-returnValue))==0); - generatedShiftJis.Append(generatedsecondPartOfShiftJis); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedShiftJis, state)==0); - TEST(generatedUnicode==aUnicodeAfterRoundTrip); - } - } - -LOCAL_C void TestTruncatedConversionFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) - { - TestTruncatedConversionFromUnicodeToShiftJis(aCharacterSetConverter, aOriginalUnicode, aOriginalUnicode); - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0517 -@SYMTestCaseDesc Splitting and converting from Unicode to ShiftJIS test -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting from Unicode to ShiftJIS and back to Unicode -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfShiftJis, const TDesC8& aExpectedShiftJis, const TDesC16& aOriginalUnicode, const TDesC16& aUnicodeAfterRoundTrip) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0517 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint8 shiftJisBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr8 generatedFirstPartOfShiftJis(shiftJisBuffer, i); - TInt unconverted = aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfShiftJis, aOriginalUnicode) ; - TEST(unconverted == aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); - TEST(generatedFirstPartOfShiftJis==aExpectedShiftJis.Left(aExpectedLengthOfFirstPartOfShiftJis)); - TBuf8 generatedSecondPartOfShiftJis; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfShiftJis, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); - TEST(generatedSecondPartOfShiftJis==aExpectedShiftJis.Mid(aExpectedLengthOfFirstPartOfShiftJis)); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfShiftJis, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfShiftJis, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - generatedUnicode.Append(generatedSecondPartOfUnicode); - TEST(generatedUnicode==aUnicodeAfterRoundTrip); - } - } - -LOCAL_C void TestSplittingConvertingFromUnicodeToShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfShiftJis, const TDesC8& aExpectedShiftJis, const TDesC16& aOriginalUnicode) - { - TestSplittingConvertingFromUnicodeToShiftJis(aCharacterSetConverter, aMaximumLengthLowerLimit, aMaximumLengthUpperLimit, aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, aExpectedLengthOfFirstPartOfShiftJis, aExpectedShiftJis, aOriginalUnicode, aOriginalUnicode); - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0518 -@SYMTestCaseDesc Tests for truncated conversion from ShiftJIS to Unicode -@SYMTestPriority Medium -@SYMTestActions Tests for truncated conversion from ShiftJIS to Unicode and back to ShiftJIS -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestTruncatedConversionToUnicodeFromShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJis) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0518 ")); - for (TInt i=aOriginalShiftJis.Length(); i>=2; --i) // 2 is the length of GBK's longest multi-byte characters - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalShiftJis.Left(i), state); - TEST(returnValue>=0); - TBuf16 generatedsecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalShiftJis.Mid(i-returnValue), state)==0); - generatedUnicode.Append(generatedsecondPartOfUnicode); - TEST(generatedUnicode==aExpectedUnicode); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0519 -@SYMTestCaseDesc Splitting and converting from ShiftJIS to Unicode test -@SYMTestPriority Medium -@SYMTestActions Tests for conversion after splitting from ShiftJIS to Unicode and back to ShiftJIS -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestSplittingConvertingToUnicodeFromShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfShiftJisBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJis) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0519 ")); - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint16 unicodeBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalShiftJis, state)==aExpectedNumberOfShiftJisBytesNotConvertedAtSplit); - TEST(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalShiftJis.Right(aExpectedNumberOfShiftJisBytesNotConvertedAtSplit), state)==0); - TEST(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf8 generatedShiftJis; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedShiftJis, generatedFirstPartOfUnicode)==0); - TBuf8 generatedSecondPartOfShiftJis; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfShiftJis, generatedSecondPartOfUnicode)==0); - generatedShiftJis.Append(generatedSecondPartOfShiftJis); - TEST(generatedShiftJis==aOriginalShiftJis); - } - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0520 -@SYMTestCaseDesc Conversion of bad ShiftJIS format to Unicode test -@SYMTestPriority Medium -@SYMTestActions Tests for converting bad format ShiftJIS -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestIsIllFormedShiftJis(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC8& aShiftJis) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0520 ")); - TBuf16<50> generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - TPtrC8 remainderOfShiftJis(aShiftJis); - TInt lastReturnValue=KMaxTInt; - FOREVER - { - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, remainderOfShiftJis, state); - if (returnValue==CCnvCharacterSetConverter::EErrorIllFormedInput) - { - break; - } - TEST(returnValue>0); - TEST(returnValue originalUnicode; - TBuf8<50> generatedShiftjis; - originalUnicode.Format(_L16("%c%c%c%ca"), 0x9999, 0x2029, 0xff61, 0x2028); - CCnvCharacterSetConverter::TArrayOfAscendingIndices indicesOfUnconvertibleCharacters; - TheTest.Next(_L("Calling CnvShiftJis::ConvertFromUnicode before CHARCONV.DLL's thread-local storage has been set")); - TEST(CnvShiftJis::ConvertFromUnicode(CCnvCharacterSetConverter::EBigEndian, _L8("?"), generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(generatedShiftjis==_L8("\x8d\x81?\xa1?a")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); - TEST(indicesOfUnconvertibleCharacters[0]==1); - TEST(indicesOfUnconvertibleCharacters[1]==3); - indicesOfUnconvertibleCharacters.RemoveAll(); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - TheTest.Next(_L("Calling CnvShiftJis::ConvertFromUnicode after CHARCONV.DLL's thread-local storage has been set")); - TEST(CnvShiftJis::ConvertFromUnicode(CCnvCharacterSetConverter::EBigEndian, _L8("?"), generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); // call this after the CCnvCharacterSetConverter object has been created (i.e. after CHARCONV.DLL's thread-local storage has been set) - TEST(generatedShiftjis==_L8("\x8d\x81?\xa1?a")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==2); - TEST(indicesOfUnconvertibleCharacters[0]==1); - TEST(indicesOfUnconvertibleCharacters[1]==3); - indicesOfUnconvertibleCharacters.RemoveAll(); - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - TInt i; - for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TheTest.Next(_L("Calling generic API's equivalent of CnvShiftJis::ConvertFromUnicode")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, *arrayOfCharacterSetsAvailable, fileServerSession); - TEST(characterSetConverter->ConvertFromUnicode(generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(generatedShiftjis==_L8("\x8d\x81\x0d\x0a\xa1\x0d\x0a""a")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); - characterSetConverter->SetDowngradeForExoticLineTerminatingCharacters(CCnvCharacterSetConverter::EDowngradeExoticLineTerminatingCharactersToJustLineFeed); - TEST(characterSetConverter->ConvertFromUnicode(generatedShiftjis, originalUnicode, indicesOfUnconvertibleCharacters)==0); - TEST(generatedShiftjis==_L8("\x8d\x81\x0a\xa1\x0a""a")); - TEST(indicesOfUnconvertibleCharacters.NumberOfIndices()==0); - - TheTest.Next(_L("Testing fix for defect SIN-4XHE36 in \"Symbian Defect Tracking v4.0\"")); - _LIT8(inputShiftjis,"This \x09is a\x0d\x0atest\x09to see if Charconv\x0d\x0a""can process\x0d\x0a""control\x09""characters."); - _LIT8(roundTripShiftjis,"This \x09is a\x0atest\x09to see if Charconv\x0a""can process\x0a""control\x09""characters."); - TBuf16<100> outUnicode; - TInt sta=CCnvCharacterSetConverter::KStateDefault; - TInt unConvertibleNum; - TEST(characterSetConverter->ConvertToUnicode(outUnicode, inputShiftjis, sta,unConvertibleNum)==0); - TEST(unConvertibleNum==0); - TBuf8<100> outUtf8; - TBuf16<100> outUnicode1; - TBuf8<100> outShifJis; - TBuf8<100> idealShiftJis(roundTripShiftjis); - CnvUtfConverter::ConvertFromUnicodeToUtf8(outUtf8, outUnicode); - CnvUtfConverter::ConvertToUnicodeFromUtf8(outUnicode1, outUtf8); - characterSetConverter->ConvertFromUnicode(outShifJis, outUnicode1); - TEST(idealShiftJis==outShifJis); - - TheTest.Next(_L("Testing Shift-JIS conversions")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierAscii, *arrayOfCharacterSetsAvailable, fileServerSession); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, *arrayOfCharacterSetsAvailable, fileServerSession); - TheTest.Next(_L("Empty descriptor")); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 0, 10, 0, 0, KNullDesC8, KNullDesC16); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); - TheTest.Next(_L("Testing converting to Shift-JIS")); - originalUnicode.Format(_L16("%c%c%c is %c"), 0xff72, 0xff74, 0xff7d, 0x795e); - const TPtrC8 expectedShiftJis(_S8("\xb2\xb4\xbd is \x90\x5f")); - TestTruncatedConversionFromUnicodeToShiftJis(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 0, 0, 8, 0, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 1, 1, 7, 1, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 2, 2, 6, 2, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 3, 3, 5, 3, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 4, 4, 4, 4, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 5, 5, 3, 5, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 6, 6, 2, 6, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 7, 8, 1, 7, expectedShiftJis, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 9, 20, 0, 9, expectedShiftJis, originalUnicode); - - TheTest.Next(_L("Testing converting to Unicode")); - const TPtrC8 originalShiftJis(_S8("My name is \xc3\xde\xa8\xcb\xde\xc2\xde or \x83\x66\x83\x42\x83\x72\x83\x64 in \x93\xfa\x96\x7b\x8c\xea")); - TBuf16<50> expectedUnicode; - expectedUnicode.Format(_L16("My name is %c%c%c%c%c%c%c or %c%c%c%c in %c%c%c"), 0xff83, 0xff9e, 0xff68, 0xff8b, 0xff9e, 0xff82, 0xff9e, 0x30c7, 0x30a3, 0x30d3, 0x30c5, 0x65e5, 0x672c, 0x8a9e); - TestTruncatedConversionToUnicodeFromShiftJis(*characterSetConverter, expectedUnicode, originalShiftJis); - TestTruncatedConversionToUnicodeFromShiftJis(*characterSetConverter, expectedUnicode.Right(3), originalShiftJis.Right(6)); - for (i=0; i<=21; ++i) - { - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, i, i, 40-i, i, expectedUnicode, originalShiftJis); - } - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 22, 22, 18, 22, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 23, 23, 16, 23, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 24, 24, 14, 24, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 25, 25, 12, 25, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 26, 26, 10, 26, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 27, 27, 9, 27, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 28, 28, 8, 28, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 29, 29, 7, 29, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 30, 30, 6, 30, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 31, 31, 4, 31, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 32, 32, 2, 32, expectedUnicode, originalShiftJis); - TestSplittingConvertingToUnicodeFromShiftJis(*characterSetConverter, 33, 33, 0, 33, expectedUnicode, originalShiftJis); - TheTest.Next(_L("Testing ill-formed Shift-JIS")); - TestIsIllFormedShiftJis(*characterSetConverter, _L8("abc \x83")); - TestIsIllFormedShiftJis(*characterSetConverter, _L8("abc \x83\x41\xe7")); - { - TheTest.Next(_L("Testing fix for defect EDNEMUA-4KGFEY in \"Symbian Defect Tracking v3.0\"")); - CCnvCharacterSetConverter* characterSetConverter2=CCnvCharacterSetConverter::NewLC(); - characterSetConverter2->PrepareToConvertToOrFromL(KCharacterSetTestShiftJisKddiau, *arrayOfCharacterSetsAvailable, fileServerSession); - characterSetConverter2->SetDowngradeForExoticLineTerminatingCharacters(CCnvCharacterSetConverter::EDowngradeExoticLineTerminatingCharactersToJustLineFeed); - originalUnicode.Format(_L16("%c%c%cE%c%c%c%c%c%cE%c%c\x0d\x0a%c\x0a%c"), 0xff74, 0x9053, 0x2029, 0x9053, 0x2028, 0x9053, 0xff74, 0x2028, 0x9053, 0x2029, 0x9053, 0x9053, 0x9053); - TBuf16<50> unicodeAfterRoundTrip2; - unicodeAfterRoundTrip2.Format(_L16("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"), 0xff74, 0x9053, 0x000a, 0x0045, 0x9053, 0x000a, 0x9053, 0xff74, 0x000A, 0x9053, 0x0045, 0x000A, 0x9053, 0x2028, 0x9053, 0x000a, 0x9053); - const TPtrC8 expectedShiftJis2(_S8("\xb4\x93\xb9\x0a""E\x93\xb9\x0a\x93\xb9\xb4\x0a\x93\xb9""E\x0a\x93\xb9\x0d\x0a\x93\xb9\x0a\x93\xb9")); - TestTruncatedConversionFromUnicodeToShiftJis(*characterSetConverter2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 0, 0, 18, 0, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 1, 2, 17, 1, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 3, 3, 16, 3, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 4, 4, 15, 4, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 5, 6, 14, 5, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 7, 7, 13, 7, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 8, 9, 12, 8, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 10, 10, 11, 10, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 11, 11, 10, 11, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 12, 13, 9, 12, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 14, 14, 8, 14, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 15, 15, 7, 15, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 16, 17, 6, 16, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 18, 18, 5, 18, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - - // At the request of Symbian KK, where possible the Shift-JIS converter now converts sequences in Shift-JIS input to a single unicode - // line feed. With the current CharConv API we can't do this in the case where converting input text in 2 parts results in a pair being, - // split and you'll get a unicode pair. - - // Split at 18 characters will cause a problem as it splits a sequence. -// TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 19, 19, 4, 19, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 20, 21, 3, 20, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 22, 22, 2, 22, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 23, 24, 1, 23, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter2, 25, 40, 0, 25, expectedShiftJis2, originalUnicode, unicodeAfterRoundTrip2); - TBuf16<50> unicodeAfterRoundTrip1; - unicodeAfterRoundTrip1.Format(_L16("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c"), 0xff74, 0x9053, 0x2028, 0x0045, 0x9053, 0x2028, 0x9053, 0xff74, 0x2028, 0x9053, 0x0045, 0x2028, 0x9053, 0x2028, 0x9053, 0x000a, 0x9053); - const TPtrC8 expectedShiftJis1(_S8("\xb4\x93\xb9\x0d\x0a""E\x93\xb9\x0d\x0a\x93\xb9\xb4\x0d\x0a\x93\xb9""E\x0d\x0a\x93\xb9\x0d\x0a\x93\xb9\x0a\x93\xb9")); - TestTruncatedConversionFromUnicodeToShiftJis(*characterSetConverter, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 0, 0, 18, 0, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 1, 2, 17, 1, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 3, 4, 16, 3, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 5, 5, 15, 5, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 6, 7, 14, 6, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 8, 9, 13, 8, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 10, 11, 12, 10, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 12, 12, 11, 12, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 13, 14, 10, 13, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 15, 16, 9, 15, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 17, 17, 8, 17, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 18, 19, 7, 18, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 20, 21, 6, 20, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 22, 22, 5, 22, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - - // Split at 23 characters will cause a problem as it splits a sequence. -// TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 23, 23, 4, 23, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 24, 25, 3, 24, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 26, 26, 2, 26, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 27, 28, 1, 27, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - TestSplittingConvertingFromUnicodeToShiftJis(*characterSetConverter, 29, 40, 0, 29, expectedShiftJis1, originalUnicode, unicodeAfterRoundTrip1); - CleanupStack::PopAndDestroy(characterSetConverter2); - } - - - CleanupStack::PopAndDestroy(3); - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tshiftjisdirectmap.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tshiftjisdirectmap.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,226 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TSHIFTJISDIRECTMAP")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// - - -const TInt KBufferLength=100; - -LOCAL_C void TestTruncatedConversionFromUnicodeToShiftJisDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aOriginalUnicode) - { - for (TInt i=aOriginalUnicode.Length(); i>=0; --i) - { - TBuf8 generatedShiftJisDirectmap; - const TInt returnValue=aCharacterSetConverter.ConvertFromUnicode(generatedShiftJisDirectmap, aOriginalUnicode.Left(i)); - TEST(returnValue>=0); - TBuf8 generatedsecondPartOfShiftJisDirectmap; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedsecondPartOfShiftJisDirectmap, aOriginalUnicode.Mid(i-returnValue))==0); - generatedShiftJisDirectmap.Append(generatedsecondPartOfShiftJisDirectmap); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedShiftJisDirectmap, state)==0); - TEST(generatedUnicode==aOriginalUnicode); - } - } - -LOCAL_C void TestSplittingConvertingFromUnicodeToShiftJisDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfShiftJisDirectmap, const TDesC8& aExpectedShiftJisDirectmap, const TDesC16& aOriginalUnicode) - { - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint8 shiftJisDirectmapBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr8 generatedFirstPartOfShiftJisDirectmap(shiftJisDirectmapBuffer, i); - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedFirstPartOfShiftJisDirectmap, aOriginalUnicode)==aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit); - TEST(generatedFirstPartOfShiftJisDirectmap==aExpectedShiftJisDirectmap.Left(aExpectedLengthOfFirstPartOfShiftJisDirectmap)); - TBuf8 generatedSecondPartOfShiftJisDirectmap; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfShiftJisDirectmap, aOriginalUnicode.Right(aExpectedNumberOfUnicodeCharactersNotConvertedAtSplit))==0); - TEST(generatedSecondPartOfShiftJisDirectmap==aExpectedShiftJisDirectmap.Mid(aExpectedLengthOfFirstPartOfShiftJisDirectmap)); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedUnicode, generatedFirstPartOfShiftJisDirectmap, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, generatedSecondPartOfShiftJisDirectmap, state)==0); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - generatedUnicode.Append(generatedSecondPartOfUnicode); - TEST(generatedUnicode==aOriginalUnicode); - } - } - -LOCAL_C void TestTruncatedConversionToUnicodeFromShiftJisDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJisDirectmap) - { - for (TInt i=aOriginalShiftJisDirectmap.Length(); i>=3; --i) - { - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicode; - const TInt returnValue=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, aOriginalShiftJisDirectmap.Left(i), state); - TEST(returnValue>=0); - TBuf16 generatedsecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedsecondPartOfUnicode, aOriginalShiftJisDirectmap.Mid(i-returnValue), state)==0); - generatedUnicode.Append(generatedsecondPartOfUnicode); - TEST(generatedUnicode==aExpectedUnicode); - } - } - -LOCAL_C void TestSplittingConvertingToUnicodeFromShiftJisDirectmap(CCnvCharacterSetConverter& aCharacterSetConverter, TInt aMaximumLengthLowerLimit, TInt aMaximumLengthUpperLimit, TInt aExpectedNumberOfShiftJisDirectmapBytesNotConvertedAtSplit, TInt aExpectedLengthOfFirstPartOfUnicode, const TDesC16& aExpectedUnicode, const TDesC8& aOriginalShiftJisDirectmap) - { - TEST(aMaximumLengthLowerLimit<=aMaximumLengthUpperLimit); - TEST(aMaximumLengthUpperLimit<=KBufferLength); - TUint16 unicodeBuffer[KBufferLength]; - for (TInt i=aMaximumLengthLowerLimit; i<=aMaximumLengthUpperLimit; ++i) - { - TPtr16 generatedFirstPartOfUnicode(unicodeBuffer, i); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedFirstPartOfUnicode, aOriginalShiftJisDirectmap, state)==aExpectedNumberOfShiftJisDirectmapBytesNotConvertedAtSplit); - TEST(generatedFirstPartOfUnicode==aExpectedUnicode.Left(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf16 generatedSecondPartOfUnicode; - TEST(aCharacterSetConverter.ConvertToUnicode(generatedSecondPartOfUnicode, aOriginalShiftJisDirectmap.Right(aExpectedNumberOfShiftJisDirectmapBytesNotConvertedAtSplit), state)==0); - TEST(generatedSecondPartOfUnicode==aExpectedUnicode.Mid(aExpectedLengthOfFirstPartOfUnicode)); - TEST(state==CCnvCharacterSetConverter::KStateDefault); - TBuf8 generatedShiftJisDirectmap; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedShiftJisDirectmap, generatedFirstPartOfUnicode)==0); - TBuf8 generatedSecondPartOfShiftJisDirectmap; - TEST(aCharacterSetConverter.ConvertFromUnicode(generatedSecondPartOfShiftJisDirectmap, generatedSecondPartOfUnicode)==0); - generatedShiftJisDirectmap.Append(generatedSecondPartOfShiftJisDirectmap); - TEST(generatedShiftJisDirectmap==aOriginalShiftJisDirectmap); - } - } - -LOCAL_C void DoE32MainL() - { - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Printf(_L("Available:\n")); - TInt i; - for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - TheTest.Start(_L("Testing ShiftJis (DirectMap) conversions ")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierShiftJisDirectmap, *arrayOfCharacterSetsAvailable, fileServerSession); - // - TheTest.Next(_L("Empty descriptor")); - TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 0, 10, 0, 0, KNullDesC8, KNullDesC16); - TestSplittingConvertingToUnicodeFromShiftJisDirectmap(*characterSetConverter, 0, 10, 0, 0, KNullDesC16, KNullDesC8); - - TheTest.Next(_L("Testing converting to ShiftJis (DirectMap)")); - TBuf16<50> originalUnicode; - originalUnicode.Format(_L16("Some %c%c%c%c"), 0xff9a, 0xff70, 0x6f22, 0x5b57); - const TPtrC8 expectedShiftJisDirectmap(_S8("Some \xda\xb0\x8a\xbf\x8e\x9a")); - TestTruncatedConversionFromUnicodeToShiftJisDirectmap(*characterSetConverter, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 0, 0, 9, 0, expectedShiftJisDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 1, 1, 8, 1, expectedShiftJisDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 2, 2, 7, 2, expectedShiftJisDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 3, 3, 6, 3, expectedShiftJisDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 4, 4, 5, 4, expectedShiftJisDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 5, 5, 4, 5, expectedShiftJisDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 6, 6, 3, 6, expectedShiftJisDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 7, 7, 2, 7, expectedShiftJisDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 9, 9, 1, 9, expectedShiftJisDirectmap, originalUnicode); - TestSplittingConvertingFromUnicodeToShiftJisDirectmap(*characterSetConverter, 11, 11, 0, 11, expectedShiftJisDirectmap, originalUnicode); - - TheTest.Next(_L("Testing converting to Unicode")); - const TPtrC8 originalShiftJisDirectmap(_S8("pool\xbe\xae\xc3\xd3\x8e\xcc\x8e\xdf\x8e\xd9\x8f\xc0\xcd\x8f\xc8\xc5pool\x8e\xcc\x8e\xdf\x8e\xd9\xbe\xae\xc3\xd3\x8f\xc0\xcd\x8f\xc8\xc5\xbe\xae\xc3\xd3pool\x8f\xc0\xcd\x8f\xc8\xc5\x8e\xcc\x8e\xdf\x8e\xd9pool")); - TBuf16<50> expectedUnicode; - expectedUnicode.Format(_L16("pool%c%c%c%c%c%c%c%c%c%c%cpool%c%c%c%c%c%c%c%c%c%c%c%c%c%c%cpool%c%c%c%c%c%c%cpool"), 0xFF7E, 0xFF6E, 0xFF83, 0xFF93, 0x6368, 0x91C8, 0x52FA, 0x6CBC, 0xFF8D, 0x7701, 0xFF85, 0x6368, 0x91C8, 0x52FA, 0xFF7E, 0xFF6E, 0xFF83, 0xFF93, 0x6CBC, 0xFF8D, 0x7701, 0xFF85, 0xFF7E, 0xFF6E, 0xFF83, 0xFF93, 0x6CBC, 0xFF8D, 0x7701, 0xFF85, 0x6368, 0x91C8, 0x52FA); - TestTruncatedConversionToUnicodeFromShiftJisDirectmap(*characterSetConverter, expectedUnicode, originalShiftJisDirectmap); - TestTruncatedConversionToUnicodeFromShiftJisDirectmap(*characterSetConverter, expectedUnicode.Mid(4, 4), originalShiftJisDirectmap.Mid(4, 4)); - TestTruncatedConversionToUnicodeFromShiftJisDirectmap(*characterSetConverter, expectedUnicode.Mid(6, 3), originalShiftJisDirectmap.Mid(6, 4)); - TestTruncatedConversionToUnicodeFromShiftJisDirectmap(*characterSetConverter, expectedUnicode.Mid(11, 4), originalShiftJisDirectmap.Mid(14, 6)); - TestSplittingConvertingToUnicodeFromShiftJisDirectmap(*characterSetConverter, 4, 4, 60, 4, expectedUnicode, originalShiftJisDirectmap); - TestSplittingConvertingToUnicodeFromShiftJisDirectmap(*characterSetConverter, 5, 5, 59, 5, expectedUnicode, originalShiftJisDirectmap); - TestSplittingConvertingToUnicodeFromShiftJisDirectmap(*characterSetConverter, 6, 6, 58, 6, expectedUnicode, originalShiftJisDirectmap); - - const TPtrC8 originalShiftJisDirectmapYen(_S8("pool\x5c")); - TBuf16<10> expectedUnicodeBackSlash; - expectedUnicodeBackSlash.Format(_L16("pool%c"), 0x005c); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TBuf16 generatedUnicodeBackSlash; - TEST(characterSetConverter->ConvertToUnicode(generatedUnicodeBackSlash, originalShiftJisDirectmapYen, state) == 0); - TEST(generatedUnicodeBackSlash==expectedUnicodeBackSlash); - - CleanupStack::PopAndDestroy(3); // arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tsnm.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tsnm.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,174 +0,0 @@ -/* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TSNM")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0547 -@SYMTestCaseDesc Testing SNM files -@SYMTestPriority Medium -@SYMTestActions Tests for conversions from UIDs to Standard names and MIB enums -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void DoE32MainL() - { - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0547 Testing SNM files (conversion between UIDs and Standard names/MIB enums) ")); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("ANSI_X3.4-1968"), fileServerSession)==KCharacterSetIdentifierAscii); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("iso-ir-6"), fileServerSession)==KCharacterSetIdentifierAscii); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("ANSI_X3.4-1986"), fileServerSession)==KCharacterSetIdentifierAscii); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("ISO_646.irv:1991"), fileServerSession)==KCharacterSetIdentifierAscii); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("ISO646-US"), fileServerSession)==KCharacterSetIdentifierAscii); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("us"), fileServerSession)==KCharacterSetIdentifierAscii); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("IBM367"), fileServerSession)==KCharacterSetIdentifierAscii); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("cp367"), fileServerSession)==KCharacterSetIdentifierAscii); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("csASCII"), fileServerSession)==KCharacterSetIdentifierAscii); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(3, fileServerSession)==KCharacterSetIdentifierAscii); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("DUMMY CHARACTER SET"), fileServerSession)==0x000eb205); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(9415824, fileServerSession)==0x000eb205); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(103, fileServerSession)==KCharacterSetIdentifierUtf7); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(104, fileServerSession)==KCharacterSetIdentifierUtf7); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(18, fileServerSession)==KCharacterSetIdentifierEucJpPacked); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(17, fileServerSession)==KCharacterSetIdentifierShiftJis); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(2026, fileServerSession)==KCharacterSetIdentifierBig5); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(57, fileServerSession)==KCharacterSetIdentifierGbk); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(2025, fileServerSession)==KCharacterSetIdentifierGbk); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(4, fileServerSession)==KCharacterSetIdentifierIso88591); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(1000, fileServerSession)==KCharacterSetIdentifierUcs2); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("UTF-8"), fileServerSession)==KCharacterSetIdentifierUtf8); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("windows-1252"), fileServerSession)==KCharacterSetIdentifierCodePage1252); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("iso-ir-58"), fileServerSession)==KCharacterSetIdentifierGbk); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("chinese"), fileServerSession)==KCharacterSetIdentifierGbk); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("CHINESE"), fileServerSession)==KCharacterSetIdentifierGbk); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("Big5"), fileServerSession)==KCharacterSetIdentifierBig5); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("csISO2022JP"), fileServerSession)==KCharacterSetIdentifierIso2022Jp); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("JIS_Encoding"), fileServerSession)==KCharacterSetIdentifierJis); - TEST(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierEucJpPacked, fileServerSession)==18); - TEST(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierUtf7, fileServerSession)==103); - TEST(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierGbk, fileServerSession)==113); - HBufC8* const standardName1=characterSetConverter->ConvertCharacterSetIdentifierToStandardNameL(KCharacterSetIdentifierUtf8, fileServerSession); - TEST(*standardName1==_L8("UTF-8")); - delete standardName1; - HBufC8* const standardName2=characterSetConverter->ConvertCharacterSetIdentifierToStandardNameL(KCharacterSetIdentifierShiftJis, fileServerSession); - TEST(*standardName2==_L8("Shift_JIS")); - delete standardName2; - HBufC8* const standardName3=characterSetConverter->ConvertCharacterSetIdentifierToStandardNameL(KCharacterSetIdentifierBig5, fileServerSession); - TEST(*standardName3==_L8("Big5")); - delete standardName3; - CleanupStack::PopAndDestroy(1); // characterSetConverter - - //Add more test steps for DEF085268. When a related charset ID with Name is not found in rom drive - //and system hasn't been scanned yet, it will rescan the system. Otherwise, it will return 0. - characterSetConverter=CCnvCharacterSetConverter::NewLC(); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("NONEXIST CHARACTER SET 1"), fileServerSession)==0); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("DUMMY CHARACTER SET"), fileServerSession)==0x000eb205); - TEST(characterSetConverter->ConvertStandardNameOfCharacterSetToIdentifierL(_L8("NONEXIST CHARACTER SET 2"), fileServerSession)==0); - CleanupStack::PopAndDestroy(1); // characterSetConverter - - //Add more test steps for DEF085268. When a related charset name with ID is not found in rom drive - //and system hasn't been scanned yet, it will rescan the system. Otherwise, it will return NULL. - characterSetConverter=CCnvCharacterSetConverter::NewLC(); - HBufC8* const standardName4=characterSetConverter->ConvertCharacterSetIdentifierToStandardNameL(0xFFFFFFFE, fileServerSession); - TEST(standardName4==NULL); - delete standardName4; - HBufC8* const standardName5=characterSetConverter->ConvertCharacterSetIdentifierToStandardNameL(0x000eb205, fileServerSession); - TEST(*standardName5==_L8("Dummy character set")); - delete standardName5; - HBufC8* const standardName6=characterSetConverter->ConvertCharacterSetIdentifierToStandardNameL(0xFFFFFFFF, fileServerSession); - TEST(standardName6==NULL); - delete standardName6; - CleanupStack::PopAndDestroy(1); // characterSetConverter - - - //Add more test steps for DEF085268. When a related charset ID with MibEnum is not found in rom drive - //and system hasn't been scanned yet, it will rescan the system. Otherwise, it will return 0. - characterSetConverter=CCnvCharacterSetConverter::NewLC(); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(9999998, fileServerSession)==0); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(9415824, fileServerSession)==0x000eb205); - TEST(characterSetConverter->ConvertMibEnumOfCharacterSetToIdentifierL(9999999, fileServerSession)==0); - CleanupStack::PopAndDestroy(1); // characterSetConverter - - //Add more test steps for DEF085268. When a related charset MibEnum with ID is not found in rom drive - //and system hasn't been scanned yet, it will rescan the system. Otherwise, it will return 0. - characterSetConverter=CCnvCharacterSetConverter::NewLC(); - TEST(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(0xFFFFFFFE, fileServerSession)==0); - TEST(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(0x000eb205, fileServerSession)==9415824); - TEST(characterSetConverter->ConvertCharacterSetIdentifierToMibEnumL(0xFFFFFFFF, fileServerSession)==0); - CleanupStack::PopAndDestroy(2); // characterSetConverter and file session - - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tspanishgsmsingle.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tspanishgsmsingle.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,260 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierSpanishSingleSms7Bit; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\gsm7_spanish_single_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\gsm7_spanish_single_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\gsm7_spanish_single_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\gsm7_spanish_single_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\gsm7_spanish_single_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\gsm7_spanish_single_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\gsm7_spanish_single_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\gsm7_spanish_single_for_expect.dat"); -#endif - -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TSpanishGsmSingle")); -CCnvCharacterSetConverter* characterSetConverter; -RFs fileServerSession; -TBuf8<1600> temp; -TBuf16<800> originalUnicode; -TBuf8<1600> generatedForeign; -TBuf16<800> generatedUnicode; - -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -//translate from unicode big endian TDesC8 to TDes16 -static void Unicode_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Start(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4045 Available:\n ")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4046 -@SYMTestCaseDesc Testcase to test new converter can be prepared -@SYMTestPriority High -@SYMTestActions Test for PrepareToConvertToOrFromL() -@SYMTestExpectedResults The test passed, If EAvailable is returned -@SYMPREQ PREQ2592 -@SYMREQ REQ12584 -*/ -void PrepareNewConverterL() - { - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4046 Testing new converter can be prepared ")); - CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, fileServerSession); - TEST( CCnvCharacterSetConverter::EAvailable == avaible ); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4047 -@SYMTestCaseDesc Convert Unicode code to foreign character set -@SYMTestPriority High -@SYMTestActions Test for ConvertFromUnicode() -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ2592 -@SYMREQ REQ12584 -*/ -LOCAL_C void ConvertFromUnicodeToForeignL() - { - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4047 Testing encoding from Unicode to Foreign ")); - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - - Unicode_Big(temp, originalUnicode); - TInt test = characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4048 -@SYMTestCaseDesc Convert foreign character set to Unicode code -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ2592 -@SYMREQ REQ12584 -*/ -LOCAL_C void ConvertFromForeignToUnicodeL() - { - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4048 Testing encoding from Foreign to Unicode ")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Unicode_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4049 -@SYMTestCaseDesc Convert illegal character from foreign character set to unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ2592 -@SYMREQ REQ12584 -*/ -LOCAL_C void ConvertIllegalForeignCharacter() - { - //test 0x1b - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4049 Testing EErrorIllFormedInput ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x1b; //the escape character - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( -20 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - } - -/** -@SYMTestCaseID TI18N-CHARCONV-UT-4050 -@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ2592 -@SYMREQ REQ12584 -*/ -LOCAL_C void ConvertOutOfRangeForeignCharacters() - { - //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD - TheTest.Next(_L(" @SYMTestCaseID:TI18N-CHARCONV-UT-4050 Testing Characters not in the Scope ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x80; - TInt state=CCnvCharacterSetConverter::KStateDefault; - _LIT16(KExpected2, "\xfffd"); //the expected foreign - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - TEST( generatedUnicode == KExpected2 ); - } - -LOCAL_C void DoE32MainL() - { - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - characterSetConverter=CCnvCharacterSetConverter::NewLC(); - - ListAlltheConvertersL(); - PrepareNewConverterL(); - ConvertFromUnicodeToForeignL(); - ConvertFromForeignToUnicodeL(); - ConvertIllegalForeignCharacter(); - ConvertOutOfRangeForeignCharacters(); - - CleanupStack::PopAndDestroy(2); - } - - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tturkishlocking.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tturkishlocking.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,257 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierTurkishLockingSms7Bit; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\turkish_locking_gsm7ext_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\turkish_locking_gsm7ext_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\turkish_locking_gsm7ext_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\turkish_locking_gsm7ext_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\turkish_locking_gsm7ext_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\turkish_locking_gsm7ext_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\turkish_locking_gsm7ext_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\turkish_locking_gsm7ext_for_expect.dat"); -#endif - -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TTurkishLocking")); -CCnvCharacterSetConverter* characterSetConverter; -RFs fileServerSession; -TBuf8<970> temp; -TBuf16<485> originalUnicode; -TBuf8<485> generatedForeign; -TBuf16<485> generatedUnicode; - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -//translate from unicode big endian TDesC8 to TDes16 -static void Unicode_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4015 Available:\n ")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4016 -@SYMTestCaseDesc Testcase to test new converter can be prepared -@SYMTestPriority High -@SYMTestActions Test for PrepareToConvertToOrFromL() -@SYMTestExpectedResults The test passed, If EAvailable is returned -@SYMPREQ PREQ22265 -@SYMREQ REQ10670 -*/ -void PrepareNewConverterL() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4016 Testing new converter can be prepared ")); - CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, fileServerSession); - TEST( CCnvCharacterSetConverter::EAvailable == avaible ); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4017 -@SYMTestCaseDesc Convert Unicode code to foreign character set -@SYMTestPriority High -@SYMTestActions Test for ConvertFromUnicode() -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ22265 -@SYMREQ REQ10670 -*/ -LOCAL_C void ConvertFromUnicodeToForeignL() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4017 Testing encoding from Unicode to Foreign ")); - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Unicode_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4018 -@SYMTestCaseDesc Convert foreign character set to Unicode code -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ22265 -@SYMREQ REQ10670 -*/ -LOCAL_C void ConvertFromForeignToUnicodeL() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4018 Testing encoding from Foreign to Unicode ")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Unicode_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4019 -@SYMTestCaseDesc Convert illegal character from foreign character set to unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ22265 -@SYMREQ REQ10670 -*/ -LOCAL_C void ConvertIllegalForeignCharacter() - { - //test 0x1b - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4019 Testing EErrorIllFormedInput ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x1b; //the escape character - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( -20 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4020 -@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ22265 -@SYMREQ REQ10670 -*/ -LOCAL_C void ConvertOutOfRangeForeignCharacters() - { - //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4020 Testing Characters not in the Scope ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x80; - TInt state=CCnvCharacterSetConverter::KStateDefault; - _LIT16(KExpected2, "\xfffd"); //the expected foreign - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - TEST( generatedUnicode == KExpected2 ); - } - -LOCAL_C void DoE32MainL() - { - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - characterSetConverter=CCnvCharacterSetConverter::NewLC(); - - ListAlltheConvertersL(); - PrepareNewConverterL(); - ConvertFromUnicodeToForeignL(); - ConvertFromForeignToUnicodeL(); - ConvertIllegalForeignCharacter(); - ConvertOutOfRangeForeignCharacters(); - - CleanupStack::PopAndDestroy(2); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tturkishlockingsingle.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tturkishlockingsingle.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,259 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierTurkishLockingAndSingleSms7Bit; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\turkish_locking_single_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\turkish_locking_single_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\turkish_locking_single_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\turkish_locking_single_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\turkish_locking_single_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\turkish_locking_single_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\turkish_locking_single_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\turkish_locking_single_for_expect.dat"); -#endif - -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TTurkishLockingSingle")); -CCnvCharacterSetConverter* characterSetConverter; -RFs fileServerSession; -TBuf8<970> temp; -TBuf16<485> originalUnicode; -TBuf8<485> generatedForeign; -TBuf16<485> generatedUnicode; - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -//translate from unicode big endian TDesC8 to TDes16 -static void Unicode_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4021 Available:\n ")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4022 -@SYMTestCaseDesc Testcase to test new converter can be prepared -@SYMTestPriority High -@SYMTestActions Test for PrepareToConvertToOrFromL() -@SYMTestExpectedResults The test passed, If EAvailable is returned -@SYMPREQ PREQ22265 -@SYMREQ REQ10670 -*/ -void PrepareNewConverterL() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4022 Testing new converter can be prepared ")); - CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, fileServerSession); - TEST( CCnvCharacterSetConverter::EAvailable == avaible ); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4023 -@SYMTestCaseDesc Convert Unicode code to foreign character set -@SYMTestPriority High -@SYMTestActions Test for ConvertFromUnicode() -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ22265 -@SYMREQ REQ10670 -*/ -LOCAL_C void ConvertFromUnicodeToForeignL() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4023 Testing encoding from Unicode to Foreign ")); - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Unicode_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4024 -@SYMTestCaseDesc Convert foreign character set to Unicode code -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ22265 -@SYMREQ REQ10670 -*/ -LOCAL_C void ConvertFromForeignToUnicodeL() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4024 Testing encoding from Foreign to Unicode ")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Unicode_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4025 -@SYMTestCaseDesc Convert illegal character from foreign character set to unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ22265 -@SYMREQ REQ10670 -*/ -LOCAL_C void ConvertIllegalForeignCharacter() - { - //test 0x1b - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4025 Testing EErrorIllFormedInput ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x1b; //the escape character - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( -20 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4026 -@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ22265 -@SYMREQ REQ10670 -*/ -LOCAL_C void ConvertOutOfRangeForeignCharacters() - { - //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4026 Testing Characters not in the Scope ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x80; - TInt state=CCnvCharacterSetConverter::KStateDefault; - _LIT16(KExpected2, "\xfffd"); //the expected foreign - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - TEST( generatedUnicode == KExpected2 ); - } - -LOCAL_C void DoE32MainL() - { - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - characterSetConverter=CCnvCharacterSetConverter::NewLC(); - - ListAlltheConvertersL(); - PrepareNewConverterL(); - ConvertFromUnicodeToForeignL(); - ConvertFromForeignToUnicodeL(); - ConvertIllegalForeignCharacter(); - ConvertOutOfRangeForeignCharacters(); - - CleanupStack::PopAndDestroy(2); - } - - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tturkishsingle.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tturkishsingle.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,256 +0,0 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierTurkishSingleSms7Bit; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\gsm7_turkish_single_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\gsm7_turkish_single_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\gsm7_turkish_single_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\gsm7_turkish_single_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\gsm7_turkish_single_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\gsm7_turkish_single_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\gsm7_turkish_single_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\gsm7_turkish_single_for_expect.dat"); -#endif - -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TTurkishSingle")); -CCnvCharacterSetConverter* characterSetConverter; -RFs fileServerSession; -TBuf8<974> temp; -TBuf16<487> originalUnicode; -TBuf8<487> generatedForeign; -TBuf16<487> generatedUnicode; - -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -//translate from unicode big endian TDesC8 to TDes16 -static void Unicode_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4009 Available:\n ")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - CleanupStack::PopAndDestroy(arrayOfCharacterSetsAvailable); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4010 -@SYMTestCaseDesc Testcase to test new converter can be prepared -@SYMTestPriority High -@SYMTestActions Test for PrepareToConvertToOrFromL() -@SYMTestExpectedResults The test passed, If EAvailable is returned -@SYMPREQ PREQ22265 -@SYMREQ REQ10670 -*/ -void PrepareNewConverterL() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4010 Testing new converter can be prepared ")); - CCnvCharacterSetConverter::TAvailability avaible = characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, fileServerSession); - TEST( CCnvCharacterSetConverter::EAvailable == avaible ); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4011 -@SYMTestCaseDesc Convert Unicode code to foreign character set -@SYMTestPriority High -@SYMTestActions Test for ConvertFromUnicode() -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ22265 -@SYMREQ REQ10670 -*/ -LOCAL_C void ConvertFromUnicodeToForeignL() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4011 Testing encoding from Unicode to Foreign ")); - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Unicode_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4012 -@SYMTestCaseDesc Convert foreign character set to Unicode code -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with legal foreign characters, 0x00 - 0x7F -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ22265 -@SYMREQ REQ10670 -*/ -LOCAL_C void ConvertFromForeignToUnicodeL() - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4012 Testing encoding from Foreign to Unicode ")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Unicode_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4013 -@SYMTestCaseDesc Convert illegal character from foreign character set to unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() with illegal foreign characters 0x1B -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ22265 -@SYMREQ REQ10670 -*/ -LOCAL_C void ConvertIllegalForeignCharacter() - { - //test 0x1b - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4013 Testing EErrorIllFormedInput ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x1b; //the escape character - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( -20 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - } - -/** -@SYMTestCaseID SYSLIB-CHARCONV-UT-4014 -@SYMTestCaseDesc Convert out of range characters from foreign character set to Unicode -@SYMTestPriority High -@SYMTestActions Test for ConvertToUnicode() for some out of range foreign characters 0x80 - 0xFF -@SYMTestExpectedResults Test must not fail -@SYMPREQ PREQ22265 -@SYMREQ REQ10670 -*/ -LOCAL_C void ConvertOutOfRangeForeignCharacters() - { - //test foreign chararcter point which is not in the scope, e.g. 0x80 in GSM03.38, which should always mapped to 0xFFFD - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-UT-4014 Testing Characters not in the Scope ")); - generatedForeign.SetLength(1); - generatedForeign[0] = 0x80; - TInt state=CCnvCharacterSetConverter::KStateDefault; - _LIT16(KExpected2, "\xfffd"); //the expected foreign - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - TEST( generatedUnicode == KExpected2 ); - } - -LOCAL_C void DoE32MainL() - { - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - characterSetConverter=CCnvCharacterSetConverter::NewLC(); - - ListAlltheConvertersL(); - PrepareNewConverterL(); - ConvertFromUnicodeToForeignL(); - ConvertFromForeignToUnicodeL(); - ConvertIllegalForeignCharacter(); - ConvertOutOfRangeForeignCharacters(); - - CleanupStack::PopAndDestroy(2); - } - - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/tucs2.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/tucs2.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,639 +0,0 @@ -/* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////////////// - -RTest TheTest(_L("TUCS2")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// - -const TInt KMibValue = 1000; - -const TInt KBufferLength1=1; -const TInt KBufferLength6=6; -const TInt KBufferLength8=8; -const TInt KBufferLength40=40; - -const TPtrC8 KForeignBufferEven12LE(_S8("\xff\xfe\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a")); -const TPtrC8 KForeignBufferOdd13LE(_S8("\xff\xfe\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b")); -const TPtrC8 KForeignBufferEven12BE(_S8("\xfe\xff\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49")); -const TPtrC8 KForeignBufferOdd13BE(_S8("\xfe\xff\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49\x4b")); - -const TPtrC8 KForeignBufferEvenWithoutBOM10LE(_S8("\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a")); -const TPtrC8 KForeignBufferOddWithoutBOM11LE(_S8("\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b")); -const TPtrC8 KForeignBufferEvenWithoutBOM10BE(_S8("\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49")); -const TPtrC8 KForeignBufferOddWithoutBOM11BE(_S8("\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49\x4b")); - -const TPtrC8 KForeignBufferEven24LE(_S8("\xff\xfe\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56")); -const TPtrC8 KForeignBufferOdd25LE(_S8("\xff\xfe\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57")); -const TPtrC8 KForeignBufferEven24BE(_S8("\xfe\xff\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49\x4c\x4b\x4e\x4d\x50\x4f\x52\x51\x54\x53\x56\x55")); -const TPtrC8 KForeignBufferOdd25BE(_S8("\xfe\xff\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49\x4c\x4b\x4e\x4d\x50\x4f\x52\x51\x54\x53\x56\x55\x57")); - -const TPtrC8 KForeignBufferEvenWithoutBOM22LE(_S8("\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56")); -const TPtrC8 KForeignBufferOddWithoutBOM23LE(_S8("\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57")); -const TPtrC8 KForeignBufferEvenWithoutBOM22BE(_S8("\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49\x4c\x4b\x4e\x4d\x50\x4f\x52\x51\x54\x53\x56\x55")); -const TPtrC8 KForeignBufferOddWithoutBOM23BE(_S8("\x42\x41\x44\x43\x46\x45\x48\x47\x4a\x49\x4c\x4b\x4e\x4d\x50\x4f\x52\x51\x54\x53\x56\x55\x57")); - -const TPtrC16 KUnicodeBufferEven14BE(_S16("\xfeff\x4142\x4344\x4546\x4748\x494a\x4b4c\x4d4e\x4f50\x5152\x5354\x5556\x5758\x595a")); -const TPtrC16 KUnicodeBufferOdd15BE(_S16("\xfeff\x4142\x4344\x4546\x4748\x494a\x4b4c\x4d4e\x4f50\x5152\x5354\x5556\x5758\x595a\x5b5c")); - -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0553 -@SYMTestCaseDesc 8 bit to UCS2 Little Endian Conversion - Single pass test -@SYMTestPriority Medium -@SYMTestActions Tests a 8 bit string to 16 bit UCS2 conversion. - Test with and without Byte Order Mark. Byte Order Mark is set to Little Endian. - Output buffer is large enough to contain the complete input string - on a single pass -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void LEConversionSinglePassBOM(CCnvCharacterSetConverter& aCharacterSetConverter) -{ - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0553 ")); - TBuf16 generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - TInt numberOfUnconvertibleCharacters=0; - TInt indexOfFirstByteOfFirstUnconvertibleCharacter=0; - TInt numberLeft =0; - - // set the default endianness to little Endian - aCharacterSetConverter.SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::ELittleEndian); - - // test even number of foreign bytes - aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEven12LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TheTest.Printf(_L("\nLittleEndianConversionSinglePassEvenBOM - OK")); - - // test even number of foreign bytes without BOM - aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEvenWithoutBOM10LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TheTest.Printf(_L("\nLittleEndianConversionSinglePassEvenBOM - OK")); - - // test odd number of foreign bytes - state=CCnvCharacterSetConverter::KStateDefault; - numberLeft = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOdd13LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(numberLeft==1); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - - // test odd number of foreign bytes without BOM - numberLeft = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOddWithoutBOM11LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); - TEST(numberLeft==1); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - - TheTest.Printf(_L("\nLittleEndianConversionSinglePassOddBOM - OK")); -} -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0554 -@SYMTestCaseDesc 8 bit to UCS2 Little Endian Conversion - Multiple pass test -@SYMTestPriority Medium -@SYMTestActions Tests a 8 bit string to 16 bit UCS2 conversion. - With and without Byte Order Mark. Byte Order Mark is set to Little Endian. - Output buffer is NOT large enough to contain the complete input string - on a single pass. Multiple calls are made to complete translation. -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void LEConversionMultiplePassBOM(CCnvCharacterSetConverter& aCharacterSetConverter) -{ - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0554 ")); - TBuf16 generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - TInt numberOfUnconvertibleCharacters=0; - TInt indexOfFirstByteOfFirstUnconvertibleCharacter=0; - - // set the default endianness to little Endian - aCharacterSetConverter.SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::ELittleEndian); - - // test even number of foreign bytes - // first pass - TInt numberUnconverted; - numberUnconverted = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEven24LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); - TEST(numberUnconverted==10); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - - // test even number of foreign bytes without BOM - numberUnconverted = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEvenWithoutBOM22LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); - TEST(numberUnconverted==10); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - - // second pass - numberUnconverted = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEven24LE.Right(numberUnconverted), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(numberUnconverted==0); - TEST(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TheTest.Printf(_L("\nLittleEndianConversionMultiplePassOddEven - OK")); - - // without BOM - numberOfUnconvertibleCharacters=10; - aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEvenWithoutBOM22LE.Right(numberOfUnconvertibleCharacters), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TheTest.Printf(_L("\nLittleEndianConversionMultiplePassOddEven - OK")); - - - // test odd number of foreign bytes - // first pass - state=CCnvCharacterSetConverter::KStateDefault; - numberUnconverted = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOdd25LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(numberUnconverted==11); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); - - // without BOM - numberUnconverted = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOddWithoutBOM23LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(numberUnconverted==11); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); - - // second pass - numberUnconverted = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOdd25LE.Right(numberUnconverted), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); - TEST(numberUnconverted==1); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - - // without BOM - numberUnconverted = 11; - numberUnconverted = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOddWithoutBOM23LE.Right(numberUnconverted), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(numberUnconverted==1); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TEST(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); - - - TheTest.Printf(_L("\nLittleEndianConversionMultiplePassOddBOM - OK")); -} -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0555 -@SYMTestCaseDesc 8 bit to UCS2 Big Endian Conversion - Single pass -@SYMTestPriority Medium -@SYMTestActions Tests a 8 bit string to 16 bit UCS2 conversion. - With and without Byte Order Mark. Byte Order Mark is set to Big Endian. - Output buffer is large enough to contain the complete input string - on a single pass -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void BEConversionSinglePassBOM(CCnvCharacterSetConverter& aCharacterSetConverter) -{ - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0555 ")); - TBuf16 generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - TInt numberOfUnconvertibleCharacters=0; - TInt indexOfFirstByteOfFirstUnconvertibleCharacter=0; - TInt numberLeft=0; - - // set the default endianness to Big Endian - aCharacterSetConverter.SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::EBigEndian); - - // test even number of foreign bytes - aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEven12BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TheTest.Printf(_L("\nBigEndianConversionSinglePassEvenBOM - OK")); - - // test even number of foreign bytes without BOM - aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEvenWithoutBOM10BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TheTest.Printf(_L("\nBigEndianConversionSinglePassEvenBOM - OK")); - - - // test odd number of foreign bytes - state=CCnvCharacterSetConverter::KStateDefault; - numberLeft = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOdd13BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); - TEST(numberLeft==1); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - - // test odd number of foreign bytes without BOM - numberLeft = aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOddWithoutBOM11BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49")); - TEST(numberLeft==1); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - - TheTest.Printf(_L("\nBigEndianConversionSinglePassOddBOM - OK")); -} -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0556 -@SYMTestCaseDesc 8 bit to UCS2 Big Endian Conversion - Multiple pass test -@SYMTestPriority Medium -@SYMTestActions Tests a 8 bit string to 16 bit UCS2 conversion. - With and without Byte Order Mark. Byte Order Mark is set to Big Endian. - Output buffer is NOT large enough to contain the complete input string - on a single pass. Multiple calls are made to complete translation. -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void BEConversionMultiplePassBOM(CCnvCharacterSetConverter& aCharacterSetConverter) -{ - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0556 ")); - TBuf16 generatedUnicode; - TInt state=CCnvCharacterSetConverter::KStateDefault; - TInt numberOfUnconvertibleCharacters=0; - TInt indexOfFirstByteOfFirstUnconvertibleCharacter=0; - TInt numberUnconverted=0; - - // set the default endianness to Big Endian - aCharacterSetConverter.SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::EBigEndian); - - // test even number of foreign bytes - // first pass - numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEven24BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); - TEST(numberUnconverted==10); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - - // without BOM - numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEvenWithoutBOM22BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); - TEST(numberUnconverted==10); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - - // second pass - numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEven24BE.Right(numberUnconverted), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); - TEST(numberUnconverted==0); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TheTest.Printf(_L("\nBigEndianConversionMultiplePassOddEven - OK")); - - // without BOM - numberOfUnconvertibleCharacters=10; - numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferEvenWithoutBOM22BE.Right(numberOfUnconvertibleCharacters), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TheTest.Printf(_L("\nBigEndianConversionMultiplePassOddEven - OK")); - - // test odd number of foreign bytes - // first pass - state=CCnvCharacterSetConverter::KStateDefault; - numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOdd25BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(numberUnconverted==11); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); - - // without BOM - numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOddWithoutBOM23BE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(numberUnconverted==11); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TEST(generatedUnicode==_L16("\x4241\x4443\x4645\x4847\x4a49\x4c4b")); - - // second pass - numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOdd25BE.Right(numberUnconverted), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); - TEST(numberUnconverted==1); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - - // without BOM - numberOfUnconvertibleCharacters=11; - numberUnconverted=aCharacterSetConverter.ConvertToUnicode(generatedUnicode, KForeignBufferOddWithoutBOM23BE.Right(numberOfUnconvertibleCharacters), state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode==_L16("\x4e4d\x504f\x5251\x5453\x5655")); - TEST(numberUnconverted==1); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - - - TheTest.Printf(_L("\nBigEndianConversionMultiplePassOddBOM - OK")); -} -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0557 -@SYMTestCaseDesc UCS2 to 8 bit Big Endian Conversion - Single pass test -@SYMTestPriority Medium -@SYMTestActions Tests a 16 bit UCS2 to 8 bit descriptor conversion. - Byte Order Mark is present and is set to Big Endian. - Output buffer is large enough to contain the complete input string - on a single pass -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void UCS2BEConversionSinglePassBOM(CCnvCharacterSetConverter& aCharacterSetConverter) -{ - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0557 ")); - TBuf8 generatedForeign; - CCnvCharacterSetConverter::TArrayOfAscendingIndices indicesOfUnconvertibleCharacters; - - // set the default endianness to Big Endian - aCharacterSetConverter.SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::EBigEndian); - - // test even number of foreign bytes - aCharacterSetConverter.ConvertFromUnicode( generatedForeign, - KUnicodeBufferEven14BE, - indicesOfUnconvertibleCharacters ); - - TEST(generatedForeign==_L8("\xfe\xff\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a")); - TheTest.Printf(_L("\nUCS2BEConversionSinglePassEvenBOM - OK")); - - // test odd number of foreign bytes - aCharacterSetConverter.ConvertFromUnicode( generatedForeign, - KUnicodeBufferOdd15BE, - indicesOfUnconvertibleCharacters ); - - TEST(generatedForeign==_L8("\xfe\xff\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c")); - TheTest.Printf(_L("\nUCS2BEConversionSinglePassOddBOM - OK")); -} -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0558 -@SYMTestCaseDesc UCS2 to 8 bit Big Endian Conversion - Multiple pass test -@SYMTestPriority Medium -@SYMTestActions Tests a 16 bit UCS2 to 8 bit descriptor conversion. - Byte Order Mark is present and is set to Big Endian. - Output buffer is NOT large enough to contain the complete input string - on a single pass -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void UCS2BEConversionMultiplePassBOM (CCnvCharacterSetConverter& aCharacterSetConverter) -{ - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0558 ")); - TBuf8 generatedForeign; - TBuf8 generatedForeign2; - TInt result=0; - CCnvCharacterSetConverter::TArrayOfAscendingIndices indicesOfUnconvertibleCharacters; - - // set the default endianness to Big Endian - aCharacterSetConverter.SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::EBigEndian); - - // *** Test even number of bytes *** - // test even number of foreign bytes - pass 1 - result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, - KUnicodeBufferEven14BE, - indicesOfUnconvertibleCharacters ); - TEST(generatedForeign==_L8("\xfe\xff\x41\x42\x43\x44")); - TEST(result==11); - - // test even number of foreign bytes - pass 2 - result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, - KUnicodeBufferEven14BE.Right(result), - indicesOfUnconvertibleCharacters ); - TEST(result==8); - TEST(generatedForeign==_L8("\x45\x46\x47\x48\x49\x4A")); - - // test even number of foreign bytes - pass 3 - result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, - KUnicodeBufferEven14BE.Right(result), - indicesOfUnconvertibleCharacters ); - TEST(result==5); - TEST(generatedForeign==_L8("\x4b\x4c\x4d\x4e\x4f\x50")); - - - // test even number of foreign bytes - pass 4 - result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, - KUnicodeBufferEven14BE.Right(result), - indicesOfUnconvertibleCharacters ); - TEST(result==2); - TEST(generatedForeign==_L8("\x51\x52\x53\x54\x55\x56")); - - // test even number of foreign bytes - pass 5 - result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign2, - KUnicodeBufferEven14BE.Right(result), - indicesOfUnconvertibleCharacters ); - TEST(generatedForeign2==_L8("\x57\x58\x59\x5a")); - TEST(result==0); - - TheTest.Printf(_L("\nUCS2LEConversionMultiplePassEvenBOM - OK")); - - // *** Test odd numer of bytes *** - result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, - KUnicodeBufferOdd15BE, - indicesOfUnconvertibleCharacters ); - TEST(generatedForeign==_L8("\xfe\xff\x41\x42\x43\x44")); - - // test even number of foreign bytes - pass 2 - result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, - KUnicodeBufferOdd15BE.Right(result), - indicesOfUnconvertibleCharacters ); - TEST(generatedForeign==_L8("\x45\x46\x47\x48\x49\x4a")); - - // test even number of foreign bytes - pass 3 - result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, - KUnicodeBufferOdd15BE.Right(result), - indicesOfUnconvertibleCharacters ); - TEST(generatedForeign==_L8("\x4b\x4c\x4d\x4e\x4f\x50")); - - // test even number of foreign bytes - pass 4 - result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, - KUnicodeBufferOdd15BE.Right(result), - indicesOfUnconvertibleCharacters ); - TEST(generatedForeign==_L8("\x51\x52\x53\x54\x55\x56")); - - - // test even number of foreign bytes - pass 5 - result = aCharacterSetConverter.ConvertFromUnicode( generatedForeign, - KUnicodeBufferOdd15BE.Right(result), - indicesOfUnconvertibleCharacters ); - TEST(generatedForeign==_L8("\x57\x58\x59\x5a\x5b\x5c")); - TEST(result==0); - - TheTest.Printf(_L("\nUCS2LEConversionMultiplePassOddBOM - OK")); -} -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0559 -@SYMTestCaseDesc Tests a 16 bit UCS2 to 8 bit & 16 bit UCS2 to 8 bit conversion with empty buffers. -@SYMTestPriority Medium -@SYMTestActions Attempt for conversion when input and output buffers are small -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TooSmallBufferConversion (CCnvCharacterSetConverter& aCharacterSetConverter) - { - TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0559 ")); - TBuf16 generatedUnicode1; - TBuf8 generatedForeign1; - - TInt state=CCnvCharacterSetConverter::KStateDefault; - TInt numberOfUnconvertibleCharacters=0; - TInt indexOfFirstByteOfFirstUnconvertibleCharacter=0; - - CCnvCharacterSetConverter::TArrayOfAscendingIndices indicesOfUnconvertibleCharacters; - - // set the default endianness to little Endian - aCharacterSetConverter.SetDefaultEndiannessOfForeignCharacters(CCnvCharacterSetConverter::ELittleEndian); - - // convert to UCS2 using an output buffer that is too small - TInt result = aCharacterSetConverter.ConvertToUnicode(generatedUnicode1, KForeignBufferEven12LE, state, numberOfUnconvertibleCharacters, indexOfFirstByteOfFirstUnconvertibleCharacter); - TEST(generatedUnicode1==_L16("\x4241")); - TEST(result==8); - TEST(numberOfUnconvertibleCharacters==0); - TEST(indexOfFirstByteOfFirstUnconvertibleCharacter==-1); - TheTest.Printf(_L("\n8bit->UCS2 output buffer size 1 - OK")); - - TheTest.Printf(_L("\nConversionTooSmallBuffer - OK")); - } -/** -@SYMTestCaseID SYSLIB-CHARCONV-CT-0560 -@SYMTestCaseDesc Conversion tests from UCS2 GUID to MIB -@SYMTestPriority Medium -@SYMTestActions Tests retreiving the MIB value from the UCS2 GUID - Tests retreiving the UCS2 GUID from the MIB value -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void CharacterSetValueAndMIBTests(CCnvCharacterSetConverter& aCharacterSetConverter, RFs& aFileServerSession) -{ - TheTest.Start(_L(" @SYMTestCaseID:SYSLIB-CHARCONV-CT-0560 ")); - // check that the character set value of '1000' is converted to the UCS2 GUID (0x101ff492) - TEST(aCharacterSetConverter.ConvertMibEnumOfCharacterSetToIdentifierL(KMibValue,aFileServerSession)==KCharacterSetIdentifierUcs2); - TheTest.Printf(_L("\nMIB->Char Set GUID - OK")); - - // check that the UCS2 GUID (0x101ff492) is converted to the character set value of '1000' - TEST(aCharacterSetConverter.ConvertCharacterSetIdentifierToMibEnumL(KCharacterSetIdentifierUcs2,aFileServerSession)==KMibValue); - TheTest.Printf(_L("\nChar Set GUID->MIB - OK")); -} - - -LOCAL_C void DoE32MainL() - { - RFs fileServerSession; - CleanupClosePushL(fileServerSession); - User::LeaveIfError(fileServerSession.Connect()); - CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); - CArrayFix* arrayOfCharacterSetsAvailable=CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - TInt i; - for (i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - // test MIB to Character Set ID (and visa versa) conversion - CharacterSetValueAndMIBTests(*characterSetConverter, fileServerSession); - - // prepare for conversion - TheTest.Next(_L("\nTesting 8 bit -> UCS2 conversion")); - TRAPD( error, characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierUcs2, *arrayOfCharacterSetsAvailable, fileServerSession)); - if ( error != KErrNone ) - { - RDebug::Print(_L("PrepareToConvertToOrFromL failed code:%d\n"),error); - RDebug::Print(_L("KCharacterSetIdentifierUcs2 is not available so tests failed\n")); - User::LeaveIfError(error); - } - - - // *** 8 bit to UCS2 conversion *** - TheTest.Next(_L("\n8->UCS2 Little Endian Conversion - Single pass")); - LEConversionSinglePassBOM(*characterSetConverter); - - TheTest.Next(_L("\n8->UCS2 Little Endian Conversion - Multiple pass")); - LEConversionMultiplePassBOM(*characterSetConverter); - - TheTest.Next(_L("\n8->UCS2 Big Endian Conversion - Single pass")); - BEConversionSinglePassBOM(*characterSetConverter); - - TheTest.Next(_L("\n8->UCS2 Big Endian Conversion - Multiple pass")); - BEConversionMultiplePassBOM(*characterSetConverter); - - - // *** UCS2 to 8 bit conversion *** - TheTest.Next(_L("\nUCS2->8 Big Endian Conversion - Single pass")); - UCS2BEConversionSinglePassBOM(*characterSetConverter); - - TheTest.Next(_L("\nUCS2->8 Big Endian Conversion - Multiple pass")); - UCS2BEConversionMultiplePassBOM(*characterSetConverter); - - // *** attempted conversion when input/output buffers are too small - TheTest.Next(_L("\nTooSmallBufferConversion")); - TooSmallBufferConversion(*characterSetConverter); - - TheTest.Printf(_L("\n")); - CleanupStack::PopAndDestroy(3);// arrayOfCharacterSetsAvailable and characterSetConverter and fileServerSession - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/twin1250.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/twin1250.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1250; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1250_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\win1250_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1250_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\win1250_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1250_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\win1250_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1250_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\win1250_for_expect.dat"); -#endif - -// Local Functions -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TestWin1250")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -static void Merge_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - - TheTest.Start(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - TheTest.Next(_L("Encoding from Unicode to Foreign")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); - TBuf8<512> temp; - TBuf16<256> originalUnicode; - TBuf8<256> generatedForeign; - TBuf16<256> generatedUnicode; - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Merge_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - - TheTest.Next(_L("Encoding from Foreign to Unicode")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Merge_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - - CleanupStack::PopAndDestroy(3); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/twin1251.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/twin1251.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1251; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1251_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\win1251_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1251_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\win1251_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1251_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\win1251_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1251_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\win1251_for_expect.dat"); -#endif - -// Local Functions -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TestWin1251")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -static void Merge_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - - TheTest.Start(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - TheTest.Next(_L("Encoding from Unicode to Foreign")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); - TBuf8<512> temp; - TBuf16<256> originalUnicode; - TBuf8<256> generatedForeign; - TBuf16<256> generatedUnicode; - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Merge_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - - TheTest.Next(_L("Encoding from Foreign to Unicode")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Merge_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - - CleanupStack::PopAndDestroy(3); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/twin1253.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/twin1253.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1253; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1253_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\win1253_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1253_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\win1253_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1253_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\win1253_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1253_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\win1253_for_expect.dat"); -#endif - -// Local Functions -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TestWin1253")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -static void Merge_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - - TheTest.Start(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - TheTest.Next(_L("Encoding from Unicode to Foreign")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); - TBuf8<512> temp; - TBuf16<256> originalUnicode; - TBuf8<256> generatedForeign; - TBuf16<256> generatedUnicode; - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Merge_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - - TheTest.Next(_L("Encoding from Foreign to Unicode")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Merge_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - - CleanupStack::PopAndDestroy(3); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/twin1254.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/twin1254.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1254; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1254_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\win1254_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1254_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\win1254_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1254_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\win1254_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1254_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\win1254_for_expect.dat"); -#endif - -// Local Functions -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TestWin1254")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -static void Merge_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - - TheTest.Start(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - TheTest.Next(_L("Encoding from Unicode to Foreign")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); - TBuf8<512> temp; - TBuf16<256> originalUnicode; - TBuf8<256> generatedForeign; - TBuf16<256> generatedUnicode; - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Merge_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - - TheTest.Next(_L("Encoding from Foreign to Unicode")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Merge_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - - CleanupStack::PopAndDestroy(3); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/twin1255.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/twin1255.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1255; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1255_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\win1255_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1255_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\win1255_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1255_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\win1255_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1255_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\win1255_for_expect.dat"); -#endif - -// Local Functions -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TestWin1255")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -static void Merge_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - - TheTest.Start(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - TheTest.Next(_L("Encoding from Unicode to Foreign")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); - TBuf8<466> temp; - TBuf16<233> originalUnicode; - TBuf8<233> generatedForeign; - TBuf16<233> generatedUnicode; - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Merge_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - - TheTest.Next(_L("Encoding from Foreign to Unicode")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Merge_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - - CleanupStack::PopAndDestroy(3); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/twin1256.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/twin1256.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1256; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1256_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\win1256_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1256_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\win1256_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1256_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\win1256_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1256_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\win1256_for_expect.dat"); -#endif - -// Local Functions -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TestWin1256")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -static void Merge_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - - TheTest.Start(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - TheTest.Next(_L("Encoding from Unicode to Foreign")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); - TBuf8<512> temp; - TBuf16<256> originalUnicode; - TBuf8<256> generatedForeign; - TBuf16<256> generatedUnicode; - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Merge_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - - TheTest.Next(_L("Encoding from Foreign to Unicode")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Merge_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - - CleanupStack::PopAndDestroy(3); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/twin1257.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/twin1257.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1257; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1257_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\win1257_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1257_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\win1257_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1257_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\win1257_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1257_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\win1257_for_expect.dat"); -#endif - -// Local Functions -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TestWin1257")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -static void Merge_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - - TheTest.Start(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - TheTest.Next(_L("Encoding from Unicode to Foreign")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); - TBuf8<512> temp; - TBuf16<256> originalUnicode; - TBuf8<256> generatedForeign; - TBuf16<256> generatedUnicode; - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Merge_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - - TheTest.Next(_L("Encoding from Foreign to Unicode")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Merge_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - - CleanupStack::PopAndDestroy(3); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/twin1258.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/twin1258.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin1258; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\win1258_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\win1258_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win1258_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\win1258_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\win1258_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\win1258_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win1258_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\win1258_for_expect.dat"); -#endif - -// Local Functions -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TestWin1258")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -static void Merge_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - - TheTest.Start(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - TheTest.Next(_L("Encoding from Unicode to Foreign")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); - TBuf8<512> temp; - TBuf16<256> originalUnicode; - TBuf8<256> generatedForeign; - TBuf16<256> generatedUnicode; - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Merge_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - - TheTest.Next(_L("Encoding from Foreign to Unicode")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Merge_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - - CleanupStack::PopAndDestroy(3); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/charconvplugins/test/rtest/tsrc/main/twin874.cpp --- a/charconvfw/charconvplugins/test/rtest/tsrc/main/twin874.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include - -const TUint KCharacterSetIdentifier=KCharacterSetIdentifierWin874; - -#ifdef __WINS__ -_LIT(KInputUnicodeFilename, "c:\\test\\data\\win874_uni_input.dat"); -_LIT(KInputForeignFilename, "c:\\test\\data\\win874_for_input.dat"); -_LIT(KExpectUnicodeFilename, "c:\\test\\data\\win874_uni_expect.dat"); -_LIT(KExpectForeignFilename, "c:\\test\\data\\win874_for_expect.dat"); -#else -_LIT(KInputUnicodeFilename, "z:\\test\\data\\win874_uni_input.dat"); -_LIT(KInputForeignFilename, "z:\\test\\data\\win874_for_input.dat"); -_LIT(KExpectUnicodeFilename, "z:\\test\\data\\win874_uni_expect.dat"); -_LIT(KExpectForeignFilename, "z:\\test\\data\\win874_for_expect.dat"); -#endif - -// Local Functions -/////////////////////////////////////////////////////////////////////////////////////// -RTest TheTest(_L("TestWin874")); - -/////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////////////// -//Tests macroses and functions. -//If (!aValue) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } -//If (aValue != aExpected) then the test will be panicked, the test data files will be deleted. -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } -//Use these to test conditions. -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) - -static void ReadDescL(TDes8& aDes, const TDesC& aFilename, RFs& aFs) - { - RFile file; - TInt err = file.Open(aFs, aFilename, EFileRead); - TEST2(err, KErrNone); - CleanupClosePushL(file); - err = file.Read(aDes); - TEST2(err, KErrNone); - CleanupStack::PopAndDestroy(&file); - } - -static void Merge_Big(TDesC8& aSource, TDes16& aTarget) - { - TInt length = aSource.Length(); - TInt i = 0; - for(i=0;i* arrayOfCharacterSetsAvailable=\ - CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableLC(fileServerSession); - - TheTest.Start(_L("Available:\n")); - for (TInt i=arrayOfCharacterSetsAvailable->Count()-1; i>=0; --i) - { - const CCnvCharacterSetConverter::SCharacterSet& charactersSet=(*arrayOfCharacterSetsAvailable)[i]; - characterSetConverter->PrepareToConvertToOrFromL(charactersSet.Identifier(), *arrayOfCharacterSetsAvailable, fileServerSession); - TPtrC charactersSetName(charactersSet.Name()); - if (charactersSet.NameIsFileName()) - { - charactersSetName.Set(TParsePtrC(charactersSetName).Name()); - } - TheTest.Printf(_L(" %S\n"), &charactersSetName); - } - - TheTest.Next(_L("Encoding from Unicode to Foreign")); - characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifier, *arrayOfCharacterSetsAvailable, fileServerSession); - TBuf8<450> temp; - TBuf16<225> originalUnicode; - TBuf8<225> generatedForeign; - TBuf16<225> generatedUnicode; - ReadDescL(temp, KInputUnicodeFilename, fileServerSession); - Merge_Big(temp, originalUnicode); - TEST(characterSetConverter->ConvertFromUnicode(generatedForeign, originalUnicode) == 0); - ReadDescL(temp, KExpectForeignFilename, fileServerSession); - TEST(generatedForeign == temp); - - TheTest.Next(_L("Encoding from Foreign to Unicode")); - ReadDescL(generatedForeign, KInputForeignFilename, fileServerSession); - TInt state=CCnvCharacterSetConverter::KStateDefault; - TEST( 0 == characterSetConverter->ConvertToUnicode(generatedUnicode, generatedForeign, state)); - ReadDescL(temp, KExpectUnicodeFilename, fileServerSession); - originalUnicode.Zero(); - Merge_Big(temp, originalUnicode); - TEST(generatedUnicode == originalUnicode); - - CleanupStack::PopAndDestroy(3); - } - -// Global Functions - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - TheTest.Title(); - - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TEST(trapCleanup != NULL); - - TRAPD(error, DoE32MainL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - TheTest.End(); - TheTest.Close(); - - __UHEAP_MARKEND; - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/group/FATCharsetConvTests.bat --- a/charconvfw/fatfilenameconversionplugins/group/FATCharsetConvTests.bat Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/group/FATCharsetConvTests.bat Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ @rem -@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +@rem Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). @rem All rights reserved. @rem This component and the accompanying materials are made available @rem under the terms of "Eclipse Public License v1.0" @@ -14,18 +14,5 @@ @rem Description: @rem -T_CP1250.exe -T_CP1251.exe -T_CP1252.exe -T_CP1253.exe -T_CP1254.exe -T_CP1255.exe -T_CP1256.exe -T_CP1257.exe -T_CP1258.exe -T_CP874.exe -T_CP932.exe -T_CP936.exe -T_CP54936.exe -T_CP949.exe -T_CP950.exe \ No newline at end of file +testexecute.exe z:\FATCharsetConv\T_All_FatCharsetConv.script + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/group/FATCharsetConvTests.iby --- a/charconvfw/fatfilenameconversionplugins/group/FATCharsetConvTests.iby Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/group/FATCharsetConvTests.iby Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -25,23 +25,6 @@ #include // batch file that runs all automatic FATCharsetConv tests -data=ZSYSTEM\test\FATCharsetConvTests.bat TEST\FATCharsetConvTests.bat - -file=ABI_DIR\BUILD_DIR\T_CP1250.exe Test\T_CP1250.exe -file=ABI_DIR\BUILD_DIR\T_CP1251.exe Test\T_CP1251.exe -file=ABI_DIR\BUILD_DIR\T_CP1252.exe Test\T_CP1252.exe -file=ABI_DIR\BUILD_DIR\T_CP1253.exe Test\T_CP1253.exe -file=ABI_DIR\BUILD_DIR\T_CP1254.exe Test\T_CP1254.exe -file=ABI_DIR\BUILD_DIR\T_CP1255.exe Test\T_CP1255.exe -file=ABI_DIR\BUILD_DIR\T_CP1256.exe Test\T_CP1256.exe -file=ABI_DIR\BUILD_DIR\T_CP1257.exe Test\T_CP1257.exe -file=ABI_DIR\BUILD_DIR\T_CP1258.exe Test\T_CP1258.exe -file=ABI_DIR\BUILD_DIR\T_CP874.exe Test\T_CP874.exe -file=ABI_DIR\BUILD_DIR\T_CP932.exe Test\T_CP932.exe -file=ABI_DIR\BUILD_DIR\T_CP936.exe Test\T_CP936.exe -file=ABI_DIR\BUILD_DIR\T_CP54936.exe Test\T_CP54936.exe -file=ABI_DIR\BUILD_DIR\T_CP949.exe Test\T_CP949.exe -file=ABI_DIR\BUILD_DIR\T_CP950.exe Test\T_CP950.exe - +file=ABI_DIR\BUILD_DIR\t_FatCharsetConvServer.exe sys\bin\t_FatCharsetConvServer.exe #endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/group/bld.inf --- a/charconvfw/fatfilenameconversionplugins/group/bld.inf Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/group/bld.inf Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -55,23 +55,10 @@ PRJ_TESTEXPORTS ../group/FATCharsetConvTests.iby /epoc32/rom/include/fatcharsetconvtests.iby -../group/FATCharsetConvTests.bat /epoc32/data/z/system/test/fatcharsetconvtests.bat +../group/FATCharsetConvTests.bat z:/FATCharsetConv/fatcharsetconvtests.bat +../test/T_All_FatCharsetConv.script z:/FATCharsetConv/T_All_FatCharsetConv.script PRJ_TESTMMPFILES -../test/T_CP950.mmp -../test/T_CP949.mmp -../test/T_CP936.mmp -../test/T_CP54936.mmp -../test/T_CP932.mmp -../test/T_CP874.mmp -../test/T_CP1258.mmp -../test/T_CP1257.mmp -../test/T_CP1256.mmp -../test/T_CP1255.mmp -../test/T_CP1254.mmp -../test/T_CP1253.mmp -../test/T_CP1252.mmp -../test/T_CP1251.mmp -../test/T_CP1250.mmp +../test/T_FatCharsetConvServer.mmp diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/group/t_fatcharsetconv.pkg --- a/charconvfw/fatfilenameconversionplugins/group/t_fatcharsetconv.pkg Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/group/t_fatcharsetconv.pkg Thu Aug 26 11:46:18 2010 +0800 @@ -24,18 +24,4 @@ : "t_PTPipsuite" ; test scripts -"\epoc32\release\$(platform)\$(target)\T_CP950.exe" -"c:\sys\bin\T_CP950.exe" -"\epoc32\release\$(platform)\$(target)\T_CP949.exe" -"c:\sys\bin\T_CP949.exe" -"\epoc32\release\$(platform)\$(target)\T_CP936.exe" -"c:\sys\bin\T_CP936.exe" -"\epoc32\release\$(platform)\$(target)\T_CP54936.exe" -"c:\sys\bin\T_CP54936.exe" -"\epoc32\release\$(platform)\$(target)\T_CP932.exe" -"c:\sys\bin\T_CP932.exe" -"\epoc32\release\$(platform)\$(target)\T_CP874.exe" -"c:\sys\bin\T_CP874.exe" -"\epoc32\release\$(platform)\$(target)\T_CP1258.exe" -"c:\sys\bin\T_CP1258.exe" -"\epoc32\release\$(platform)\$(target)\T_CP1257.exe" -"c:\sys\bin\T_CP1257.exe" -"\epoc32\release\$(platform)\$(target)\T_CP1256.exe" -"c:\sys\bin\T_CP1256.exe" -"\epoc32\release\$(platform)\$(target)\T_CP1255.exe" -"c:\sys\bin\T_CP1255.exe" -"\epoc32\release\$(platform)\$(target)\T_CP1254.exe" -"c:\sys\bin\T_CP1254.exe" -"\epoc32\release\$(platform)\$(target)\T_CP1253.exe" -"c:\sys\bin\T_CP1253.exe" -"\epoc32\release\$(platform)\$(target)\T_CP1252.exe" -"c:\sys\bin\T_CP1252.exe" -"\epoc32\release\$(platform)\$(target)\T_CP1251.exe" -"c:\sys\bin\T_CP1251.exe" -"\epoc32\release\$(platform)\$(target)\T_CP1250.exe" -"c:\sys\bin\T_CP1250.exe" +"\epoc32\data\z\FATCharsetConv\T_All_FatCharsetConv.script" -"c:\FATCharsetConv\T_All_FatCharsetConv.script" diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_All_FatCharsetConv.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_All_FatCharsetConv.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,35 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run All FatCharsetConv tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP874 +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP932 +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP936 +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP949 +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP950 +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1250 +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1251 +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1252 +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1253 +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1254 +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1255 +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1256 +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1257 +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1258 +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP54936 diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1250.CPP --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1250.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1250.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,10 +16,20 @@ */ -#include +#include "T_CP1250.h" #include -LOCAL_D RTest test(_L("T_CP1250.exe")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + _LIT16(Uni_1, "\xFFFF\x0053\x0059\x004D\x0042\x0049\x0041\x004E\xAAAA\x20AC\x02C7\x2015"); _LIT8(CP1250_1, "\x5F\x53\x59\x4D\x42\x49\x41\x4E\x5F\x80\xA1\x5F"); @@ -40,7 +50,7 @@ @SYMTestActions Tests for conversions from/to Unicode, using a function pointer @SYMTestExpectedResults Test must not fail */ -void Test() +void CT_CP1250::TestL() { RLibrary lib; @@ -98,9 +108,9 @@ lib.Close(); } -void OOMTest() +void CT_CP1250::OOMTestL() { - test.Next(_L("OOM testing")); + INFO_PRINTF1(_L("OOM testing")); TInt err, tryCount = 0; do { @@ -113,7 +123,7 @@ // Setting Heap failure for OOM test __UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount); - TRAP(err,Test()); + TRAP(err,TestL()); __UHEAP_SETFAIL(RHeap::ENone, 0); @@ -129,31 +139,31 @@ }while (err == KErrNoMemory); test(err == KErrNone); - test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); - } - - -LOCAL_C void DoE32MainL() - { - Test(); - OOMTest(); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"), tryCount); } -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; +CT_CP1250::CT_CP1250() + { + SetTestStepName(KTestStep_T_CP1250); + } + - test.Title(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1789 CP1250 tests... ")); +TVerdict CT_CP1250::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - delete trapCleanup; + TRAPD(error1, TestL()); + TRAPD(error2, OOMTestL()); + + __UHEAP_MARKEND; - test.End(); - test.Close(); + if(error1 == KErrNone && error2 == KErrNone) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return error; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1250.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1250.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,36 @@ +/* +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_CP1250_H__ +#define __T_CP1250_H__ + +#include + +class CT_CP1250 : public CTestStep + { +public: + CT_CP1250(); +protected: + TVerdict doTestStepL(); +private: + void TestL(); + void OOMTestL(); + }; + +_LIT(KTestStep_T_CP1250, "T_CP1250"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1250.mmp --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1250.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET t_cp1250.exe -CAPABILITY All -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -USERINCLUDE ../inc - -SOURCE T_CP1250.CPP - - -LIBRARY euser.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1250.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1250.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,21 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run T_CP1250 tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1250 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1251.CPP --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1251.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1251.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,10 +16,20 @@ */ -#include +#include "T_CP1251.h" #include -LOCAL_D RTest test(_L("T_CP1251.exe")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + _LIT16(Uni_1, "\x0053\x0059\x004D\x0042\x0049\x0041\x004E\xFFFF\x20AC\x02C7\x2015"); _LIT8(CP1251_1, "\x53\x59\x4D\x42\x49\x41\x4E\x5F\x88\x5F\x5F"); @@ -40,7 +50,7 @@ @SYMTestActions Tests for conversions from/to Unicode, using a function pointer @SYMTestExpectedResults Test must not fail */ -void Test() +void CT_CP1251::TestL() { RLibrary lib; @@ -92,9 +102,9 @@ lib.Close(); } -void OOMTest() +void CT_CP1251::OOMTestL() { - test.Next(_L("OOM testing")); + INFO_PRINTF1(_L("OOM testing")); TInt err, tryCount = 0; do { @@ -107,7 +117,7 @@ // Setting Heap failure for OOM test __UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount); - TRAP(err,Test()); + TRAP(err,TestL()); __UHEAP_SETFAIL(RHeap::ENone, 0); @@ -123,31 +133,31 @@ }while (err == KErrNoMemory); test(err == KErrNone); - test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); - } - - -LOCAL_C void DoE32MainL() - { - Test(); - OOMTest(); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"), tryCount); } -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; +CT_CP1251::CT_CP1251() + { + SetTestStepName(KTestStep_T_CP1251); + } + - test.Title(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1788 CP1251 tests... ")); +TVerdict CT_CP1251::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - delete trapCleanup; + TRAPD(error1, TestL()); + TRAPD(error2, OOMTestL()); + + __UHEAP_MARKEND; - test.End(); - test.Close(); + if(error1 == KErrNone && error2 == KErrNone) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return error; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1251.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1251.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_CP1251_H__ +#define __T_CP1251_H__ + +#include + +class CT_CP1251 : public CTestStep + { +public: + CT_CP1251(); +protected: + TVerdict doTestStepL(); +private: + void TestL(); + void OOMTestL(); + }; + +_LIT(KTestStep_T_CP1251, "T_CP1251"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1251.mmp --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1251.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET t_cp1251.exe -CAPABILITY All -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCE T_CP1251.CPP - - -LIBRARY euser.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1251.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1251.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,21 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run T_CP1251 tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1251 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1252.CPP --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1252.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1252.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,10 +16,20 @@ */ -#include +#include "T_CP1252.h" #include -LOCAL_D RTest test(_L("T_CP1252.exe")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + _LIT16(Uni_1, "\xFFFF\x0053\x0059\x004D\x0042\x0049\x0041\x004E\xAAAA\x20AC\x00E8\x017B"); _LIT8(CP1252_1, "\x5F\x53\x59\x4D\x42\x49\x41\x4E\x5F\x80\xE8\x5F"); @@ -40,7 +50,7 @@ @SYMTestActions Tests for conversions from/to Unicode, using a function pointer @SYMTestExpectedResults Test must not fail */ -void Test() +void CT_CP1252::TestL() { RLibrary lib; @@ -92,9 +102,9 @@ lib.Close(); } -void OOMTest() +void CT_CP1252::OOMTestL() { - test.Next(_L("OOM testing")); + INFO_PRINTF1(_L("OOM testing")); TInt err, tryCount = 0; do { @@ -107,7 +117,7 @@ // Setting Heap failure for OOM test __UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount); - TRAP(err,Test()); + TRAP(err,TestL()); __UHEAP_SETFAIL(RHeap::ENone, 0); @@ -123,30 +133,31 @@ }while (err == KErrNoMemory); test(err == KErrNone); - test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"), tryCount); } -LOCAL_C void DoE32MainL() - { - Test(); - OOMTest(); - } +CT_CP1252::CT_CP1252() + { + SetTestStepName(KTestStep_T_CP1252); + } + -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; +TVerdict CT_CP1252::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; - test.Title(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1787 CP1252 tests... ")); + TRAPD(error1, TestL()); + TRAPD(error2, OOMTestL()); - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - delete trapCleanup; + __UHEAP_MARKEND; - test.End(); - test.Close(); + if(error1 == KErrNone && error2 == KErrNone) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return error; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1252.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1252.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_CP1252_H__ +#define __T_CP1252_H__ + +#include + +class CT_CP1252 : public CTestStep + { +public: + CT_CP1252(); +protected: + TVerdict doTestStepL(); +private: + void TestL(); + void OOMTestL(); + }; + +_LIT(KTestStep_T_CP1252, "T_CP1252"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1252.mmp --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1252.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET t_cp1252.exe -CAPABILITY All -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCE T_CP1252.CPP - - -LIBRARY euser.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1252.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1252.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,21 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run T_CP1252 tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1252 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1253.CPP --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1253.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1253.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,10 +16,20 @@ */ -#include +#include "T_CP1253.h" #include -LOCAL_D RTest test(_L("T_CP1253.exe")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + _LIT16(Uni_1, "\x0053\x0059\x004D\x0042\x0049\x0041\x004E\xFFFF\x20AC\x00E8\x017B"); _LIT8(CP1253_1, "\x53\x59\x4D\x42\x49\x41\x4E\x5F\x80\x5F\x5F"); @@ -40,7 +50,7 @@ @SYMTestActions Tests for conversions from/to Unicode, using a function pointer @SYMTestExpectedResults Test must not fail */ -void Test() +void CT_CP1253::TestL() { RLibrary lib; @@ -92,9 +102,9 @@ lib.Close(); } -void OOMTest() +void CT_CP1253::OOMTestL() { - test.Next(_L("OOM testing")); + INFO_PRINTF1(_L("OOM testing")); TInt err, tryCount = 0; do { @@ -107,7 +117,7 @@ // Setting Heap failure for OOM test __UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount); - TRAP(err,Test()); + TRAP(err,TestL()); __UHEAP_SETFAIL(RHeap::ENone, 0); @@ -123,30 +133,31 @@ }while (err == KErrNoMemory); test(err == KErrNone); - test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"), tryCount); } -LOCAL_C void DoE32MainL() - { - Test(); - OOMTest(); - } +CT_CP1253::CT_CP1253() + { + SetTestStepName(KTestStep_T_CP1253); + } + -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; +TVerdict CT_CP1253::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; - test.Title(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1786 CP1253 tests... ")); + TRAPD(error1, TestL()); + TRAPD(error2, OOMTestL()); - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - delete trapCleanup; + __UHEAP_MARKEND; - test.End(); - test.Close(); + if(error1 == KErrNone && error2 == KErrNone) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return error; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1253.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1253.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_CP1253_H__ +#define __T_CP1253_H__ + +#include + +class CT_CP1253 : public CTestStep + { +public: + CT_CP1253(); +protected: + TVerdict doTestStepL(); +private: + void TestL(); + void OOMTestL(); + }; + +_LIT(KTestStep_T_CP1253, "T_CP1253"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1253.mmp --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1253.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET t_cp1253.exe -CAPABILITY All -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCE T_CP1253.CPP - - -LIBRARY euser.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1253.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1253.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,21 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run T_CP1253 tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1253 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1254.CPP --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1254.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1254.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,10 +16,20 @@ */ -#include +#include "T_CP1254.h" #include -LOCAL_D RTest test(_L("T_CP1254.exe")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + _LIT16(Uni_1, "\x0053\x0059\x004D\x0042\x0049\x0041\x004E\xFFFF\x20AC\x00E8\x017B"); _LIT8(CP1254_1, "\x53\x59\x4D\x42\x49\x41\x4E\x5F\x80\xE8\x5F"); @@ -40,7 +50,7 @@ @SYMTestActions Tests for conversions from/to Unicode, using a function pointer @SYMTestExpectedResults Test must not fail */ -void Test() +void CT_CP1254::TestL() { RLibrary lib; @@ -92,9 +102,9 @@ lib.Close(); } -void OOMTest() +void CT_CP1254::OOMTestL() { - test.Next(_L("OOM testing")); + INFO_PRINTF1(_L("OOM testing")); TInt err, tryCount = 0; do { @@ -107,7 +117,7 @@ // Setting Heap failure for OOM test __UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount); - TRAP(err,Test()); + TRAP(err,TestL()); __UHEAP_SETFAIL(RHeap::ENone, 0); @@ -123,31 +133,31 @@ }while (err == KErrNoMemory); test(err == KErrNone); - test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); - } - - -LOCAL_C void DoE32MainL() - { - Test(); - OOMTest(); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"), tryCount); } -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; +CT_CP1254::CT_CP1254() + { + SetTestStepName(KTestStep_T_CP1254); + } + - test.Title(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1785 CP1254 Tests... ")); +TVerdict CT_CP1254::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - delete trapCleanup; + TRAPD(error1, TestL()); + TRAPD(error2, OOMTestL()); + + __UHEAP_MARKEND; - test.End(); - test.Close(); + if(error1 == KErrNone && error2 == KErrNone) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return error; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1254.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1254.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_CP1254_H__ +#define __T_CP1254_H__ + +#include + +class CT_CP1254 : public CTestStep + { +public: + CT_CP1254(); +protected: + TVerdict doTestStepL(); +private: + void TestL(); + void OOMTestL(); + }; + +_LIT(KTestStep_T_CP1254, "T_CP1254"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1254.mmp --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1254.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET t_cp1254.exe -CAPABILITY All -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCE T_CP1254.CPP - - -LIBRARY euser.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1254.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1254.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,21 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run T_CP1254 tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1254 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1255.CPP --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1255.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1255.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,10 +16,20 @@ */ -#include +#include "T_CP1255.h" #include -LOCAL_D RTest test(_L("T_CP1255.exe")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + _LIT16(Uni_1, "\x0053\x0059\x004D\x0042\x0049\x0041\x004E\x3125\x05D0\xFFFF"); _LIT8(CP1255_1, "\x53\x59\x4D\x42\x49\x41\x4E\x5F\xE0\x5F"); @@ -40,7 +50,7 @@ @SYMTestActions Tests for conversions from/to Unicode, using a function pointer @SYMTestExpectedResults Test must not fail */ -void Test() +void CT_CP1255::TestL() { RLibrary lib; @@ -92,9 +102,9 @@ lib.Close(); } -void OOMTest() +void CT_CP1255::OOMTestL() { - test.Next(_L("OOM testing")); + INFO_PRINTF1(_L("OOM testing")); TInt err, tryCount = 0; do { @@ -107,7 +117,7 @@ // Setting Heap failure for OOM test __UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount); - TRAP(err,Test()); + TRAP(err,TestL()); __UHEAP_SETFAIL(RHeap::ENone, 0); @@ -123,32 +133,31 @@ }while (err == KErrNoMemory); test(err == KErrNone); - test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); - } - - -LOCAL_C void DoE32MainL() - { - Test(); - OOMTest(); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"), tryCount); } +CT_CP1255::CT_CP1255() + { + SetTestStepName(KTestStep_T_CP1255); + } -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - test.Title(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1784 CP1255 test... ")); +TVerdict CT_CP1255::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - delete trapCleanup; + TRAPD(error1, TestL()); + TRAPD(error2, OOMTestL()); + + __UHEAP_MARKEND; - test.End(); - test.Close(); + if(error1 == KErrNone && error2 == KErrNone) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return error; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1255.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1255.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_CP1255_H__ +#define __T_CP1255_H__ + +#include + +class CT_CP1255 : public CTestStep + { +public: + CT_CP1255(); +protected: + TVerdict doTestStepL(); +private: + void TestL(); + void OOMTestL(); + }; + +_LIT(KTestStep_T_CP1255, "T_CP1255"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1255.mmp --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1255.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET t_cp1255.exe -CAPABILITY All -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCE T_CP1255.CPP - - -LIBRARY euser.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1255.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1255.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,21 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run T_CP1255 tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1255 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1256.CPP --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1256.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1256.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,10 +16,20 @@ */ -#include +#include "T_CP1256.h" #include -LOCAL_D RTest test(_L("T_CP1256.exe")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + _LIT16(Uni_1, "\x0053\x0059\x004D\x0042\x0049\x0041\x004E\x0649\x064F\xFFFF"); _LIT8(CP1256_1, "\x53\x59\x4D\x42\x49\x41\x4E\xEC\xF5\x5F"); @@ -40,7 +50,7 @@ @SYMTestActions Tests for conversions from/to Unicode, using a function pointer @SYMTestExpectedResults Test must not fail */ -void Test() +void CT_CP1256::TestL() { RLibrary lib; @@ -92,9 +102,9 @@ lib.Close(); } -void OOMTest() +void CT_CP1256::OOMTestL() { - test.Next(_L("OOM testing")); + INFO_PRINTF1(_L("OOM testing")); TInt err, tryCount = 0; do { @@ -107,7 +117,7 @@ // Setting Heap failure for OOM test __UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount); - TRAP(err,Test()); + TRAP(err,TestL()); __UHEAP_SETFAIL(RHeap::ENone, 0); @@ -123,31 +133,31 @@ }while (err == KErrNoMemory); test(err == KErrNone); - test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); - } - - -LOCAL_C void DoE32MainL() - { - Test(); - OOMTest(); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"), tryCount); } -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; +CT_CP1256::CT_CP1256() + { + SetTestStepName(KTestStep_T_CP1256); + } + - test.Title(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1783 CP1256 test... ")); +TVerdict CT_CP1256::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - delete trapCleanup; + TRAPD(error1, TestL()); + TRAPD(error2, OOMTestL()); + + __UHEAP_MARKEND; - test.End(); - test.Close(); + if(error1 == KErrNone && error2 == KErrNone) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return error; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1256.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1256.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_CP1256_H__ +#define __T_CP1256_H__ + +#include + +class CT_CP1256 : public CTestStep + { +public: + CT_CP1256(); +protected: + TVerdict doTestStepL(); +private: + void TestL(); + void OOMTestL(); + }; + +_LIT(KTestStep_T_CP1256, "T_CP1256"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1256.mmp --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1256.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET t_cp1256.exe -CAPABILITY All -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCE T_CP1256.CPP - - -LIBRARY euser.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1256.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1256.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,21 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run T_CP1256 tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1256 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1257.CPP --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1257.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1257.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,10 +16,20 @@ */ -#include +#include "T_CP1257.h" #include -LOCAL_D RTest test(_L("T_CP1257.exe")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + _LIT16(Uni_1, "\x0053\x0059\x004D\x0042\x0049\x0041\x004E\x3125\x02DB\xFFFF"); _LIT8(CP1257_1, "\x53\x59\x4D\x42\x49\x41\x4E\x5F\x9E\x5F"); @@ -40,7 +50,7 @@ @SYMTestActions Tests for conversions from/to Unicode, using a function pointer @SYMTestExpectedResults Test must not fail */ -void Test() +void CT_CP1257::TestL() { RLibrary lib; @@ -92,9 +102,9 @@ lib.Close(); } -void OOMTest() +void CT_CP1257::OOMTestL() { - test.Next(_L("OOM testing")); + INFO_PRINTF1(_L("OOM testing")); TInt err, tryCount = 0; do { @@ -107,7 +117,7 @@ // Setting Heap failure for OOM test __UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount); - TRAP(err,Test()); + TRAP(err,TestL()); __UHEAP_SETFAIL(RHeap::ENone, 0); @@ -123,31 +133,31 @@ }while (err == KErrNoMemory); test(err == KErrNone); - test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); - } - - -LOCAL_C void DoE32MainL() - { - Test(); - OOMTest(); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"), tryCount); } -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; +CT_CP1257::CT_CP1257() + { + SetTestStepName(KTestStep_T_CP1257); + } + - test.Title(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1782 CP1257 test... ")); +TVerdict CT_CP1257::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - delete trapCleanup; + TRAPD(error1, TestL()); + TRAPD(error2, OOMTestL()); + + __UHEAP_MARKEND; - test.End(); - test.Close(); + if(error1 == KErrNone && error2 == KErrNone) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return error; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1257.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1257.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_CP1257_H__ +#define __T_CP1257_H__ + +#include + +class CT_CP1257 : public CTestStep + { +public: + CT_CP1257(); +protected: + TVerdict doTestStepL(); +private: + void TestL(); + void OOMTestL(); + }; + +_LIT(KTestStep_T_CP1257, "T_CP1257"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1257.mmp --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1257.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET t_cp1257.exe -CAPABILITY All -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCE T_CP1257.CPP - - -LIBRARY euser.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1257.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1257.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,21 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run T_CP1257 tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1257 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1258.CPP --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1258.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1258.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,10 +16,20 @@ */ -#include +#include "T_CP1258.h" #include -LOCAL_D RTest test(_L("T_CP1258.exe")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + _LIT16(Uni_1, "\x006D\xAAAA\x00DC\x0111\x20AC\xFFFF\x0070"); _LIT8(CP1258_1, "\x6D\x5F\xDC\xF0\x80\x5F\x70"); @@ -41,7 +51,7 @@ @SYMTestActions Tests for conversions from/to Unicode, using a function pointer @SYMTestExpectedResults Test must not fail */ -void Test() +void CT_CP1258::TestL() { RLibrary lib; @@ -93,9 +103,9 @@ lib.Close(); } -void OOMTest() +void CT_CP1258::OOMTestL() { - test.Next(_L("OOM testing")); + INFO_PRINTF1(_L("OOM testing")); TInt err, tryCount = 0; do { @@ -108,7 +118,7 @@ // Setting Heap failure for OOM test __UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount); - TRAP(err,Test()); + TRAP(err,TestL()); __UHEAP_SETFAIL(RHeap::ENone, 0); @@ -124,30 +134,31 @@ }while (err == KErrNoMemory); test(err == KErrNone); - test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"), tryCount); } -LOCAL_C void DoE32MainL() - { - Test(); - OOMTest(); - } +CT_CP1258::CT_CP1258() + { + SetTestStepName(KTestStep_T_CP1258); + } + -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; +TVerdict CT_CP1258::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; - test.Title(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1781 CP1258 test... ")); + TRAPD(error1, TestL()); + TRAPD(error2, OOMTestL()); - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - delete trapCleanup; + __UHEAP_MARKEND; - test.End(); - test.Close(); + if(error1 == KErrNone && error2 == KErrNone) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return error; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1258.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1258.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_CP1258_H__ +#define __T_CP1258_H__ + +#include + +class CT_CP1258 : public CTestStep + { +public: + CT_CP1258(); +protected: + TVerdict doTestStepL(); +private: + void TestL(); + void OOMTestL(); + }; + +_LIT(KTestStep_T_CP1258, "T_CP1258"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1258.mmp --- a/charconvfw/fatfilenameconversionplugins/test/T_CP1258.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET t_cp1258.exe -CAPABILITY All -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCE T_CP1258.CPP - - -LIBRARY euser.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP1258.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP1258.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,21 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run T_CP1258 tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP1258 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP54936.CPP --- a/charconvfw/fatfilenameconversionplugins/test/T_CP54936.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP54936.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,27 +16,43 @@ */ -#include +#include "T_CP54936.h" #include #include -LOCAL_D RTest test(_L("T_CP54936.exe")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + + +const TInt MaxCount = 10000; // iteration number for performance tests + +// cp54936 should be faster than cp936 +_LIT(KName936,"CP936"); +const TUid KPluginUid936={0x10206A91}; _LIT(KName,"CP54936"); const TUid KPluginUid={0x1028703b}; -void TestOut(const TDesC16 &des) +void CT_CP54936::TestOut(const TDesC16 &des) { for (TInt i=0; i unicode2; const TDesC16& unicode1(Uni_1); - test.Printf(_L("source: ")); TestOut(unicode1); test.Printf(_L("\n")); - test.Printf(_L("expect: ")); TestOut(CP54936_1); test.Printf(_L("\n")); + INFO_PRINTF1(_L("source: ")); TestOut(unicode1); INFO_PRINTF1(_L("\n")); + INFO_PRINTF1(_L("expect: ")); TestOut(CP54936_1); INFO_PRINTF1(_L("\n")); //TRAPD(err, (*aConvertFromUnicodeL)(foreign1, unicode1)); (*aConvertFromUnicodeL)(foreign1, unicode1); //testing conversion from Unicode - test.Printf(_L("result: ")); TestOut(foreign1); test.Printf(_L("\n")); + INFO_PRINTF1(_L("result: ")); TestOut(foreign1); INFO_PRINTF1(_L("\n")); TInt error = foreign1.Compare(CP54936_1); test(error==0); foreign1.Zero(); @@ -123,11 +139,11 @@ _LIT8(CP54936_2, "\x40\x24\xEC\xE1\x81\x81\xA2\xE3\x82\x30\xA7\x30\x81\x31\x81\x32\x95\x32\xAD\x35\xA1\xA0\xA0\x7F\x95\x32\x82\x30\x81\x30\x81\x3A"); const TDesC8& foreign2(CP54936_2); - test.Printf(_L("source: ")); TestOut(foreign2); test.Printf(_L("\n")); - test.Printf(_L("expect: ")); TestOut(Uni_2); test.Printf(_L("\n")); + INFO_PRINTF1(_L("source: ")); TestOut(foreign2); INFO_PRINTF1(_L("\n")); + INFO_PRINTF1(_L("expect: ")); TestOut(Uni_2); INFO_PRINTF1(_L("\n")); //TRAP(err, (*aConvertToUnicodeL)(unicode2,foreign2)); (*aConvertToUnicodeL)(unicode2,foreign2);//); //testing conversion to Unicode - test.Printf(_L("result: ")); TestOut(unicode2); test.Printf(_L("\n")); + INFO_PRINTF1(_L("result: ")); TestOut(unicode2); INFO_PRINTF1(_L("\n")); error = unicode2.Compare(Uni_2); test(error==0); unicode2.Zero(); @@ -153,9 +169,10 @@ @SYMTestActions Tests for correct character conversion on certain chinese characters for CP936 @SYMTestExpectedResults Test must not fail */ -void TestINC090073() +void CT_CP54936::TestINC090073L() { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1847-0001 ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1847-0001 ")); + _LIT16(unicode, "\x7CCD\x74EF\x8026\x8F8F\x94F3\x7633\x6DFC\x9785\x7F81\x7A37\x61A9\x80B1\x86A3\x89E5\x80F2\x9B48\x9E47\x6C19\x7B71\x946B\x6B46\x6615"); _LIT8(CP932Code, "\xF4\xD9\xEA\xB1\xF1\xEE\xEA\xA3\xEF\xA5\xF1\xAC\xED\xB5\xF7\xB1\xEE\xBF\xF0\xA2\xED\xAC\xEB\xC5\xF2\xBC\xF6\xA1\xEB\xDC\xF7\xCC\xF0\xC2\xEB\xAF\xF3\xE3\xF6\xCE\xEC\xA7\xEA\xBF"); @@ -187,9 +204,9 @@ lib.Close(); } -void OOMTest() +void CT_CP54936::OOMTestL() { - test.Next(_L("OOM testing")); + INFO_PRINTF1(_L("OOM testing")); TInt err, tryCount = 0; do { @@ -202,7 +219,7 @@ // Setting Heap failure for OOM test __UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount); - TRAP(err,Test()); + TRAP(err,TestL()); __UHEAP_SETFAIL(RHeap::ENone, 0); @@ -218,18 +235,13 @@ }while (err == KErrNoMemory); test(err == KErrNone); - test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"), tryCount); } -const TInt MaxCount = 10000; // iteration number for performance tests - -// cp54936 should be faster than cp936 -_LIT(KName936,"CP936"); -const TUid KPluginUid936={0x10206A91}; -void PerformanceTest1() +void CT_CP54936::PerformanceTest1L() { - test.Next(_L("Performance test 1 (comparing with cp936)")); + INFO_PRINTF1(_L("Performance test 1 (comparing with cp936)")); RLibrary lib936; RLibrary lib54936; @@ -281,9 +293,9 @@ ////////////////////////////////////////////////////////////////////////////// // 1, unicode -> 936 // test result: 1448 ms for 100000 iterations - test.Printf(_L("unicode --> 936:\n")); - test.Printf(_L(" source: ")); TestOut(unicode1); test.Printf(_L("\n")); - test.Printf(_L(" expect: ")); TestOut(CP54936_1); test.Printf(_L("\n")); + INFO_PRINTF1(_L("unicode --> 936:\n")); + INFO_PRINTF1(_L(" source: ")); TestOut(unicode1); INFO_PRINTF1(_L("\n")); + INFO_PRINTF1(_L(" expect: ")); TestOut(CP54936_1); INFO_PRINTF1(_L("\n")); prevTime = User::FastCounter(); for (count=0; count 54936 // test result: 44 ms for 100000 iterations - test.Printf(_L("unicode --> 54936:\n")); - test.Printf(_L(" source: ")); TestOut(unicode1); test.Printf(_L("\n")); - test.Printf(_L(" expect: ")); TestOut(CP54936_1); test.Printf(_L("\n")); + INFO_PRINTF1(_L("unicode --> 54936:\n")); + INFO_PRINTF1(_L(" source: ")); TestOut(unicode1); INFO_PRINTF1(_L("\n")); + INFO_PRINTF1(_L(" expect: ")); TestOut(CP54936_1); INFO_PRINTF1(_L("\n")); prevTime = User::FastCounter(); for (count=0; count unicode // test result: 89 ms for 100000 iterations - test.Printf(_L("936 ---> unicode:\n")); - test.Printf(_L(" source: ")); TestOut(foreign2); test.Printf(_L("\n")); - test.Printf(_L(" expect: ")); TestOut(Uni_2); test.Printf(_L("\n")); + INFO_PRINTF1(_L("936 ---> unicode:\n")); + INFO_PRINTF1(_L(" source: ")); TestOut(foreign2); INFO_PRINTF1(_L("\n")); + INFO_PRINTF1(_L(" expect: ")); TestOut(Uni_2); INFO_PRINTF1(_L("\n")); prevTime = User::FastCounter(); for (count=0; count unicode // test result: 36 ms for 100000 iterations - test.Printf(_L("54936 ---> unicode:\n")); - test.Printf(_L(" source: ")); TestOut(foreign2); test.Printf(_L("\n")); - test.Printf(_L(" expect: ")); TestOut(Uni_2); test.Printf(_L("\n")); + INFO_PRINTF1(_L("54936 ---> unicode:\n")); + INFO_PRINTF1(_L(" source: ")); TestOut(foreign2); INFO_PRINTF1(_L("\n")); + INFO_PRINTF1(_L(" expect: ")); TestOut(Uni_2); INFO_PRINTF1(_L("\n")); prevTime = User::FastCounter(); for (count=0; count 54936 // test result: 130 ms for 100000 iterations (44 ms if one huge table for BMP characters) - test.Printf(_L("unicode --> 54936:\n")); - test.Printf(_L(" source: ")); TestOut(unicode1); test.Printf(_L("\n")); - test.Printf(_L(" expect: ")); TestOut(CP54936_1); test.Printf(_L("\n")); + INFO_PRINTF1(_L("unicode --> 54936:\n")); + INFO_PRINTF1(_L(" source: ")); TestOut(unicode1); INFO_PRINTF1(_L("\n")); + INFO_PRINTF1(_L(" expect: ")); TestOut(CP54936_1); INFO_PRINTF1(_L("\n")); prevTime = User::FastCounter(); for (count=0; count unicode // test result: 36 ms for 100000 iterations - test.Printf(_L("54936 ---> unicode:\n")); - test.Printf(_L(" source: ")); TestOut(foreign2); test.Printf(_L("\n")); - test.Printf(_L(" expect: ")); TestOut(Uni_2); test.Printf(_L("\n")); + INFO_PRINTF1(_L("54936 ---> unicode:\n")); + INFO_PRINTF1(_L(" source: ")); TestOut(foreign2); INFO_PRINTF1(_L("\n")); + INFO_PRINTF1(_L(" expect: ")); TestOut(Uni_2); INFO_PRINTF1(_L("\n")); prevTime = User::FastCounter(); for (count=0; count generated54936; - test.Printf(_L("source: ")); + INFO_PRINTF1(_L("source: ")); TestOut(aUnicode); - test.Printf(_L("\n")); - test.Printf(_L("expect: ")); + INFO_PRINTF1(_L("\n")); + INFO_PRINTF1(_L("expect: ")); TestOut(a54936); - test.Printf(_L("\n")); + INFO_PRINTF1(_L("\n")); (*aConvertFromUnicodeL)(generated54936, aUnicode); - test.Printf(_L("result: ")); + INFO_PRINTF1(_L("result: ")); TestOut(generated54936); - test.Printf(_L("\n")); + INFO_PRINTF1(_L("\n")); TInt error = generated54936.Compare(a54936); if ( aZero1 ) { @@ -534,16 +546,16 @@ // testing conversion to Unicode TBuf16<200> generatedUnicode; - test.Printf(_L("source: ")); + INFO_PRINTF1(_L("source: ")); TestOut(a54936); - test.Printf(_L("\n")); - test.Printf(_L("expect: ")); + INFO_PRINTF1(_L("\n")); + INFO_PRINTF1(_L("expect: ")); TestOut(aUnicode); - test.Printf(_L("\n")); + INFO_PRINTF1(_L("\n")); (*aConvertToUnicodeL)(generatedUnicode,a54936); - test.Printf(_L("result: ")); + INFO_PRINTF1(_L("result: ")); TestOut(generatedUnicode); - test.Printf(_L("\n")); + INFO_PRINTF1(_L("\n")); error = generatedUnicode.Compare(aUnicode); if ( aZero2 ) { @@ -571,93 +583,93 @@ @SYMTestExpectedResults No side effect @SYMREQ REQ12067 */ -LOCAL_C void TestGbConversion() +void CT_CP54936::TestGbConversionL() { - // Test() function covers GB 1,2,4 bytes + // TestL() function covers GB 1,2,4 bytes // one-byte // border 0x80 _LIT16(Uni_0, "\x0000"); _LIT8(CP54936_0, "\x00"); - TestConversion( Uni_0, CP54936_0 ); + TestConversionL( Uni_0, CP54936_0 ); _LIT16(Uni_1, "\x0079"); _LIT8(CP54936_1, "\x79"); - TestConversion( Uni_1, CP54936_1 ); + TestConversionL( Uni_1, CP54936_1 ); _LIT16(Uni_2, "\x0080"); _LIT8(CP54936_2, "\x81\x30\x81\x30"); - TestConversion( Uni_2, CP54936_2 ); + TestConversionL( Uni_2, CP54936_2 ); _LIT16(Uni_3, "\x0081"); _LIT8(CP54936_3, "\x81\x30\x81\x31"); - TestConversion( Uni_3, CP54936_3 ); + TestConversionL( Uni_3, CP54936_3 ); _LIT16(Uni_4, "\x00fe"); _LIT8(CP54936_4, "\x81\x30\x8B\x36"); - TestConversion( Uni_4, CP54936_4 ); + TestConversionL( Uni_4, CP54936_4 ); _LIT16(Uni_5, "\x00ff"); _LIT8(CP54936_5, "\x81\x30\x8B\x37"); - TestConversion( Uni_5, CP54936_5 ); + TestConversionL( Uni_5, CP54936_5 ); // two-byte _LIT16(Uni_6, "\x0100"); _LIT8(CP54936_6, "\x81\x30\x8B\x38"); - TestConversion( Uni_6, CP54936_6 ); + TestConversionL( Uni_6, CP54936_6 ); _LIT16(Uni_7, "\x0101"); _LIT8(CP54936_7, "\xA8\xA1"); - TestConversion( Uni_7, CP54936_7 ); + TestConversionL( Uni_7, CP54936_7 ); _LIT16(Uni_8, "\x0ffe"); _LIT8(CP54936_8, "\x81\x33\x83\x38"); - TestConversion( Uni_8, CP54936_8 ); + TestConversionL( Uni_8, CP54936_8 ); _LIT16(Uni_9, "\x0fff"); _LIT8(CP54936_9, "\x81\x33\x83\x39"); - TestConversion( Uni_9, CP54936_9 ); + TestConversionL( Uni_9, CP54936_9 ); _LIT16(Uni_10, "\x1000"); _LIT8(CP54936_10, "\x81\x33\x84\x30"); - TestConversion( Uni_10, CP54936_10 ); + TestConversionL( Uni_10, CP54936_10 ); _LIT16(Uni_11, "\x1001"); _LIT8(CP54936_11, "\x81\x33\x84\x31"); - TestConversion( Uni_11, CP54936_11 ); + TestConversionL( Uni_11, CP54936_11 ); _LIT16(Uni_12, "\xfffe"); _LIT8(CP54936_12, "\x84\x31\xA4\x38"); - TestConversion( Uni_12, CP54936_12 ); + TestConversionL( Uni_12, CP54936_12 ); _LIT16(Uni_13, "\xffff"); _LIT8(CP54936_13, "\x84\x31\xA4\x39"); - TestConversion( Uni_13, CP54936_13 ); + TestConversionL( Uni_13, CP54936_13 ); // four-byte _LIT16(Uni_14, "\xd840\xdc00"); _LIT8(CP54936_14, "\x95\x32\x82\x36"); - TestConversion( Uni_14, CP54936_14 ); + TestConversionL( Uni_14, CP54936_14 ); _LIT16(Uni_15, "\xd840\xdc01"); _LIT8(CP54936_15, "\x95\x32\x82\x37"); - TestConversion( Uni_15, CP54936_15 ); + TestConversionL( Uni_15, CP54936_15 ); _LIT16(Uni_16, "\xD87F\xdffe"); _LIT8(CP54936_16, "\x9a\x34\x84\x30"); - TestConversion( Uni_16, CP54936_16 ); + TestConversionL( Uni_16, CP54936_16 ); _LIT16(Uni_17, "\xD87F\xdfff"); _LIT8(CP54936_17, "\x9a\x34\x84\x31"); - TestConversion( Uni_17, CP54936_17 ); + TestConversionL( Uni_17, CP54936_17 ); // 4-byte gb _LIT16(Uni_18, "\xd840\xddad"); _LIT8(CP54936_18, "\x95\x32\xAD\x35"); - TestConversion( Uni_18, CP54936_18 ); + TestConversionL( Uni_18, CP54936_18 ); _LIT16(Uni_19, "\xd801\xdd00"); _LIT8(CP54936_19, "\x90\x31\x83\x30"); - TestConversion( Uni_19, CP54936_19 ); + TestConversionL( Uni_19, CP54936_19 ); } @@ -674,9 +686,9 @@ @SYMTestExpectedResults No side effect @SYMREQ REQ12067 */ -LOCAL_C void TestShortNameCharacter() +void CT_CP54936::TestShortNameCharacterL() { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1778 ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1778 ")); RLibrary lib; const TUidType serverUid(KNullUid,KNullUid,KPluginUid); @@ -815,37 +827,34 @@ } -LOCAL_C void DoE32MainL() - { - __UHEAP_MARK; - - TestGbConversion(); - TestShortNameCharacter(); - Test(); - TestINC090073(); - OOMTest(); - PerformanceTest1(); - PerformanceTest2(); - - __UHEAP_MARKEND; - } +CT_CP54936::CT_CP54936() + { + SetTestStepName(KTestStep_T_CP54936); + } + + +TVerdict CT_CP54936::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; + TRAPD(error1, TestGbConversionL()); + TRAPD(error2, TestShortNameCharacterL()); + TRAPD(error3, TestL()); + TRAPD(error4, TestINC090073L()); + TRAPD(error5, OOMTestL()); + TRAPD(error6, PerformanceTest1L()); + TRAPD(error7, PerformanceTest2L()); - test.Title(); - test.Start(_L("CP54936 test...")); + __UHEAP_MARKEND; - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - test(error==KErrNone); - - delete trapCleanup; - - test.End(); - test.Close(); + if(error1 == KErrNone && error2 == KErrNone && error3 == KErrNone + && error4 == KErrNone && error5 == KErrNone + && error6 == KErrNone && error7 == KErrNone) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return error; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP54936.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP54936.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,50 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_CP54936_H__ +#define __T_CP54936_H__ + +//#include +#include + +class CT_CP54936 : public CTestStep + { +public: + CT_CP54936(); +protected: + TVerdict doTestStepL(); +private: + void TestOut(const TDesC16 &des); + void TestOut(const TDesC8 &des); + void TestL(); + void TestINC090073L(); + void OOMTestL(); + void PerformanceTest1L(); + void PerformanceTest2L(); + void TestConversionL( + const TDesC16& aUnicode, + const TDesC8& a54936, + TBool aZero1=ETrue, + TBool aZero2=ETrue ); + void TestGbConversionL(); + void TestShortNameCharacterL(); + }; + +_LIT(KTestStep_T_CP54936, "T_CP54936"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP54936.mmp --- a/charconvfw/fatfilenameconversionplugins/test/T_CP54936.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET t_cp54936.exe -//CAPABILITY All -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - - - -LIBRARY euser.lib hal.lib - -SMPSAFE -//RTEST - -SOURCE T_CP54936.CPP diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP54936.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP54936.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,21 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run T_CP54936 tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP54936 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP874.CPP --- a/charconvfw/fatfilenameconversionplugins/test/T_CP874.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP874.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,10 +16,20 @@ */ -#include +#include "T_CP874.h" #include -LOCAL_D RTest test(_L("T_CP874.exe")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + _LIT16(Uni_1, "\x0053\x0059\x004D\x0042\x0049\x0041\x004E\x3125\x0E45\xFFFF"); _LIT8(CP874_1, "\x53\x59\x4D\x42\x49\x41\x4E\x5F\xE5\x5F"); @@ -40,7 +50,7 @@ @SYMTestActions Tests for conversions from/to Unicode, using a function pointer @SYMTestExpectedResults Test must not fail */ -void Test() +void CT_CP874::TestL() { RLibrary lib; @@ -92,9 +102,9 @@ lib.Close(); } -void OOMTest() +void CT_CP874::OOMTestL() { - test.Next(_L("OOM testing")); + INFO_PRINTF1(_L("OOM testing")); TInt err, tryCount = 0; do { @@ -107,7 +117,7 @@ // Setting Heap failure for OOM test __UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount); - TRAP(err,Test()); + TRAP(err,TestL()); __UHEAP_SETFAIL(RHeap::ENone, 0); @@ -123,31 +133,32 @@ }while (err == KErrNoMemory); test(err == KErrNone); - test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"), tryCount); } -LOCAL_C void DoE32MainL() - { - Test(); - OOMTest(); - } +CT_CP874::CT_CP874() + { + SetTestStepName(KTestStep_T_CP874); + } + -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; +TVerdict CT_CP874::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; - test.Title(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1780 CP874 test... ")); + TRAPD(error1, TestL()); + TRAPD(error2, OOMTestL()); - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - delete trapCleanup; + __UHEAP_MARKEND; - test.End(); - test.Close(); + if(error1 == KErrNone && error2 == KErrNone) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return error; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP874.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP874.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_CP874_H__ +#define __T_CP874_H__ + +#include + +class CT_CP874 : public CTestStep + { +public: + CT_CP874(); +protected: + TVerdict doTestStepL(); +private: + void TestL(); + void OOMTestL(); + }; + +_LIT(KTestStep_T_CP874, "T_CP874"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP874.mmp --- a/charconvfw/fatfilenameconversionplugins/test/T_CP874.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET t_cp874.exe -CAPABILITY All -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCE T_CP874.CPP - - -LIBRARY euser.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP874.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP874.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,21 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run T_CP874 tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP874 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP932.CPP --- a/charconvfw/fatfilenameconversionplugins/test/T_CP932.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP932.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,10 +16,20 @@ */ -#include +#include "T_CP932.h" #include -LOCAL_D RTest test(_L("T_CP932.exe")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + _LIT16(Uni_1, "\x0053\x0059\x004D\x3125\x6349\xAAAA\x9673\x9ED1\x3000\xFF9F"); _LIT8(CP932_1, "\x53\x59\x4D\x5F\x91\xA8\x5F\x92\xC2\xEE\xEC\x81\x40\xDF"); @@ -41,9 +51,10 @@ @SYMTestPriority High @SYMTestActions Tests for conversions from/to Unicode, using a function pointer @SYMTestExpectedResults Test must not fail -*/void Test() +*/ +void CT_CP932::TestL() { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1779 ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1779 ")); RLibrary lib; const TUidType serverUid(KNullUid,KNullUid,KPluginUid); @@ -110,9 +121,9 @@ @SYMTestActions Tests for correct character conversion on certain chinese characters @SYMTestExpectedResults Test must not fail */ -void TestINC090073() +void CT_CP932::TestINC090073L() { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1847 ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1847 ")); _LIT16(unicode, "\x6DFC\x715C\x9785\x7A37\x61A9\x80B1\x86A3\x7B71\x6615\x6600"); _LIT8(CP932Code, "\xED\xE6\xED\xF6\xE8\xD7\xE2\x6C\x8C\x65\x8D\x6E\xE5\x6E\xE2\xAA\xED\xB3\xED\xB2"); @@ -142,9 +153,9 @@ lib.Close(); } -void OOMTest() +void CT_CP932::OOMTestL() { - test.Next(_L("OOM testing")); + INFO_PRINTF1(_L("OOM testing")); TInt err, tryCount = 0; do { @@ -157,7 +168,7 @@ // Setting Heap failure for OOM test __UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount); - TRAP(err,Test()); + TRAP(err,TestL()); __UHEAP_SETFAIL(RHeap::ENone, 0); @@ -173,37 +184,32 @@ }while (err == KErrNoMemory); test(err == KErrNone); - test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"), tryCount); } -LOCAL_C void DoE32MainL() - { - __UHEAP_MARK; +CT_CP932::CT_CP932() + { + SetTestStepName(KTestStep_T_CP932); + } + - Test(); - TestINC090073(); - OOMTest(); +TVerdict CT_CP932::doTestStepL() + { + SetTestStepResult(EFail); - __UHEAP_MARKEND; - } - -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; + __UHEAP_MARK; - test.Title(); - test.Start(_L("CP932 test...")); + TRAPD(error1, TestL()); + TRAPD(error2, TestINC090073L()); + TRAPD(error3, OOMTestL()); - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - test(error==KErrNone); + __UHEAP_MARKEND; - delete trapCleanup; + if(error1 == KErrNone && error2 == KErrNone && error3 == KErrNone) + { + SetTestStepResult(EPass); + } - test.End(); - test.Close(); - - __UHEAP_MARKEND; - return error; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP932.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP932.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_CP932_H__ +#define __T_CP932_H__ + +#include + +class CT_CP932 : public CTestStep + { +public: + CT_CP932(); +protected: + TVerdict doTestStepL(); +private: + void TestL(); + void TestINC090073L(); + void OOMTestL(); + }; + +_LIT(KTestStep_T_CP932, "T_CP932"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP932.mmp --- a/charconvfw/fatfilenameconversionplugins/test/T_CP932.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET t_cp932.exe -CAPABILITY All -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCE T_CP932.CPP - - -LIBRARY euser.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP932.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP932.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,21 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run T_CP932 tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP932 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP936.CPP --- a/charconvfw/fatfilenameconversionplugins/test/T_CP936.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP936.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,10 +16,18 @@ */ -#include -#include +#include "T_CP936.h" -LOCAL_D RTest test(_L("T_CP936.exe")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } _LIT16(Uni_1, "\x0053\x0059\x004D\x3125\x312F\x3122\xFFFF\x9673\xFA29"); _LIT8(CP936_1, "\x53\x59\x4D\xA8\xE5\x5F\xA8\xE2\x5F\xEA\x90\xFE\x4F"); @@ -40,9 +48,10 @@ @SYMTestActions Tests for conversions from/to Unicode, using a function pointer @SYMTestExpectedResults Test must not fail */ -void Test() +void CT_CP936::TestL() { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1778 ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1778 ")); + RLibrary lib; const TUidType serverUid(KNullUid,KNullUid,KPluginUid); @@ -102,9 +111,10 @@ @SYMTestActions Tests for correct character conversion on certain chinese characters for CP936 @SYMTestExpectedResults Test must not fail */ -void TestINC090073() +void CT_CP936::TestINC090073L() { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1847-0001 ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1847-0001 ")); + _LIT16(unicode, "\x7CCD\x74EF\x8026\x8F8F\x94F3\x7633\x6DFC\x9785\x7F81\x7A37\x61A9\x80B1\x86A3\x89E5\x80F2\x9B48\x9E47\x6C19\x7B71\x946B\x6B46\x6615"); _LIT8(CP932Code, "\xF4\xD9\xEA\xB1\xF1\xEE\xEA\xA3\xEF\xA5\xF1\xAC\xED\xB5\xF7\xB1\xEE\xBF\xF0\xA2\xED\xAC\xEB\xC5\xF2\xBC\xF6\xA1\xEB\xDC\xF7\xCC\xF0\xC2\xEB\xAF\xF3\xE3\xF6\xCE\xEC\xA7\xEA\xBF"); @@ -124,7 +134,7 @@ TConvertFromUnicodeL aConvertFromUnicodeL = reinterpret_cast (function1); TBuf8<50> foreign1; - + foreign1.Zero(); const TDesC16& unicode1(unicode); TRAPD(err,(*aConvertFromUnicodeL)(foreign1, unicode1)); //testing conversion from Unicode @@ -136,9 +146,9 @@ lib.Close(); } -void OOMTest() +void CT_CP936::OOMTestL() { - test.Next(_L("OOM testing")); + INFO_PRINTF1(_L("OOM testing")); TInt err, tryCount = 0; do { @@ -151,7 +161,7 @@ // Setting Heap failure for OOM test __UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount); - TRAP(err,Test()); + TRAP(err,TestL()); __UHEAP_SETFAIL(RHeap::ENone, 0); @@ -167,37 +177,30 @@ }while (err == KErrNoMemory); test(err == KErrNone); - test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); - } - - -LOCAL_C void DoE32MainL() - { - __UHEAP_MARK; - - Test(); - TestINC090073(); - OOMTest(); - - __UHEAP_MARKEND; + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i"), tryCount); } -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; +CT_CP936::CT_CP936() + { + SetTestStepName(KTestStep_T_CP936); + } - test.Title(); - test.Start(_L("CP936 test...")); +TVerdict CT_CP936::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - test(error==KErrNone); - - delete trapCleanup; - - test.End(); - test.Close(); + TRAPD(error1, TestL()); + TRAPD(error2, TestINC090073L()); + TRAPD(error3, OOMTestL()); + + __UHEAP_MARKEND; - __UHEAP_MARKEND; - return error; - } + if(error1 == KErrNone && error2 == KErrNone && error3 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP936.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP936.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_CP936_H__ +#define __T_CP936_H__ + +#include + +class CT_CP936 : public CTestStep + { +public: + CT_CP936(); +protected: + TVerdict doTestStepL(); +private: + void TestL(); + void TestINC090073L(); + void OOMTestL(); + }; + +_LIT(KTestStep_T_CP936, "T_CP936"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP936.mmp --- a/charconvfw/fatfilenameconversionplugins/test/T_CP936.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET t_cp936.exe -CAPABILITY All -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCE T_CP936.CPP - - -LIBRARY euser.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP936.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP936.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,21 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run T_CP936 tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP936 diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP949.CPP --- a/charconvfw/fatfilenameconversionplugins/test/T_CP949.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP949.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,10 +16,20 @@ */ -#include +#include "T_CP949.h" #include -LOCAL_D RTest test(_L("T_CP949.exe")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + _LIT16(Uni_1, "\xFFFF\x0053\x0059\x004D\x0042\x0049\x0041\x004E\xAC21\xC6AA\xFFFF\x9673\x8A70"); _LIT8(CP949_1, "\x5F\x53\x59\x4D\x42\x49\x41\x4E\x81\x4D\x9F\x42\x5F\xF2\xE7\xFD\xFE"); @@ -40,9 +50,9 @@ @SYMTestActions Tests for conversions from/to Unicode, using a function pointer @SYMTestExpectedResults Test must not fail */ -void Test() +void CT_CP949::TestL() { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1777 ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1777 ")); RLibrary lib; const TUidType serverUid(KNullUid,KNullUid,KPluginUid); @@ -103,9 +113,9 @@ @SYMTestActions Tests for correct character conversion on certain chinese characters for CP936 @SYMTestExpectedResults Test must not fail */ -void TestINC090073() +void CT_CP949::TestINC090073L() { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1847-0002 ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1847-0002 ")); _LIT16(unicode, "\x715C\x7A37\x61A9\x80B1\x86A3\x6B46\x6615"); _LIT8(CP932Code, "\xE9\xF2\xF2\xC3\xCC\xA8\xCE\xDD\xCD\xF7\xFD\xE4\xFD\xDA"); @@ -137,9 +147,9 @@ lib.Close(); } -void OOMTest() +void CT_CP949::OOMTestL() { - test.Next(_L("OOM testing")); + INFO_PRINTF1(_L("OOM testing")); TInt err, tryCount = 0; do { @@ -152,7 +162,7 @@ // Setting Heap failure for OOM test __UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount); - TRAP(err,Test()); + TRAP(err,TestL()); __UHEAP_SETFAIL(RHeap::ENone, 0); @@ -168,37 +178,33 @@ }while (err == KErrNoMemory); test(err == KErrNone); - test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"), tryCount); } -LOCAL_C void DoE32MainL() - { - __UHEAP_MARK; +CT_CP949::CT_CP949() + { + SetTestStepName(KTestStep_T_CP949); + } + - Test(); - TestINC090073(); - OOMTest(); - __UHEAP_MARKEND; - } +TVerdict CT_CP949::doTestStepL() + { + SetTestStepResult(EFail); -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; + __UHEAP_MARK; - test.Title(); - test.Start(_L("CP949 test...")); + TRAPD(error1, TestL()); + TRAPD(error2, TestINC090073L()); + TRAPD(error3, OOMTestL()); - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - test(error==KErrNone); + __UHEAP_MARKEND; - delete trapCleanup; + if(error1 == KErrNone && error2 == KErrNone && error3 == KErrNone) + { + SetTestStepResult(EPass); + } - test.End(); - test.Close(); - - __UHEAP_MARKEND; - return error; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP949.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP949.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_CP949_H__ +#define __T_CP949_H__ + +#include + +class CT_CP949 : public CTestStep + { +public: + CT_CP949(); +protected: + TVerdict doTestStepL(); +private: + void TestL(); + void TestINC090073L(); + void OOMTestL(); + }; + +_LIT(KTestStep_T_CP949, "T_CP949"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP949.mmp --- a/charconvfw/fatfilenameconversionplugins/test/T_CP949.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET t_cp949.exe -CAPABILITY All -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCE T_CP949.CPP - - -LIBRARY euser.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP949.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP949.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,21 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run T_CP949 tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP949 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP950.CPP --- a/charconvfw/fatfilenameconversionplugins/test/T_CP950.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP950.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,10 +16,20 @@ */ -#include +#include "T_CP950.h" #include -LOCAL_D RTest test(_L("T_CP950.exe")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + _LIT16(Uni_1, "\x0053\x3125\x3122\xAAAA\x9673\x2593\xFA0C\x3000"); _LIT8(CP950_1, "\x53\xA3\xB6\xA3\xB3\x5F\xB3\xAF\xF9\xFE\xC9\x4A\xA1\x40"); @@ -41,9 +51,9 @@ @SYMTestActions Tests for conversions from/to Unicode, using a function pointer @SYMTestExpectedResults Test must not fail */ -void Test() +void CT_CP950::TestL() { - test.Next(_L("@SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1776")); + INFO_PRINTF1(_L("@SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1776")); RLibrary lib; const TUidType serverUid(KNullUid,KNullUid,KPluginUid); @@ -97,7 +107,7 @@ } // test code for INC080460: FATCharsetConv panics - stops china build booting -void TestINC080460() +void CT_CP950::TestINC080460L() { RLibrary lib; const TUidType serverUid(KNullUid,KNullUid,KPluginUid); @@ -192,9 +202,9 @@ @SYMTestActions Tests for correct character conversion on certain chinese characters for CP936 @SYMTestExpectedResults Test must not fail */ -void TestINC090073() +void CT_CP950::TestINC090073L() { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1847-0003 ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-FATCHARSETCONV-CT-1847-0003 ")); _LIT16(unicode, "\x7C91\x8026\x8160\x7633\x6DFC\x715C\x6600\x9785\x86D8\x7A37\x61A9\x80B1\x86A3\x89E5\x80F2\x9B48\x6C19\x7B71\x946B\x6B46\x6615"); _LIT8(CP950Code, "\xD3\x4A\xBD\xA2\xDF\x73\xEA\x6F\xD9\xE7\xB7\xD4\xA9\xFB\xBB\xDF\xDB\xB1\xBD\x5E\xBE\xCD\xAA\xD0\xB0\x47\xDF\xFD\xD3\x6A\xEF\x69\xCB\x49\xDF\x4E\xF8\xCA\xDD\xF5\xA9\xFD"); @@ -225,9 +235,9 @@ lib.Close(); } -void OOMTest() +void CT_CP950::OOMTestL() { - test.Next(_L("OOM testing")); + INFO_PRINTF1(_L("OOM testing")); TInt err, tryCount = 0; do { @@ -240,7 +250,7 @@ // Setting Heap failure for OOM test __UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount); - TRAP(err,Test()); + TRAP(err,TestL()); __UHEAP_SETFAIL(RHeap::ENone, 0); @@ -256,32 +266,33 @@ }while (err == KErrNoMemory); test(err == KErrNone); - test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"), tryCount); } -LOCAL_C void DoE32MainL() - { - Test(); - TestINC090073(); - TestINC080460(); - OOMTest(); - } +CT_CP950::CT_CP950() + { + SetTestStepName(KTestStep_T_CP950); + } + -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; +TVerdict CT_CP950::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; - test.Title(); - test.Start(_L("CP950 test...")); + TRAPD(error1, TestL()); + TRAPD(error2, TestINC090073L()); + TRAPD(error3, TestINC080460L()); + TRAPD(error4, OOMTestL()); - CTrapCleanup* trapCleanup=CTrapCleanup::New(); - TRAPD(error, DoE32MainL()); - delete trapCleanup; + __UHEAP_MARKEND; - test.End(); - test.Close(); + if(error1 == KErrNone && error2 == KErrNone && error3 == KErrNone && error4 == KErrNone) + { + SetTestStepResult(EPass); + } - __UHEAP_MARKEND; - return error; - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP950.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP950.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,39 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __T_CP950_H__ +#define __T_CP950_H__ + +#include + +class CT_CP950 : public CTestStep + { +public: + CT_CP950(); +protected: + TVerdict doTestStepL(); +private: + void TestL(); + void TestINC090073L(); + void TestINC080460L(); + void OOMTestL(); + }; + +_LIT(KTestStep_T_CP950, "T_CP950"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP950.mmp --- a/charconvfw/fatfilenameconversionplugins/test/T_CP950.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - - -TARGET t_cp950.exe -CAPABILITY All -TARGETTYPE exe - -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCE T_CP950.CPP - - -LIBRARY euser.lib - -SMPSAFE -//RTEST diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_CP950.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_CP950.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,21 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html";. +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +PRINT Run T_CP950 tests +// +LOAD_SUITE T_FatCharsetConvServer +RUN_TEST_STEP 200 T_FatCharsetConvServer T_CP950 diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_FatCharsetConvServer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_FatCharsetConvServer.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,182 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + + + +#include "T_FatCharsetConvServer.h" +#include "T_CP874.h" +#include "T_CP932.h" +#include "T_CP936.h" +#include "T_CP949.h" +#include "T_CP950.h" +#include "T_CP1250.h" +#include "T_CP1251.h" +#include "T_CP1252.h" +#include "T_CP1253.h" +#include "T_CP1254.h" +#include "T_CP1255.h" +#include "T_CP1256.h" +#include "T_CP1257.h" +#include "T_CP1258.h" +#include "T_CP54936.h" + +/* Path to the script + +c:\z:\t_TEF\t_TEF_All.script + +*/ + +_LIT(KServerName,"T_FatCharsetConvServer"); + +CT_FatCharsetConvServer *CT_FatCharsetConvServer::NewL() +/** + @return - Instance of the test server + Same code for Secure and non-secure variants + Called inside the MainL() function to create and start the + CTestServer derived server. + */ + { + CT_FatCharsetConvServer * server = new (ELeave) CT_FatCharsetConvServer(); + CleanupStack::PushL(server); + // CServer base class call + server->StartL(KServerName); + CleanupStack::Pop(server); + return server; + } + + +LOCAL_C void MainL() +// +// Secure variant +// Much simpler, uses the new Rendezvous() call to sync with the client +// + { +#if (defined __DATA_CAGING__) + RProcess().DataCaging(RProcess::EDataCagingOn); + RProcess().SecureApi(RProcess::ESecureApiOn); +#endif + CActiveScheduler* sched=NULL; + sched=new(ELeave) CActiveScheduler; + CActiveScheduler::Install(sched); + CT_FatCharsetConvServer *server = NULL; + // Create the CTestServer derived server + TRAPD(err,server = CT_FatCharsetConvServer::NewL()); + if(!err) + { + // Sync with the client and enter the active scheduler + RProcess::Rendezvous(KErrNone); + sched->Start(); + } + delete server; + delete sched; + } + +/** @return - Standard Epoc error code on process exit + Secure variant only + Process entry point. Called by client using RProcess API +*/ +GLDEF_C TInt E32Main() + { + __UHEAP_MARK; + CTrapCleanup* cleanup = CTrapCleanup::New(); + if(cleanup == NULL) + { + return KErrNoMemory; + } + TRAPD(err,MainL()); + // This if statement is here just to shut up RVCT, which would otherwise warn + // that err was set but never used + if (err) + { + err = KErrNone; + } + delete cleanup; + __UHEAP_MARKEND; + return KErrNone; + } + +CTestStep *CT_FatCharsetConvServer::CreateTestStep(const TDesC& aStepName) +/** + @return - A CTestStep derived instance + Secure and non-secure variants + Implementation of CTestServer pure virtual + */ + { + if(aStepName == KTestStep_T_CP874) + { + return new CT_CP874(); + } + else if(aStepName == KTestStep_T_CP932) + { + return new CT_CP932(); + } + else if(aStepName == KTestStep_T_CP936) + { + return new CT_CP936(); + } + else if(aStepName == KTestStep_T_CP949) + { + return new CT_CP949(); + } + else if(aStepName == KTestStep_T_CP950) + { + return new CT_CP950(); + } + else if(aStepName == KTestStep_T_CP1250) + { + return new CT_CP1250(); + } + else if(aStepName == KTestStep_T_CP1251) + { + return new CT_CP1251(); + } + else if(aStepName == KTestStep_T_CP1252) + { + return new CT_CP1252(); + } + else if(aStepName == KTestStep_T_CP1253) + { + return new CT_CP1253(); + } + else if(aStepName == KTestStep_T_CP1254) + { + return new CT_CP1254(); + } + else if(aStepName == KTestStep_T_CP1255) + { + return new CT_CP1255(); + } + else if(aStepName == KTestStep_T_CP1256) + { + return new CT_CP1256(); + } + else if(aStepName == KTestStep_T_CP1257) + { + return new CT_CP1257(); + } + else if(aStepName == KTestStep_T_CP1258) + { + return new CT_CP1258(); + } + else if(aStepName == KTestStep_T_CP54936) + { + return new CT_CP54936(); + } + return NULL; + } + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_FatCharsetConvServer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_FatCharsetConvServer.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + + + +#ifndef __T_FatCharsetConvServer_H__ +#define __T_FatCharsetConvServer_H__ + +// Include Files + +#include + +class CT_FatCharsetConvServer : public CTestServer + { +public: + static CT_FatCharsetConvServer* NewL(); +//from CTestServer + virtual CTestStep* CreateTestStep(const TDesC& aStepName); + }; + +#endif // __T_FatCharsetConvServer_H__ + diff -r 6124ff6478cc -r 11e2bb0d14ba charconvfw/fatfilenameconversionplugins/test/T_FatCharsetConvServer.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/charconvfw/fatfilenameconversionplugins/test/T_FatCharsetConvServer.mmp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,51 @@ +/* +* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +TARGET t_FatCharsetConvServer.exe +TARGETTYPE exe +UID 0x1000007A 0xE27AD85E + +CAPABILITY ProtServ + +OS_LAYER_SYSTEMINCLUDE_SYMBIAN + +SOURCEPATH ..\test +SOURCE T_FatCharsetConvServer.cpp +SOURCE T_CP874.cpp +SOURCE T_CP932.cpp +SOURCE T_CP936.cpp +SOURCE T_CP949.cpp +SOURCE T_CP950.cpp +SOURCE T_CP1250.cpp +SOURCE T_CP1251.cpp +SOURCE T_CP1252.cpp +SOURCE T_CP1253.cpp +SOURCE T_CP1254.cpp +SOURCE T_CP1255.cpp +SOURCE T_CP1256.cpp +SOURCE T_CP1257.cpp +SOURCE T_CP1258.cpp +SOURCE T_CP54936.cpp + +LIBRARY euser.lib +LIBRARY testexecuteutils.lib +LIBRARY testexecutelogclient.lib +LIBRARY hal.lib + +SMPSAFE + diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/fontstore/group/t_fntstore.pkg --- a/fontservices/fontstore/group/t_fntstore.pkg Mon Jul 12 15:26:00 2010 +0800 +++ b/fontservices/fontstore/group/t_fntstore.pkg Thu Aug 26 11:46:18 2010 +0800 @@ -25,12 +25,7 @@ ; Vendor name : "t_PTPipsuite" -; sample from the PC Connectivity -; "\epoc32\data\z\testdata\scripts\mtp\t_PTPipsuite.script"-"c:\mtp\testdata\scripts\mtp\t_ptpipsuite.script" -; "\epoc32\data\z\testdata\scripts\mtp\PTPTest.ini"-"c:\mtp\testdata\scripts\mtp\ptptest.ini" - ; test scripts -; "\epoc32\data\z\fntstoretest\fntstoretest_T_All.script"-"c:\fntstoretest\fntstoretest_T_All.script" "\epoc32\data\z\fntstoretest\fntstoretest_T_Fnt.script"-"c:\fntstoretest\fntstoretest_T_Fnt.script" "\epoc32\data\z\fntstoretest\fntstoretest_T_Cache.script"-"c:\fntstoretest\fntstoretest_T_Cache.script" "\epoc32\data\z\fntstoretest\fntstoretest_T_FntMem.script"-"c:\fntstoretest\fntstoretest_T_FntMem.script" diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/fontstore/inc/OPENFONT.H --- a/fontservices/fontstore/inc/OPENFONT.H Mon Jul 12 15:26:00 2010 +0800 +++ b/fontservices/fontstore/inc/OPENFONT.H Thu Aug 26 11:46:18 2010 +0800 @@ -328,7 +328,7 @@ TBool HasCharacterL(TInt aCode) const; TBool GetCharacterData(TInt aSessionHandle,TInt aCode,const TOpenFontCharMetrics*& aMetrics,const TUint8*& aBitmap) const; void OnFileDeleted(); - COpenFontGlyphCache* GetGlyphCache(); + COpenFontGlyphCache* GetGlyphCache() const; inline TInt FontCapitalAscent() const; inline TInt FontMaxAscent() const; inline TInt FontStandardDescent() const; @@ -371,7 +371,7 @@ private: const COpenFontGlyph* Glyph(TInt aSessionHandle,TInt aCode) const; - const COpenFontGlyph* FontCacheGlyph(TInt aCode); + const COpenFontGlyph* FontCacheGlyph(TInt aCode) const; void SetGlyphCache(COpenFontGlyphCache* aGlyphCache); diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/fontstore/inc/openfontsprivate.h --- a/fontservices/fontstore/inc/openfontsprivate.h Mon Jul 12 15:26:00 2010 +0800 +++ b/fontservices/fontstore/inc/openfontsprivate.h Thu Aug 26 11:46:18 2010 +0800 @@ -135,8 +135,6 @@ private: inline COpenFontSessionCacheEntry(const COpenFont* aFont, TInt aCode, TInt aGlyphIndex, const TOpenFontCharMetrics& aMetrics); ~COpenFontSessionCacheEntry(); -public: - TInt iLastAccess; // serial number of the last access to the glyph private: TInt iFontOffset; // offset of the font that contains this glyph, (not owned by this class!) @@ -150,20 +148,21 @@ */ class COpenFontSessionCache { + friend class COpenFontSessionCacheList; public: static COpenFontSessionCache* NewL(RHeap* aHeap, TInt aSessionHandle, TInt aEntries); void Delete(RHeap* aHeap); TInt SessionHandle() { return iSessionHandle; } - const COpenFontGlyph* Glyph(const COpenFont* aFont, TInt aCode, TInt& aIndex); + const COpenFontGlyph* Glyph(const COpenFont* aFont, TInt aCode, TInt& aIndex) const; void Insert(RHeap* aHeap, COpenFontSessionCacheEntry* aEntry, TInt aIndex); private: COpenFontSessionCache(TInt aSessionHandle); ~COpenFontSessionCache(); -public: - TInt iSessionHandle; - TInt iLastAccess; +private: + TInt iSessionHandle; + TInt64 iRandomSeed; ROffsetArray iEntryArray; }; diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/fontstore/src/OPENFONT.CPP --- a/fontservices/fontstore/src/OPENFONT.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/fontservices/fontstore/src/OPENFONT.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -26,6 +26,7 @@ #include "linkedfontsprivate.h" #include #include +#include #include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE @@ -904,13 +905,13 @@ iFileOffset = 0; } -COpenFontGlyphCache* COpenFont::GetGlyphCache() +COpenFontGlyphCache* COpenFont::GetGlyphCache() const { if (iGlyphCacheOffset == 0) { return NULL; } - return reinterpret_cast(PtrAdd(this, iGlyphCacheOffset)); + return reinterpret_cast(PtrAdd(const_cast(this), iGlyphCacheOffset)); } const COpenFontGlyph* COpenFont::Glyph(TInt aSessionHandle, TInt aCode) const @@ -949,7 +950,7 @@ @param aCode The code for the glpyh to look for in the cache @return A pointer to the requested glyph if it was found in the glyph cache, NULL if it was not found. */ -const COpenFontGlyph* COpenFont::FontCacheGlyph(TInt aCode) +const COpenFontGlyph* COpenFont::FontCacheGlyph(TInt aCode) const { if (COpenFontGlyphCache* glyphCache = GetGlyphCache()) { @@ -1112,58 +1113,52 @@ iEntryArray.Close(aHeap); } -const COpenFontGlyph* COpenFontSessionCache::Glyph(const COpenFont* aFont, TInt aCode, TInt& aIndex) +const COpenFontGlyph* COpenFontSessionCache::Glyph(const COpenFont* aFont, TInt aCode, TInt& aIndex) const { aIndex = -1; - TInt oldest = KMaxTInt; - TInt oldest_index = 0; TInt numEntries = iEntryArray.Count(); TInt index = GLYPH_CODE(aCode) % numEntries; // simple hash function to shorten searches for (TInt i = 0; i < numEntries; ++i, ++index) { if (index >= numEntries) + { index = 0; - COpenFontSessionCacheEntry* entry = iEntryArray[index]; + } + const COpenFontSessionCacheEntry* entry = iEntryArray[index]; if (entry == NULL) { - if (aIndex == -1) - aIndex = index; - } - else - { - if (entry->Font() == aFont && entry->iCode == aCode) + if (aIndex < 0) { - entry->iLastAccess = iLastAccess++; - return entry; - } - if (entry->iLastAccess < oldest) - { - oldest = entry->iLastAccess; - oldest_index = index; + aIndex = index; } } + else if (entry->Font() == aFont && entry->iCode == aCode) + { + return entry; + } } - if (aIndex == -1) - aIndex = oldest_index; return NULL; } void COpenFontSessionCache::Insert(RHeap* aHeap, COpenFontSessionCacheEntry* aEntry, TInt aIndex) { - if (aIndex < 0 || aIndex >= iEntryArray.Count()) + if (aIndex >= iEntryArray.Count()) { Panic(EFntSessionCacheIndexOutOfRange); } + if (aIndex < 0) + { + aIndex = Math::Rand(iRandomSeed) % iEntryArray.Count(); + } COpenFontSessionCacheEntry::Delete(aHeap, iEntryArray[aIndex]); iEntryArray.SetAt(aIndex, aEntry); - aEntry->iLastAccess = iLastAccess++; } COpenFontSessionCache::COpenFontSessionCache(TInt aSessionHandle): iSessionHandle(aSessionHandle), - iLastAccess(0) - { + iRandomSeed(0) + { } TInt COpenFontSessionCacheList::AddCache(COpenFontSessionCache* aCache) diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/fontstore/tfs/T_FNT.CPP --- a/fontservices/fontstore/tfs/T_FNT.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/fontservices/fontstore/tfs/T_FNT.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -323,7 +323,7 @@ TFileName fileName; fs1->GetFontFilePath(_L("DejaVu Sans Condensed"), fileName); - + TEST(fileName.CompareF(KValidFontPath) == 0); CleanupStack::PopAndDestroy(isolatedFontStore1); diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/fontstore/tfs/T_FontMetrics.cpp --- a/fontservices/fontstore/tfs/T_FontMetrics.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/fontservices/fontstore/tfs/T_FontMetrics.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -300,26 +300,33 @@ */ void CTFontMetrics::GetNearestFontToDesignHeightInPixels() { + INFO_PRINTF3(_L("iKPixelWidthInTwips = %d; iKPixelHeightInTwips = %d"), + iFontStore->iKPixelWidthInTwips, iFontStore->iKPixelHeightInTwips); + TOpenFontSpec openFontSpec = GetTOpenFontSpec(); + INFO_PRINTF1(_L("GetNearestFontToDesignHeightInPixels().ELangNone")); CFont* font = NULL; openFontSpec.SetScriptTypeForMetrics(ELangNone); iFontStore->GetNearestFontToDesignHeightInPixels(font, openFontSpec); Verify_GetNearestFontToDesignHeightInPixels(*font, openFontSpec.ScriptTypeForMetrics()); iFontStore->ReleaseFont(font); + INFO_PRINTF1(_L("GetNearestFontToDesignHeightInPixels().ELangFinnish")); font = NULL; openFontSpec.SetScriptTypeForMetrics(ELangFinnish); iFontStore->GetNearestFontToDesignHeightInPixels(font, openFontSpec); Verify_GetNearestFontToDesignHeightInPixels(*font, openFontSpec.ScriptTypeForMetrics()); iFontStore->ReleaseFont(font); + INFO_PRINTF1(_L("GetNearestFontToDesignHeightInPixels().ELangGreek")); font = NULL; openFontSpec.SetScriptTypeForMetrics(ELangGreek); iFontStore->GetNearestFontToDesignHeightInPixels(font, openFontSpec); Verify_GetNearestFontToDesignHeightInPixels(*font, openFontSpec.ScriptTypeForMetrics()); iFontStore->ReleaseFont(font); + INFO_PRINTF1(_L("GetNearestFontToDesignHeightInPixels().ELangRussian")); font = NULL; openFontSpec.SetScriptTypeForMetrics(ELangRussian); iFontStore->GetNearestFontToDesignHeightInPixels(font, openFontSpec); @@ -330,6 +337,12 @@ void CTFontMetrics::Verify_GetNearestFontToDesignHeightInPixels(const CFont& aFont, TInt aScript) { VerifyTypefaceNameAndID(aFont); + INFO_PRINTF4(_L("HeightInPixels() = %d; AscentInPixels() = %d; DescentInPixels() = %d"), + aFont.HeightInPixels(), aFont.AscentInPixels(), aFont.DescentInPixels()); + INFO_PRINTF4(_L("FontCapitalAscent() = %d; FontStandardDescent() = %d; FontMaxAscent() = %d"), + aFont.FontCapitalAscent(), aFont.FontStandardDescent(), aFont.FontMaxAscent()); + INFO_PRINTF4(_L("FontMaxDescent() = %d; FontMaxHeight() = %d; FontLineGap() = %d"), + aFont.FontMaxDescent(), aFont.FontMaxHeight(), aFont.FontLineGap()); // Old metrics TEST(KRequiredHeight == aFont.HeightInPixels()); TEST(19 == aFont.AscentInPixels()); @@ -337,30 +350,15 @@ // New metrics TEST(18 == aFont.FontCapitalAscent()); TEST(5 == aFont.FontStandardDescent()); - if (GlyphSample::EScriptNone == aScript) + if (GlyphSample::EScriptNone == aScript || + GlyphSample::EScriptLatin == aScript || + GlyphSample::EScriptGreek == aScript || + GlyphSample::EScriptCyrillic == aScript) { TEST(28 == aFont.FontMaxAscent()); TEST(8 == aFont.FontMaxDescent()); TEST(42 == aFont.FontLineGap()); } - else if (GlyphSample::EScriptLatin == aScript) - { - TEST(24 == aFont.FontMaxAscent()); - TEST(5 == aFont.FontMaxDescent()); - TEST(35 == aFont.FontLineGap()); - } - else if (GlyphSample::EScriptGreek == aScript) - { - TEST(22 == aFont.FontMaxAscent()); - TEST(5 == aFont.FontMaxDescent()); - TEST(33 == aFont.FontLineGap()); - } - else if (GlyphSample::EScriptCyrillic == aScript) - { - TEST(23 == aFont.FontMaxAscent()); - TEST(5 == aFont.FontMaxDescent()); - TEST(34 == aFont.FontLineGap()); - } else TEST(1 == 0); TEST(aFont.FontMaxAscent() + aFont.FontMaxDescent() == aFont.FontMaxHeight()); INFO_PRINTF2(_L("MaxCharWidthInPixels() returns %d"), aFont.MaxCharWidthInPixels()); @@ -393,24 +391,28 @@ { TOpenFontSpec openFontSpec = GetTOpenFontSpec(); + INFO_PRINTF1(_L("GetNearestFontToMaxHeightInPixels().ELangNone")); CFont* font = NULL; openFontSpec.SetScriptTypeForMetrics(ELangNone); iFontStore->GetNearestFontToMaxHeightInPixels(font, openFontSpec, KRequiredHeight); Verify_GetNearestFontToMaxHeightInPixels(*font, openFontSpec.ScriptTypeForMetrics()); iFontStore->ReleaseFont(font); + INFO_PRINTF1(_L("GetNearestFontToMaxHeightInPixels().ELangFinnish")); font = NULL; openFontSpec.SetScriptTypeForMetrics(ELangFinnish); iFontStore->GetNearestFontToMaxHeightInPixels(font, openFontSpec, KRequiredHeight); Verify_GetNearestFontToMaxHeightInPixels(*font, openFontSpec.ScriptTypeForMetrics()); iFontStore->ReleaseFont(font); + INFO_PRINTF1(_L("GetNearestFontToMaxHeightInPixels().ELangGreek")); font = NULL; openFontSpec.SetScriptTypeForMetrics(ELangGreek); iFontStore->GetNearestFontToMaxHeightInPixels(font, openFontSpec, KRequiredHeight); Verify_GetNearestFontToMaxHeightInPixels(*font, openFontSpec.ScriptTypeForMetrics()); iFontStore->ReleaseFont(font); + INFO_PRINTF1(_L("GetNearestFontToMaxHeightInPixels().ELangRussian")); font = NULL; openFontSpec.SetScriptTypeForMetrics(ELangRussian); iFontStore->GetNearestFontToMaxHeightInPixels(font, openFontSpec, KRequiredHeight); @@ -421,62 +423,42 @@ void CTFontMetrics::Verify_GetNearestFontToMaxHeightInPixels(const CFont& aFont, TInt aScript) { VerifyTypefaceNameAndID(aFont); + INFO_PRINTF4(_L("HeightInPixels() = %d; AscentInPixels() = %d; DescentInPixels() = %d"), + aFont.HeightInPixels(), aFont.AscentInPixels(), aFont.DescentInPixels()); + INFO_PRINTF4(_L("FontCapitalAscent() = %d; FontStandardDescent() = %d; FontMaxAscent() = %d"), + aFont.FontCapitalAscent(), aFont.FontStandardDescent(), aFont.FontMaxAscent()); + INFO_PRINTF4(_L("FontMaxDescent() = %d; FontMaxHeight() = %d; FontLineGap() = %d"), + aFont.FontMaxDescent(), aFont.FontMaxHeight(), aFont.FontLineGap()); if (GlyphSample::EScriptNone == aScript) { // Old metrics - TEST(15 == aFont.HeightInPixels()); - TEST(12 == aFont.AscentInPixels()); - TEST(15 - 12 == aFont.DescentInPixels()); - // New metrics - TEST(11 == aFont.FontCapitalAscent()); - TEST(3 == aFont.FontStandardDescent()); - TEST(18 == aFont.FontMaxAscent()); - TEST(5 == aFont.FontMaxDescent()); - TEST(KRequiredHeight - 1 == aFont.FontMaxHeight()); - TEST(29 == aFont.FontLineGap()); - } - else if (GlyphSample::EScriptLatin == aScript) - { - // Old metrics - TEST(20 == aFont.HeightInPixels()); - TEST(16 == aFont.AscentInPixels()); - TEST(20 - 16 == aFont.DescentInPixels()); - // New metrics - TEST(15 == aFont.FontCapitalAscent()); - TEST(4 == aFont.FontStandardDescent()); - TEST(20 == aFont.FontMaxAscent()); - TEST(4 == aFont.FontMaxDescent()); - TEST(KRequiredHeight == aFont.FontMaxHeight()); - TEST(30 == aFont.FontLineGap()); + TEST(16 == aFont.HeightInPixels()); + TEST(13 == aFont.AscentInPixels()); + TEST(16 - 13 == aFont.DescentInPixels()); + // New metrics + TEST(12 == aFont.FontCapitalAscent()); + TEST(3 == aFont.FontStandardDescent()); + TEST(19 == aFont.FontMaxAscent()); + TEST(6 == aFont.FontMaxDescent()); + TEST(KRequiredHeight + 1 == aFont.FontMaxHeight()); + TEST(31 == aFont.FontLineGap()); } - else if (GlyphSample::EScriptGreek == aScript) - { - // Old metrics - TEST(20 == aFont.HeightInPixels()); - TEST(16 == aFont.AscentInPixels()); - TEST(20 - 16 == aFont.DescentInPixels()); - // New metrics - TEST(15 == aFont.FontCapitalAscent()); - TEST(4 == aFont.FontStandardDescent()); - TEST(18 == aFont.FontMaxAscent()); - TEST(5 == aFont.FontMaxDescent()); - TEST(KRequiredHeight - 1 == aFont.FontMaxHeight()); - TEST(29 == aFont.FontLineGap()); - } - else if (GlyphSample::EScriptCyrillic == aScript) - { - // Old metrics - TEST(21 == aFont.HeightInPixels()); - TEST(16 == aFont.AscentInPixels()); - TEST(21 - 16 == aFont.DescentInPixels()); - // New metrics - TEST(16 == aFont.FontCapitalAscent()); - TEST(4 == aFont.FontStandardDescent()); - TEST(20 == aFont.FontMaxAscent()); - TEST(4 == aFont.FontMaxDescent()); - TEST(KRequiredHeight == aFont.FontMaxHeight()); - TEST(30 == aFont.FontLineGap()); - } + else if (GlyphSample::EScriptLatin == aScript || + GlyphSample::EScriptGreek == aScript || + GlyphSample::EScriptCyrillic == aScript) + { + // Old metrics + TEST(24 == aFont.HeightInPixels()); + TEST(19 == aFont.AscentInPixels()); + TEST(24 - 19 == aFont.DescentInPixels()); + // New metrics + TEST(18 == aFont.FontCapitalAscent()); + TEST(5 == aFont.FontStandardDescent()); + TEST(28 == aFont.FontMaxAscent()); + TEST(8 == aFont.FontMaxDescent()); + TEST(KRequiredHeight + 12 == aFont.FontMaxHeight()); + TEST(42 == aFont.FontLineGap()); + } else TEST(1 == 0); INFO_PRINTF2(_L("MaxCharWidthInPixels() returns %d"), aFont.MaxCharWidthInPixels()); } diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/fontstore/tfs/T_GetNearestFont.cpp --- a/fontservices/fontstore/tfs/T_GetNearestFont.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/fontservices/fontstore/tfs/T_GetNearestFont.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -313,14 +313,20 @@ void CTGetNearestFont::AliasedFontCreationL() { TInt numTypefaces = iTfs->NumTypefaces(); - - TTypefaceSupport tfSupport; - + if(numTypefaces <2) + return; + + TTypefaceSupport tfSupport1; + + iTfs->TypefaceSupport(tfSupport1, 0); + INFO_PRINTF1(tfSupport1.iTypeface.iName); // Get the first different typeface + TTypefaceSupport tfSupport2; while (--numTypefaces) { - iTfs->TypefaceSupport(tfSupport, numTypefaces); - if (tfSupport.iTypeface.iName != KTypefaceName) + iTfs->TypefaceSupport(tfSupport2, numTypefaces); + INFO_PRINTF1(tfSupport2.iTypeface.iName); + if (tfSupport2.iTypeface.iName != tfSupport1.iTypeface.iName) { break; } @@ -328,19 +334,17 @@ // Make sure we aren't at the end of the list TEST(numTypefaces); - - TPtrC typeface = tfSupport.iTypeface.iName; - // Alias the other font with the same name as the original - iTfs->SetFontNameAliasL(KTypefaceName, typeface); + iTfs->SetFontNameAliasL(tfSupport1.iTypeface.iName, tfSupport2.iTypeface.iName); // Request the original font (making sure we don't get the aliased font back) CFont* font = NULL; - TFontSpec spec(KTypefaceName, 0); + TFontSpec spec(tfSupport1.iTypeface.iName, 0); TInt ret = iTfs->GetNearestFontToDesignHeightInPixels(font, spec); TEST(ret == KErrNone); TFontSpec returnedSpecs = font->FontSpecInTwips(); - TEST(returnedSpecs.iTypeface.iName == KTypefaceName); + INFO_PRINTF1(returnedSpecs.iTypeface.iName); + TEST(returnedSpecs.iTypeface.iName == tfSupport1.iTypeface.iName); iTfs->ReleaseFont(font); } diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/referencefonts/group/bld.inf --- a/fontservices/referencefonts/group/bld.inf Mon Jul 12 15:26:00 2010 +0800 +++ b/fontservices/referencefonts/group/bld.inf Thu Aug 26 11:46:18 2010 +0800 @@ -28,8 +28,10 @@ PRJ_EXPORTS eon_font.iby /epoc32/rom/include/eon_font.iby +reffonts_for_sirocco.iby /epoc32/rom/include/reffonts_for_sirocco.iby ../group/ttf2bdf.ipr /epoc32/engdoc/tools/ttf2bdf.ipr + ../inc/FONTIDS.H SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(fontids.h) #ifndef TOOLS diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/referencefonts/group/reffonts_for_sirocco.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/referencefonts/group/reffonts_for_sirocco.iby Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,36 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __REF_FONTS_FOR_SIROCCO_IBY__ +#define __REF_FONTS_FOR_SIROCCO_IBY__ + + +data=ZRESOURCE\Fonts\DejaVuSansCondensed.ttf Resource\Fonts\DejaVuSansCondensed.ttf +data=ZRESOURCE\Fonts\DejaVuSansCondensed-Bold.ttf Resource\Fonts\DejaVuSansCondensed-Bold.ttf +data=ZRESOURCE\Fonts\DejaVuSansCondensed-Oblique.ttf Resource\Fonts\DejaVuSansCondensed-Oblique.ttf +data=ZRESOURCE\Fonts\DejaVuSansCondensed-BoldOblique.ttf Resource\Fonts\DejaVuSansCondensed-BoldOblique.ttf +data=ZRESOURCE\Fonts\DejaVuSansMono.ttf Resource\Fonts\DejaVuSansMono.ttf +data=ZRESOURCE\Fonts\DejaVuSansMono-Bold.ttf Resource\Fonts\DejaVuSansMono-Bold.ttf +data=ZRESOURCE\Fonts\DejaVuSansMono-Oblique.ttf Resource\Fonts\DejaVuSansMono-Oblique.ttf +data=ZRESOURCE\Fonts\DejaVuSansMono-BoldOblique.ttf Resource\Fonts\DejaVuSansMono-BoldOblique.ttf +data=ZRESOURCE\Fonts\DejaVuSerifCondensed.ttf Resource\Fonts\DejaVuSerifCondensed.ttf +data=ZRESOURCE\Fonts\DejaVuSerifCondensed-Bold.ttf Resource\Fonts\DejaVuSerifCondensed-Bold.ttf +data=ZRESOURCE\Fonts\DejaVuSerifCondensed-Italic.ttf Resource\Fonts\DejaVuSerifCondensed-Italic.ttf +data=ZRESOURCE\Fonts\DejaVuSerifCondensed-BoldItalic.ttf Resource\Fonts\DejaVuSerifCondensed-BoldItalic.ttf + + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textbase/group/textbasetest.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textbase/group/textbasetest.bat Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,8 @@ +@echo on +testexecute.exe c:\test\TestBaseTest\TextBaseTest_T_Rgb.script +testexecute.exe c:\test\TestBaseTest\TextBaseTest_T_Types.script +testexecute.exe c:\test\TestBaseTest\TextBaseTest_T_BiDiDefect.script +testexecute.exe c:\test\TestBaseTest\TextBaseTest_T_LineBreak.script +testexecute.exe c:\test\TestBaseTest\TextBaseTest_T_GlyphSelection.script +testexecute.exe c:\test\TestBaseTest\TextBaseTest_T_BiDi.script +@echo off \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textbase/group/textbasetest.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textbase/group/textbasetest.pkg Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,33 @@ +; +; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +; All rights reserved. +; This component and the accompanying materials are made available +; under the terms of "Eclipse Public License v1.0" +; which accompanies this distribution, and is available +; at the URL "http:;www.eclipse.org/legal/epl-v10.html". +; +; Initial Contributors: +; Nokia Corporation - initial contribution. +; +; Contributors: +; +; Description: +; + + +;Languages +&EN + + +;Localised Vendor name +%{"t_form EN"} + +; Vendor name +: "TTextBaseServer" + +"\epoc32\data\z\TextBaseTest\TextBaseTest_T_Rgb.script"-"c:\test\TestBaseTest\TextBaseTest_T_Rgb.script" +"\epoc32\data\z\TextBaseTest\TextBaseTest_T_Types.script"-"c:\test\TestBaseTest\TextBaseTest_T_Types.script" +"\epoc32\data\z\TextBaseTest\TextBaseTest_T_BiDiDefect.script"-"c:\test\TestBaseTest\TextBaseTest_T_BiDiDefect.script" +"\epoc32\data\z\TextBaseTest\TextBaseTest_T_LineBreak.script"-"c:\test\TestBaseTest\TextBaseTest_T_LineBreak.script" +"\epoc32\data\z\TextBaseTest\TextBaseTest_T_GlyphSelection.script"-"c:\test\TestBaseTest\TextBaseTest_T_GlyphSelection.script" +"\epoc32\data\z\TextBaseTest\TextBaseTest_T_BiDi.script"-"c:\test\TestBaseTest\TextBaseTest_T_BiDi.script" \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/group/TC_SHAP_shapeText.mmp --- a/fontservices/textshaperplugin/group/TC_SHAP_shapeText.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* TC_SHAP_Shaper.MMP -* Test the CShaper class -* Shaper Test -* -*/ - - -/** - @file -*/ - -TARGET tc_shap_shapetext.exe -TARGETTYPE exe - -USERINCLUDE ../source -USERINCLUDE ../IcuSource -USERINCLUDE ../IcuSource/layout -USERINCLUDE ../IcuSource/common -USERINCLUDE ../test -USERINCLUDE ../include -OS_LAYER_ESTLIB_SYSTEMINCLUDE -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../test -SOURCE TC_SHAP_shapeText.cpp - -LIBRARY euser.lib -LIBRARY estlib.lib -LIBRARY estor.lib -LIBRARY efsrv.lib -LIBRARY gdi.lib -LIBRARY fntstr.lib -LIBRARY bitgdi.lib -LIBRARY ecom.lib -LIBRARY bafl.lib - -EPOCHEAPSIZE 4096 2097152 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/group/T_IcuLayoutEngine.MMP --- a/fontservices/textshaperplugin/group/T_IcuLayoutEngine.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -/* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* Builds the ICU layoutEngine Test into a Symbian EXE -* ICU Layout engine Test -* -*/ - - -/** - @file -*/ - - -target T_IcuLayoutEngine.exe -targettype exe - -CAPABILITY All -Tcb - -userinclude ..\IcuSource -userinclude ..\IcuSource\layout -userinclude ..\IcuSource\common -userinclude ..\test\letest -userinclude ..\include -OS_LAYER_ESTLIB_SYSTEMINCLUDE -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -// not official UID, get a real one! -VENDORID 0x70000001 - -sourcepath ..\source -source Umemory.cpp - -sourcepath ..\test -source T_IcuLayoutEngine.cpp - -sourcepath ..\test\letest -source cmaps.cpp -source FontTableCache.cpp -source letest.cpp -source PortableFontInstance.cpp -source testdata.cpp - -//STATICLIBRARY ecrt0.lib -library EUSER.LIB IcuLayoutEngine.lib estlib.lib - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/group/bld.inf --- a/fontservices/textshaperplugin/group/bld.inf Mon Jul 12 15:26:00 2010 +0800 +++ b/fontservices/textshaperplugin/group/bld.inf Thu Aug 26 11:46:18 2010 +0800 @@ -31,13 +31,12 @@ IcuLayoutEngine.mmp PRJ_TESTMMPFILES - TC_SHAP_shapeText.mmp + t_shapetestserver.mmp ../test/HindiDemo/group/hindiDemo.mmp manual ../test/CreateTestData/T_SHAP_createTestData.mmp support PRJ_TESTEXPORTS ../test/HindiDemo/group/HindiDemo.iby /epoc32/rom/include/hindidemo.iby - ../test/TC_SHAP_shapeText.iby /epoc32/rom/include/tc_shap_shapetext.iby ../test/CreateTestData/T_SHAP_createTestData.iby /epoc32/rom/include/t_shap_createtestdata.iby //files containing input and expected output data for shaper @@ -78,3 +77,16 @@ ../test/testdata/shapergurmukhi3.dat z:/test/data/shapergurmukhi3.dat ../test/testdata/shapergurmukhi4.dat z:/test/data/shapergurmukhi4.dat ../test/testdata/shapergurmukhi5.dat z:/test/data/shapergurmukhi5.dat + + ../test/shapetest.iby /epoc32/rom/include/shapetest.iby + ../test/scripts/shapetest.bat z:/shapetest/shapetest.bat + ../test/scripts/shapetest_t_all.script z:/shapetest/shapetest_t_all.script + ../test/scripts/shapetest_t_hindi.script z:/shapetest/shapetest_t_hindi.script + ../test/scripts/shapetest_t_kannada.script z:/shapetest/shapetest_t_kannada.script + ../test/scripts/shapetest_t_gujarati.script z:/shapetest/shapetest_t_gujarati.script + ../test/scripts/shapetest_t_bengali.script z:/shapetest/shapetest_t_bengali.script + ../test/scripts/shapetest_t_tamil.script z:/shapetest/shapetest_t_tamil.script + ../test/scripts/shapetest_t_telugu.script z:/shapetest/shapetest_t_telugu.script + ../test/scripts/shapetest_t_gurmukhi.script z:/shapetest/shapetest_t_gurmukhi.script + ../test/scripts/shapetest_t_malayalam.script z:/shapetest/shapetest_t_malayalam.script + \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/group/t_shapetest.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/group/t_shapetest.pkg Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,35 @@ +; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +; All rights reserved. +; This component and the accompanying materials are made available +; under the terms of "Eclipse Public License v1.0" +; which accompanies this distribution, and is available +; at the URL "http://www.eclipse.org/legal/epl-v10.html". +; +; Initial Contributors: +; Nokia Corporation - initial contribution. +; +; Contributors: +; +; Description: +; + +;Languages +&EN + + +;Localised Vendor name +%{"shapetest EN"} + +; Vendor name +: "shapetest" + +; test scripts +; "\epoc32\data\z\shapetest\shapetest_t_all.script"-"c:\shapetest\shapetest_t_all.script" +"\epoc32\data\z\shapetest\shapetest_t_hindi.script"-"c:\shapetest\shapetest_t_hindi.script" +"\epoc32\data\z\shapetest\shapetest_t_kannada.script"-"c:\shapetest\shapetest_t_kannada.script" +"\epoc32\data\z\shapetest\shapetest_t_gujarati.script"-"c:\shapetest\shapetest_t_gujarati.script" +"\epoc32\data\z\shapetest\shapetest_t_bengali.script"-"c:\shapetest\shapetest_t_bengali.script" +"\epoc32\data\z\shapetest\shapetest_t_tamil.script"-"c:\shapetest\shapetest_t_tamil.script" +"\epoc32\data\z\shapetest\shapetest_t_telugu.script"-"c:\shapetest\shapetest_t_telugu.script" +"\epoc32\data\z\shapetest\shapetest_t_gurmukhi.script"-"c:\shapetest\shapetest_t_gurmukhi.script" +"\epoc32\data\z\shapetest\shapetest_t_malayalam.script"-"c:\shapetest\shapetest_t_malayalam.script" \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/group/t_shapetestserver.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/group/t_shapetestserver.mmp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,46 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +*/ + + +TARGET t_shapetestserver.exe +TARGETTYPE exe +UID 0x1000007A 0xE0273377 +VENDORID 0x70000001 + +CAPABILITY ProtServ + +USERINCLUDE ../test +OS_LAYER_SYSTEMINCLUDE_SYMBIAN +OS_LAYER_LIBC_SYSTEMINCLUDE + +SOURCEPATH ../test +SOURCE t_shapetestserver.cpp +SOURCE t_shapeteststep.cpp + +LIBRARY euser.lib +LIBRARY estlib.lib +LIBRARY estor.lib +LIBRARY efsrv.lib +LIBRARY bafl.lib +LIBRARY ecom.lib +LIBRARY gdi.lib +LIBRARY fntstr.lib +LIBRARY testexecuteutils.lib +LIBRARY testexecutelogclient.lib + +EPOCHEAPSIZE 4096 2097152 + +SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/TC_SHAP_shapeText.cpp --- a/fontservices/textshaperplugin/test/TC_SHAP_shapeText.cpp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1460 +0,0 @@ -/* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include -#include -#include "testData.h" -#include -#include -#include -#include -#include - -//add filenames for any test data here -const TText16* KTestFilenames[] = - { - //created from original iculayoutengine test data - (const TText16*) L"z:\\test\\data\\tnr_dev_otshaperdata1.dat", - //created from input data provided by licensee - (const TText16*) L"z:\\test\\data\\tnr_dev_otshaperdata2.dat", - //created from input data provided by licensee - (const TText16*) L"z:\\test\\data\\tnr_dev_otshaperdata3.dat", - //created from input data provided by licensee - (const TText16*) L"z:\\test\\data\\tnr_dev_otshaperdata4.dat", - // Data to test defect fix DEF078032 - (const TText16*) L"z:\\test\\data\\tnr_dev_otshaperdata5.dat", - //created from input data provided by licensee - (const TText16*) L"z:\\test\\data\\shaperkannadadata1.dat", - // created from Kannada sample text - (const TText16*) L"z:\\test\\data\\shaperkannadadata2.dat", - // created from Kannada sample text - (const TText16*) L"z:\\test\\data\\shaperkannadadata3.dat", - // created from Gujarati sample text taken from the web - (const TText16*) L"z:\\test\\data\\shapergujaratidata1.dat", - // created from Gujarati sample text taken from the web - (const TText16*) L"z:\\test\\data\\shapergujaratidata2.dat", - // created from Gujarati sample text given by the licensee - (const TText16*) L"z:\\test\\data\\shapergujaratidata3.dat", - // created from Bengali sample text given by the licensee - (const TText16*) L"z:\\test\\data\\shaperbengalidata1.dat", - // created from Bengali sample text given by the licensee - (const TText16*) L"z:\\test\\data\\shaperbengalidata2.dat", - // created from Bengali sample text given by the licensee - (const TText16*) L"z:\\test\\data\\shaperbengalidata3.dat", - // created from Tamil sample text given by the licensee - (const TText16*) L"z:\\test\\data\\shapertamildata1.dat", - // created from Tamil sample text given by the licensee - (const TText16*) L"z:\\test\\data\\shapertamildata2.dat", - // created from Tamil sample text given by the licensee - (const TText16*) L"z:\\test\\data\\shapertamildata3.dat", - // created from Telugu sample text given by the licensee - (const TText16*) L"z:\\test\\data\\shapertelugudata1.dat", - // created from Telugu sample text given by the licensee - (const TText16*) L"z:\\test\\data\\shapertelugudata2.dat", - // created from Telugu sample text given by the licensee - (const TText16*) L"z:\\test\\data\\shapertelugudata3.dat", - // Test for Gurmukhi digit - (const TText16*) L"z:\\test\\data\\shapergurmukhi1.dat", - (const TText16*) L"z:\\test\\data\\shapergurmukhi2.dat", - (const TText16*) L"z:\\test\\data\\shapergurmukhi3.dat", - (const TText16*) L"z:\\test\\data\\shapergurmukhi4.dat", - (const TText16*) L"z:\\test\\data\\shapergurmukhi5.dat", - // Test for Malayalam digit - (const TText16*) L"z:\\test\\data\\shapermalayalam1.dat", - (const TText16*) L"z:\\test\\data\\shapermalayalam2.dat", - (const TText16*) L"z:\\test\\data\\shapermalayalam3.dat", - (const TText16*) L"z:\\test\\data\\shapermalayalam4.dat", - (const TText16*) L"z:\\test\\data\\shapermalayalam5.dat" - }; - -/** -Number of test data files of each of the scripts/languages bein tests. -Must change these if KTestFilnames[] above is changed -*/ -const TInt KHindiTestDataIndex = 0; -const TInt KNumberOfHindiTestDataFiles = 5; -const TInt KKannadaTestDataIndex = 5; -const TInt KNumberOfKannadaTestDataFiles = 3; -const TInt KGujaratiTestDataIndex = 8; -const TInt KNumberOfGujaratiTestDataFiles = 3; -const TInt KBengaliTestDataIndex = 11; -const TInt KNumberOfBengaliTestDataFiles = 3; -const TInt KTamilTestDataIndex = 14; -const TInt KNumberOfTamilTestDataFiles = 3; -const TInt KTeluguTestDataIndex = 17; -const TInt KNumberOfTeluguTestDataFiles = 3; -const TInt KGurmukhiTestDataIndex = 20; -const TInt KNumberOfGurmukhiTestDataFiles = 5; -const TInt KMalayalamTestDataIndex = 25; -const TInt KNumberOfMalayalamTestDataFiles = 5; - -const TUint32 KDevanagariScriptCode = 0x64657661; -const TUint32 KKannadaScriptCode = 0x6B6E6461; -const TUint32 KHindiLanguageCode = 0x48494E20; -const TUint32 KKannadaLanguageCode = 0x4B414E20; -const TUint32 KGujaratiScriptCode = 0x67756A72; -const TUint32 KGujaratiLanguageCode = 0x47554A20; -const TUint32 KBengaliScriptCode = 0x62656E67; -const TUint32 KBengaliLanguageCode = 0x42454E20; -const TUint32 KTamilScriptCode = 0x74616D6C; -const TUint32 KTamilLanguageCode = 0x54414D20; -const TUint32 KTeluguScriptCode = 0x74656C75; -const TUint32 KTeluguLanguageCode = 0x54454C20; -const TUint32 KGurmukhiScriptCode = 0x67757275; -const TUint32 KGurmukhiLanguageCode = 0; -const TUint32 KMalayalamScriptCode = 0x6d6c796d; -const TUint32 KMalayalamLanguageCode = 0x4d4c5220; - - -// For RTest -//************************************************************************************** -static RTest TheTest(_L("TC_SHAP_shapeText")); -static void Check(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } - -static void Check(TInt aValue, TInt aExpected, TInt aLine) - { - if(aValue != aExpected) - { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); - } - } - -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) -#define TEST(arg) ::Check((arg), __LINE__) - -// Convenience methods -//************************************************************************************** - -/* -Used for cleanup of RImplInfoArray implementationArray below -This method is stolen from FbsTop.cpp -*/ -LOCAL_C void ResetAndDestroyRImplInfoPtrArray(TAny* aPtr) - { - RImplInfoPtrArray* array = reinterpret_cast (aPtr); - array->ResetAndDestroy(); - } - -/* -Load all ECOM implemented rasterizer DLLs. -This method is stolen from CFbTop::LoadOpenFontLibraries() -*/ -LOCAL_C void LoadOpenFontLibraries(CFontStore* aFontStore) - { - - RImplInfoPtrArray implementationArray; - TCleanupItem cleanup(ResetAndDestroyRImplInfoPtrArray, &implementationArray); - CleanupStack::PushL(cleanup); - TInt error; - TInt ecomerror; - TInt ecomnotready; - TUid uid = {KUidOpenFontRasterizerPlunginInterface}; - - // Making sure that no race situation arises - // If ECom is not ready, give it another chance and try again. if it still doesn't work - // after the third try, then it just carries on quietly and fails... - for (ecomnotready =0; ecomnotready <3; ecomnotready++) - { - TRAP(ecomerror,REComSession::ListImplementationsL(uid,implementationArray)); - if (!ecomerror) - { - break; - } - else - { - ecomerror = 0; - User::After(0); - } - } - - const TInt availCount = implementationArray.Count(); - for (TInt count=0;countImplementationUid(); - // Create a rasterizer - COpenFontRasterizer* rasterizer=0; - TRAP(error,rasterizer = COpenFontRasterizer::NewL(rasterizerUid)); - if (!error) - { - // Install it in the font store. - TRAP(error,aFontStore->InstallRasterizerL(rasterizer)); - if (error) - delete rasterizer; - } - } - CleanupStack::PopAndDestroy(&implementationArray); - - } - -LOCAL_C RPointerArray SetupTestData(CDesC16ArrayFlat* aFilenames) - { - RPointerArray testDataArr(1);// = new(ELeave) CArrayFixFlat(1); - - for (TInt i = 0; iCount(); i++) - { - CTestData* temp = new(ELeave) CTestData; - temp->Internalize((*aFilenames)[i]); - testDataArr.AppendL(temp); - } - - return testDataArr; - } - - -// test methods -//************************************************************************************** - -/** -@file -@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-1479 -@SYMTestCaseDesc Simple test of the shaper -@SYMTestPriority High -@SYMTestActions Simple test to shape some text using the shaper, and test that the output is as expected. Does not perform any OOM testing. -@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. -@SYMPREQ PREQ18 -*/ -void doShapeText(CBitmapFont* font, CTestData& aTestData, const TUint32 aScript, - const TUint32 aLang, TBool aCheckOutput = EFalse) - { - TheTest.Next(_L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-1479 ")); - TInt err; - - //set up the shaper - CShaper* theShaper = NULL; - CShaperFactory* shaperFactory = NULL; - - RImplInfoPtrArray implementationArray; - TCleanupItem cleanup(ResetAndDestroyRImplInfoPtrArray, &implementationArray); - CleanupStack::PushL(cleanup); - TInt error; - TInt ecomerror; - TInt ecomnotready; - TUid uid = {KUidShaperFactoryPlunginInterface}; - - // Making sure that no race situation arises between FBserv and Ecom - // If ECom is not ready, give it another chance and try again. if it still doesn't work - // after the third try, then it just carries on quietly and fails... - for (ecomnotready =0; ecomnotready <3; ecomnotready++) - { - - TRAP(ecomerror,REComSession::ListImplementationsL(uid,implementationArray)); - if (!ecomerror) - { - break; - } - else - { - ecomerror = 0; - User::After(0); - } - } - - const TInt availCount = implementationArray.Count(); - for (TInt count=0;countImplementationUid(); - // Create a shaper factory - TRAP(error,shaperFactory = CShaperFactory::NewL(shaperFactoryUid)); - TEST2(error, KErrNone); - // Create a shaper - TRAPD(err, theShaper = shaperFactory->NewShaperL(font, aScript, aLang, &User::Heap())); - TEST2(err, KErrNone); - } - CleanupStack::PopAndDestroy(&implementationArray); - - CleanupStack::PushL(shaperFactory); - CleanupStack::PushL(theShaper); - - // create the data to be shaped - // this uses hindiTestData, defined in testData.h - CShaper::TInput input; - input.iText = aTestData.iTextInput; - input.iStart = aTestData.iStart; - input.iEnd = aTestData.iEnd; - - TInt textLength = input.iText->Length(); - - //create shape header, and shape the text - TShapeHeader* output = NULL; - err = theShaper->ShapeText(output, input, &User::Heap()); - TEST2(err,KErrNone); - CleanupStack::PopAndDestroy(theShaper); - CleanupStack::PopAndDestroy(shaperFactory); - REComSession::FinalClose(); - - CleanupStack::PushL(output); - - if (aCheckOutput) - { - // check the contents of output - TEST(output->iGlyphCount == aTestData.iGlyphCount); - TEST(output->iCharacterCount == aTestData.iCharacterCount); - - // First iGlyphCount * 4 bytes of the output buffer contain the glyph codes as 2byte values - // Compare against expected. - TInt i=0; - TUint32* shapePtr32 = (reinterpret_cast(&output->iBuffer[0])); - for (i=0; i < output->iGlyphCount; i++) - { - TEST2(*shapePtr32, (*aTestData.iGlyphs)[i]); - shapePtr32++; - } - - // next iGlyphCount * 4 bytes contain the postions in which the glyphs should be drawn, x and y axes. - // Compare against expected - TUint16* shapePtr16 = (reinterpret_cast(shapePtr32)); - for (i=0; i < output->iGlyphCount*2; i++) - { - //check X or Y position - TEST2(*shapePtr16,(*aTestData.iPositions)[i]); - shapePtr16++; - } - - // check advance - TEST(*shapePtr16 == aTestData.iAdvance.iX); - shapePtr16++; - TEST(*shapePtr16 == aTestData.iAdvance.iY); - shapePtr16++; - - // next iGlyphCount * 2 bytes contain the coresponding indices of this character in the original string. - // Compare against expected - for (i=0; i < output->iGlyphCount; i++) - { - TEST2(*shapePtr16, (*aTestData.iIndices)[i]); - shapePtr16++; - } - } - - - CleanupStack::PopAndDestroy(output); - } - -void shapeText(CBitmapFont* font, CTestData& aTestData, const TUint32 aScript, - const TUint32 aLang, TBool aCheckOutput = EFalse) - { - __UHEAP_MARK; - TInt heapSizeAtStart = 0; - User::Heap().AllocSize(heapSizeAtStart); - - RDebug::Print(_L("Heap memory utilized is now %d\n"), heapSizeAtStart); - - doShapeText(font, aTestData, aScript, aLang, aCheckOutput); - // check the heap used by the shaper - RHeap* heap = &User::Heap(); - heap->Check(); - TInt heapSizeAtEnd = 0; - TInt heapCellsUsed = heap->AllocSize(heapSizeAtEnd); - if (heapCellsUsed) - { - TheTest.Printf(_L("This test leaked %d\n"), heapSizeAtEnd - heapSizeAtStart); - } - __UHEAP_MARKEND; - } - -void doOomShapeText(CBitmapFont* font, CTestData& aTestData, const TUint32 aScript, const TUint32 aLang); -/** -@file -@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-1480 -@SYMTestCaseDesc Simple OOM test of shaper -@SYMTestPriority High -@SYMTestActions OOM testing for the shaper. Also ensures no leaks. -@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. -@SYMPREQ PREQ18 -*/ -void oomShapeText(CBitmapFont* font, CTestData& aTestData, const TUint32 aScript, const TUint32 aLang) - { - __UHEAP_MARK; - TheTest.Next(_L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-1480 ")); - doOomShapeText(font,aTestData, aScript, aLang); - __UHEAP_MARKEND; - } - -void doOomShapeText(CBitmapFont* font, CTestData& aTestData, const TUint32 aScript, const TUint32 aLang) - { - TInt count = 0; - TInt err = KErrNone; - TInt heapCellsUsed, heapSizeAtEnd, heapSizeAtStart; - CShaper* theShaper = NULL; - CShaperFactory* shaperFactory = NULL; - TShapeHeader* output = NULL; - - User::Heap().AllocSize(heapSizeAtStart); - - // create the data to be shaped - CShaper::TInput input; - input.iText = aTestData.iTextInput; - input.iStart = aTestData.iStart; - input.iEnd = aTestData.iEnd; - - //set up shaper, shape, delete shaper in oom loop - RImplInfoPtrArray implementationArray; - TCleanupItem cleanup(ResetAndDestroyRImplInfoPtrArray, &implementationArray); - CleanupStack::PushL(cleanup); - TInt error; - TInt ecomerror; - TInt ecomnotready; - TUid uid = {KUidShaperFactoryPlunginInterface}; - - // Making sure that no race situation arises between FBserv and Ecom - // If ECom is not ready, give it another chance and try again. if it still doesn't work - // after the third try, then it just carries on quietly and fails... - for (ecomnotready =0; ecomnotready <3; ecomnotready++) - { - - TRAP(ecomerror,REComSession::ListImplementationsL(uid,implementationArray)); - if (!ecomerror) - { - break; - } - else - { - ecomerror = 0; - User::After(0); - } - } - - const TInt availCount = implementationArray.Count(); - for (TInt count=0;countImplementationUid(); - // Create a shaper factory - //CShaperFactory* shaperFactory = 0; - TRAP(error,shaperFactory = CShaperFactory::NewL(shaperFactoryUid)); - TEST2(error, KErrNone); - //CleanupStack::PushL(shaperFactory); - } - CleanupStack::PopAndDestroy(&implementationArray); - - do - { - count += 1; - __UHEAP_FAILNEXT(count); - - // Create a shaper - TRAPD(err, theShaper = shaperFactory->NewShaperL(font, aScript, aLang, &User::Heap())); - - //shape text - if (theShaper) - { - err = theShaper->ShapeText(output, input, &User::Heap()); - TEST2(err,KErrNone); - } - - //free output; to be done by the caller of ShapeText - delete output; - output = NULL; - - //does not check the output for now - delete theShaper; - delete shaperFactory; - REComSession::FinalClose(); - - }while ((err==KErrNoMemory)||(err==KErrGeneral)); - __UHEAP_RESET; - - // check the heap used by the shaper - RHeap* heap = &User::Heap(); - heap->Check(); - heapCellsUsed = heap->AllocSize(heapSizeAtEnd); - if (heapCellsUsed) - { - TheTest.Printf(_L("This test leaked %d.\n"), heapSizeAtEnd - heapSizeAtStart); - } - } - -void doRepeatShapeText(CBitmapFont* font, CTestData& aTestData, const TUint32 aScript, const TUint32 aLang); - -/** -@file -@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-1481 -@SYMTestCaseDesc Tests that the shaper can handle multiple calls to ShapeText -@SYMTestPriority High -@SYMTestActions Makes multiple calls to CShaper::ShapeText with small amounts of text to be shaped -@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. -@SYMPREQ PREQ18 -*/ -void repeatShapeText(CBitmapFont* aFont, CTestData& aTestData, const TUint32 aScript, const TUint32 aLang) - { - __UHEAP_MARK; - TheTest.Next(_L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-1481 ")); - doRepeatShapeText(aFont, aTestData, aScript, aLang); - __UHEAP_MARKEND; - } - -void doRepeatShapeText(CBitmapFont* font, CTestData& aTestData, const TUint32 aScript, const TUint32 aLang) - { - TInt err; - - //set up the shaper - CShaper* theShaper = NULL; - CShaperFactory* shaperFactory = NULL; - - RImplInfoPtrArray implementationArray; - TCleanupItem cleanup(ResetAndDestroyRImplInfoPtrArray, &implementationArray); - CleanupStack::PushL(cleanup); - TInt error; - TInt ecomerror; - TInt ecomnotready; - TUid uid = {KUidShaperFactoryPlunginInterface}; - - // Making sure that no race situation arises between FBserv and Ecom - // If ECom is not ready, give it another chance and try again. if it still doesn't work - // after the third try, then it just carries on quietly and fails... - for (ecomnotready =0; ecomnotready <3; ecomnotready++) - { - - TRAP(ecomerror,REComSession::ListImplementationsL(uid,implementationArray)); - if (!ecomerror) - { - break; - } - else - { - ecomerror = 0; - User::After(0); - } - } - - const TInt availCount = implementationArray.Count(); - for (TInt count=0;countImplementationUid(); - // Create a shaper factory - TRAP(error,shaperFactory = CShaperFactory::NewL(shaperFactoryUid)); - TEST2(error, KErrNone); - - // Create a shaper - TRAPD(err, theShaper = shaperFactory->NewShaperL(font, aScript, aLang, &User::Heap())); - TEST2(err, KErrNone); - } - CleanupStack::PopAndDestroy(&implementationArray); - - CleanupStack::PushL(shaperFactory); - CleanupStack::PushL(theShaper); - - // create the data to be shaped - // this uses CTestData, defined in testData.h - CShaper::TInput input; - input.iText = aTestData.iTextInput; - - //create shape header, and shape the text - TShapeHeader* output = NULL; - - for(TInt i=aTestData.iStart; iShapeText(output, input, &User::Heap()); - TEST2(err,KErrNone); - - //free output; to be done by the caller of ShapeText - delete(output); - output = NULL; - - //does not check the output for now - } - - //cleanup the shaper - CleanupStack::PopAndDestroy(theShaper); - CleanupStack::PopAndDestroy(shaperFactory); - REComSession::FinalClose(); - } - -/* -@file -@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3401 -@SYMTestCaseDesc Tests that the shaper can handle calls to shapeText with multiple font sizes -@SYMTestPriority High -@SYMTestActions Makes multiple calls to CShaper::ShapeText with small amounts of text to be shaped and incremental font sizes -@SYMTestExpectedResults The test must not show a memory leak at any font size -@SYMPREQ DEF103042: TC_SHAP_shapeText test failing with alloc failure -**/ -void doRepeatShapeUsingVariousFontSizesTest(CFontStore* aFontStore, const TDesC aTypefaceName, const TDesC &aText1, - const TDesC &aText2, const TDesC &aText3, const TUint32 aScript, - const TUint32 aLang) - { - TheTest.Next(_L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3401 ")); - TInt heapCellsUsed, heapSizeAtEnd, heapSizeAtStart; - User::Heap().AllocSize(heapSizeAtStart); - - // Set up shaper factory - // Set up the shaper - CShaper* theShaper = NULL; - CShaperFactory* shaperFactory = NULL; - - RImplInfoPtrArray implementationArray; - TCleanupItem cleanup(ResetAndDestroyRImplInfoPtrArray, &implementationArray); - CleanupStack::PushL(cleanup); - TInt error; - TInt ecomerror; - TInt ecomnotready; - TUid uid = {KUidShaperFactoryPlunginInterface}; - - // Making sure that no race situation arises between FBserv and Ecom - // If ECom is not ready, give it another chance and try again. if it still doesn't work - // after the third try, then it just carries on quietly and fails... - for (ecomnotready =0; ecomnotready <3; ecomnotready++) - { - TRAP(ecomerror,REComSession::ListImplementationsL(uid,implementationArray)); - if (!ecomerror) - { - break; - } - else - { - ecomerror = 0; - User::After(0); - } - } - - const TInt availCount = implementationArray.Count(); - for (TInt count=0;countImplementationUid(); - // Create a shaper factory - TRAP(error,shaperFactory = CShaperFactory::NewL(shaperFactoryUid)); - TEST2(error, KErrNone); - } - - CleanupStack::PopAndDestroy(&implementationArray); - CleanupStack::PushL(shaperFactory); - - // create the data to be shaped - // this explicitely uses hindiTestData, defined in testData.h - CShaper::TInput input; - input.iStart = 0; - - //create shape header, and shape the text - TShapeHeader* output = NULL; - - CBitmapFont* font; - - // Test shaping for the Hindi texts for various font sizes - TheTest.Printf(_L("Generating a random initial font size between 0 and 1 for this test\n")); - TInt random = (Math::Random()>>11)%2; - TheTest.Printf(_L("Random initial font size is %d. Testing upto size 300 with increments of 2\n"), random); - for (TInt i = random; i <= 300; i+=2) - { - RDebug::Print(_L("Font Size: %d\n"), i); - TFontSpec fontSpec(aTypefaceName,i*20); - aFontStore->GetNearestFontInTwips((CFont*&)font, fontSpec); - CleanupStack::PushL(font); - - TRAPD(err, theShaper = shaperFactory->NewShaperL(font, aScript, aLang, &User::Heap())); - TEST2(err, KErrNone); - CleanupStack::PushL(theShaper); - - // Call the shaper twice because the first time the rasterizer uses memory to cache the tables - // We can then check the heap in the second call - input.iText = &aText1; - input.iEnd = aText1.Length(); - err = theShaper->ShapeText(output, input, &User::Heap()); - delete output; - TEST2(err,KErrNone); - __UHEAP_MARK; - err = theShaper->ShapeText(output, input, &User::Heap()); - delete output; - __UHEAP_MARKEND; - TEST2(err,KErrNone); - - input.iText = &aText2; - input.iEnd = aText2.Length(); - err = theShaper->ShapeText(output, input, &User::Heap()); - delete output; - TEST2(err,KErrNone); - __UHEAP_MARK; - err = theShaper->ShapeText(output, input, &User::Heap()); - delete output; - __UHEAP_MARKEND; - TEST2(err,KErrNone); - - input.iText = &aText3; - input.iEnd = aText3.Length(); - err = theShaper->ShapeText(output, input, &User::Heap()); - delete output; - TEST2(err,KErrNone); - __UHEAP_MARK; - err = theShaper->ShapeText(output, input, &User::Heap()); - delete output; - __UHEAP_MARKEND; - TEST2(err,KErrNone); - - CleanupStack::PopAndDestroy(theShaper); - CleanupStack::Pop(font); - aFontStore->ReleaseFont(font); - } - - CleanupStack::PopAndDestroy(shaperFactory); - - //close the ecom session opened by LoadOpenFontLibraries() - REComSession::FinalClose(); - - // check the heap used by the shaper - RHeap* heap = &User::Heap(); - heap->Check(); - heapCellsUsed = heap->AllocSize(heapSizeAtEnd); - if (heapCellsUsed) - { - TheTest.Printf(_L("This test utilised %d bytes\n"), heapSizeAtEnd - heapSizeAtStart); - } - } - -/** -@file -@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3403 -@SYMTestCaseDesc Tests the shaper using Devanagari Unicode. Test include OOM tests (oomShapeText), repeated - calls to the shaper (repeatShapeText), simple shaping tests (shapeText), and repeatedly - calling the shaper with incremental font sizes. -@SYMTestPriority High -@SYMTestActions Performs various tests of the the shaper, calling CShaper::ShapeText in various use cases -@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. -@SYMPREQ PREQ19 -*/ -void HindiTestsL(RPointerArray aTestDataArr) - { - TheTest.Next(_L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3403 ")); - TInt i; - CBitmapFont* font; - TInt err=KErrNone; - //the font store can use the normal user heap - CFontStore* fontStore = CFontStore::NewL(&User::Heap()); - fontStore->iKPixelWidthInTwips = 11860; - fontStore->iKPixelHeightInTwips = 11860; - CleanupStack::PushL(fontStore); - - //load all ecom implemented rasterizer dlls. installs the rasterizer. - LoadOpenFontLibraries(fontStore); - - //add the required Hindi font file - TRAP(err,fontStore->AddFileL(aTestDataArr[KHindiTestDataIndex]->iFilename)); - TEST(err==KErrNone); - - - //run all tests for TNR_Dev_OT test, which is at position 0 in the aTestDataArr - TFontSpec fontSpec(aTestDataArr[KHindiTestDataIndex]->iTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - CleanupStack::PushL(font); - - TheTest.Next(_L("Repeat Hindi text shaping test\n")); - doRepeatShapeText(font, *aTestDataArr[KHindiTestDataIndex], KDevanagariScriptCode, KHindiLanguageCode); - repeatShapeText(font, *aTestDataArr[KHindiTestDataIndex], KDevanagariScriptCode, KHindiLanguageCode); - - TheTest.Next(_L("OOM Hindi text shaping test\n")); -#if defined(_DEBUG) - doOomShapeText(font, *aTestDataArr[KHindiTestDataIndex], KDevanagariScriptCode, KHindiLanguageCode); - oomShapeText(font, *aTestDataArr[KHindiTestDataIndex], KDevanagariScriptCode, KHindiLanguageCode); -#else - TheTest.Printf(_L("This test is ignored for release version\n")); -#endif - - TheTest.Next(_L("Run simple Hindi shape test\n")); - doShapeText(font, *aTestDataArr[KHindiTestDataIndex], KDevanagariScriptCode, KHindiLanguageCode, ETrue); - shapeText(font, *aTestDataArr[KHindiTestDataIndex], KDevanagariScriptCode, KHindiLanguageCode, ETrue); - - CleanupStack::Pop(font); - fontStore->ReleaseFont(font); - - //for any other test data we have, run the simple shape text test only - for(i=KHindiTestDataIndex+1; iiTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - - // First run does not check heap... this ensures that any memory - // stashed by the rasterizer does not show up as a leak. - doShapeText(font, *aTestDataArr[i], KDevanagariScriptCode, KHindiLanguageCode, ETrue); - shapeText(font, *aTestDataArr[i], KDevanagariScriptCode, KHindiLanguageCode, ETrue); - - fontStore->ReleaseFont(font); - } - - // Now do the last test, the shaping test using various font sizes - _LIT16(KHindi1,"\x0915\x094D\x0937\x0924\x094D\x0930\x093F\x092F\x0020\x0909\x0926\x094D\x0926\x0947\x0936\x094D\x0020\x0915\x094D\x0937\x093F\x092A\x094D\x0930"); - _LIT16(KHindi2,"\x092d\x0942\x0930\x094d\x092d\x0941\x0935\x0903\x0020\x0938\x094d\x0935\x0903\x0020\x0924\x0924\x094d\x0938\x0935\x093f\x0924\x0941\x0930\x094d\x0935\x0930\x0947\x0923\x094d\x092f\x0902"); - _LIT16(KHindi3,"\x092d\x0930\x094d\x0917\x094b\x0020\x0926\x0947\x0935\x0938\x094d\x092f\x0020\x0927\x0940\x092e\x0939\x093f\x0020\x0927\x093f\x092f\x094b\x0020\x092f\x094b\x0928\x0903\x0020\x092a\x094d\x0930\x091a\x094b\x0926\x092f\x093e\x0924\x094d\x0020"); - - TheTest.Next(_L("Repeat Hindi shaping test using font sizes 20 to 6000\n")); - doRepeatShapeUsingVariousFontSizesTest(fontStore, aTestDataArr[0]->iTypeFaceName, KHindi1, KHindi2, KHindi3, KDevanagariScriptCode, KHindiLanguageCode); - - CleanupStack::PopAndDestroy(fontStore); - } - -/** -@file -@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3383-0001 -@SYMTestCaseDesc Tests the shaper using Kannada Unicode. Test include OOM tests (oomShapeText), repeated - calls to the shaper (repeatShapeText), simple shaping tests (shapeText), and repeatedly - calling the shaper with incremental font sizes. -@SYMTestPriority High -@SYMTestActions Performs various tests of the the shaper, calling CShaper::ShapeText in various use cases -@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. -@SYMPREQ PREQ19 -*/ -void KannadaTestsL(RPointerArray aTestDataArr) - { - TheTest.Next(_L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3383-0001 ")); - TInt i; - CBitmapFont* font; - TInt err=KErrNone; - //the font store can use the normal user heap - CFontStore* fontStore = CFontStore::NewL(&User::Heap()); - fontStore->iKPixelWidthInTwips = 11860; - fontStore->iKPixelHeightInTwips = 11860; - CleanupStack::PushL(fontStore); - - //load all ecom implemented rasterizer dlls. installs the rasterizer. - LoadOpenFontLibraries(fontStore); - - //add the required Kannada font file - TRAP(err,fontStore->AddFileL(aTestDataArr[KKannadaTestDataIndex]->iFilename)); - TEST(err==KErrNone); - - - //run all tests for TNR_Dev_OT test, which is at position 0 in the aTestDataArr - TFontSpec fontSpec(aTestDataArr[KKannadaTestDataIndex]->iTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - CleanupStack::PushL(font); - - TheTest.Next(_L("Repeat Kannada text shaping test\n")); - doRepeatShapeText(font, *aTestDataArr[KKannadaTestDataIndex], KKannadaScriptCode, KKannadaLanguageCode); - repeatShapeText(font, *aTestDataArr[KKannadaTestDataIndex], KKannadaScriptCode, KKannadaLanguageCode); - - TheTest.Next(_L("OOM Kannada text shaping test\n")); -#if defined(_DEBUG) - doOomShapeText(font, *aTestDataArr[KKannadaTestDataIndex], KKannadaScriptCode, KKannadaLanguageCode); - oomShapeText(font, *aTestDataArr[KKannadaTestDataIndex], KKannadaScriptCode, KKannadaLanguageCode); -#else - TheTest.Printf(_L("This test is ignored for release version\n")); -#endif - - TheTest.Next(_L("Run simple Kannada shape test\n")); - doShapeText(font, *aTestDataArr[KKannadaTestDataIndex], KKannadaScriptCode, KKannadaLanguageCode, ETrue); - shapeText(font, *aTestDataArr[KKannadaTestDataIndex], KKannadaScriptCode, KKannadaLanguageCode, ETrue); - - //for any other test data we have, run the simple shape text test only - for(i=KKannadaTestDataIndex+1; iiTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - - // First run does not check heap... this ensures that any memory - // stashed by the rasterizer does not show up as a leak. - doShapeText(font, *aTestDataArr[i], KKannadaScriptCode, KKannadaLanguageCode, ETrue); - shapeText(font, *aTestDataArr[i], KKannadaScriptCode, KKannadaLanguageCode, ETrue); - - fontStore->ReleaseFont(font); - } - - // Now do the last test, the shaping test using various font sizes - _LIT16(KKannada1,"\x0CB6\x0CCD\x0CB0\x0CC0\x0020\x0CAD\x0C97\x0CB5\x0CBE\x0CA8\x0CC1\x0CB5\x0CBE\x0C9A\x0C95\x0CC1\x0CA4\x0CB8\x0CCD\x0CA4\x0CCD\x0CB5\x0CBE\x0020\x0C95\x0CB6\x0CCD\x0CAE\x0CB2\x0CAE\x0CBF\x0CA6\x0C82\x0020\x0CB5\x0CBF\x0CB7\x0CAE\x0020\x0CB8\x0CAE\x0CC1\x0CAA\x0CB8\x0CCD\x0CA5\x0CBF\x0CA4\x0CAE\x0CCD"); - _LIT16(KKannada2,"\x0C85\x0CA8\x0CBE\x0CB0\x0CCD\x0CAF\x0C9C\x0CC1\x0CB7\x0CCD\x0CA0\x0CAE\x0CB8\x0CCD\x0CB5\x0CB0\x0CCD\x0C97\x0CCD\x0CAF\x0CAE\x0C95\x0CC0\x0CB0\x0CCD\x0CA4\x0CBF\x0C95\x0CB0\x0CAE\x0CB0\x0CCD\x0C9C\x0CC1\x0CA8"); - _LIT16(KKannada3,"\x0C95\x0CCD\x0CB2\x0CC8\x0CAC\x0CCD\x0CAF\x0C82\x0020\x0CAE\x0CBE\x0020\x0CB8\x0CCD\x0CAE\x0020\x0C97\x0CAE\x0C83\x0020\x0CAA\x0CBE\x0CB0\x0CCD\x0CA5\x0020\x0CA8\x0CC8\x0CA4\x0CA4\x0CCD\x0CA4\x0CCD\x0CB5\x0CAF\x0CCD\x0CAF\x0CC1\x0CAA\x0CAA\x0CA7\x0CCD\x0CAF\x0CA4\x0CC7"); - - TheTest.Next(_L("Repeat Kannada shaping test using font sizes 20 to 6000\n")); - doRepeatShapeUsingVariousFontSizesTest(fontStore, aTestDataArr[5]->iTypeFaceName, KKannada1, KKannada2, KKannada3, KKannadaScriptCode, KKannadaLanguageCode); - - CleanupStack::Pop(font); - fontStore->ReleaseFont(font); - - - CleanupStack::PopAndDestroy(fontStore); - } - -/** -@file -@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3383-0002 -@SYMTestCaseDesc Tests the shaper using Kannada Unicode. Test include OOM tests (oomShapeText), repeated - calls to the shaper (repeatShapeText), simple shaping tests (shapeText), and repeatedly - calling the shaper with incremental font sizes. -@SYMTestPriority High -@SYMTestActions Performs various tests of the the shaper, calling CShaper::ShapeText in various use cases -@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. -@SYMPREQ PREQ19 -*/ -void GujaratiTestsL(RPointerArray aTestDataArr) - { - TheTest.Next(_L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3383-0002 ")); - TInt i; - CBitmapFont* font; - TInt err=KErrNone; - //the font store can use the normal user heap - CFontStore* fontStore = CFontStore::NewL(&User::Heap()); - fontStore->iKPixelWidthInTwips = 11860; - fontStore->iKPixelHeightInTwips = 11860; - CleanupStack::PushL(fontStore); - - //load all ecom implemented rasterizer dlls. installs the rasterizer. - LoadOpenFontLibraries(fontStore); - - //add the required Gujarati font file - TRAP(err,fontStore->AddFileL(aTestDataArr[KGujaratiTestDataIndex]->iFilename)); - TEST(err==KErrNone); - - - //run all tests for TNR_Dev_OT test, which is at position 0 in the aTestDataArr - TFontSpec fontSpec(aTestDataArr[KGujaratiTestDataIndex]->iTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - CleanupStack::PushL(font); - - TheTest.Next(_L("Repeat Gujarati text shaping test\n")); - doRepeatShapeText(font, *aTestDataArr[KGujaratiTestDataIndex], KGujaratiScriptCode, KGujaratiLanguageCode); - repeatShapeText(font, *aTestDataArr[KGujaratiTestDataIndex], KGujaratiScriptCode, KGujaratiLanguageCode); - - TheTest.Next(_L("OOM Gujarati text shaping test\n")); -#if defined(_DEBUG) - doOomShapeText(font, *aTestDataArr[KGujaratiTestDataIndex], KGujaratiScriptCode, KGujaratiLanguageCode); - oomShapeText(font, *aTestDataArr[KGujaratiTestDataIndex], KGujaratiScriptCode, KGujaratiLanguageCode); -#else - TheTest.Printf(_L("This test is ignored for release version\n")); -#endif - - TheTest.Next(_L("Run simple Gujarati shape test\n")); - doShapeText(font, *aTestDataArr[KGujaratiTestDataIndex], KGujaratiScriptCode, KGujaratiLanguageCode, ETrue); - shapeText(font, *aTestDataArr[KGujaratiTestDataIndex], KGujaratiScriptCode, KGujaratiLanguageCode, ETrue); - - //for any other test data we have, run the simple shape text test only - for(i=KGujaratiTestDataIndex+1; iiTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - - // First run does not check heap... this ensures that any memory - // stashed by the rasterizer does not show up as a leak. - doShapeText(font, *aTestDataArr[i], KGujaratiScriptCode, KGujaratiLanguageCode, ETrue); - shapeText(font, *aTestDataArr[i], KGujaratiScriptCode, KGujaratiLanguageCode, ETrue); - - fontStore->ReleaseFont(font); - } - - // Now do the last test, the shaping test using various font sizes - _LIT16(KGujarati1,"\x0AAD\x0ABE\x0AB5\x0ABE\x0AA4\x0ACD\x0AAE\x0A95\x0020\x0AAA\x0AA6\x0ACD\x0AAF\x0ABE\x0AA8\x0AC1\x0AB5\x0ABE\x0AA6\x0020\x0020\x002D\x0020\x0AB6\x0ACD\x0AB0\x0AC0\x0020\x0AAF\x0ACB\x0A97\x0AC7\x0AB6\x0ACD\x0AB5\x0AB0\x0A9C\x0AC0"); - _LIT16(KGujarati2,"\x0AB5\x0ABF\x0AA8\x0ACD\x0AA1\x0ACB\x0A9D\x0020\x0AB5\x0ABF\x0AB8\x0ACD\x0A9F\x0ABE\x0020\x002D\x0020\x0A86\x0A82\x0AA4\x0AB0\x0AB0\x0ABE\x0AB7\x0ACD\x0A9F\x0ACD\x0AB0\x0ABF\x0AAF\x0A95\x0AB0\x0AA3\x0020\x0AB5\x0ABF\x0AB6\x0AC7\x0AA8\x0AC0\x0020\x0A9C\x0ABE\x0AA3\x0A95\x0ABE\x0AB0\x0AC0"); - _LIT16(KGujarati3,"\x0AAE\x0ABE\x0A88\x0A95\x0ACD\x0AB0\x0ACB\x0AB8\x0ACB\x0AAB\x0ACD\x0A9F\x0AA8\x0ABE\x0020\x0A86\x0020\x0A86\x0A82\x0AA4\x0AB0\x0AB0\x0ABE\x0AB7\x0ACD\x0A9F\x0ACD\x0AB0\x0ABF\x0AAF\x0020\x0AAA\x0ACB\x0AB0\x0ACD\x0A9F\x0AB2\x0020\x0AB5\x0ABF\x0AB6\x0AC7\x0020\x0AB5\x0AA7\x0AC1\x0020\x0A9C\x0ABE\x0AA3\x0ACB\x002E\x0020\x0AB5\x0ABF\x0AB8\x0ACD\x0A9F\x0ABE\x0A8F\x0020\x0AA6\x0AC1\x0AA8\x0ABF\x0AAF\x0ABE\x0AAD\x0AB0\x0AA8\x0AC0\x0020\x0AAD\x0ABE\x0AB7\x0ABE\x0A93\x0020\x0AAE\x0ABE\x0A9F\x0AC7\x0020\x0AA6\x0ACD\x0AB5\x0ABE\x0AB0\x0020\x0A96\x0ACB\x0AB2\x0AC0\x0020\x0AA8\x0ABE\x0A96\x0ACD\x0AAF\x0ABE\x0020\x0A9B\x0AC7"); - - TheTest.Next(_L("Repeat Gujarati shaping test using font sizes 20 to 6000\n")); - doRepeatShapeUsingVariousFontSizesTest(fontStore, aTestDataArr[8]->iTypeFaceName, KGujarati1, KGujarati2, KGujarati3, KGujaratiScriptCode, KGujaratiLanguageCode); - - CleanupStack::Pop(font); - fontStore->ReleaseFont(font); - - - CleanupStack::PopAndDestroy(fontStore); - } - -/** -@SYMTestCaseID GRAPHICS-TI18N-ICULAYOUTENGINE-CT-4007 -@SYMTestCaseDesc Case to do Gurmukhi component test - It covers all Iculayout components cases -@SYMTestPriority High -@SYMTestActions Iterate Gurmukhi test data, each test data corresponds with a case -@SYMTestExpectedResults No error returned -@SYMPREQ 1922: Gurmukhi support -*/ -void GurmukhiTestsL(RPointerArray aTestDataArr) - { - - TInt i; - CBitmapFont* font; - TInt err=KErrNone; - //the font store can use the normal user heap - CFontStore* fontStore = CFontStore::NewL(&User::Heap()); - fontStore->iKPixelWidthInTwips = 11860; - fontStore->iKPixelHeightInTwips = 11860; - CleanupStack::PushL(fontStore); - - //load all ecom implemented rasterizer dlls. installs the rasterizer. - LoadOpenFontLibraries(fontStore); - - //add the required Gurmukhi font file - TRAP(err,fontStore->AddFileL(aTestDataArr[KGurmukhiTestDataIndex]->iFilename)); - TEST(err==KErrNone); - - - TFontSpec fontSpec(aTestDataArr[KGurmukhiTestDataIndex]->iTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - CleanupStack::PushL(font); - - TheTest.Next(_L("@SYMTestCaseID GRAPHICS-TI18N-ICULAYOUTENGINE-CT-4007 Repeat Gurmukhi text shaping test\n")); - doRepeatShapeText(font, *aTestDataArr[KGurmukhiTestDataIndex], KGurmukhiScriptCode, KGurmukhiLanguageCode); - repeatShapeText(font, *aTestDataArr[KGurmukhiTestDataIndex], KGurmukhiScriptCode, KGurmukhiLanguageCode); - - TheTest.Next(_L("OOM Gurmukhi text shaping test\n")); -#if defined(_DEBUG) - doOomShapeText(font, *aTestDataArr[KGurmukhiTestDataIndex], KGurmukhiScriptCode, KGurmukhiLanguageCode); - oomShapeText(font, *aTestDataArr[KGurmukhiTestDataIndex], KGurmukhiScriptCode, KGurmukhiLanguageCode); -#else - TheTest.Printf(_L("This test is ignored for release version\n")); -#endif - - TheTest.Next(_L("Run simple Gurmukhi shape test\n")); - doShapeText(font, *aTestDataArr[KGurmukhiTestDataIndex], KGurmukhiScriptCode, KGurmukhiLanguageCode, ETrue); - shapeText(font, *aTestDataArr[KGurmukhiTestDataIndex], KGurmukhiScriptCode, KGurmukhiLanguageCode, ETrue); - - //for any other test data we have, run the simple shape text test only - for(i=KGurmukhiTestDataIndex+1; iiTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - - // First run does not check heap... this ensures that any memory - // stashed by the rasterizer does not show up as a leak. - doShapeText(font, *aTestDataArr[i], KGurmukhiScriptCode, KGurmukhiLanguageCode, ETrue); - shapeText(font, *aTestDataArr[i], KGurmukhiScriptCode, KGurmukhiLanguageCode, ETrue); - - fontStore->ReleaseFont(font); - } - - // Now do the last test, the shaping test using various font sizes - _LIT16(KGurmukhi1,"\x0a28\x0a2e\x0a38\x0a15\x0a3e\x0a30\x0a26\x0a\x3e\x0a28\x0a3f\x0a1a\x0a3f\x0a70\x0a26\x0a41\x0020\x0a28\x0a3f\x0a17\x0a4d\x0a30\x0a39\x0a3f\x0a2a\x0a70\x0a16\x0a40\x0a05\x0a32\x0a4b\x0a2a\x0a70\x0a16\x0a40\x0a05\x0a32\x0a4b\x0a2a\x0a30\x0a09\x0a2a\x0a15\x0a3e\x0a30\x0a3f\x0a06\x0a2a\x0a4d\x0a30\x0a24\x0a3e\x0a2a\x0a3f"); - _LIT16(KGurmukhi2,"\x0a2a\x0a4d\x0a30\x0a24\x0a3f\x0a2a\x0a3e\x0a32\x0a47\x0020\x0a2a\x0a4d\x0a30\x0a2c\x0a32\x0a1a\x0a70\x0a21\x0a2b\x0a3f\x0a30\x0a70\x0a28\x0a4d\x0a39\x0a4d\x0a39\x0a3f\x0020\x0a2b\x0a41\x0a32\x0a35\x0a24\x0a2c\x0a4d\x0a30\x0a3f\x0a25\x0a3e\x0a2c\x0a4d\x0a30\x0a39\x0a2e\x0a3e\x0a26\x0a3f\x0020\x0a2c\x0a3e\x0a1b\x0a30\x0a2c\x0a3f\x0a38\x0a4d\x0a35\x0a70\x0a2d\x0a30\x0a2d\x0a4d\x0a30\x0a2e\x0a39\x0a41\x0a2d\x0a2f\x0a4b\x0a2d\x0a17\x0a35\x0a70\x0a24"); - _LIT16(KGurmukhi3,"\x0a2e\x0a3e\x0a23\x0a40\x0a06\x0a2e\x0a4b\x0a24\x0a38\x0a30\x0a40\x0a06\x0a2f\x0a3e\x0a28\x0a5c\x0a40\x0a0f\x0a2f\x0a15\x0a40\x0a28\x0a3e\x0a30\x0a35\x0a3f\x0a70\x0a26\x0a41\x0020\x0a30\x0a2a\x0a38\x0a40\x0a32\x0a17\x0a3e\x0a35\x0a23\x0a3f\x0a06\x0a32\x0a4b\x0a5c\x0a40\x0a05\x0a39\x0a3f\x0a35\x0a30\x0a28\x0a41\x0a35\x0a40\x0a06\x0a39\x0a3f\x0a06\x0a5c\x0a5c\x0a15\x0a3f\x0a28\x0a2e\x0a38\x0a15\x0a3e\x0a30\x0a26\x0a3e\x0a28\x0a3f\x0a1a\x0a3f\x0a70\x0a26\x0a41\x0020"); - - TheTest.Next(_L("Repeat Gurmukhi shaping test using font sizes 20 to 6000\n")); - doRepeatShapeUsingVariousFontSizesTest(fontStore, aTestDataArr[KGurmukhiTestDataIndex]->iTypeFaceName, KGurmukhi1, KGurmukhi2, KGurmukhi3, KGurmukhiScriptCode, KGurmukhiLanguageCode); - - CleanupStack::Pop(font); - fontStore->ReleaseFont(font); - - - CleanupStack::PopAndDestroy(fontStore); - } - - -/** -@SYMTestCaseID GRAPHICS-TI18N-ICULAYOUTENGINE-CT-4008 -@SYMTestCaseDesc Case to do Malayalam component test - It covers all Iculayout components cases -@SYMTestPriority High -@SYMTestActions Iterate Malayalam test data, each test data corresponds with a case -@SYMTestExpectedResults No error returned -@SYMPREQ 1922: Malayalam support -*/ -void MalayalamTestsL(RPointerArray aTestDataArr) - { - - TInt i; - CBitmapFont* font; - TInt err=KErrNone; - //the font store can use the normal user heap - CFontStore* fontStore = CFontStore::NewL(&User::Heap()); - fontStore->iKPixelWidthInTwips = 11860; - fontStore->iKPixelHeightInTwips = 11860; - CleanupStack::PushL(fontStore); - - //load all ecom implemented rasterizer dlls. installs the rasterizer. - LoadOpenFontLibraries(fontStore); - - //add the required Malayalam font file - TRAP(err,fontStore->AddFileL(aTestDataArr[KMalayalamTestDataIndex]->iFilename)); - TEST(err==KErrNone); - - - TFontSpec fontSpec(aTestDataArr[KMalayalamTestDataIndex]->iTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - CleanupStack::PushL(font); - - TheTest.Next(_L("@SYMTestCaseID GRAPHICS-TI18N-ICULAYOUTENGINE-CT-4008 Repeat Malayalam text shaping test\n")); - doRepeatShapeText(font, *aTestDataArr[KMalayalamTestDataIndex], KMalayalamScriptCode, KMalayalamLanguageCode); - repeatShapeText(font, *aTestDataArr[KMalayalamTestDataIndex], KMalayalamScriptCode, KMalayalamLanguageCode); - - TheTest.Next(_L("OOM Malayalam text shaping test\n")); -#if defined(_DEBUG) - doOomShapeText(font, *aTestDataArr[KMalayalamTestDataIndex], KMalayalamScriptCode, KMalayalamLanguageCode); - oomShapeText(font, *aTestDataArr[KMalayalamTestDataIndex], KMalayalamScriptCode, KMalayalamLanguageCode); -#else - TheTest.Printf(_L("This test is ignored for release version\n")); -#endif - - TheTest.Next(_L("Run simple Malayalam shape test\n")); - doShapeText(font, *aTestDataArr[KMalayalamTestDataIndex], KMalayalamScriptCode, KMalayalamLanguageCode, ETrue); - shapeText(font, *aTestDataArr[KMalayalamTestDataIndex], KMalayalamScriptCode, KMalayalamLanguageCode, ETrue); - - //for any other test data we have, run the simple shape text test only - for(i=KMalayalamTestDataIndex+1; iiTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - - // First run does not check heap... this ensures that any memory - // stashed by the rasterizer does not show up as a leak. - doShapeText(font, *aTestDataArr[i], KMalayalamScriptCode, KMalayalamLanguageCode, ETrue); - shapeText(font, *aTestDataArr[i], KMalayalamScriptCode, KMalayalamLanguageCode, ETrue); - - fontStore->ReleaseFont(font); - } - - // Now do the last test, the shaping test using various font sizes - _LIT16(KMalayalam1,"\xd09\xd28\xd4d\xd28\xd2f\xd3f\xd1a\xd4d\xd1a\xd4d\x200c\xd26\xd47\xd36\xd40\xd2f\xd07\xd1f\xd24\xd41\xd2a\xd15\xd4d\xd37\xd1f\xd4d\xd30\xd47\xd21\xd4d\x200c\xd2f\xd42\xd23\xd3f\xd2f\xd28\xd4d\x200d\xd05\xd2d\xd3f\xd28\xd28\xd4d"); - _LIT16(KMalayalam2,"\xd2a\xd23\xd3f\xd2e\xd41\xd1f\xd15\xd4d\xd15\xd4d\x200c\xd2a\xd42\xd30\xd4d\x200d"); - _LIT16(KMalayalam3,"\xd23\xd02\xd24\xd40\xd35\xd23\xd4d\xd1f\xd3f\xd15\xd33\xd4d\x200d\xd31\xd26\xd4d\xd26\xd3e\xd15\xd4d\xd15\xd3f\xd15\xd4b\xd34\xd3f\xd15\xd4d\xd15\xd4b\xd1f\xd4d\x200c\xd35\xd3f\xd35\xd3f\xd27\xd06\xd35\xd36\xd4d\xd2f\xd19\xd4d\xd19\xd33\xd4d\x200d"); - - TheTest.Next(_L("Repeat Malayalam shaping test using font sizes 20 to 6000\n")); - doRepeatShapeUsingVariousFontSizesTest(fontStore, aTestDataArr[KMalayalamTestDataIndex]->iTypeFaceName, KMalayalam1, KMalayalam2, KMalayalam3, KMalayalamScriptCode, KMalayalamLanguageCode); - - CleanupStack::Pop(font); - fontStore->ReleaseFont(font); - - - CleanupStack::PopAndDestroy(fontStore); - } - -/** -@file -@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-4001 -@SYMTestCaseDesc Tests the shaper using Bengali Unicode. Test include OOM tests (oomShapeText), repeated - calls to the shaper (repeatShapeText), simple shaping tests (shapeText), and repeatedly - calling the shaper with incremental font sizes. -@SYMTestPriority High -@SYMTestActions Performs various tests of the the shaper, calling CShaper::ShapeText in various use cases -@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. -@SYMPREQ PREQ1766 -@SYMREQ REQ8741 -*/ -void BengaliTestsL(RPointerArray aTestDataArr) - { - TheTest.Next(_L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-4001 ")); - TInt i; - CBitmapFont* font; - TInt err=KErrNone; - //the font store can use the normal user heap - CFontStore* fontStore = CFontStore::NewL(&User::Heap()); - fontStore->iKPixelWidthInTwips = 11860; - fontStore->iKPixelHeightInTwips = 11860; - CleanupStack::PushL(fontStore); - - //load all ecom implemented rasterizer dlls. installs the rasterizer. - LoadOpenFontLibraries(fontStore); - - //add the required Bengali font file - TRAP(err,fontStore->AddFileL(aTestDataArr[KBengaliTestDataIndex]->iFilename)); - TEST(err==KErrNone); - - - //run all tests for TNR_Dev_OT test, which is at position 0 in the aTestDataArr - TFontSpec fontSpec(aTestDataArr[KBengaliTestDataIndex]->iTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - CleanupStack::PushL(font); - - TheTest.Next(_L("Repeat Bengali text shaping test\n")); - doRepeatShapeText(font, *aTestDataArr[KBengaliTestDataIndex], KBengaliScriptCode, KBengaliLanguageCode); - repeatShapeText(font, *aTestDataArr[KBengaliTestDataIndex], KBengaliScriptCode, KBengaliLanguageCode); - - TheTest.Next(_L("OOM Bengali text shaping test\n")); -#if defined(_DEBUG) - doOomShapeText(font, *aTestDataArr[KBengaliTestDataIndex], KBengaliScriptCode, KBengaliLanguageCode); - oomShapeText(font, *aTestDataArr[KBengaliTestDataIndex], KBengaliScriptCode, KBengaliLanguageCode); -#else - TheTest.Printf(_L("This test is ignored for release version\n")); -#endif - - TheTest.Next(_L("Run simple Bengali shape test\n")); - doShapeText(font, *aTestDataArr[KBengaliTestDataIndex], KBengaliScriptCode, KBengaliLanguageCode, ETrue); - shapeText(font, *aTestDataArr[KBengaliTestDataIndex], KBengaliScriptCode, KBengaliLanguageCode, ETrue); - - //for any other test data we have, run the simple shape text test only - for(i=KBengaliTestDataIndex+1; iiTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - - // First run does not check heap... this ensures that any memory - // stashed by the rasterizer does not show up as a leak. - doShapeText(font, *aTestDataArr[i], KBengaliScriptCode, KBengaliLanguageCode, ETrue); - shapeText(font, *aTestDataArr[i], KBengaliScriptCode, KBengaliLanguageCode, ETrue); - - fontStore->ReleaseFont(font); - } - - // Now do the last test, the shaping test using various font sizes - _LIT16(KBengali1,"\x099C\x09A8\x0997\x09A3\x09AE\x09A8\x0020\x0985\x09A7\x09BF\x09A8\x09BE\x09AF\x09BC\x0995\x0020\x099C\x09AF\x09BC\x0020\x09B9\x09C7\x0020\x09AD\x09BE\x09B0\x09A4\x0020\x09AD\x09BE\x0997\x09CD\x09AF\x0020\x09AC\x09BF\x09A7\x09BE\x09A4\x09BE\x0020\x09AA\x099E\x09CD\x099C\x09BE\x09AC\x0020\x09B8\x09BF\x09A8\x09CD\x09A7\x09C1\x0020"); - _LIT16(KBengali2,"\x0997\x09C1\x099C\x09B0\x09BE\x099F\x0020\x09AE\x09B0\x09BE\x09A0\x09BE\x0020\x09A6\x09CD\x09B0\x09BE\x09AC\x09BF\x09A1\x09BC\x0020\x0989\x09A4\x09CD\x0995\x09B2\x0020\x09AC\x0999\x09CD\x0997\x0020\x09AC\x09BF\x09A8\x09CD\x09A7\x09CD\x09AF\x0020\x09B9\x09BF\x09AE\x09BE\x099A\x09B2\x0020\x09AF\x09AE\x09C1\x09A8\x09BE\x0020\x0997\x0999\x09CD\x0997\x09BE\x0020"); - _LIT16(KBengali3,"\x0989\x099A\x09CD\x099B\x09B2\x0020\x099C\x09B2\x09A7\x09BF\x0020\x09A4\x09B0\x0999\x09CD\x0997\x0020\x09A4\x09AC\x0020\x09B6\x09C1\x09AD\x0020\x09A8\x09BE\x09AE\x09C7\x0020\x099C\x09BE\x0997\x09C7\x0020\x09A4\x09AC\x0020\x09B6\x09C1\x09AD\x0020\x0986\x09B6\x09BF\x09B8\x0020\x09AE\x09BE\x0997\x09C7\x0020\x0997\x09BE\x09B9\x09C7\x0020\x09A4\x09AC\x0020\x099C\x09AF\x09BC\x0020"); - - TheTest.Next(_L("Repeat Bengali shaping test using font sizes 20 to 6000\n")); - doRepeatShapeUsingVariousFontSizesTest(fontStore, aTestDataArr[KBengaliTestDataIndex]->iTypeFaceName, KBengali1, KBengali2, KBengali3, KBengaliScriptCode, KBengaliLanguageCode); - - CleanupStack::Pop(font); - fontStore->ReleaseFont(font); - - - CleanupStack::PopAndDestroy(fontStore); - } - -/** -@file -@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-4002 -@SYMTestCaseDesc Tests the shaper using Tamil Unicode. Test include OOM tests (oomShapeText), repeated - calls to the shaper (repeatShapeText), simple shaping tests (shapeText), and repeatedly - calling the shaper with incremental font sizes. -@SYMTestPriority High -@SYMTestActions Performs various tests of the the shaper, calling CShaper::ShapeText in various use cases -@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. -@SYMPREQ PREQ1766 -@SYMREQ REQ8742 -*/ -void TamilTestsL(RPointerArray aTestDataArr) - { - TheTest.Next(_L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-4002 ")); - TInt i; - CBitmapFont* font; - TInt err=KErrNone; - //the font store can use the normal user heap - CFontStore* fontStore = CFontStore::NewL(&User::Heap()); - fontStore->iKPixelWidthInTwips = 11860; - fontStore->iKPixelHeightInTwips = 11860; - CleanupStack::PushL(fontStore); - - //load all ecom implemented rasterizer dlls. installs the rasterizer. - LoadOpenFontLibraries(fontStore); - - //add the required Tamil font file - TRAP(err,fontStore->AddFileL(aTestDataArr[KTamilTestDataIndex]->iFilename)); - TEST(err==KErrNone); - - - //run all tests for TNR_Dev_OT test, which is at position 0 in the aTestDataArr - TFontSpec fontSpec(aTestDataArr[KTamilTestDataIndex]->iTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - CleanupStack::PushL(font); - - TheTest.Next(_L("Repeat Tamil text shaping test\n")); - doRepeatShapeText(font, *aTestDataArr[KTamilTestDataIndex], KTamilScriptCode, KTamilLanguageCode); - repeatShapeText(font, *aTestDataArr[KTamilTestDataIndex], KTamilScriptCode, KTamilLanguageCode); - - TheTest.Next(_L("OOM Tamil text shaping test\n")); -#if defined(_DEBUG) - doOomShapeText(font, *aTestDataArr[KTamilTestDataIndex], KTamilScriptCode, KTamilLanguageCode); - oomShapeText(font, *aTestDataArr[KTamilTestDataIndex], KTamilScriptCode, KTamilLanguageCode); -#else - TheTest.Printf(_L("This test is ignored for release version\n")); -#endif - - TheTest.Next(_L("Run simple Tamil shape test\n")); - doShapeText(font, *aTestDataArr[KTamilTestDataIndex], KTamilScriptCode, KTamilLanguageCode, ETrue); - shapeText(font, *aTestDataArr[KTamilTestDataIndex], KTamilScriptCode, KTamilLanguageCode, ETrue); - - //for any other test data we have, run the simple shape text test only - for(i=KTamilTestDataIndex+1; iiTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - - // First run does not check heap... this ensures that any memory - // stashed by the rasterizer does not show up as a leak. - doShapeText(font, *aTestDataArr[i], KTamilScriptCode, KTamilLanguageCode, ETrue); - shapeText(font, *aTestDataArr[i], KTamilScriptCode, KTamilLanguageCode, ETrue); - - fontStore->ReleaseFont(font); - } - - // Now do the last test, the shaping test using various font sizes - _LIT16(KTamil1,"\x0B89\x0BA3\x0BCD\x0BA3\x0020\x0BAE\x0BC1\x0B9F\x0BBF\x0BAF\x0BBE\x0BA4\x0020\x0BB5\x0BCB\x0BA4\x0BA8\x0BC0\x0BB0\x0BCD\x0020\x0BB5\x0BBE\x0BA9\x0BCD\x0BB5\x0BBE\x0BAF\x0BCD\x0BAA\x0BCD\x0BAA\x0B9F\x0BCD\x0020"); - _LIT16(KTamil2,"\x0B86\x0BA9\x0BCD\x0BB1\x0BB5\x0BC1\x0BAF\x0BBF\x0BB0\x0BCD\x0020\x0B88\x0BB0\x0BBE\x0BB1\x0BC1\x0BAE\x0BCD\x0020\x0B90\x0B99\x0BCD\x0B95\x0BC1\x0BB1\x0BBF\x0BB2\x0BCD\x0020\x0B8F\x0BB4\x0BCD\x0BA8\x0BC6\x0B9F\x0BBF\x0BB2\x0BBE\x0BAE\x0BCD\x0020"); - _LIT16(KTamil3,"\x0BAE\x0BC1\x0BAE\x0BCD\x0BAE\x0BC8\x0BAF\x0BBF\x0B9F\x0BA4\x0BCD\x0020\x0BA4\x0BC8\x0BAF\x0BCC\x0BB5\x0BC1\x0B99\x0BCD\x0020\x0B95\x0BC1\x0BA9\x0BCD\x0BB1\x0BC1\x0BAE\x0BC1\x0BA9\x0BCD\x0020\x0BA9\x0BCA\x0BB1\x0BCD\x0BB1\x0BC1\x0BA3\x0BCD\x0B9F\x0BC7\x0BB1\x0BCD"); - - TheTest.Next(_L("Repeat Tamil shaping test using font sizes 20 to 6000\n")); - doRepeatShapeUsingVariousFontSizesTest(fontStore, aTestDataArr[KTamilTestDataIndex]->iTypeFaceName, KTamil1, KTamil2, KTamil3, KTamilScriptCode, KTamilLanguageCode); - - CleanupStack::Pop(font); - fontStore->ReleaseFont(font); - - - CleanupStack::PopAndDestroy(fontStore); - } - -/** -@file -@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-4003 -@SYMTestCaseDesc Tests the shaper using Telugu Unicode. Test include OOM tests (oomShapeText), repeated - calls to the shaper (repeatShapeText), simple shaping tests (shapeText), and repeatedly - calling the shaper with incremental font sizes. -@SYMTestPriority High -@SYMTestActions Performs various tests of the the shaper, calling CShaper::ShapeText in various use cases -@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. -@SYMPREQ PREQ1766 -@SYMREQ REQ8743 -*/ -void TeluguTestsL(RPointerArray aTestDataArr) - { - TheTest.Next(_L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-4003 ")); - TInt i; - CBitmapFont* font; - TInt err=KErrNone; - //the font store can use the normal user heap - CFontStore* fontStore = CFontStore::NewL(&User::Heap()); - fontStore->iKPixelWidthInTwips = 11860; - fontStore->iKPixelHeightInTwips = 11860; - CleanupStack::PushL(fontStore); - - //load all ecom implemented rasterizer dlls. installs the rasterizer. - LoadOpenFontLibraries(fontStore); - - //add the required Telugu font file - TRAP(err,fontStore->AddFileL(aTestDataArr[KTeluguTestDataIndex]->iFilename)); - TEST(err==KErrNone); - - - //run all tests for TNR_Dev_OT test, which is at position 0 in the aTestDataArr - TFontSpec fontSpec(aTestDataArr[KTeluguTestDataIndex]->iTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - CleanupStack::PushL(font); - - TheTest.Next(_L("Repeat Telugu text shaping test\n")); - doRepeatShapeText(font, *aTestDataArr[KTeluguTestDataIndex], KTeluguScriptCode, KTeluguLanguageCode); - repeatShapeText(font, *aTestDataArr[KTeluguTestDataIndex], KTeluguScriptCode, KTeluguLanguageCode); - - TheTest.Next(_L("OOM Telugu text shaping test\n")); -#if defined(_DEBUG) - doOomShapeText(font, *aTestDataArr[KTeluguTestDataIndex], KTeluguScriptCode, KTeluguLanguageCode); - oomShapeText(font, *aTestDataArr[KTeluguTestDataIndex], KTeluguScriptCode, KTeluguLanguageCode); -#else - TheTest.Printf(_L("This test is ignored for release version\n")); -#endif - - TheTest.Next(_L("Run simple Telugu shape test\n")); - doShapeText(font, *aTestDataArr[KTeluguTestDataIndex], KTeluguScriptCode, KTeluguLanguageCode, ETrue); - shapeText(font, *aTestDataArr[KTeluguTestDataIndex], KTeluguScriptCode, KTeluguLanguageCode, ETrue); - - //for any other test data we have, run the simple shape text test only - for(i=KTeluguTestDataIndex+1; iiTypeFaceName,12); - fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); - - // First run does not check heap... this ensures that any memory - // stashed by the rasterizer does not show up as a leak. - doShapeText(font, *aTestDataArr[i], KTeluguScriptCode, KTeluguLanguageCode, ETrue); - shapeText(font, *aTestDataArr[i], KTeluguScriptCode, KTeluguLanguageCode, ETrue); - - fontStore->ReleaseFont(font); - } - - // Now do the last test, the shaping test using various font sizes - _LIT16(KTelugu1,"\x0C05\x0C2A\x0C4D\x0C30\x0C15\x0C3E\x0C36\x0C4B\x093D\x0C2A\x0C4D\x0C30\x0C35\x0C43\x0C24\x0C4D\x0C24\x0C3F\x0C36\x0C4D\x0C1A\x0020\x0C2A\x0C4D\x0C30\x0C2E\x0C3E\x0C26\x0C4B\x0020\x0C0A\x0C30\x0C4D\x0C27\x0C4D\x0C35\x0C02"); - _LIT16(KTelugu2,"\x0C15\x0C48\x0C30\x0C4D\x0C32\x0C3F\x0C19\x0C4D\x0C17\x0C48\x0C38\x0C4D\x0C24\x0C4D\x0C30\x0C40\x0C28\x0C4D\x0C17\x0C41\x0C23\x0C3E\x0C28\x0C47\x0C24\x0C3E\x0C28\x0C24\x0C40\x0C24\x0C4B\x0020\x0C17\x0C41\x0C23\x0C48\x0C30\x0C4D\x0C2F"); - _LIT16(KTelugu3,"\x0020\x0C2C\x0C4D\x0C30\x0C39\x0C4D\x0C2E\x0C23\x0C4B\x0020\x0C39\x0C3F\x0020\x0C2A\x0C4D\x0C30\x0C24\x0C3F\x0C37\x0C4D\x0C20\x0C3E\x0C39\x0C2E\x0C2E\x0C43\x0C24\x0C38\x0C4D\x0C2F\x0C3E\x0C35\x0C4D\x0C2F\x0C2F\x0C38\x0C4D\x0C2F"); - - TheTest.Next(_L("Repeat Telugu shaping test using font sizes 20 to 6000\n")); - doRepeatShapeUsingVariousFontSizesTest(fontStore, aTestDataArr[KTeluguTestDataIndex]->iTypeFaceName, KTelugu1, KTelugu2, KTelugu3, KTeluguScriptCode, KTeluguLanguageCode); - - CleanupStack::Pop(font); - fontStore->ReleaseFont(font); - - - CleanupStack::PopAndDestroy(fontStore); - } - -static void MainL() - { - TInt i=0; - - TheTest.Start(_L("TC_SHAP_shapeText tests\n")); - - //set up the testData variables - CDesC16ArrayFlat* testDataFilenames = new CDesC16ArrayFlat(2); - CleanupStack::PushL(testDataFilenames); - for (i = 0; i != sizeof(KTestFilenames)/sizeof(KTestFilenames[0]); ++i) - { - TPtrC16 d(KTestFilenames[i]); - testDataFilenames->AppendL(d); - } - RPointerArray testDataArr = SetupTestData(testDataFilenames); - // Run Hindi Tests - TheTest.Next(_L("Hindi Shaping Tests\n")); - TRAPD(err, HindiTestsL(testDataArr)); - TEST2(err, KErrNone); - // Run Kannada Tests - TheTest.Next(_L("Kannada Shaping Tests\n")); - TRAP(err, KannadaTestsL(testDataArr)); - TEST2(err, KErrNone); - // Run Gujarati Tests - TheTest.Next(_L("Gujarati Shaping Tests\n")); - TRAP(err, GujaratiTestsL(testDataArr)); - TEST2(err, KErrNone); - // Run Bengali Tests - TheTest.Next(_L("Bengali Shaping Tests\n")); - TRAP(err, BengaliTestsL(testDataArr)); - TEST2(err, KErrNone); - // Run Tamil Tests - TheTest.Next(_L("Tamil Shaping Tests\n")); - TRAP(err, TamilTestsL(testDataArr)); - TEST2(err, KErrNone); - // Run Telugu Tests - TheTest.Next(_L("Telugu Shaping Tests\n")); - TRAP(err, TeluguTestsL(testDataArr)); - TEST2(err, KErrNone); - - // Run Gurmukhi Tests - TheTest.Next( _L("Gurmukhi Shaping Tests\n") ); - TRAP(err, GurmukhiTestsL(testDataArr) ); - TEST2(err, KErrNone); - - // Run Malayalam Tests - TheTest.Next( _L("Malayalam Shaping Tests\n") ); - TRAP(err, MalayalamTestsL(testDataArr) ); - TEST2(err, KErrNone); - - - testDataArr.ResetAndDestroy(); - - CleanupStack::PopAndDestroy(1); //testDataFilenames - - //close the ecom session opened by LoadOpenFontLibraries() - REComSession::FinalClose(); - - TheTest.End(); - TheTest.Close(); - - } - -TInt E32Main() - { - __UHEAP_MARK; - - CTrapCleanup* tc = CTrapCleanup::New(); - TEST(tc != NULL); - - TheTest.Title(); - TRAPD(err, ::MainL()); - TEST2(err, KErrNone); - - delete tc; - CloseSTDLIB(); - - __UHEAP_MARKEND; - - User::Heap().Check(); - return KErrNone; - } diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/TC_SHAP_shapeText.iby --- a/fontservices/textshaperplugin/test/TC_SHAP_shapeText.iby Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -/* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#ifndef __TC_SHAP_SHAPETEXT_IBY__ -#define __TC_SHAP_SHAPETEXT_IBY__ - -file=ABI_DIR\DEBUG_DIR\TC_SHAP_shapeText.exe Test\TC_SHAP_shapeText.exe - -// Devanagari test data -data=DATAZ_\test\data\tnr_dev_otshaperdata1.dat \test\data\tnr_dev_otshaperdata1.dat -data=DATAZ_\test\data\tnr_dev_otshaperdata2.dat \test\data\tnr_dev_otshaperdata2.dat -data=DATAZ_\test\data\tnr_dev_otshaperdata3.dat \test\data\tnr_dev_otshaperdata3.dat -data=DATAZ_\test\data\tnr_dev_otshaperdata4.dat \test\data\tnr_dev_otshaperdata4.dat -data=DATAZ_\test\data\tnr_dev_otshaperdata5.dat \test\data\tnr_dev_otshaperdata5.dat - -// Kannada test data -data=DATAZ_\test\data\shaperkannadadata1.dat \test\data\shaperkannadadata1.dat -data=DATAZ_\test\data\shaperkannadadata2.dat \test\data\shaperkannadadata2.dat -data=DATAZ_\test\data\shaperkannadadata3.dat \test\data\shaperkannadadata3.dat - -// Gujarati test data -data=DATAZ_\test\data\shapergujaratidata1.dat \test\data\shapergujaratidata1.dat -data=DATAZ_\test\data\shapergujaratidata2.dat \test\data\shapergujaratidata2.dat -data=DATAZ_\test\data\shapergujaratidata3.dat \test\data\shapergujaratidata3.dat - -// Bengali test data -data=DATAZ_\test\data\shaperbengalidata1.dat \test\data\shaperbengalidata1.dat -data=DATAZ_\test\data\shaperbengalidata2.dat \test\data\shaperbengalidata2.dat -data=DATAZ_\test\data\shaperbengalidata3.dat \test\data\shaperbengalidata3.dat - -// Tamil test data -data=DATAZ_\test\data\shapertamildata1.dat \test\data\shapertamildata1.dat -data=DATAZ_\test\data\shapertamildata2.dat \test\data\shapertamildata2.dat -data=DATAZ_\test\data\shapertamildata3.dat \test\data\shapertamildata3.dat - -// Tamil test data -data=DATAZ_\test\data\shapertelugudata1.dat \test\data\shapertelugudata1.dat -data=DATAZ_\test\data\shapertelugudata2.dat \test\data\shapertelugudata2.dat -data=DATAZ_\test\data\shapertelugudata3.dat \test\data\shapertelugudata3.dat - -data=DATAZ_\test\data\shapergurmukhi1.dat \test\data\shapergurmukhi1.dat -data=DATAZ_\test\data\shapergurmukhi2.dat \test\data\shapergurmukhi2.dat -data=DATAZ_\test\data\shapergurmukhi3.dat \test\data\shapergurmukhi3.dat -data=DATAZ_\test\data\shapergurmukhi4.dat \test\data\shapergurmukhi4.dat -data=DATAZ_\test\data\shapergurmukhi5.dat \test\data\shapergurmukhi5.dat - -data=DATAZ_\test\data\shapermalayalam1.dat \test\data\shapermalayalam1.dat -data=DATAZ_\test\data\shapermalayalam2.dat \test\data\shapermalayalam2.dat -data=DATAZ_\test\data\shapermalayalam3.dat \test\data\shapermalayalam3.dat -data=DATAZ_\test\data\shapermalayalam4.dat \test\data\shapermalayalam4.dat -data=DATAZ_\test\data\shapermalayalam5.dat \test\data\shapermalayalam5.dat - -#endif - diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/scripts/shapetest.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/test/scripts/shapetest.bat Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,24 @@ +@rem +@rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +@rem All rights reserved. +@rem This component and the accompanying materials are made available +@rem under the terms of "Eclipse Public License v1.0" +@rem which accompanies this distribution, and is available +@rem at the URL "http://www.eclipse.org/legal/epl-v10.html". +@rem +@rem Initial Contributors: +@rem Nokia Corporation - initial contribution. +@rem +@rem Contributors: +@rem +@rem Description: +@rem + +@echo on +testexecute.exe z:\shapetest\shapetest_t_all.script + +@echo off +@rem md e:\logs +@rem md e:\logs\testexecute +@rem copy c:\logs\testexecute\shapetest_t_*.htm e:\logs\testexecute\ +@rem copy c:\logs\testexecute\testresults.htm e:\logs\testexecute\shaperesults.htm diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/scripts/shapetest_t_all.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/test/scripts/shapetest_t_all.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,27 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run All t_shapetestserver tests +// +LOAD_SUITE t_shapetestserver +RUN_TEST_STEP 200 t_shapetestserver Hindi +RUN_TEST_STEP 200 t_shapetestserver Kannada +RUN_TEST_STEP 200 t_shapetestserver Gujarati +RUN_TEST_STEP 200 t_shapetestserver Bengali +RUN_TEST_STEP 200 t_shapetestserver Tamil +RUN_TEST_STEP 200 t_shapetestserver Telugu +RUN_TEST_STEP 200 t_shapetestserver Gurmukhi +RUN_TEST_STEP 200 t_shapetestserver Malayalam \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/scripts/shapetest_t_bengali.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/test/scripts/shapetest_t_bengali.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run Bengali tests +// +LOAD_SUITE t_shapetestserver +RUN_TEST_STEP 200 t_shapetestserver Bengali \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/scripts/shapetest_t_gujarati.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/test/scripts/shapetest_t_gujarati.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run Gujarati tests +// +LOAD_SUITE t_shapetestserver +RUN_TEST_STEP 200 t_shapetestserver Gujarati \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/scripts/shapetest_t_gurmukhi.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/test/scripts/shapetest_t_gurmukhi.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run Gurmukhi tests +// +LOAD_SUITE t_shapetestserver +RUN_TEST_STEP 200 t_shapetestserver Gurmukhi \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/scripts/shapetest_t_hindi.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/test/scripts/shapetest_t_hindi.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run Hindi tests +// +LOAD_SUITE t_shapetestserver +RUN_TEST_STEP 200 t_shapetestserver Hindi \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/scripts/shapetest_t_kannada.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/test/scripts/shapetest_t_kannada.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run Kannada tests +// +LOAD_SUITE t_shapetestserver +RUN_TEST_STEP 200 t_shapetestserver Kannada \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/scripts/shapetest_t_malayalam.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/test/scripts/shapetest_t_malayalam.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run Malayalam tests +// +LOAD_SUITE t_shapetestserver +RUN_TEST_STEP 200 t_shapetestserver Malayalam \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/scripts/shapetest_t_tamil.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/test/scripts/shapetest_t_tamil.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run Tamil tests +// +LOAD_SUITE t_shapetestserver +RUN_TEST_STEP 200 t_shapetestserver Tamil \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/scripts/shapetest_t_telugu.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/test/scripts/shapetest_t_telugu.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run Telugu tests +// +LOAD_SUITE t_shapetestserver +RUN_TEST_STEP 200 t_shapetestserver Telugu \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/shapetest.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/test/shapetest.iby Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,86 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef __SHAPETEST_IBY__ +#define __SHAPETEST_IBY__ + +#include + +// script file +data=DATAZ_\shapetest\shapetest.bat \shapetest.bat +data=DATAZ_\shapetest\shapetest_t_all.script \shapetest\shapetest_t_all.script +data=DATAZ_\shapetest\shapetest_t_hindi.script \shapetest\shapetest_t_hindi.script +data=DATAZ_\shapetest\shapetest_t_kannada.script \shapetest\shapetest_t_kannada.script +data=DATAZ_\shapetest\shapetest_t_gujarati.script \shapetest\shapetest_t_gujarati.script +data=DATAZ_\shapetest\shapetest_t_bengali.script \shapetest\shapetest_t_bengali.script +data=DATAZ_\shapetest\shapetest_t_tamil.script \shapetest\shapetest_t_tamil.script +data=DATAZ_\shapetest\shapetest_t_telugu.script \shapetest\shapetest_t_telugu.script +data=DATAZ_\shapetest\shapetest_t_gurmukhi.script \shapetest\shapetest_t_gurmukhi.script +data=DATAZ_\shapetest\shapetest_t_malayalam.script \shapetest\shapetest_t_malayalam.script + +// shape test code +file=ABI_DIR\DEBUG_DIR\t_shapetestserver.exe TEST\t_shapetestserver.exe + +// Devanagari test data +data=DATAZ_\test\data\tnr_dev_otshaperdata1.dat \test\data\tnr_dev_otshaperdata1.dat +data=DATAZ_\test\data\tnr_dev_otshaperdata2.dat \test\data\tnr_dev_otshaperdata2.dat +data=DATAZ_\test\data\tnr_dev_otshaperdata3.dat \test\data\tnr_dev_otshaperdata3.dat +data=DATAZ_\test\data\tnr_dev_otshaperdata4.dat \test\data\tnr_dev_otshaperdata4.dat +data=DATAZ_\test\data\tnr_dev_otshaperdata5.dat \test\data\tnr_dev_otshaperdata5.dat + +// Kannada test data +data=DATAZ_\test\data\shaperkannadadata1.dat \test\data\shaperkannadadata1.dat +data=DATAZ_\test\data\shaperkannadadata2.dat \test\data\shaperkannadadata2.dat +data=DATAZ_\test\data\shaperkannadadata3.dat \test\data\shaperkannadadata3.dat + +// Gujarati test data +data=DATAZ_\test\data\shapergujaratidata1.dat \test\data\shapergujaratidata1.dat +data=DATAZ_\test\data\shapergujaratidata2.dat \test\data\shapergujaratidata2.dat +data=DATAZ_\test\data\shapergujaratidata3.dat \test\data\shapergujaratidata3.dat + +// Bengali test data +data=DATAZ_\test\data\shaperbengalidata1.dat \test\data\shaperbengalidata1.dat +data=DATAZ_\test\data\shaperbengalidata2.dat \test\data\shaperbengalidata2.dat +data=DATAZ_\test\data\shaperbengalidata3.dat \test\data\shaperbengalidata3.dat + +// Tamil test data +data=DATAZ_\test\data\shapertamildata1.dat \test\data\shapertamildata1.dat +data=DATAZ_\test\data\shapertamildata2.dat \test\data\shapertamildata2.dat +data=DATAZ_\test\data\shapertamildata3.dat \test\data\shapertamildata3.dat + +// Telugu test data +data=DATAZ_\test\data\shapertelugudata1.dat \test\data\shapertelugudata1.dat +data=DATAZ_\test\data\shapertelugudata2.dat \test\data\shapertelugudata2.dat +data=DATAZ_\test\data\shapertelugudata3.dat \test\data\shapertelugudata3.dat + +// Gurmukhi test data +data=DATAZ_\test\data\shapergurmukhi1.dat \test\data\shapergurmukhi1.dat +data=DATAZ_\test\data\shapergurmukhi2.dat \test\data\shapergurmukhi2.dat +data=DATAZ_\test\data\shapergurmukhi3.dat \test\data\shapergurmukhi3.dat +data=DATAZ_\test\data\shapergurmukhi4.dat \test\data\shapergurmukhi4.dat +data=DATAZ_\test\data\shapergurmukhi5.dat \test\data\shapergurmukhi5.dat + +// Malayalam test data +data=DATAZ_\test\data\shapermalayalam1.dat \test\data\shapermalayalam1.dat +data=DATAZ_\test\data\shapermalayalam2.dat \test\data\shapermalayalam2.dat +data=DATAZ_\test\data\shapermalayalam3.dat \test\data\shapermalayalam3.dat +data=DATAZ_\test\data\shapermalayalam4.dat \test\data\shapermalayalam4.dat +data=DATAZ_\test\data\shapermalayalam5.dat \test\data\shapermalayalam5.dat + +#endif + diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/t_shapetestserver.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/test/t_shapetestserver.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,86 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include +#include "t_shapeteststep.h" + + +class CShapeTestServer : public CTestServer + { +public: + static CShapeTestServer* NewL(); + virtual CTestStep* CreateTestStep(const TDesC& aStepName); + }; + + +_LIT(KServerName,"t_shapetestserver"); + +CShapeTestServer *CShapeTestServer::NewL() + { + CShapeTestServer * server = new (ELeave) CShapeTestServer(); + CleanupStack::PushL(server); + server->StartL(KServerName); + CleanupStack::Pop(server); + return server; + } + +CTestStep *CShapeTestServer::CreateTestStep(const TDesC& aStepName) + { + return CShapeTestStep::CreateShapeTestStep(aStepName); + } + + +LOCAL_C void MainL() + { +#if (defined __DATA_CAGING__) + RProcess().DataCaging(RProcess::EDataCagingOn); + RProcess().SecureApi(RProcess::ESecureApiOn); +#endif + CActiveScheduler* sched=NULL; + sched=new(ELeave) CActiveScheduler; + CActiveScheduler::Install(sched); + CShapeTestServer *server = NULL; + TRAPD(err,server = CShapeTestServer::NewL()); + if(!err) + { + // Sync with the client and enter the active scheduler + RProcess::Rendezvous(KErrNone); + sched->Start(); + } + delete server; + delete sched; + } + +GLDEF_C TInt E32Main() + { + __UHEAP_MARK; + CTrapCleanup* cleanup = CTrapCleanup::New(); + if(cleanup == NULL) + { + return KErrNoMemory; + } + TRAPD(err,MainL()); + // This if statement is here just to shut up RVCT, which would otherwise warn + // that err was set but never used + if (err) + { + err = KErrNone; + } + delete cleanup; + __UHEAP_MARKEND; + return KErrNone; + } diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/t_shapeteststep.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/test/t_shapeteststep.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,1042 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "testData.h" +#include "t_shapeteststep.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + +//add filenames for any test data here +const TText16* KTestFilenames[] = + { + //created from original iculayoutengine test data + (const TText16*) L"z:\\test\\data\\tnr_dev_otshaperdata1.dat", + //created from input data provided by licensee + (const TText16*) L"z:\\test\\data\\tnr_dev_otshaperdata2.dat", + //created from input data provided by licensee + (const TText16*) L"z:\\test\\data\\tnr_dev_otshaperdata3.dat", + //created from input data provided by licensee + (const TText16*) L"z:\\test\\data\\tnr_dev_otshaperdata4.dat", + // Data to test defect fix DEF078032 + (const TText16*) L"z:\\test\\data\\tnr_dev_otshaperdata5.dat", + //created from input data provided by licensee + (const TText16*) L"z:\\test\\data\\shaperkannadadata1.dat", + // created from Kannada sample text + (const TText16*) L"z:\\test\\data\\shaperkannadadata2.dat", + // created from Kannada sample text + (const TText16*) L"z:\\test\\data\\shaperkannadadata3.dat", + // created from Gujarati sample text taken from the web + (const TText16*) L"z:\\test\\data\\shapergujaratidata1.dat", + // created from Gujarati sample text taken from the web + (const TText16*) L"z:\\test\\data\\shapergujaratidata2.dat", + // created from Gujarati sample text given by the licensee + (const TText16*) L"z:\\test\\data\\shapergujaratidata3.dat", + // created from Bengali sample text given by the licensee + (const TText16*) L"z:\\test\\data\\shaperbengalidata1.dat", + // created from Bengali sample text given by the licensee + (const TText16*) L"z:\\test\\data\\shaperbengalidata2.dat", + // created from Bengali sample text given by the licensee + (const TText16*) L"z:\\test\\data\\shaperbengalidata3.dat", + // created from Tamil sample text given by the licensee + (const TText16*) L"z:\\test\\data\\shapertamildata1.dat", + // created from Tamil sample text given by the licensee + (const TText16*) L"z:\\test\\data\\shapertamildata2.dat", + // created from Tamil sample text given by the licensee + (const TText16*) L"z:\\test\\data\\shapertamildata3.dat", + // created from Telugu sample text given by the licensee + (const TText16*) L"z:\\test\\data\\shapertelugudata1.dat", + // created from Telugu sample text given by the licensee + (const TText16*) L"z:\\test\\data\\shapertelugudata2.dat", + // created from Telugu sample text given by the licensee + (const TText16*) L"z:\\test\\data\\shapertelugudata3.dat", + // Test for Gurmukhi digit + (const TText16*) L"z:\\test\\data\\shapergurmukhi1.dat", + (const TText16*) L"z:\\test\\data\\shapergurmukhi2.dat", + (const TText16*) L"z:\\test\\data\\shapergurmukhi3.dat", + (const TText16*) L"z:\\test\\data\\shapergurmukhi4.dat", + (const TText16*) L"z:\\test\\data\\shapergurmukhi5.dat", + // Test for Malayalam digit + (const TText16*) L"z:\\test\\data\\shapermalayalam1.dat", + (const TText16*) L"z:\\test\\data\\shapermalayalam2.dat", + (const TText16*) L"z:\\test\\data\\shapermalayalam3.dat", + (const TText16*) L"z:\\test\\data\\shapermalayalam4.dat", + (const TText16*) L"z:\\test\\data\\shapermalayalam5.dat" + }; + +/** +Number of test data files of each of the scripts/languages bein tests. +Must change these if KTestFilnames[] above is changed +*/ +const TInt KHindiTestDataIndex = 0; +const TInt KNumberOfHindiTestDataFiles = 5; +const TInt KKannadaTestDataIndex = 5; +const TInt KNumberOfKannadaTestDataFiles = 3; +const TInt KGujaratiTestDataIndex = 8; +const TInt KNumberOfGujaratiTestDataFiles = 3; +const TInt KBengaliTestDataIndex = 11; +const TInt KNumberOfBengaliTestDataFiles = 3; +const TInt KTamilTestDataIndex = 14; +const TInt KNumberOfTamilTestDataFiles = 3; +const TInt KTeluguTestDataIndex = 17; +const TInt KNumberOfTeluguTestDataFiles = 3; +const TInt KGurmukhiTestDataIndex = 20; +const TInt KNumberOfGurmukhiTestDataFiles = 5; +const TInt KMalayalamTestDataIndex = 25; +const TInt KNumberOfMalayalamTestDataFiles = 5; + +const TUint32 KDevanagariScriptCode = 0x64657661; +const TUint32 KKannadaScriptCode = 0x6B6E6461; +const TUint32 KHindiLanguageCode = 0x48494E20; +const TUint32 KKannadaLanguageCode = 0x4B414E20; +const TUint32 KGujaratiScriptCode = 0x67756A72; +const TUint32 KGujaratiLanguageCode = 0x47554A20; +const TUint32 KBengaliScriptCode = 0x62656E67; +const TUint32 KBengaliLanguageCode = 0x42454E20; +const TUint32 KTamilScriptCode = 0x74616D6C; +const TUint32 KTamilLanguageCode = 0x54414D20; +const TUint32 KTeluguScriptCode = 0x74656C75; +const TUint32 KTeluguLanguageCode = 0x54454C20; +const TUint32 KGurmukhiScriptCode = 0x67757275; +const TUint32 KGurmukhiLanguageCode = 0; +const TUint32 KMalayalamScriptCode = 0x6d6c796d; +const TUint32 KMalayalamLanguageCode = 0x4d4c5220; + +_LIT(KTestStep_Hindi, "Hindi"); +_LIT(KTestStep_Kannada, "Kannada"); +_LIT(KTestStep_Gujarati, "Gujarati"); +_LIT(KTestStep_Bengali, "Bengali"); +_LIT(KTestStep_Tamil, "Tamil"); +_LIT(KTestStep_Telugu, "Telugu"); +_LIT(KTestStep_Gurmukhi, "Gurmukhi"); +_LIT(KTestStep_Malayalam, "Malayalam"); + +_LIT16(KHindi1,"\x0915\x094D\x0937\x0924\x094D\x0930\x093F\x092F\x0020\x0909\x0926\x094D\x0926\x0947\x0936\x094D\x0020\x0915\x094D\x0937\x093F\x092A\x094D\x0930"); +_LIT16(KHindi2,"\x092d\x0942\x0930\x094d\x092d\x0941\x0935\x0903\x0020\x0938\x094d\x0935\x0903\x0020\x0924\x0924\x094d\x0938\x0935\x093f\x0924\x0941\x0930\x094d\x0935\x0930\x0947\x0923\x094d\x092f\x0902"); +_LIT16(KHindi3,"\x092d\x0930\x094d\x0917\x094b\x0020\x0926\x0947\x0935\x0938\x094d\x092f\x0020\x0927\x0940\x092e\x0939\x093f\x0020\x0927\x093f\x092f\x094b\x0020\x092f\x094b\x0928\x0903\x0020\x092a\x094d\x0930\x091a\x094b\x0926\x092f\x093e\x0924\x094d\x0020"); + +_LIT16(KKannada1,"\x0CB6\x0CCD\x0CB0\x0CC0\x0020\x0CAD\x0C97\x0CB5\x0CBE\x0CA8\x0CC1\x0CB5\x0CBE\x0C9A\x0C95\x0CC1\x0CA4\x0CB8\x0CCD\x0CA4\x0CCD\x0CB5\x0CBE\x0020\x0C95\x0CB6\x0CCD\x0CAE\x0CB2\x0CAE\x0CBF\x0CA6\x0C82\x0020\x0CB5\x0CBF\x0CB7\x0CAE\x0020\x0CB8\x0CAE\x0CC1\x0CAA\x0CB8\x0CCD\x0CA5\x0CBF\x0CA4\x0CAE\x0CCD"); +_LIT16(KKannada2,"\x0C85\x0CA8\x0CBE\x0CB0\x0CCD\x0CAF\x0C9C\x0CC1\x0CB7\x0CCD\x0CA0\x0CAE\x0CB8\x0CCD\x0CB5\x0CB0\x0CCD\x0C97\x0CCD\x0CAF\x0CAE\x0C95\x0CC0\x0CB0\x0CCD\x0CA4\x0CBF\x0C95\x0CB0\x0CAE\x0CB0\x0CCD\x0C9C\x0CC1\x0CA8"); +_LIT16(KKannada3,"\x0C95\x0CCD\x0CB2\x0CC8\x0CAC\x0CCD\x0CAF\x0C82\x0020\x0CAE\x0CBE\x0020\x0CB8\x0CCD\x0CAE\x0020\x0C97\x0CAE\x0C83\x0020\x0CAA\x0CBE\x0CB0\x0CCD\x0CA5\x0020\x0CA8\x0CC8\x0CA4\x0CA4\x0CCD\x0CA4\x0CCD\x0CB5\x0CAF\x0CCD\x0CAF\x0CC1\x0CAA\x0CAA\x0CA7\x0CCD\x0CAF\x0CA4\x0CC7"); + +_LIT16(KGujarati1,"\x0AAD\x0ABE\x0AB5\x0ABE\x0AA4\x0ACD\x0AAE\x0A95\x0020\x0AAA\x0AA6\x0ACD\x0AAF\x0ABE\x0AA8\x0AC1\x0AB5\x0ABE\x0AA6\x0020\x0020\x002D\x0020\x0AB6\x0ACD\x0AB0\x0AC0\x0020\x0AAF\x0ACB\x0A97\x0AC7\x0AB6\x0ACD\x0AB5\x0AB0\x0A9C\x0AC0"); +_LIT16(KGujarati2,"\x0AB5\x0ABF\x0AA8\x0ACD\x0AA1\x0ACB\x0A9D\x0020\x0AB5\x0ABF\x0AB8\x0ACD\x0A9F\x0ABE\x0020\x002D\x0020\x0A86\x0A82\x0AA4\x0AB0\x0AB0\x0ABE\x0AB7\x0ACD\x0A9F\x0ACD\x0AB0\x0ABF\x0AAF\x0A95\x0AB0\x0AA3\x0020\x0AB5\x0ABF\x0AB6\x0AC7\x0AA8\x0AC0\x0020\x0A9C\x0ABE\x0AA3\x0A95\x0ABE\x0AB0\x0AC0"); +_LIT16(KGujarati3,"\x0AAE\x0ABE\x0A88\x0A95\x0ACD\x0AB0\x0ACB\x0AB8\x0ACB\x0AAB\x0ACD\x0A9F\x0AA8\x0ABE\x0020\x0A86\x0020\x0A86\x0A82\x0AA4\x0AB0\x0AB0\x0ABE\x0AB7\x0ACD\x0A9F\x0ACD\x0AB0\x0ABF\x0AAF\x0020\x0AAA\x0ACB\x0AB0\x0ACD\x0A9F\x0AB2\x0020\x0AB5\x0ABF\x0AB6\x0AC7\x0020\x0AB5\x0AA7\x0AC1\x0020\x0A9C\x0ABE\x0AA3\x0ACB\x002E\x0020\x0AB5\x0ABF\x0AB8\x0ACD\x0A9F\x0ABE\x0A8F\x0020\x0AA6\x0AC1\x0AA8\x0ABF\x0AAF\x0ABE\x0AAD\x0AB0\x0AA8\x0AC0\x0020\x0AAD\x0ABE\x0AB7\x0ABE\x0A93\x0020\x0AAE\x0ABE\x0A9F\x0AC7\x0020\x0AA6\x0ACD\x0AB5\x0ABE\x0AB0\x0020\x0A96\x0ACB\x0AB2\x0AC0\x0020\x0AA8\x0ABE\x0A96\x0ACD\x0AAF\x0ABE\x0020\x0A9B\x0AC7"); + +_LIT16(KBengali1,"\x099C\x09A8\x0997\x09A3\x09AE\x09A8\x0020\x0985\x09A7\x09BF\x09A8\x09BE\x09AF\x09BC\x0995\x0020\x099C\x09AF\x09BC\x0020\x09B9\x09C7\x0020\x09AD\x09BE\x09B0\x09A4\x0020\x09AD\x09BE\x0997\x09CD\x09AF\x0020\x09AC\x09BF\x09A7\x09BE\x09A4\x09BE\x0020\x09AA\x099E\x09CD\x099C\x09BE\x09AC\x0020\x09B8\x09BF\x09A8\x09CD\x09A7\x09C1\x0020"); +_LIT16(KBengali2,"\x0997\x09C1\x099C\x09B0\x09BE\x099F\x0020\x09AE\x09B0\x09BE\x09A0\x09BE\x0020\x09A6\x09CD\x09B0\x09BE\x09AC\x09BF\x09A1\x09BC\x0020\x0989\x09A4\x09CD\x0995\x09B2\x0020\x09AC\x0999\x09CD\x0997\x0020\x09AC\x09BF\x09A8\x09CD\x09A7\x09CD\x09AF\x0020\x09B9\x09BF\x09AE\x09BE\x099A\x09B2\x0020\x09AF\x09AE\x09C1\x09A8\x09BE\x0020\x0997\x0999\x09CD\x0997\x09BE\x0020"); +_LIT16(KBengali3,"\x0989\x099A\x09CD\x099B\x09B2\x0020\x099C\x09B2\x09A7\x09BF\x0020\x09A4\x09B0\x0999\x09CD\x0997\x0020\x09A4\x09AC\x0020\x09B6\x09C1\x09AD\x0020\x09A8\x09BE\x09AE\x09C7\x0020\x099C\x09BE\x0997\x09C7\x0020\x09A4\x09AC\x0020\x09B6\x09C1\x09AD\x0020\x0986\x09B6\x09BF\x09B8\x0020\x09AE\x09BE\x0997\x09C7\x0020\x0997\x09BE\x09B9\x09C7\x0020\x09A4\x09AC\x0020\x099C\x09AF\x09BC\x0020"); + +_LIT16(KTamil1,"\x0B89\x0BA3\x0BCD\x0BA3\x0020\x0BAE\x0BC1\x0B9F\x0BBF\x0BAF\x0BBE\x0BA4\x0020\x0BB5\x0BCB\x0BA4\x0BA8\x0BC0\x0BB0\x0BCD\x0020\x0BB5\x0BBE\x0BA9\x0BCD\x0BB5\x0BBE\x0BAF\x0BCD\x0BAA\x0BCD\x0BAA\x0B9F\x0BCD\x0020"); +_LIT16(KTamil2,"\x0B86\x0BA9\x0BCD\x0BB1\x0BB5\x0BC1\x0BAF\x0BBF\x0BB0\x0BCD\x0020\x0B88\x0BB0\x0BBE\x0BB1\x0BC1\x0BAE\x0BCD\x0020\x0B90\x0B99\x0BCD\x0B95\x0BC1\x0BB1\x0BBF\x0BB2\x0BCD\x0020\x0B8F\x0BB4\x0BCD\x0BA8\x0BC6\x0B9F\x0BBF\x0BB2\x0BBE\x0BAE\x0BCD\x0020"); +_LIT16(KTamil3,"\x0BAE\x0BC1\x0BAE\x0BCD\x0BAE\x0BC8\x0BAF\x0BBF\x0B9F\x0BA4\x0BCD\x0020\x0BA4\x0BC8\x0BAF\x0BCC\x0BB5\x0BC1\x0B99\x0BCD\x0020\x0B95\x0BC1\x0BA9\x0BCD\x0BB1\x0BC1\x0BAE\x0BC1\x0BA9\x0BCD\x0020\x0BA9\x0BCA\x0BB1\x0BCD\x0BB1\x0BC1\x0BA3\x0BCD\x0B9F\x0BC7\x0BB1\x0BCD"); + +_LIT16(KTelugu1,"\x0C05\x0C2A\x0C4D\x0C30\x0C15\x0C3E\x0C36\x0C4B\x093D\x0C2A\x0C4D\x0C30\x0C35\x0C43\x0C24\x0C4D\x0C24\x0C3F\x0C36\x0C4D\x0C1A\x0020\x0C2A\x0C4D\x0C30\x0C2E\x0C3E\x0C26\x0C4B\x0020\x0C0A\x0C30\x0C4D\x0C27\x0C4D\x0C35\x0C02"); +_LIT16(KTelugu2,"\x0C15\x0C48\x0C30\x0C4D\x0C32\x0C3F\x0C19\x0C4D\x0C17\x0C48\x0C38\x0C4D\x0C24\x0C4D\x0C30\x0C40\x0C28\x0C4D\x0C17\x0C41\x0C23\x0C3E\x0C28\x0C47\x0C24\x0C3E\x0C28\x0C24\x0C40\x0C24\x0C4B\x0020\x0C17\x0C41\x0C23\x0C48\x0C30\x0C4D\x0C2F"); +_LIT16(KTelugu3,"\x0020\x0C2C\x0C4D\x0C30\x0C39\x0C4D\x0C2E\x0C23\x0C4B\x0020\x0C39\x0C3F\x0020\x0C2A\x0C4D\x0C30\x0C24\x0C3F\x0C37\x0C4D\x0C20\x0C3E\x0C39\x0C2E\x0C2E\x0C43\x0C24\x0C38\x0C4D\x0C2F\x0C3E\x0C35\x0C4D\x0C2F\x0C2F\x0C38\x0C4D\x0C2F"); + +_LIT16(KGurmukhi1,"\x0a28\x0a2e\x0a38\x0a15\x0a3e\x0a30\x0a26\x0a\x3e\x0a28\x0a3f\x0a1a\x0a3f\x0a70\x0a26\x0a41\x0020\x0a28\x0a3f\x0a17\x0a4d\x0a30\x0a39\x0a3f\x0a2a\x0a70\x0a16\x0a40\x0a05\x0a32\x0a4b\x0a2a\x0a70\x0a16\x0a40\x0a05\x0a32\x0a4b\x0a2a\x0a30\x0a09\x0a2a\x0a15\x0a3e\x0a30\x0a3f\x0a06\x0a2a\x0a4d\x0a30\x0a24\x0a3e\x0a2a\x0a3f"); +_LIT16(KGurmukhi2,"\x0a2a\x0a4d\x0a30\x0a24\x0a3f\x0a2a\x0a3e\x0a32\x0a47\x0020\x0a2a\x0a4d\x0a30\x0a2c\x0a32\x0a1a\x0a70\x0a21\x0a2b\x0a3f\x0a30\x0a70\x0a28\x0a4d\x0a39\x0a4d\x0a39\x0a3f\x0020\x0a2b\x0a41\x0a32\x0a35\x0a24\x0a2c\x0a4d\x0a30\x0a3f\x0a25\x0a3e\x0a2c\x0a4d\x0a30\x0a39\x0a2e\x0a3e\x0a26\x0a3f\x0020\x0a2c\x0a3e\x0a1b\x0a30\x0a2c\x0a3f\x0a38\x0a4d\x0a35\x0a70\x0a2d\x0a30\x0a2d\x0a4d\x0a30\x0a2e\x0a39\x0a41\x0a2d\x0a2f\x0a4b\x0a2d\x0a17\x0a35\x0a70\x0a24"); +_LIT16(KGurmukhi3,"\x0a2e\x0a3e\x0a23\x0a40\x0a06\x0a2e\x0a4b\x0a24\x0a38\x0a30\x0a40\x0a06\x0a2f\x0a3e\x0a28\x0a5c\x0a40\x0a0f\x0a2f\x0a15\x0a40\x0a28\x0a3e\x0a30\x0a35\x0a3f\x0a70\x0a26\x0a41\x0020\x0a30\x0a2a\x0a38\x0a40\x0a32\x0a17\x0a3e\x0a35\x0a23\x0a3f\x0a06\x0a32\x0a4b\x0a5c\x0a40\x0a05\x0a39\x0a3f\x0a35\x0a30\x0a28\x0a41\x0a35\x0a40\x0a06\x0a39\x0a3f\x0a06\x0a5c\x0a5c\x0a15\x0a3f\x0a28\x0a2e\x0a38\x0a15\x0a3e\x0a30\x0a26\x0a3e\x0a28\x0a3f\x0a1a\x0a3f\x0a70\x0a26\x0a41\x0020"); + +_LIT16(KMalayalam1,"\xd09\xd28\xd4d\xd28\xd2f\xd3f\xd1a\xd4d\xd1a\xd4d\x200c\xd26\xd47\xd36\xd40\xd2f\xd07\xd1f\xd24\xd41\xd2a\xd15\xd4d\xd37\xd1f\xd4d\xd30\xd47\xd21\xd4d\x200c\xd2f\xd42\xd23\xd3f\xd2f\xd28\xd4d\x200d\xd05\xd2d\xd3f\xd28\xd28\xd4d"); +_LIT16(KMalayalam2,"\xd2a\xd23\xd3f\xd2e\xd41\xd1f\xd15\xd4d\xd15\xd4d\x200c\xd2a\xd42\xd30\xd4d\x200d"); +_LIT16(KMalayalam3,"\xd23\xd02\xd24\xd40\xd35\xd23\xd4d\xd1f\xd3f\xd15\xd33\xd4d\x200d\xd31\xd26\xd4d\xd26\xd3e\xd15\xd4d\xd15\xd3f\xd15\xd4b\xd34\xd3f\xd15\xd4d\xd15\xd4b\xd1f\xd4d\x200c\xd35\xd3f\xd35\xd3f\xd27\xd06\xd35\xd36\xd4d\xd2f\xd19\xd4d\xd19\xd33\xd4d\x200d"); + +CShapeTestStep::CShapeTestStep(TInt aTestDataIndex, TInt aNumberOfTestDataFiles, + TUint32 aScript, TUint32 aLang, const TDesC& aScriptName, const TDesC& aTestID) + : iTestDataIndex(aTestDataIndex), iNumberOfTestDataFiles(aNumberOfTestDataFiles), + iScript(aScript), iLang(aLang), iScriptName(aScriptName), iTestID(aTestID) + { + SetTestStepName(aScriptName); + } + +// Convenience methods +//************************************************************************************** + +/* +Used for cleanup of RImplInfoArray implementationArray below +This method is stolen from FbsTop.cpp +*/ +LOCAL_C void ResetAndDestroyRImplInfoPtrArray(TAny* aPtr) + { + RImplInfoPtrArray* array = reinterpret_cast (aPtr); + array->ResetAndDestroy(); + } + +/* +Load all ECOM implemented rasterizer DLLs. +This method is stolen from CFbTop::LoadOpenFontLibraries() +*/ +LOCAL_C void LoadOpenFontLibraries(CFontStore* aFontStore) + { + RImplInfoPtrArray implementationArray; + TCleanupItem cleanup(ResetAndDestroyRImplInfoPtrArray, &implementationArray); + CleanupStack::PushL(cleanup); + TInt error; + TInt ecomerror; + TInt ecomnotready; + TUid uid = {KUidOpenFontRasterizerPlunginInterface}; + + // Making sure that no race situation arises + // If ECom is not ready, give it another chance and try again. if it still doesn't work + // after the third try, then it just carries on quietly and fails... + for (ecomnotready =0; ecomnotready <3; ecomnotready++) + { + TRAP(ecomerror,REComSession::ListImplementationsL(uid,implementationArray)); + if (!ecomerror) + { + break; + } + else + { + ecomerror = 0; + User::After(0); + } + } + + const TInt availCount = implementationArray.Count(); + for (TInt count=0;countImplementationUid(); + // Create a rasterizer + COpenFontRasterizer* rasterizer=0; + TRAP(error,rasterizer = COpenFontRasterizer::NewL(rasterizerUid)); + if (!error) + { + // Install it in the font store. + TRAP(error,aFontStore->InstallRasterizerL(rasterizer)); + if (error) + delete rasterizer; + } + } + CleanupStack::PopAndDestroy(&implementationArray); + } + +void CShapeTestStep::SetupTestDataL() + { + //set up the testData variables + CDesC16ArrayFlat* testDataFilenames = new CDesC16ArrayFlat(2); + CleanupStack::PushL(testDataFilenames); + + for (TInt i = 0; i != sizeof(KTestFilenames)/sizeof(KTestFilenames[0]); ++i) + { + TPtrC16 d(KTestFilenames[i]); + testDataFilenames->AppendL(d); + } + + for (TInt i = 0; iCount(); i++) + { + CTestData* temp = new(ELeave) CTestData; + temp->Internalize((*testDataFilenames)[i]); + iTestDataArr.AppendL(temp); + } + + CleanupStack::PopAndDestroy(1); //testDataFilenames + } + + +// test methods +//************************************************************************************** + +/** +@file +@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-1479 +@SYMTestCaseDesc Simple test of the shaper +@SYMTestPriority High +@SYMTestActions Simple test to shape some text using the shaper, and test that the output is as expected. Does not perform any OOM testing. +@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. +@SYMPREQ PREQ18 +*/ +void CShapeTestStep::doShapeText(CBitmapFont* font, CTestData& aTestData, TBool aCheckOutput) + { + INFO_PRINTF1(_L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-1479 ")); + + //set up the shaper + CShaper* theShaper = NULL; + CShaperFactory* shaperFactory = NULL; + + RImplInfoPtrArray implementationArray; + TCleanupItem cleanup(ResetAndDestroyRImplInfoPtrArray, &implementationArray); + CleanupStack::PushL(cleanup); + TInt ecomerror; + TInt ecomnotready; + TUid uid = {KUidShaperFactoryPlunginInterface}; + + // Making sure that no race situation arises between FBserv and Ecom + // If ECom is not ready, give it another chance and try again. if it still doesn't work + // after the third try, then it just carries on quietly and fails... + for (ecomnotready =0; ecomnotready <3; ecomnotready++) + { + + TRAP(ecomerror,REComSession::ListImplementationsL(uid,implementationArray)); + if (!ecomerror) + { + break; + } + else + { + ecomerror = 0; + User::After(0); + } + } + + const TInt availCount = implementationArray.Count(); + for (TInt count=0;countImplementationUid(); + // Create a shaper factory + TInt error; + TRAP(error,shaperFactory = CShaperFactory::NewL(shaperFactoryUid)); + test(error == KErrNone); + // Create a shaper + TRAP(error, theShaper = shaperFactory->NewShaperL(font, iScript, iLang, &User::Heap())); + if (error != KErrNone) + { + delete shaperFactory; + shaperFactory = NULL; + } + test(error == KErrNone); + break; // have got valid shaper here + } + CleanupStack::PopAndDestroy(&implementationArray); + + CleanupStack::PushL(shaperFactory); + CleanupStack::PushL(theShaper); + + // create the data to be shaped + // this uses hindiTestData, defined in testData.h + CShaper::TInput input; + input.iText = aTestData.iTextInput; + input.iStart = aTestData.iStart; + input.iEnd = aTestData.iEnd; + + TInt textLength = input.iText->Length(); + + //create shape header, and shape the text + TShapeHeader* output = NULL; + TInt err = theShaper->ShapeText(output, input, &User::Heap()); + test(err == KErrNone); + CleanupStack::PopAndDestroy(theShaper); + CleanupStack::PopAndDestroy(shaperFactory); + REComSession::FinalClose(); + + CleanupStack::PushL(output); + + if (aCheckOutput) + { + // check the contents of output + TEST(output->iGlyphCount == aTestData.iGlyphCount); + TEST(output->iCharacterCount == aTestData.iCharacterCount); + + // First iGlyphCount * 4 bytes of the output buffer contain the glyph codes as 2byte values + // Compare against expected. + TInt i=0; + TUint32* shapePtr32 = (reinterpret_cast(&output->iBuffer[0])); + for (i=0; i < output->iGlyphCount; i++) + { + TEST(*shapePtr32 == (*aTestData.iGlyphs)[i]); + shapePtr32++; + } + + // next iGlyphCount * 4 bytes contain the postions in which the glyphs should be drawn, x and y axes. + // Compare against expected + TUint16* shapePtr16 = (reinterpret_cast(shapePtr32)); + for (i=0; i < output->iGlyphCount*2; i++) + { + //check X or Y position + TEST(*shapePtr16 == (*aTestData.iPositions)[i]); + shapePtr16++; + } + + // check advance + TEST(*shapePtr16 == aTestData.iAdvance.iX); + shapePtr16++; + TEST(*shapePtr16 == aTestData.iAdvance.iY); + shapePtr16++; + + // next iGlyphCount * 2 bytes contain the coresponding indices of this character in the original string. + // Compare against expected + for (i=0; i < output->iGlyphCount; i++) + { + TEST(*shapePtr16 == (*aTestData.iIndices)[i]); + shapePtr16++; + } + } + + CleanupStack::PopAndDestroy(output); + } + +void CShapeTestStep::shapeText(CBitmapFont* font, CTestData& aTestData, TBool aCheckOutput) + { + __UHEAP_MARK; + TInt heapSizeAtStart = 0; + User::Heap().AllocSize(heapSizeAtStart); + + INFO_PRINTF2(_L("Heap memory utilized is now %d\n"), heapSizeAtStart); + + doShapeText(font, aTestData, aCheckOutput); + // check the heap used by the shaper + RHeap* heap = &User::Heap(); + heap->Check(); + TInt heapSizeAtEnd = 0; + TInt heapCellsUsed = heap->AllocSize(heapSizeAtEnd); + if (heapCellsUsed) + { + INFO_PRINTF2(_L("This test leaked %d\n"), heapSizeAtEnd - heapSizeAtStart); + } + __UHEAP_MARKEND; + } + +/** +@file +@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-1480 +@SYMTestCaseDesc Simple OOM test of shaper +@SYMTestPriority High +@SYMTestActions OOM testing for the shaper. Also ensures no leaks. +@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. +@SYMPREQ PREQ18 +*/ +void CShapeTestStep::oomShapeText(CBitmapFont* font, CTestData& aTestData) + { + __UHEAP_MARK; + INFO_PRINTF1(_L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-1480 ")); + doOomShapeText(font,aTestData); + __UHEAP_MARKEND; + } + +void CShapeTestStep::doOomShapeText(CBitmapFont* font, CTestData& aTestData) + { + TInt count = 0; + TInt err = KErrNone; + TInt heapCellsUsed, heapSizeAtEnd, heapSizeAtStart; + CShaper* theShaper = NULL; + CShaperFactory* shaperFactory = NULL; + TShapeHeader* output = NULL; + + User::Heap().AllocSize(heapSizeAtStart); + + // create the data to be shaped + CShaper::TInput input; + input.iText = aTestData.iTextInput; + input.iStart = aTestData.iStart; + input.iEnd = aTestData.iEnd; + + //set up shaper, shape, delete shaper in oom loop + RImplInfoPtrArray implementationArray; + TCleanupItem cleanup(ResetAndDestroyRImplInfoPtrArray, &implementationArray); + CleanupStack::PushL(cleanup); + TInt error; + TInt ecomerror; + TInt ecomnotready; + TUid uid = {KUidShaperFactoryPlunginInterface}; + + // Making sure that no race situation arises between FBserv and Ecom + // If ECom is not ready, give it another chance and try again. if it still doesn't work + // after the third try, then it just carries on quietly and fails... + for (ecomnotready =0; ecomnotready <3; ecomnotready++) + { + + TRAP(ecomerror,REComSession::ListImplementationsL(uid,implementationArray)); + if (!ecomerror) + { + break; + } + else + { + ecomerror = 0; + User::After(0); + } + } + + const TInt availCount = implementationArray.Count(); + for (TInt count=0;countImplementationUid(); + // Create a shaper factory + //CShaperFactory* shaperFactory = 0; + TRAP(error,shaperFactory = CShaperFactory::NewL(shaperFactoryUid)); + test(error == KErrNone); + //CleanupStack::PushL(shaperFactory); + } + CleanupStack::PopAndDestroy(&implementationArray); + + do + { + count += 1; + __UHEAP_FAILNEXT(count); + + // Create a shaper + TRAPD(err, theShaper = shaperFactory->NewShaperL(font, iScript, iLang, &User::Heap())); + + //shape text + if (theShaper) + { + err = theShaper->ShapeText(output, input, &User::Heap()); + TEST(err == KErrNone); + } + + //free output; to be done by the caller of ShapeText + delete output; + output = NULL; + + //does not check the output for now + delete theShaper; + delete shaperFactory; + REComSession::FinalClose(); + + }while ((err==KErrNoMemory)||(err==KErrGeneral)); + __UHEAP_RESET; + + // check the heap used by the shaper + RHeap* heap = &User::Heap(); + heap->Check(); + heapCellsUsed = heap->AllocSize(heapSizeAtEnd); + if (heapCellsUsed) + { + INFO_PRINTF2(_L("This test leaked %d.\n"), heapSizeAtEnd - heapSizeAtStart); + } + } + +/** +@file +@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-1481 +@SYMTestCaseDesc Tests that the shaper can handle multiple calls to ShapeText +@SYMTestPriority High +@SYMTestActions Makes multiple calls to CShaper::ShapeText with small amounts of text to be shaped +@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. +@SYMPREQ PREQ18 +*/ +void CShapeTestStep::repeatShapeText(CBitmapFont* aFont, CTestData& aTestData) + { + __UHEAP_MARK; + INFO_PRINTF1(_L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-1481 ")); + doRepeatShapeText(aFont, aTestData); + __UHEAP_MARKEND; + } + +void CShapeTestStep::doRepeatShapeText(CBitmapFont* font, CTestData& aTestData) + { + //set up the shaper + CShaper* theShaper = NULL; + CShaperFactory* shaperFactory = NULL; + + RImplInfoPtrArray implementationArray; + TCleanupItem cleanup(ResetAndDestroyRImplInfoPtrArray, &implementationArray); + CleanupStack::PushL(cleanup); + + TInt ecomerror; + TInt ecomnotready; + TUid uid = {KUidShaperFactoryPlunginInterface}; + + // Making sure that no race situation arises between FBserv and Ecom + // If ECom is not ready, give it another chance and try again. if it still doesn't work + // after the third try, then it just carries on quietly and fails... + for (ecomnotready =0; ecomnotready <3; ecomnotready++) + { + + TRAP(ecomerror,REComSession::ListImplementationsL(uid,implementationArray)); + if (!ecomerror) + { + break; + } + else + { + ecomerror = 0; + User::After(0); + } + } + + const TInt availCount = implementationArray.Count(); + for (TInt count=0;countImplementationUid(); + // Create a shaper factory + TInt error; + TRAP(error,shaperFactory = CShaperFactory::NewL(shaperFactoryUid)); + test(error == KErrNone); + + // Create a shaper + TRAP(error, theShaper = shaperFactory->NewShaperL(font, iScript, iLang, &User::Heap())); + if (error != KErrNone) + { + delete shaperFactory; + shaperFactory = NULL; + } + test(error == KErrNone); + break; // have got valid shaper here + } + CleanupStack::PopAndDestroy(&implementationArray); + + CleanupStack::PushL(shaperFactory); + CleanupStack::PushL(theShaper); + + // create the data to be shaped + // this uses CTestData, defined in testData.h + CShaper::TInput input; + input.iText = aTestData.iTextInput; + + //create shape header, and shape the text + TShapeHeader* output = NULL; + + for(TInt i=aTestData.iStart; iShapeText(output, input, &User::Heap()); + test(err == KErrNone); + + //free output; to be done by the caller of ShapeText + delete(output); + output = NULL; + + //does not check the output for now + } + + //cleanup the shaper + CleanupStack::PopAndDestroy(theShaper); + CleanupStack::PopAndDestroy(shaperFactory); + REComSession::FinalClose(); + } + +/* +@file +@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3401 +@SYMTestCaseDesc Tests that the shaper can handle calls to shapeText with multiple font sizes +@SYMTestPriority High +@SYMTestActions Makes multiple calls to CShaper::ShapeText with small amounts of text to be shaped and incremental font sizes +@SYMTestExpectedResults The test must not show a memory leak at any font size +@SYMPREQ DEF103042: TC_SHAP_shapeText test failing with alloc failure +**/ +void CShapeTestStep::doRepeatShapeUsingVariousFontSizesTest(CFontStore* aFontStore, const TDesC aTypefaceName, const TDesC &aText1, + const TDesC &aText2, const TDesC &aText3) + { + INFO_PRINTF1(_L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3401 ")); + TInt heapCellsUsed, heapSizeAtEnd, heapSizeAtStart; + User::Heap().AllocSize(heapSizeAtStart); + + // Set up shaper factory + // Set up the shaper + CShaper* theShaper = NULL; + CShaperFactory* shaperFactory = NULL; + + RImplInfoPtrArray implementationArray; + TCleanupItem cleanup(ResetAndDestroyRImplInfoPtrArray, &implementationArray); + CleanupStack::PushL(cleanup); + TInt err; + TInt ecomerror; + TInt ecomnotready; + TUid uid = {KUidShaperFactoryPlunginInterface}; + + // Making sure that no race situation arises between FBserv and Ecom + // If ECom is not ready, give it another chance and try again. if it still doesn't work + // after the third try, then it just carries on quietly and fails... + for (ecomnotready =0; ecomnotready <3; ecomnotready++) + { + TRAP(ecomerror,REComSession::ListImplementationsL(uid,implementationArray)); + if (!ecomerror) + { + break; + } + else + { + ecomerror = 0; + User::After(0); + } + } + + const TInt availCount = implementationArray.Count(); + for (TInt count=0;countImplementationUid(); + // Create a shaper factory + TRAPD(error,shaperFactory = CShaperFactory::NewL(shaperFactoryUid)); + test(error == KErrNone); + } + + CleanupStack::PopAndDestroy(&implementationArray); + + CleanupStack::PushL(shaperFactory); + + // create the data to be shaped + // this explicitely uses hindiTestData, defined in testData.h + CShaper::TInput input; + input.iStart = 0; + + //create shape header, and shape the text + TShapeHeader* output = NULL; + + CBitmapFont* font; + + // Test shaping for the Hindi texts for various font sizes + INFO_PRINTF1(_L("Generating a random initial font size between 0 and 1 for this test\n")); + TInt random = (Math::Random()>>11)%2; + INFO_PRINTF2(_L("Random initial font size is %d. Testing upto size 300 with increments of 2\n"), random); + for (TInt i = random; i <= 300; i+=2) + { + INFO_PRINTF2(_L("Font Size: %d\n"), i); + if (i == 294 || i == 295) + { + INFO_PRINTF2(_L("Font Size: %d\n"), i); + } + TFontSpec fontSpec(aTypefaceName,i*20); + aFontStore->GetNearestFontInTwips((CFont*&)font, fontSpec); + CleanupStack::PushL(font); + + TRAP(err, theShaper = shaperFactory->NewShaperL(font, iScript, iLang, &User::Heap())); + test(err == KErrNone); + CleanupStack::PushL(theShaper); + + // Call the shaper twice because the first time the rasterizer uses memory to cache the tables + // We can then check the heap in the second call + input.iText = &aText1; + input.iEnd = aText1.Length(); + err = theShaper->ShapeText(output, input, &User::Heap()); + delete output; + TEST(err == KErrNone); + __UHEAP_MARK; + err = theShaper->ShapeText(output, input, &User::Heap()); + delete output; + __UHEAP_MARKEND; + TEST(err == KErrNone); + + input.iText = &aText2; + input.iEnd = aText2.Length(); + err = theShaper->ShapeText(output, input, &User::Heap()); + delete output; + TEST(err == KErrNone); + __UHEAP_MARK; + err = theShaper->ShapeText(output, input, &User::Heap()); + delete output; + __UHEAP_MARKEND; + TEST(err == KErrNone); + + input.iText = &aText3; + input.iEnd = aText3.Length(); + err = theShaper->ShapeText(output, input, &User::Heap()); + delete output; + TEST(err == KErrNone); +// __UHEAP_MARK; + err = theShaper->ShapeText(output, input, &User::Heap()); + delete output; +// __UHEAP_MARKEND; + TEST(err == KErrNone); + + CleanupStack::PopAndDestroy(theShaper); + CleanupStack::Pop(font); + aFontStore->ReleaseFont(font); + } + + CleanupStack::PopAndDestroy(shaperFactory); + + //close the ecom session opened by LoadOpenFontLibraries() + REComSession::FinalClose(); + + // check the heap used by the shaper + RHeap* heap = &User::Heap(); + heap->Check(); + heapCellsUsed = heap->AllocSize(heapSizeAtEnd); + if (heapCellsUsed) + { + INFO_PRINTF2(_L("This test utilised %d bytes\n"), heapSizeAtEnd - heapSizeAtStart); + } + } + +/** +@file +@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3403 +@SYMTestCaseDesc Tests the shaper using Devanagari Unicode. Test include OOM tests (oomShapeText), repeated + calls to the shaper (repeatShapeText), simple shaping tests (shapeText), and repeatedly + calling the shaper with incremental font sizes. +@SYMTestPriority High +@SYMTestActions Performs various tests of the the shaper, calling CShaper::ShapeText in various use cases +@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. +@SYMPREQ PREQ19 +*/ +/** +@file +@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3383-0001 +@SYMTestCaseDesc Tests the shaper using Kannada Unicode. Test include OOM tests (oomShapeText), repeated + calls to the shaper (repeatShapeText), simple shaping tests (shapeText), and repeatedly + calling the shaper with incremental font sizes. +@SYMTestPriority High +@SYMTestActions Performs various tests of the the shaper, calling CShaper::ShapeText in various use cases +@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. +@SYMPREQ PREQ19 +*/ +/** +@file +@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3383-0002 +@SYMTestCaseDesc Tests the shaper using Gujarati Unicode. Test include OOM tests (oomShapeText), repeated + calls to the shaper (repeatShapeText), simple shaping tests (shapeText), and repeatedly + calling the shaper with incremental font sizes. +@SYMTestPriority High +@SYMTestActions Performs various tests of the the shaper, calling CShaper::ShapeText in various use cases +@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. +@SYMPREQ PREQ19 +*/ +/** +@file +@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-4001 +@SYMTestCaseDesc Tests the shaper using Bengali Unicode. Test include OOM tests (oomShapeText), repeated + calls to the shaper (repeatShapeText), simple shaping tests (shapeText), and repeatedly + calling the shaper with incremental font sizes. +@SYMTestPriority High +@SYMTestActions Performs various tests of the the shaper, calling CShaper::ShapeText in various use cases +@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. +@SYMPREQ PREQ1766 +@SYMREQ REQ8741 +*/ +/** +@file +@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-4002 +@SYMTestCaseDesc Tests the shaper using Tamil Unicode. Test include OOM tests (oomShapeText), repeated + calls to the shaper (repeatShapeText), simple shaping tests (shapeText), and repeatedly + calling the shaper with incremental font sizes. +@SYMTestPriority High +@SYMTestActions Performs various tests of the the shaper, calling CShaper::ShapeText in various use cases +@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. +@SYMPREQ PREQ1766 +@SYMREQ REQ8742 +*/ +/** +@file +@SYMTestCaseID GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-4003 +@SYMTestCaseDesc Tests the shaper using Telugu Unicode. Test include OOM tests (oomShapeText), repeated + calls to the shaper (repeatShapeText), simple shaping tests (shapeText), and repeatedly + calling the shaper with incremental font sizes. +@SYMTestPriority High +@SYMTestActions Performs various tests of the the shaper, calling CShaper::ShapeText in various use cases +@SYMTestExpectedResults The test must exit cleanly and there should not be any User:84 errors, KERN-EXEC's or any memory leaks. +@SYMPREQ PREQ1766 +@SYMREQ REQ8743 +*/ +/** +@SYMTestCaseID GRAPHICS-TI18N-ICULAYOUTENGINE-CT-4007 +@SYMTestCaseDesc Case to do Gurmukhi component test + It covers all Iculayout components cases +@SYMTestPriority High +@SYMTestActions Iterate Gurmukhi test data, each test data corresponds with a case +@SYMTestExpectedResults No error returned +@SYMPREQ 1922: Gurmukhi support +*/ +/** +@SYMTestCaseID GRAPHICS-TI18N-ICULAYOUTENGINE-CT-4008 +@SYMTestCaseDesc Case to do Malayalam component test + It covers all Iculayout components cases +@SYMTestPriority High +@SYMTestActions Iterate Malayalam test data, each test data corresponds with a case +@SYMTestExpectedResults No error returned +@SYMPREQ 1922: Malayalam support +*/ +void CShapeTestStep::ShapeTestL() + { + INFO_PRINTF1(iTestID); + + CBitmapFont* font; + TInt err=KErrNone; + //the font store can use the normal user heap + CFontStore* fontStore = CFontStore::NewL(&User::Heap()); + fontStore->iKPixelWidthInTwips = 11860; + fontStore->iKPixelHeightInTwips = 11860; + CleanupStack::PushL(fontStore); + + //load all ecom implemented rasterizer dlls. installs the rasterizer. + LoadOpenFontLibraries(fontStore); + + //add the required font file + TRAP(err,fontStore->AddFileL(iTestDataArr[iTestDataIndex]->iFilename)); + test(err == KErrNone); + + + //run all tests for TNR_Dev_OT test, which is at position 0 in the aTestDataArr + TFontSpec fontSpec(iTestDataArr[iTestDataIndex]->iTypeFaceName,12); + fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); + CleanupStack::PushL(font); + + INFO_PRINTF2(_L("Repeat %S text shaping test\n"), &iScriptName); + doRepeatShapeText(font, *iTestDataArr[iTestDataIndex]); + repeatShapeText(font, *iTestDataArr[iTestDataIndex]); + + INFO_PRINTF2(_L("OOM %S text shaping test\n"), &iScriptName); +#if defined(_DEBUG) + doOomShapeText(font, *iTestDataArr[iTestDataIndex]); + oomShapeText(font, *iTestDataArr[iTestDataIndex]); +#else + INFO_PRINTF1(_L("This test is ignored for release version\n")); +#endif + + INFO_PRINTF2(_L("Run simple %S shape test\n"), &iScriptName); + doShapeText(font, *iTestDataArr[iTestDataIndex], ETrue); + shapeText(font, *iTestDataArr[iTestDataIndex], ETrue); + + CleanupStack::Pop(font); + fontStore->ReleaseFont(font); + + //for any other test data we have, run the simple shape text test only + for(TInt i=iTestDataIndex+1; iiTypeFaceName,12); + fontStore->GetNearestFontToDesignHeightInPixels((CFont*&)font, fontSpec); + CleanupStack::PushL(font); + + // First run does not check heap... this ensures that any memory + // stashed by the rasterizer does not show up as a leak. + doShapeText(font, *iTestDataArr[i], ETrue); + shapeText(font, *iTestDataArr[i], ETrue); + + CleanupStack::Pop(font); + fontStore->ReleaseFont(font); + } + + // Now do the last test, the shaping test using various font sizes + INFO_PRINTF2(_L("Repeat %S shaping test using font sizes 20 to 6000\n"), &iScriptName); + if(iScriptName == KTestStep_Hindi) + { + doRepeatShapeUsingVariousFontSizesTest(fontStore, iTestDataArr[0]->iTypeFaceName, KHindi1, KHindi2, KHindi3); + } + else if(iScriptName == KTestStep_Kannada) + { + doRepeatShapeUsingVariousFontSizesTest(fontStore, iTestDataArr[0]->iTypeFaceName, KKannada1, KKannada2, KKannada3); + } + else if(iScriptName == KTestStep_Gujarati) + { + doRepeatShapeUsingVariousFontSizesTest(fontStore, iTestDataArr[0]->iTypeFaceName, KGujarati1, KGujarati2, KGujarati3); + } + else if(iScriptName == KTestStep_Bengali) + { + doRepeatShapeUsingVariousFontSizesTest(fontStore, iTestDataArr[0]->iTypeFaceName, KBengali1, KBengali2, KBengali3); + } + else if(iScriptName == KTestStep_Tamil) + { + doRepeatShapeUsingVariousFontSizesTest(fontStore, iTestDataArr[0]->iTypeFaceName, KTamil1, KTamil2, KTamil3); + } + else if(iScriptName == KTestStep_Telugu) + { + doRepeatShapeUsingVariousFontSizesTest(fontStore, iTestDataArr[0]->iTypeFaceName, KTelugu1, KTelugu2, KTelugu3); + } + else if(iScriptName == KTestStep_Gurmukhi) + { + doRepeatShapeUsingVariousFontSizesTest(fontStore, iTestDataArr[0]->iTypeFaceName, KGurmukhi1, KGurmukhi2, KGurmukhi3); + } + else if(iScriptName == KTestStep_Malayalam) + { + doRepeatShapeUsingVariousFontSizesTest(fontStore, iTestDataArr[0]->iTypeFaceName, KMalayalam1, KMalayalam2, KMalayalam3); + } + + CleanupStack::PopAndDestroy(fontStore); + REComSession::FinalClose(); //close the ecom session opened by LoadOpenFontLibraries() + } + +TVerdict CShapeTestStep::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + + TRAPD(error0, SetupTestDataL()); + + if(error0 == KErrNone) + { + TRAPD(error1, ShapeTestL()); + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + } + else + { + ERR_PRINTF1(_L("Failed to setup test data.")); + } + + iTestDataArr.ResetAndDestroy(); // close the iTestDataArr opened by SetupTestData() + + __UHEAP_MARKEND; + + return TestStepResult(); + } + +CTestStep * CShapeTestStep::CreateShapeTestStep(const TDesC& aStepName) + { + if(aStepName == KTestStep_Hindi) + { + return new CShapeTestStep(KHindiTestDataIndex, KNumberOfHindiTestDataFiles, KDevanagariScriptCode, KHindiLanguageCode, + aStepName, _L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3403 ")); + } + else if(aStepName == KTestStep_Kannada) + { + return new CShapeTestStep(KKannadaTestDataIndex, KNumberOfKannadaTestDataFiles, KKannadaScriptCode, KKannadaLanguageCode, + aStepName, _L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3383-0001")); + } + else if(aStepName == KTestStep_Gujarati) + { + return new CShapeTestStep(KGujaratiTestDataIndex, KNumberOfGujaratiTestDataFiles, KGujaratiScriptCode, KGujaratiLanguageCode, + aStepName, _L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-3383-0002")); + } + else if(aStepName == KTestStep_Bengali) + { + return new CShapeTestStep(KBengaliTestDataIndex, KNumberOfBengaliTestDataFiles, KBengaliScriptCode, KBengaliLanguageCode, + aStepName, _L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-4001")); + } + else if(aStepName == KTestStep_Tamil) + { + return new CShapeTestStep(KTamilTestDataIndex, KNumberOfTamilTestDataFiles, KTamilScriptCode, KTamilLanguageCode, + aStepName, _L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-4002")); + } + else if(aStepName == KTestStep_Telugu) + { + return new CShapeTestStep(KTeluguTestDataIndex, KNumberOfTeluguTestDataFiles, KTeluguScriptCode, KTeluguLanguageCode, + aStepName, _L("GRAPHICS-SYSLIB-ICULAYOUTENGINE-CT-4003")); + } + else if(aStepName == KTestStep_Gurmukhi) + { + return new CShapeTestStep(KGurmukhiTestDataIndex, KNumberOfGurmukhiTestDataFiles, KGurmukhiScriptCode, KGurmukhiLanguageCode, + aStepName, _L("GRAPHICS-TI18N-ICULAYOUTENGINE-CT-4007")); + } + else if(aStepName == KTestStep_Malayalam) + { + return new CShapeTestStep(KMalayalamTestDataIndex, KNumberOfMalayalamTestDataFiles, KMalayalamScriptCode, KMalayalamLanguageCode, + aStepName, _L("GRAPHICS-TI18N-ICULAYOUTENGINE-CT-4007")); + } + return NULL; + } diff -r 6124ff6478cc -r 11e2bb0d14ba fontservices/textshaperplugin/test/t_shapeteststep.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fontservices/textshaperplugin/test/t_shapeteststep.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,68 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef T_SHAPETESTSTEP_H_ +#define T_SHAPETESTSTEP_H_ + +#include +#include + +class CFontStore; +class CBitmapFont; +class CTestData; + +class CShapeTestStep : public CTestStep + { +public: + static CTestStep * CreateShapeTestStep(const TDesC& aStepName); + +protected: + TVerdict doTestStepL(); + +private: + CShapeTestStep(TInt aTestDataIndex, TInt aNumberOfTestDataFiles, TUint32 aScript, TUint32 aLang, const TDesC& aScriptName, const TDesC& aTestID); + + void SetupTestDataL(); + + void doShapeText(CBitmapFont* font, CTestData& aTestData, TBool aCheckOutput = EFalse); + void shapeText(CBitmapFont* font, CTestData& aTestData, TBool aCheckOutput = EFalse); + + void doOomShapeText(CBitmapFont* font, CTestData& aTestData); + void oomShapeText(CBitmapFont* font, CTestData& aTestData); + + void doRepeatShapeText(CBitmapFont* font, CTestData& aTestData); + void repeatShapeText(CBitmapFont* aFont, CTestData& aTestData); + + void doRepeatShapeUsingVariousFontSizesTest(CFontStore* aFontStore, const TDesC aTypefaceName, const TDesC &aText1, + const TDesC &aText2, const TDesC &aText3); + void ShapeTestL(); + + static const TDesC& getText1(); + static const TDesC& getText2(); + static const TDesC& getText3(); + +private: + const TInt iTestDataIndex; + const TInt iNumberOfTestDataFiles; + const TUint32 iScript; + const TUint32 iLang; + const TBuf<32> iScriptName; + const TBuf<64> iTestID; + RPointerArray iTestDataArr; + }; + +#endif /* T_SHAPETESTSTEP_H_ */ diff -r 6124ff6478cc -r 11e2bb0d14ba layers.sysdef.xml --- a/layers.sysdef.xml Mon Jul 12 15:26:00 2010 +0800 +++ b/layers.sysdef.xml Thu Aug 26 11:46:18 2010 +0800 @@ -96,9 +96,9 @@ - + + + diff -r 6124ff6478cc -r 11e2bb0d14ba package_definition.xml --- a/package_definition.xml Mon Jul 12 15:26:00 2010 +0800 +++ b/package_definition.xml Thu Aug 26 11:46:18 2010 +0800 @@ -2,13 +2,22 @@ - + + + + - + + + + - + + + + @@ -16,12 +25,15 @@ - + + + + - - + + @@ -30,10 +42,10 @@ - + - + @@ -41,18 +53,18 @@ - + - + - + - + - + @@ -61,7 +73,7 @@ - + @@ -74,18 +86,16 @@ - - - - - - - - - + + + + + + + diff -r 6124ff6478cc -r 11e2bb0d14ba package_map.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/package_map.xml Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,1 @@ + diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/group/FormTests.bat --- a/textrendering/textformatting/group/FormTests.bat Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -@rem -@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -@rem All rights reserved. -@rem This component and the accompanying materials are made available -@rem under the terms of "Eclipse Public License v1.0" -@rem which accompanies this distribution, and is available -@rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -@rem -@rem Initial Contributors: -@rem Nokia Corporation - initial contribution. -@rem -@rem Contributors: -@rem -@rem Description: -@rem - -TCustomCharMapping -TTagmaImp -TTmSource -TBidiCursorPos -TTmCode -Tunique -Tundo -TInterpreter -TFormat -TInlineText -TGraphemeIterator -TFormBenchmark -tlinepag -tformhindi - diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/group/FormTests.iby --- a/textrendering/textformatting/group/FormTests.iby Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/textformatting/group/FormTests.iby Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -23,28 +23,34 @@ #include #include #include +#include -// batch file that runs all automatic charconv tests -data=ZSYSTEM\test\FormTests.bat TEST\FormTests.bat +// batch file that runs all automatic form tests +data=DATAZ_\test\app-framework\form\FormTests.bat TEST\FormTests.bat //file=ABI_DIR\BUILD_DIR\TBitMapDoc.dll System\Libs\TBitMapDoc.dll file=ABI_DIR\BUILD_DIR\TTagma.exe Test\TTagma.exe // Tedwin is broken so has been temporarily been removed from the ROM -file=ABI_DIR\BUILD_DIR\TLinePag.exe Test\TLinePag.exe -file=ABI_DIR\BUILD_DIR\TUnique.exe Test\TUnique.exe -file=ABI_DIR\BUILD_DIR\TUndo.exe Test\TUndo.exe -//file=ABI_DIR\BUILD_DIR\TTextview2.exe Test\TTextview2.exe -file=ABI_DIR\BUILD_DIR\TTagmaImp.exe Test\TTagmaImp.exe -file=ABI_DIR\BUILD_DIR\TTmSource.exe Test\TTmSource.exe -file=ABI_DIR\BUILD_DIR\TBidiCursorPos.exe Test\TBidiCursorPos.exe -file=ABI_DIR\BUILD_DIR\TTmCode.exe Test\TTmCode.exe -file=ABI_DIR\BUILD_DIR\TGraphemeIterator.exe Test\TGraphemeIterator.exe -file=ABI_DIR\BUILD_DIR\TInterpreter.exe Test\TInterpreter.exe -file=ABI_DIR\BUILD_DIR\TFormat.exe Test\TFormat.exe -file=ABI_DIR\BUILD_DIR\TInlineText.exe Test\TInlineText.exe -file=ABI_DIR\BUILD_DIR\TCustomCharMapping.exe Test\TCustomCharMapping.exe -file=ABI_DIR\BUILD_DIR\TFormBenchmark.exe Test\TFormBenchmark.exe -file=ABI_DIR\BUILD_DIR\tformhindi.exe Test\tformhindi.exe +//file=ABI_DIR\BUILD_DIR\TTextview2.exe Test\TTextview2.exe + +file=ABI_DIR\DEBUG_DIR\tformserver.exe \sys\bin\tformserver.exe +data=DATAZ_\test\app-framework\form\form_t_all.script \test\app-framework\form\form_t_all.script +data=DATAZ_\test\app-framework\form\form_t_customcharmapping.script \test\app-framework\form\form_t_customcharmapping.script +data=DATAZ_\test\app-framework\form\form_t_tagmaimp.script \test\app-framework\form\form_t_tagmaimp.script +data=DATAZ_\test\app-framework\form\form_t_tmsource.script \test\app-framework\form\form_t_tmsource.script +data=DATAZ_\test\app-framework\form\form_t_bidicursorpos.script \test\app-framework\form\form_t_bidicursorpos.script +data=DATAZ_\test\app-framework\form\form_t_tmcode.script \test\app-framework\form\form_t_tmcode.script +data=DATAZ_\test\app-framework\form\form_t_unique.script \test\app-framework\form\form_t_unique.script +data=DATAZ_\test\app-framework\form\form_t_undo.script \test\app-framework\form\form_t_undo.script +data=DATAZ_\test\app-framework\form\form_t_interpreter.script \test\app-framework\form\form_t_interpreter.script +data=DATAZ_\test\app-framework\form\form_t_format.script \test\app-framework\form\form_t_format.script +data=DATAZ_\test\app-framework\form\form_t_inlinetext.script \test\app-framework\form\form_t_inlinetext.script +data=DATAZ_\test\app-framework\form\form_t_graphemeiterator.script \test\app-framework\form\form_t_graphemeiterator.script +data=DATAZ_\test\app-framework\form\form_t_formbenchmark.script \test\app-framework\form\form_t_formbenchmark.script +data=DATAZ_\test\app-framework\form\form_t_linepag.script \test\app-framework\form\form_t_linepag.script +data=DATAZ_\test\app-framework\form\form_t_formhindi.script \test\app-framework\form\form_t_formhindi.script + + data=ZRESOURCE\fonts\clearlyu.gdr Resource\Fonts\clearlyu.gdr data=ZSYSTEM\fonts\Testfont.gdr System\Fonts\Testfont.gdr diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/group/bld.inf --- a/textrendering/textformatting/group/bld.inf Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/textformatting/group/bld.inf Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -67,10 +67,32 @@ PRJ_TESTEXPORTS // batch file that runs all automatic charconv tests on hardware -../group/FormTests.bat /epoc32/data/z/system/test/formtests.bat +../test/scripts/formtests_run.bat z:/test/app-framework/form/formtests_run.bat +../test/scripts/formtests_run.bat /epoc32/release/winscw/urel/formtests_run.bat +../test/scripts/formtests_run.bat /epoc32/release/winscw/udeb/formtests_run.bat + +../test/scripts/formtests.bat z:/test/app-framework/form/formtests.bat + ../group/FormTests.iby /epoc32/rom/include/formtests.iby ../group/formTechviewRTests.iby /epoc32/rom/include/formtechviewrtests.iby +//script +../test/scripts/form_t_all.script z:/test/app-framework/form/form_t_all.script +../test/scripts/form_t_customcharmapping.script z:/test/app-framework/form/form_t_customcharmapping.script +../test/scripts/form_t_tagmaimp.script z:/test/app-framework/form/form_t_tagmaimp.script +../test/scripts/form_t_tmsouce.script z:/test/app-framework/form/form_t_tmsource.script +../test/scripts/form_t_bidicursorpos.script z:/test/app-framework/form/form_t_bidicursorpos.script +../test/scripts/form_t_tmcode.script z:/test/app-framework/form/form_t_tmcode.script +../test/scripts/form_t_unique.script z:/test/app-framework/form/form_t_unique.script +../test/scripts/form_t_undo.script z:/test/app-framework/form/form_t_undo.script +../test/scripts/form_t_interpreter.script z:/test/app-framework/form/form_t_interpreter.script +../test/scripts/form_t_format.script z:/test/app-framework/form/form_t_format.script +../test/scripts/form_t_inlinetext.script z:/test/app-framework/form/form_t_inlinetext.script +../test/scripts/form_t_graphemeiterator.script z:/test/app-framework/form/form_t_graphemeiterator.script +../test/scripts/form_t_formbenchmark.script z:/test/app-framework/form/form_t_formbenchmark.script +../test/scripts/form_t_linepag.script z:/test/app-framework/form/form_t_linepag.script +../test/scripts/form_t_formhindi.script z:/test/app-framework/form/form_t_formhindi.script + // Bitmap data ../test/data/dilbert.mbm z:/system/data/ttreddilbert.mbm ../test/data/data.mbm z:/system/data/ttreddata.mbm @@ -96,28 +118,15 @@ ../group/Undo.mmp PRJ_TESTMMPFILES +../test/group/tformserver.mmp #ifndef WINC ../test/group/TBitmapDoc.mmp support // DLL ../test/group/TTAGMA.MMP manual // Needs to run in full EPOC.EXE environment & requires manual intervention -../test/group/TLINEPAG.MMP ../test/group/TTextView.mmp manual // Needs to run in full EPOC.EXE environment ../test/group/TTextView2.mmp manual // Needs to run in full EPOC.EXE environment -../test/group/TInlineText.mmp -../test/group/TCustomCharMapping.mmp -../test/group/TTagmaImp.mmp -../test/group/TGraphemeIterator.mmp ../test/group/TCustomWrap.mmp support // APP -../test/group/TTmSource.mmp -../test/group/TBidiCursorPos.mmp -../test/group/TTmCode.mmp -../test/group/TUnique.mmp -../test/group/TUndo.mmp -../test/group/TInterpreter.mmp -../test/group/TFormat.mmp ../test/group/TTranspEditor.mmp support // App -../test/group/TFormBenchmark.mmp -../test/group/tformhindi.mmp ../test/group/TForm18030.mmp manual #endif @@ -125,4 +134,3 @@ //BAND FORMAT TESTS #include "../test/tbandformat/group/bld.inf" - diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/group/t_form.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/group/t_form.pkg Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,43 @@ +; +; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +; All rights reserved. +; This component and the accompanying materials are made available +; under the terms of "Eclipse Public License v1.0" +; which accompanies this distribution, and is available +; at the URL "http:;www.eclipse.org/legal/epl-v10.html". +; +; Initial Contributors: +; Nokia Corporation - initial contribution. +; +; Contributors: +; +; Description: +; + + +;Languages +&EN + + +;Localised Vendor name +%{"t_form EN"} + +; Vendor name +: "t_form" + +; test scripts +; "\epoc32\data\z\test\app-framework\form\form_t_all.script"-"c:\test\app-framework\form\form_t_all.script" +"\epoc32\data\z\test\app-framework\form\form_t_customcharmapping.script"-"c:\test\app-framework\form\form_t_customcharmapping.script" +"\epoc32\data\z\test\app-framework\form\form_t_tagmaimp.script"-"c:\test\app-framework\form\form_t_tagmaimp.script" +"\epoc32\data\z\test\app-framework\form\form_t_tmsource.script"-"c:\test\app-framework\form\form_t_tmsource.script" +"\epoc32\data\z\test\app-framework\form\form_t_bidicursorpos.script"-"c:\test\app-framework\form\form_t_bidicursorpos.script" +"\epoc32\data\z\test\app-framework\form\form_t_tmcode.script"-"c:\test\app-framework\form\form_t_tmcode.script" +"\epoc32\data\z\test\app-framework\form\form_t_unique.script"-"c:\test\app-framework\form\form_t_unique.script" +"\epoc32\data\z\test\app-framework\form\form_t_undo.script"-"c:\test\app-framework\form\form_t_undo.script" +"\epoc32\data\z\test\app-framework\form\form_t_interpreter.script"-"c:\test\app-framework\form\form_t_interpreter.script" +"\epoc32\data\z\test\app-framework\form\form_t_format.script"-"c:\test\app-framework\form\form_t_format.script" +"\epoc32\data\z\test\app-framework\form\form_t_inlinetext.script"-"c:\test\app-framework\form\form_t_inlinetext.script" +"\epoc32\data\z\test\app-framework\form\form_t_graphemeiterator.script"-"c:\test\app-framework\form\form_t_graphemeiterator.script" +"\epoc32\data\z\test\app-framework\form\form_t_formbenchmark.script"-"c:\test\app-framework\form\form_t_formbenchmark.script" +"\epoc32\data\z\test\app-framework\form\form_t_linepag.script"-"c:\test\app-framework\form\form_t_linepag.script" +"\epoc32\data\z\test\app-framework\form\form_t_formhindi.script"-"c:\test\app-framework\form\form_t_formhindi.script" diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/group/TBidiCursorPos.mmp --- a/textrendering/textformatting/test/group/TBidiCursorPos.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* Test of GetNextVisualCursorPos functionality -* -*/ - - -target tbidicursorpos.exe -targettype exe - -UID 0x100039CE 0xE0008383 -VENDORID 0x70000001 - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -userinclude ../../tagma -userinclude ../../inc ../traces - -sourcepath ../src - -source TBidiCursorPos.cpp TGraphicsContext.cpp - -sourcepath ../../tagma - -source TMCODE.CPP TMFORWRD.CPP TMGLYPH.CPP TMINTERP.CPP TMLAYOUT.CPP -source TMSOURCE.CPP TMTEXT.CPP tmeditor.cpp TMFORMAT.CPP TmEntry.cpp -source TmHighlightSource.cpp TmChunkInterp.cpp -source TmTextDrawExt.cpp -source tmreformat.cpp -source TmBufferBase.cpp TBidirectionalEndofLineContext.cpp -source TmChunk.cpp TmLine.cpp TmFormatContext.cpp - -library euser.lib tagma.lib cone.lib gdi.lib fbscli.lib etext.lib fntstr.lib -library estor.lib ws32.lib -#ifdef __BC_FUTURE_PROOFING__ -library linebreak.lib -#endif - -epocstacksize 0x10000 - -SMPSAFE diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/group/TCustomCharMapping.mmp --- a/textrendering/textformatting/test/group/TCustomCharMapping.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -target tcustomcharmapping.exe - -targettype EXE - - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -userinclude ../src -userinclude ../../inc - -sourcepath ../src -source TCustomCharMapping.cpp -source TGraphicsContext.cpp - -library euser.lib gdi.lib form.lib etext.lib ws32.lib fbscli.lib - -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/group/TFormBenchmark.mmp --- a/textrendering/textformatting/test/group/TFormBenchmark.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -target tformbenchmark.exe - -targettype EXE - -capability all -TCB - -sourcepath ../src -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -userinclude ../../tagma -userinclude ../src -userinclude ../../inc -source TFormBenchmark.cpp -source TGraphicsContext.cpp - -library euser.lib gdi.lib form.lib etext.lib ws32.lib fbscli.lib tagma.lib efsrv.lib - -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/group/TFormat.mmp --- a/textrendering/textformatting/test/group/TFormat.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -target tformat.exe -targettype exe -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -userinclude ../../inc - -sourcepath ../src -source TFormat.cpp - -library euser.lib tagma.lib etext.lib - -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/group/TGraphemeIterator.mmp --- a/textrendering/textformatting/test/group/TGraphemeIterator.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -target tgraphemeiterator.exe -targettype exe - -UID 0x100039CE 0xE0008383 -VENDORID 0x70000001 - -exportunfrozen - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -userinclude ../../tagma -userinclude ../../inc -userinclude ../src ../traces - -sourcepath ../src -source TGraphemeIterator.cpp -source TGraphicsContext.cpp -source TestLayout.cpp - -sourcepath ../../tagma -source TMCODE.CPP TMLAYOUT.CPP TMINTERP.CPP TMGLYPH.CPP TMFORWRD.CPP -source TMSOURCE.CPP TMTEXT.CPP tmeditor.cpp TMFORMAT.CPP -source TmHighlightSource.cpp TmChunkInterp.cpp -source TmTextDrawExt.cpp tmreformat.cpp -source TmBufferBase.cpp TBidirectionalEndofLineContext.cpp -source TmChunk.cpp TmLine.cpp TmFormatContext.cpp - - -library ws32.lib -library euser.lib gdi.lib fntstr.lib estor.lib etext.lib linebreak.lib fbscli.lib tagma.lib - -SMPSAFE diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/group/TInlineText.mmp --- a/textrendering/textformatting/test/group/TInlineText.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -target tinlinetext.exe -capability All -TCB - -targettype EXE - - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -userinclude ../../tagma -userinclude ../../inc - -sourcepath ../src -source TInlineText.cpp -source TGraphicsContext.cpp - -library euser.lib gdi.lib form.lib etext.lib ws32.lib fbscli.lib - -exportunfrozen - -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/group/TInterpreter.mmp --- a/textrendering/textformatting/test/group/TInterpreter.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -target tinterpreter.exe -targettype exe - -UID 0x100039CE 0xE0008383 -VENDORID 0x70000001 - -exportunfrozen - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -userinclude ../src -userinclude ../../tagma -userinclude ../../inc ../traces - -sourcepath ../src -source TInterpreter.cpp -source TGraphicsContext.cpp -source TestLayout.cpp -source TestPicture.cpp - -sourcepath ../../tagma -source TMCODE.CPP TMLAYOUT.CPP TMINTERP.CPP TMGLYPH.CPP TMFORWRD.CPP -source TMSOURCE.CPP TMTEXT.CPP tmeditor.cpp TMFORMAT.CPP -source TmHighlightSource.cpp TmChunkInterp.cpp -source TmTextDrawExt.cpp tmreformat.cpp -source TmBufferBase.cpp TBidirectionalEndofLineContext.cpp -source TmChunk.cpp TmLine.cpp TmFormatContext.cpp - -library ws32.lib -library euser.lib gdi.lib fntstr.lib estor.lib etext.lib linebreak.lib fbscli.lib tagma.lib - -SMPSAFE diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/group/TLINEPAG.MMP --- a/textrendering/textformatting/test/group/TLINEPAG.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// TLINEPAG.MMP for component FORM -// - -target tlinepag.exe - -targetpath /test/app-framework/form - -targettype exe - -UID 0x100039CE 0xE0008383 -VENDORID 0x70000001 - -userinclude ../../inc ../traces // your public include directory should be here -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -sourcepath ../src -source TLINEPAG.CPP - -sourcepath ../../tbox -source FormLinePag.cpp - -library euser.lib efsrv.lib gdi.lib ws32.lib bafl.lib cone.lib - -SMPSAFE diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/group/TTagmaImp.mmp --- a/textrendering/textformatting/test/group/TTagmaImp.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -target ttagmaimp.exe -capability All -TCB - -targettype EXE - -UID 0x100039CE 0xE0008383 -VENDORID 0x70000001 - -exportunfrozen - -MW_LAYER_SYSTEMINCLUDE_SYMBIAN -userinclude ../../tagma -userinclude ../../inc -userinclude ../src ../traces - -sourcepath ../src -source TTagmaImp.cpp TGraphicsContext.cpp - -sourcepath ../../tagma -source TMCODE.CPP TMLAYOUT.CPP TMINTERP.CPP TMGLYPH.CPP TMFORWRD.CPP -source TMSOURCE.CPP TMTEXT.CPP tmeditor.cpp TMFORMAT.CPP -source TmHighlightSource.cpp TmChunkInterp.cpp -source TmTextDrawExt.cpp tmreformat.cpp -source TmBufferBase.cpp TBidirectionalEndofLineContext.cpp -source TmChunk.cpp TmLine.cpp TmFormatContext.cpp - -library euser.lib cone.lib gdi.lib fbscli.lib etext.lib fntstr.lib -library estor.lib ws32.lib tagma.lib -library linebreak.lib - -SMPSAFE diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/group/TTmCode.mmp --- a/textrendering/textformatting/test/group/TTmCode.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* Test of CTmCode class -* -*/ - - -target ttmcode.exe -targettype exe -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -userinclude ../../tagma -userinclude ../../inc - -sourcepath ../src -source TTmCode.cpp -// link directly against Tagma -source ../../tagma/TMCODE.CPP - -library euser.lib -epocstacksize 0x10000 - -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/group/TTmSource.mmp --- a/textrendering/textformatting/test/group/TTmSource.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* -* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* Test of MTmSource functionality -* -*/ - - -target ttmsource.exe -targettype exe -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -userinclude ../../tagma -userinclude ../../inc - -sourcepath ../src -source TTmSource.cpp - -sourcepath ../../tagma -source TMSOURCE.CPP - -library euser.lib tagma.lib gdi.lib -library linebreak.lib - -epocstacksize 0x10000 - -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/group/TUndo.mmp --- a/textrendering/textformatting/test/group/TUndo.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -target tundo.exe -targettype exe - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -userinclude ../../tagma -userinclude ../../undo -userinclude ../../inc - -sourcepath ../src -source TUndo.cpp TGraphicsContext.cpp - -sourcepath ../../undo -source UniqueInstanceImpl.cpp UniqueInstance.cpp -source UndoSystem.cpp UndoSystemImpl.cpp -source EditorCommands.cpp EditorUndo.cpp -source EditorPlainTextCommands.cpp EditorPlainTextUndo.cpp - - -library euser.lib tagma.lib fntstr.lib gdi.lib estor.lib etext.lib form.lib ws32.lib fbscli.lib form_and_etext_editor.lib -epocstacksize 0x10000 -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/group/TUnique.mmp --- a/textrendering/textformatting/test/group/TUnique.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -target tunique.exe -targettype exe - -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -userinclude ../../tagma -userinclude ../../undo -userinclude ../../inc - -sourcepath ../src -source TUnique.cpp - -sourcepath ../../undo -source UniqueInstanceImpl.cpp UniqueInstance.cpp - -library euser.lib - -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/group/tformhindi.mmp --- a/textrendering/textformatting/test/group/tformhindi.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -target tformhindi.exe - -targettype EXE - -sourcepath ../src -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -userinclude ../src -userinclude ../../inc - -source tformhindi.cpp - -library euser.lib form.lib gdi.lib ws32.lib etext.lib bitgdi.lib fbscli.lib - -exportunfrozen - -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/group/tformserver.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/group/tformserver.mmp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,86 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + + +TARGET tformserver.exe +TARGETTYPE exe +capability All -TCB + +MW_LAYER_SYSTEMINCLUDE_SYMBIAN +USERINCLUDE ../../tagma +USERINCLUDE ../../inc +USERINCLUDE ../src ../traces +USERINCLUDE ../../undo + +SOURCEPATH ../src +SOURCE tformserver.cpp +SOURCE tcustomcharmapping.cpp +SOURCE TGraphicsContext.cpp +SOURCE TTagmaImp.cpp +SOURCE TTmSource.cpp +SOURCE TBidiCursorPos.cpp +SOURCE TTmCode.cpp +SOURCE TUnique.cpp +SOURCE TUndo.cpp +SOURCE TInterpreter.cpp +SOURCE TestLayout.cpp +SOURCE TestPicture.cpp +SOURCE TFormat.cpp +SOURCE TInlineText.cpp +SOURCE TGraphemeIterator.cpp +SOURCE TFormBenchmark.cpp +SOURCE TLINEPAG.CPP +SOURCE tformhindi.cpp + +SOURCEPATH ../../tagma +SOURCE TMCODE.CPP TMLAYOUT.CPP TMINTERP.CPP TMGLYPH.CPP TMFORWRD.CPP +SOURCE TMSOURCE.CPP TMTEXT.CPP tmeditor.cpp TMFORMAT.CPP +SOURCE TmHighlightSource.cpp TmChunkInterp.cpp +SOURCE TmTextDrawExt.cpp tmreformat.cpp +SOURCE TmBufferBase.cpp TBidirectionalEndofLineContext.cpp +SOURCE TmChunk.cpp TmLine.cpp TmFormatContext.cpp + +SOURCEPATH ../../undo +SOURCE UniqueInstanceImpl.cpp UniqueInstance.cpp +SOURCE UndoSystem.cpp UndoSystemImpl.cpp +SOURCE EditorCommands.cpp EditorUndo.cpp +SOURCE EditorPlainTextCommands.cpp EditorPlainTextUndo.cpp + +SOURCEPATH ../../tbox +SOURCE FormLinePag.cpp + +LIBRARY euser.lib +LIBRARY testexecuteutils.lib +LIBRARY testexecutelogclient.lib +LIBRARY gdi.lib form.lib etext.lib ws32.lib fbscli.lib efsrv.lib + +LIBRARY cone.lib fntstr.lib +LIBRARY estor.lib tagma.lib +LIBRARY linebreak.lib +LIBRARY form_and_etext_editor.lib +LIBRARY bitgdi.lib + +#ifdef ENABLE_ABIV2_MODE +DEBUGGABLE_UDEBONLY +#endif + +epocstacksize 0x10000 + +VENDORID 0x70000001 + +SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/form_t_all.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/form_t_all.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,33 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +LOAD_SUITE tformserver + +RUN_TEST_STEP 100 tformserver T_BidiCursorPos +RUN_TEST_STEP 100 tformserver T_CustomCharMapping +RUN_TEST_STEP 100 tformserver T_Format +RUN_TEST_STEP 1000 tformserver T_FormBenchmark +RUN_TEST_STEP 100 tformserver T_FormHindi +RUN_TEST_STEP 100 tformserver T_GraphemeIterator +RUN_TEST_STEP 100 tformserver T_InLineText +RUN_TEST_STEP 100 tformserver T_Interpreter +RUN_TEST_STEP 100 tformserver T_LinePag +RUN_TEST_STEP 100 tformserver T_TagmaImp +RUN_TEST_STEP 100 tformserver T_TmCode +RUN_TEST_STEP 100 tformserver T_TmSource +RUN_TEST_STEP 100 tformserver T_Undo +RUN_TEST_STEP 100 tformserver T_Unique diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/form_t_bidicursorpos.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/form_t_bidicursorpos.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +LOAD_SUITE tformserver + +RUN_TEST_STEP 100 tformserver T_BidiCursorPos \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/form_t_customcharmapping.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/form_t_customcharmapping.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,19 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +LOAD_SUITE tformserver + +RUN_TEST_STEP 100 tformserver T_CustomCharMapping \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/form_t_format.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/form_t_format.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,19 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +LOAD_SUITE tformserver + +RUN_TEST_STEP 100 tformserver T_Format \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/form_t_formbenchmark.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/form_t_formbenchmark.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + +LOAD_SUITE tformserver + +RUN_TEST_STEP 1000 tformserver T_FormBenchmark \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/form_t_formhindi.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/form_t_formhindi.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,19 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +LOAD_SUITE tformserver + +RUN_TEST_STEP 100 tformserver T_FormHindi \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/form_t_graphemeiterator.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/form_t_graphemeiterator.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,19 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +LOAD_SUITE tformserver + +RUN_TEST_STEP 100 tformserver T_GraphemeIterator \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/form_t_inlinetext.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/form_t_inlinetext.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,19 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +LOAD_SUITE tformserver + +RUN_TEST_STEP 100 tformserver T_InLineText \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/form_t_interpreter.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/form_t_interpreter.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,19 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +LOAD_SUITE tformserver + +RUN_TEST_STEP 100 tformserver T_Interpreter \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/form_t_linepag.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/form_t_linepag.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,19 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +LOAD_SUITE tformserver + +RUN_TEST_STEP 100 tformserver T_LinePag \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/form_t_tagmaimp.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/form_t_tagmaimp.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,19 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +LOAD_SUITE tformserver + +RUN_TEST_STEP 100 tformserver T_TagmaImp \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/form_t_tmcode.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/form_t_tmcode.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,19 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +LOAD_SUITE tformserver + +RUN_TEST_STEP 100 tformserver T_TmCode \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/form_t_tmsouce.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/form_t_tmsouce.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,19 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +LOAD_SUITE tformserver + +RUN_TEST_STEP 100 tformserver T_TmSource \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/form_t_undo.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/form_t_undo.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,19 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +LOAD_SUITE tformserver + +RUN_TEST_STEP 100 tformserver T_Undo \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/form_t_unique.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/form_t_unique.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,19 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +LOAD_SUITE tformserver + +RUN_TEST_STEP 100 tformserver T_Unique \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/formtests.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/formtests.bat Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,25 @@ +@rem +@rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +@rem All rights reserved. +@rem This component and the accompanying materials are made available +@rem under the terms of "Eclipse Public License v1.0" +@rem which accompanies this distribution, and is available +@rem at the URL "http://www.eclipse.org/legal/epl-v10.html". +@rem +@rem Initial Contributors: +@rem Nokia Corporation - initial contribution. +@rem +@rem Contributors: +@rem +@rem Description: +@rem + +@echo on +testexecute.exe z:\test\app-framework\form\form_t_all.script + +@echo off +md e:\logs +md e:\logs\testexecute + +copy c:\logs\testexecute\form_t_*.htm e:\logs\testexecute\ +copy c:\logs\testexecute\testresults.htm e:\logs\testexecute\formresutls.htm \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/scripts/formtests_run.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/scripts/formtests_run.bat Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,37 @@ +@rem +@rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +@rem All rights reserved. +@rem This component and the accompanying materials are made available +@rem under the terms of "Eclipse Public License v1.0" +@rem which accompanies this distribution, and is available +@rem at the URL "http://www.eclipse.org/legal/epl-v10.html". +@rem +@rem Initial Contributors: +@rem Nokia Corporation - initial contribution. +@rem +@rem Contributors: +@rem +@rem Description: +@rem + +@echo on +testexecute.exe z:\form\app-framework\form\form_t_customcharmapping.script +testexecute.exe z:\form\app-framework\form\form_t_tagmaimp.script +testexecute.exe z:\form\app-framework\form\form_t_tmsource.script +testexecute.exe z:\form\app-framework\form\form_t_bidicursorpos.script +testexecute.exe z:\form\app-framework\form\form_t_tmcode.script +testexecute.exe z:\form\app-framework\form\form_t_unique.script +testexecute.exe z:\form\app-framework\form\form_t_undo.script +testexecute.exe z:\form\app-framework\form\form_t_interpreter.script +testexecute.exe z:\form\app-framework\form\form_t_format.script +testexecute.exe z:\form\app-framework\form\form_t_inlinetext.script +testexecute.exe z:\form\app-framework\form\form_t_graphemeiterator.script +testexecute.exe z:\form\app-framework\form\form_t_formbenchmark.script +testexecute.exe z:\form\app-framework\form\form_t_linepag.script +testexecute.exe z:\form\app-framework\form\form_t_formhindi.script + +@echo off +md e:\logs +md e:\logs\testexecute + +copy c:\logs\testexecute\form_t_*.htm e:\logs\testexecute\ \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/TBidiCursorPos.cpp --- a/textrendering/textformatting/test/src/TBidiCursorPos.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/textformatting/test/src/TBidiCursorPos.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -23,9 +23,17 @@ #include "TAGMA.H" #include "TmLayoutImp.h" #include "TMINTERP.H" +#include "tbidicursorpos.h" -CTrapCleanup* TrapCleanup; -RTest test(_L("TBidiCursorPos - GetNextVisualCursorPos tests")); +namespace LocalToTBidiCursorPos +{ +CTBidiCursorPosStep* TestStep; +#define TESTPOINT(p) TestStep->testpoint(p,(TText8*)__FILE__,__LINE__) +#define TESTPRINT(p) TestStep->print(p,(TText8*)__FILE__,__LINE__) + +} + +using namespace LocalToTBidiCursorPos; class CTestSource : public CBase, public MTmSource { @@ -189,7 +197,7 @@ for (TInt ii = 0; ii < NO_OF_TEST_CASES; ii++) { msg.Format(_L("GetNextVisualCursorPos test case %d\n"), ii + 1); - test.Next(msg); + TESTPRINT(msg); aSource->SetText(logicalText[ii]); format.iEndChar = logicalText[ii]->Length(); if (rightToLeftPara[ii]) @@ -204,15 +212,15 @@ while (info.iDocPos.iPos != expectedCursorPos[ii][charIndex].iPos || info.iDocPos.iLeadingEdge != expectedCursorPos[ii][charIndex].iLeading) { - test(expectedCursorPos[ii][charIndex].iOptional); + TESTPOINT(expectedCursorPos[ii][charIndex].iOptional); ++charIndex; - test(charIndex != numberOfCursorPositionsToCheck[ii]); + TESTPOINT(charIndex != numberOfCursorPositionsToCheck[ii]); } pos = info.iDocPos; ++charIndex; - test(charIndex <= numberOfCursorPositionsToCheck[ii]); + TESTPOINT(charIndex <= numberOfCursorPositionsToCheck[ii]); } - test(charIndex == numberOfCursorPositionsToCheck[ii]); + TESTPOINT(charIndex == numberOfCursorPositionsToCheck[ii]); aSource->iParFormat.iFlags &= ~(RTmParFormat::ERightToLeft); // reset back to default of LeftToRight } @@ -257,10 +265,10 @@ TTmDocPosSpec posSpec(pos,static_cast(type)); TBool result = aLayout->GetCursor(posSpec, ECursorVertical, lineInfo, position, width, ascent, descent); - test(result); + TESTPOINT(result); //Test that the LHS is non negative. Because we are allowing bidirectional text the //text shouldnt wrap to next line but instead the cursor can scroll left or right to see the text. - test(lineInfo.iInnerRect.iTl.iX >= 0); + TESTPOINT(lineInfo.iInnerRect.iTl.iX >= 0); CleanupStack::PopAndDestroy(buf); } @@ -297,35 +305,30 @@ static_cast(type)); TBool result = aLayout->GetCursor(posSpec, ECursorVertical, lineInfo, position, width, ascent, descent); - test(result); - test(0 < width); + TESTPOINT(result); + TESTPOINT(0 < width); } } CleanupStack::PopAndDestroy(buf); } -void RunTestsL() +TVerdict CTBidiCursorPosStep::doTestStepL() { + SetTestStepResult(EPass); + TestStep = this; + TESTPRINT(_L("TBidiCursorPos - GetNextVisualCursorPos tests")); CTmTextLayout* layout = new(ELeave) CTmTextLayout; CleanupStack::PushL(layout); CTestSource* source = CTestSource::NewLC(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FORM-UT-3610 GetNextVisualCursorPos tests ")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORM-UT-3610 GetNextVisualCursorPos tests ")); GetNextVisualCursorPosTestsL(layout, source); - test.Next(_L("INC041367")); + TESTPRINT(_L("INC041367")); INC041367(layout, source); - test.Next(_L("DEF109737")); + TESTPRINT(_L("DEF109737")); DEF109737(layout, source); - test.End(); + CleanupStack::PopAndDestroy(source); CleanupStack::PopAndDestroy(layout); + return TestStepResult(); } -TInt E32Main() - { - TrapCleanup = CTrapCleanup::New(); - TRAPD(err, RunTestsL()); - test(err == KErrNone); - test.Close(); - delete TrapCleanup; - return 0; - } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/TCustomCharMapping.cpp --- a/textrendering/textformatting/test/src/TCustomCharMapping.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/textformatting/test/src/TCustomCharMapping.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -15,8 +15,6 @@ * */ - -#include "TGraphicsContext.h" #include #include #include @@ -25,26 +23,11 @@ #include #include #include - -namespace LocalToFile -{ - -_LIT(KTCustomCharMapping, "TCustomCharMapping"); -const TInt KDisplayWidth = 202; -const TInt KDisplayHeight = 100; -const TInt KPictureCharacter = 0xFFFC; -RTest test(KTCustomCharMapping); +#include "TGraphicsContext.h" +#include "tcustomcharmapping.h" -enum TTestNum - { - EDefaultBehaviourInvisible = 0, - EDefaultBehaviourVisible = 1, - ECustomRemappingInvisible = 2, - ECustomRemappingVisible = 3, - ENewTest = 4 //Test remapping with no custom remapper and some flags explicitly set to invisible - }; - - +namespace LocalToTCustomCharMapping +{ class CPinkSquare : public CPicture { public: @@ -151,7 +134,7 @@ CParaFormat* iParagraphFormat; }; } -using namespace LocalToFile; +using namespace LocalToTCustomCharMapping; class CTestTextView // slightly naughty { @@ -265,18 +248,18 @@ { } -void DoTestL(TDes& aText, CTextLayout* /*aLayout*/, CTestGraphicsDevice* aDevice, CTextView* aView, TTestNum aTestNum) +void CTCustomCharMappingStep::DoTestL(TDes& aText, CTextLayout* /*aLayout*/, CTestGraphicsDevice* aDevice, CTextView* aView, TTestNum aTestNum) { aText = KTestStrings[aTestNum][0]; aDevice->LineArray().ResetLineArray(); aView->HandleGlobalChangeL(); const TTestGCDisplayLine* line1 = &(aDevice->LineArray().Line(0)); const TTestGCDisplayLine* line2 = aDevice->LineArray().Find(KTestStrings[aTestNum][1]); - test(0 != line1); - test(0 != line2); + TEST(0 != line1); + TEST(0 != line2); // Can't always do a direct comparison of lines because same string // may appear in more than one line, so compare contents - test(line1->iLineData.Compare(line2->iLineData) == 0); + TEST(line1->iLineData.Compare(line2->iLineData) == 0); } @@ -288,12 +271,12 @@ @SYMTestExpectedResults The test must not fail. @SYMPREQ 1128 Placeholders for invisible characers in rich text shall be customizable */ -void RunInstallationTestsL() +void CTCustomCharMappingStep::RunInstallationTestsL() { // Note: If you need to move these heap checks any further "in" to focus // on a specific test then you will have to move all the setup code in as // well - and still preserve the two different display widths in use - test.Next(_L(" @SYMTestCaseID:SYSLIB-FORM-CT-0147 ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-FORM-CT-0147 ")); __UHEAP_MARK; CActiveScheduler* scheduler = new(ELeave) CActiveScheduler; CleanupStack::PushL(scheduler); @@ -317,21 +300,21 @@ MFormCustomInvisibleCharacterRemapper* remapper; // read what the ptr is set to - check it is null remapper = layout->GetCustomInvisibleCharacterRemapper(); - test.Next(_L("Test uninstalled")); - test(remapper == NULL); + INFO_PRINTF1(_L("Test uninstalled")); + TEST(remapper == NULL); // install a custom remapper - get the ptr - check it is set MFormCustomInvisibleCharacterRemapper* customRemapper = CCustomRemapper::NewL(); layout->SetCustomInvisibleCharacterRemapper(customRemapper); remapper = layout->GetCustomInvisibleCharacterRemapper(); - test.Next(_L("Test installed")); - test(remapper == customRemapper); + INFO_PRINTF1(_L("Test installed")); + TEST(remapper == customRemapper); // set the ptr back to null (deinstall) - get the ptr - check it is null layout->SetCustomInvisibleCharacterRemapper(NULL); remapper = layout->GetCustomInvisibleCharacterRemapper(); - test.Next(_L("Test uninstalled again")); - test(remapper == NULL); + INFO_PRINTF1(_L("Test uninstalled again")); + TEST(remapper == NULL); delete customRemapper; @@ -352,9 +335,9 @@ @SYMTestExpectedResults The test must not fail. @SYMPREQ 1128 Placeholders for invisible characers in rich text shall be customizable */ -void RunDefaultBehaviourTestsL() +void CTCustomCharMappingStep::RunDefaultBehaviourTestsL() { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FORM-CT-0148 ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-FORM-CT-0148 ")); CActiveScheduler* scheduler = new(ELeave) CActiveScheduler; CleanupStack::PushL(scheduler); CActiveScheduler::Install(scheduler); @@ -376,7 +359,7 @@ // Start by making sure no custom remapper is installed MFormCustomInvisibleCharacterRemapper* remapper; remapper = layout->GetCustomInvisibleCharacterRemapper(); - test(remapper == NULL); + TEST(remapper == NULL); // Set all invisible characters to be invisible TNonPrintingCharVisibility visibility; @@ -384,7 +367,7 @@ layout->SetNonPrintingCharsVisibility(visibility); // Test remapping with no custom remapper and flags set to invisible - test.Next(_L("Test uninstalled behaviour - flags invisible")); + INFO_PRINTF1(_L("Test uninstalled behaviour - flags invisible")); DoTestL(text, layout, device, view, EDefaultBehaviourInvisible); // Now set all invisible characters to be visible @@ -392,11 +375,11 @@ layout->SetNonPrintingCharsVisibility(visibility); // Test remapping with no custom remapper and flags set to visible - test.Next(_L("Test uninstalled behaviour - flags visible")); + INFO_PRINTF1(_L("Test uninstalled behaviour - flags visible")); DoTestL(text, layout, device, view, EDefaultBehaviourVisible); // Test remapping with no custom remapper and some flags explicitly set to invisible - test.Next(_L("Test uninstalled behaviour - some flags invisible")); + INFO_PRINTF1(_L("Test uninstalled behaviour - some flags invisible")); //Set all invisible characters to be visible visibility.SetAllVisible(); //Set some attributes explicitly to be invisible @@ -428,12 +411,12 @@ @SYMTestExpectedResults The test must not fail. @SYMPREQ 1128 Placeholders for invisible characers in rich text shall be customizable */ -void RunCustomBehaviourTestsL() +void CTCustomCharMappingStep::RunCustomBehaviourTestsL() { // Note: If you need to move these heap checks any further "in" to focus // on a specific test then you will have to move all the setup code in as // well - and still preserve the two different display widths in use - test.Next(_L(" @SYMTestCaseID:SYSLIB-FORM-CT-0149 ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-FORM-CT-0149 ")); __UHEAP_MARK; CActiveScheduler* scheduler = new(ELeave) CActiveScheduler; CleanupStack::PushL(scheduler); @@ -458,7 +441,7 @@ MFormCustomInvisibleCharacterRemapper* customRemapper = CCustomRemapper::NewL(); layout->SetCustomInvisibleCharacterRemapper(customRemapper); remapper = layout->GetCustomInvisibleCharacterRemapper(); - test(remapper == customRemapper); + TEST(remapper == customRemapper); // Set all invisible characters to be invisible TNonPrintingCharVisibility visibility; @@ -466,7 +449,7 @@ layout->SetNonPrintingCharsVisibility(visibility); // Test remapping with custom remapper and flags set to invisible - test.Next(_L("Test installed behaviour - flags invisible")); + INFO_PRINTF1(_L("Test installed behaviour - flags invisible")); DoTestL(text, layout, device, view, ECustomRemappingInvisible); // Now set all invisible characters to be visible @@ -474,13 +457,13 @@ layout->SetNonPrintingCharsVisibility(visibility); // Test remapping with custom remapper and flags set to visible - test.Next(_L("Test installed behaviour - flags visible")); + INFO_PRINTF1(_L("Test installed behaviour - flags visible")); DoTestL(text, layout, device, view, ECustomRemappingVisible); // Now we are finished deinstall and delete it layout->SetCustomInvisibleCharacterRemapper(NULL); remapper = layout->GetCustomInvisibleCharacterRemapper(); - test(remapper == NULL); + TEST(remapper == NULL); delete customRemapper; CleanupStack::PopAndDestroy(offScreenContext); @@ -491,39 +474,30 @@ __UHEAP_MARKEND; } +CTCustomCharMappingStep::CTCustomCharMappingStep() + { + + } -TInt E32Main() - { - __UHEAP_MARK; - test.Title(); - static CTrapCleanup* TrapCleanup = CTrapCleanup::New(); - test.Start(_L("Test installation/deinstallatiion")); - TInt error = RFbsSession::Connect(); - if (error == KErrNotFound) - { - FbsStartup(); - error = RFbsSession::Connect(); - } - test(error == KErrNone); - TRAP(error, RunInstallationTestsL()); - test(error == KErrNone); - test.Next(_L("Test uninstalled behaviour")); - TRAP(error, RunDefaultBehaviourTestsL()); - test(error == KErrNone); - test.Next(_L("Test behaviour with custom remapper installed")); - TRAP(error, RunCustomBehaviourTestsL()); - test(error == KErrNone); - RFbsSession::Disconnect(); - test.End(); - delete TrapCleanup; - test.Close(); - __UHEAP_MARKEND; - User::Heap().Check(); - return error; - } - - -#if defined(__WINS__) -EXPORT_C TInt EntryPoint(TAny*) {return E32Main();} -#endif - +TVerdict CTCustomCharMappingStep::doTestStepL() + { + SetTestStepResult(EPass); + INFO_PRINTF1(_L("Test installation/deinstallatiion")); + TInt error = RFbsSession::Connect(); + if (error == KErrNotFound) + { + FbsStartup(); + error = RFbsSession::Connect(); + } + TEST(error == KErrNone); + TRAP(error, RunInstallationTestsL()); + TEST(error == KErrNone); + INFO_PRINTF1(_L("Test uninstalled behaviour")); + TRAP(error, RunDefaultBehaviourTestsL()); + TEST(error == KErrNone); + INFO_PRINTF1(_L("Test behaviour with custom remapper installed")); + TRAP(error, RunCustomBehaviourTestsL()); + TEST(error == KErrNone); + RFbsSession::Disconnect(); + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/TFormBenchmark.cpp --- a/textrendering/textformatting/test/src/TFormBenchmark.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/textformatting/test/src/TFormBenchmark.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -34,9 +34,21 @@ #include "TAGMA_INTERNAL.H" #endif +#include "tformbenchmark.h" + +namespace LocalToTFormBenchmark +{ +CTFormBenchmarkStep* TestStep = NULL; +#define TESTPOINT(p) TestStep->testpoint(p,(TText8*)__FILE__,__LINE__) +#define TESTPRINT(p) TestStep->print(p,(TText8*)__FILE__,__LINE__) +} +using namespace LocalToTFormBenchmark; + RFs fs; RFile fileTimeStamps; +_LIT(KFormBenchmark, "TFormBenchmark"); + #if ((defined (__WINS__)) || (defined (__X86GCC__))) _LIT(KLogTimeStampsName, "c:\\formtimestamps.csv"); #else @@ -67,10 +79,6 @@ const TInt KDisplayWidth = 100; const TInt KDisplayHeight = 120; - -_LIT(KFormBenchmark, "TFormBenchmark"); -RTest test(KFormBenchmark); - const TInt KInsertDisplayWidth = 200; const TInt KChangedDisplayWidth = 150; @@ -421,7 +429,7 @@ RArray& aTimeStampsDown, RArray& aTimeStampsUp, TDocInfo& aDocInfo) { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FORMA-UT-1897 ")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORMA-UT-1897 ")); TInt docLength = KEnglish().Length() * aRepeats; TInt paragraphs = aRepeats/aRepeatsPerParagraph; @@ -436,8 +444,10 @@ MeasureCursorL(aTimeStampsDown, TCursorPosition::EFLineDown, o, slowest); MeasureCursorL(aTimeStampsUp, TCursorPosition::EFLineUp, o, slowest); - RDebug::Printf("PERFORMANCE: Syslibs;Form_Scrolling_Slowest_Doc_with_%d_characters_%d_paragraphs;microseconds: %Ld", docLength, paragraphs, slowest); - + TBuf<256> buf; + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_Scrolling_Slowest_Doc_with_%d_characters_%d_paragraphs;microseconds: %Ld"), docLength, paragraphs, slowest); + TESTPRINT(buf); + aDocInfo = GetSampleDocInfoL(o); DestroyFormattingObjects(o); } @@ -452,7 +462,7 @@ */ void RunEnglishArabicJapaneseBenchmarksL(TFormattingObjects& aFormattingObjects) { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FORMA-UT-1898 ")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORMA-UT-1898 ")); SetTextL(*aFormattingObjects.iRichText, KEnglish, KEnglishRepeats, KEnglishRepeats); TTimeIntervalMicroSeconds opening = MeasureOpeningL(*aFormattingObjects.iView); TTimeIntervalMicroSeconds rmsCursorDown = MeasureRmsCursorDownL(*aFormattingObjects.iView); @@ -484,18 +494,32 @@ maxLines = japaneseLines; //Tests that the number of lines in each test is more or less balanced - test(maxLines * 100 <= minLines * 105); + TESTPOINT(maxLines * 100 <= minLines * 105); - RDebug::Printf("PERFORMANCE: Syslibs;Form_OpeningLargeParagraph;microseconds: %d", + TBuf<256> buf; + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_OpeningLargeParagraph;microseconds: %d"), static_cast(opening.Int64())); - RDebug::Printf("PERFORMANCE: Syslibs;Form_RmsCursorDown;microseconds: %d", + TESTPRINT(buf); + buf.Zero(); + + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_RmsCursorDown;microseconds: %d"), static_cast(rmsCursorDown.Int64())); - RDebug::Printf("PERFORMANCE: Syslibs;Form_FormattingEnglish;microseconds: %d", + TESTPRINT(buf); + buf.Zero(); + + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_FormattingEnglish;microseconds: %d"), static_cast(englishFormatting.Int64())); - RDebug::Printf("PERFORMANCE: Syslibs;Form_FormattingArabic;microseconds: %d", + TESTPRINT(buf); + buf.Zero(); + + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_FormattingArabic;microseconds: %d"), static_cast(arabicFormatting.Int64())); - RDebug::Printf("PERFORMANCE: Syslibs;Form_FormattingJapanese;microseconds: %d", + TESTPRINT(buf); + buf.Zero(); + + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_FormattingJapanese;microseconds: %d"), static_cast(japaneseFormatting.Int64())); + TESTPRINT(buf); } /** @@ -510,7 +534,7 @@ void RunInsertTextTestsL(TInt aRepeats, TInt aRepeatsPerParagraph, RArray& aTimeStamps, TDocInfo& aDocInfo) { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FORMA-UT-1896 ")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORMA-UT-1896 ")); TFormattingObjects o; CreateFormattingObjectsLC(o); TInt64 slowest = 0; @@ -519,8 +543,10 @@ MeasureInsertTextAtStartL(aRepeats, aRepeatsPerParagraph, aTimeStamps, o, slowest); aDocInfo = GetSampleDocInfoL(o); - RDebug::Printf("PERFORMANCE: Syslibs;Form_InsertText_Slowest;microseconds: %Ld", slowest); - + TBuf<256> buf; + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_InsertText_Slowest;microseconds: %Ld"), slowest); + TESTPRINT(buf); + DestroyFormattingObjects(o); } @@ -535,7 +561,7 @@ */ void RunDeleteTextFromStartTest(RArray& aTimeStamps, TDocInfo& aDocInfo) { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FORMA-UT-1895 ")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORMA-UT-1895 ")); TFormattingObjects o; CreateFormattingObjectsLC(o); TInt64 slowest = 0; @@ -549,7 +575,9 @@ MeasureDeleteTextFromStartL(aTimeStamps, o, slowest); aDocInfo = GetSampleDocInfoL(o); - RDebug::Printf("PERFORMANCE: Syslibs;Form_DeleteText_Slowest;microseconds: %Ld", slowest); + TBuf<256> buf; + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_DeleteText_Slowest;microseconds: %Ld"), slowest); + TESTPRINT(buf); CleanupStack::PopAndDestroy();//bigbuf DestroyFormattingObjects(o); @@ -557,7 +585,7 @@ void GetFormattingBenchmarkL(TInt aNumberOfIterations, TInt& aNumberOfCharacters, TInt64& aNormalisedBenchmark) { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FORMA-UT-1895 ")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORMA-UT-1895 ")); TFormattingObjects o; CreateFormattingObjectsLC(o); o.iLayout->SetWrapWidth(KInsertDisplayWidth); @@ -596,46 +624,65 @@ */ void RunFormattingBenchmarksL() { - test.Next(_L(" @SYMTestCaseID:SYSLIB-FORMA-UT-1894 ")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORMA-UT-1894 ")); TInt numberOfCharacters = 0; TInt numberOfIterations; TInt64 normalisedBenchmark = 0; + TBuf<256> buf; + numberOfIterations = 1; GetFormattingBenchmarkL(numberOfIterations, numberOfCharacters, normalisedBenchmark); - RDebug::Printf("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration", numberOfCharacters, normalisedBenchmark); - + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration"), numberOfCharacters, normalisedBenchmark); + TESTPRINT(buf); + + buf.Zero(); numberOfIterations = 5; GetFormattingBenchmarkL(numberOfIterations, numberOfCharacters, normalisedBenchmark); - RDebug::Printf("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration", numberOfCharacters, normalisedBenchmark); - + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration"), numberOfCharacters, normalisedBenchmark); + TESTPRINT(buf); + + buf.Zero(); numberOfIterations = 10; GetFormattingBenchmarkL(numberOfIterations, numberOfCharacters, normalisedBenchmark); - RDebug::Printf("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration", numberOfCharacters, normalisedBenchmark); + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration"), numberOfCharacters, normalisedBenchmark); + TESTPRINT(buf); + buf.Zero(); numberOfIterations = 50; GetFormattingBenchmarkL(numberOfIterations, numberOfCharacters, normalisedBenchmark); - RDebug::Printf("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration", numberOfCharacters, normalisedBenchmark); + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration"), numberOfCharacters, normalisedBenchmark); + TESTPRINT(buf); + buf.Zero(); numberOfIterations = 100; GetFormattingBenchmarkL(numberOfIterations, numberOfCharacters, normalisedBenchmark); - RDebug::Printf("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration", numberOfCharacters, normalisedBenchmark); + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration"), numberOfCharacters, normalisedBenchmark); + TESTPRINT(buf); + buf.Zero(); numberOfIterations = 250; GetFormattingBenchmarkL(numberOfIterations, numberOfCharacters, normalisedBenchmark); - RDebug::Printf("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration", numberOfCharacters, normalisedBenchmark); + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration"), numberOfCharacters, normalisedBenchmark); + TESTPRINT(buf); + buf.Zero(); numberOfIterations = 500; GetFormattingBenchmarkL(numberOfIterations, numberOfCharacters, normalisedBenchmark); - RDebug::Printf("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration", numberOfCharacters, normalisedBenchmark); - + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration"), numberOfCharacters, normalisedBenchmark); + TESTPRINT(buf); + + buf.Zero(); numberOfIterations = 750; GetFormattingBenchmarkL(numberOfIterations, numberOfCharacters, normalisedBenchmark); - RDebug::Printf("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration", numberOfCharacters, normalisedBenchmark); - + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration"), numberOfCharacters, normalisedBenchmark); + TESTPRINT(buf); + + buf.Zero(); numberOfIterations = 1000; GetFormattingBenchmarkL(numberOfIterations, numberOfCharacters, normalisedBenchmark); - RDebug::Printf("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration", numberOfCharacters, normalisedBenchmark); + buf.AppendFormat(_L("PERFORMANCE: Syslibs;Form_FormatText;document contains %d characters: %Ld microseconds per iteration"), numberOfCharacters, normalisedBenchmark); + TESTPRINT(buf); } void RunBenchmarksL() @@ -685,11 +732,14 @@ } -TInt E32Main() +TVerdict CTFormBenchmarkStep::doTestStepL() { - test.Title(); - test.Start(_L("Start Font/Bitmap Server")); - static CTrapCleanup* TrapCleanup = CTrapCleanup::New(); + SetTestStepResult(EPass); + TestStep = this; + + TESTPRINT(KFormBenchmark); + TESTPRINT(_L("Start Font/Bitmap Server")); + TInt error = RFbsSession::Connect(); if (error == KErrNotFound) { @@ -697,26 +747,28 @@ error = RFbsSession::Connect(); } // Tests that FBServ actually starts - test(error == KErrNone); + TESTPOINT(error == KErrNone); error = fs.Connect(); - test(error == KErrNone); + TESTPOINT(error == KErrNone); error = fileTimeStamps.Replace(fs, KLogTimeStampsName, EFileWrite); - RDebug::Printf("> fileTimeStamps.Replace %d", error); - test(error == KErrNone); + + TBuf<256> buf; + buf.AppendFormat(_L("> fileTimeStamps.Replace %d"), error); + TESTPRINT(buf); + + TESTPOINT(error == KErrNone); - test.Next(_L("Run Benchmarks")); + TESTPRINT(_L("Run Benchmarks")); TRAP(error, RunBenchmarksL()); // Tests that the Benchmarks did not run out of memory // or otherwise leave - test(error == KErrNone); + TESTPOINT(error == KErrNone); fileTimeStamps.Close(); fs.Close(); RFbsSession::Disconnect(); - delete TrapCleanup; - test.End(); - test.Close(); - return error; + + return TestStepResult(); } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/TFormat.cpp --- a/textrendering/textformatting/test/src/TFormat.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/textformatting/test/src/TFormat.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -20,11 +20,17 @@ #include "TAGMA.H" #include #include +#include "tformat.h" #define UNUSED_VAR(a) a = a -CTrapCleanup* TrapCleanup; -RTest test(_L("TFormat - TTmCharFormat and CTmParFormat")); +namespace LocalToTFormat +{ +CTFormatStep* TestStep = NULL; +#define TESTPOINT(p) TestStep->testpoint(p,(TText8*)__FILE__,__LINE__) +#define TESTPRINT(p) TestStep->print(p,(TText8*)__FILE__,__LINE__) +} +using namespace LocalToTFormat; void INC041190() { @@ -34,33 +40,26 @@ = TFontPresentation::EFontHighlightNoMatchesIndicator; tmcf.iEffects = 0; tmcf = cf; - test(tmcf.iEffects == TTmCharFormat::ENoMatchesIndicator); + TESTPOINT(tmcf.iEffects == TTmCharFormat::ENoMatchesIndicator); cf.iFontPresentation.iHighlightStyle = TFontPresentation::EFontHighlightNone; tmcf.GetTCharFormat(cf); - test(cf.iFontPresentation.iHighlightStyle + TESTPOINT(cf.iFontPresentation.iHighlightStyle == TFontPresentation::EFontHighlightNoMatchesIndicator); } -void RunTestsL() +TVerdict CTFormatStep::doTestStepL() { + SetTestStepResult(EPass); + TestStep = this; + TESTPRINT(_L("TFormat - TTmCharFormat and CTmParFormat")); + __UHEAP_MARK; - test.Title(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FORM-LEGACY-TFORMAT-0001 INC041190 - EText's EFontHighlightNoMatchesIndicator isn't mappd to anythng in TTmCharFormat ")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORM-LEGACY-TFORMAT-0001 INC041190 - EText's EFontHighlightNoMatchesIndicator isn't mappd to anythng in TTmCharFormat ")); INC041190(); - test.End(); - test.Close(); - __UHEAP_MARKENDC(0); + return TestStepResult(); } -TInt E32Main() - { - TrapCleanup = CTrapCleanup::New(); - TRAPD(err, RunTestsL()); - test(err == KErrNone); - delete TrapCleanup; - return 0; - } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/TGraphemeIterator.cpp --- a/textrendering/textformatting/test/src/TGraphemeIterator.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/textformatting/test/src/TGraphemeIterator.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -21,69 +21,77 @@ #include "TGraphicsContext.h" #include "TMINTERP.H" -#include +#include "tgraphemeiterator.h" + +namespace LocalToTGraphemeIterator +{ +CTGraphemeIteratorStep* TestStep; +#define TESTPOINT(p) TestStep->testpoint(p,(TText8*)__FILE__,__LINE__) +#define TESTPRINT(p) TestStep->print(p,(TText8*)__FILE__,__LINE__) struct TTransliteration - { - const TText* iString; - TInt iChar; - }; + { + const TText* iString; + TInt iChar; + }; static const TTransliteration KArabicTransliteration[] = - { - { reinterpret_cast(L"?"), 0x61F }, - { reinterpret_cast(L"`"), 0x621 }, // in-line hamza - { reinterpret_cast(L"a"), 0x627 }, // alif - { reinterpret_cast(L"b"), 0x628 }, - { reinterpret_cast(L"A"), 0x629 }, // teh marbuta - { reinterpret_cast(L"t"), 0x62A }, - { reinterpret_cast(L"th"), 0x62B }, - { reinterpret_cast(L"j"), 0x62C }, - { reinterpret_cast(L"H"), 0x62D }, // hah - { reinterpret_cast(L"kh"), 0x62E }, - { reinterpret_cast(L"d"), 0x62F }, - { reinterpret_cast(L"dh"), 0x630 }, - { reinterpret_cast(L"r"), 0x631 }, - { reinterpret_cast(L"z"), 0x632 }, - { reinterpret_cast(L"s"), 0x633 }, - { reinterpret_cast(L"sh"), 0x634 }, - { reinterpret_cast(L"S"), 0x635 }, - { reinterpret_cast(L"D"), 0x636 }, - { reinterpret_cast(L"T"), 0x637 }, - { reinterpret_cast(L"Z"), 0x638 }, // zah - { reinterpret_cast(L"'"), 0x639 }, // ain - { reinterpret_cast(L"g"), 0x63A }, - { reinterpret_cast(L"_"), 0x640 }, // kashida - { reinterpret_cast(L"f"), 0x641 }, - { reinterpret_cast(L"q"), 0x642 }, - { reinterpret_cast(L"k"), 0x643 }, - { reinterpret_cast(L"l"), 0x644 }, // lam - { reinterpret_cast(L"m"), 0x645 }, - { reinterpret_cast(L"n"), 0x646 }, - { reinterpret_cast(L"h"), 0x647 }, // heh - { reinterpret_cast(L"w"), 0x648 }, - { reinterpret_cast(L"y"), 0x64A }, - { reinterpret_cast(L"^F"), 0x64B }, // fathatan - { reinterpret_cast(L"^D"), 0x64C }, // dammatan - { reinterpret_cast(L"^K"), 0x64D }, // kasratan - { reinterpret_cast(L"^f"), 0x64E }, // fatha - { reinterpret_cast(L"^d"), 0x64F }, // damma - { reinterpret_cast(L"^k"), 0x650 }, // kasra - { reinterpret_cast(L"^s"), 0x651 }, // shadda - { reinterpret_cast(L"^h"), 0x652 }, // sukun - { reinterpret_cast(L"^~"), 0x653 }, // maddah - { reinterpret_cast(L"^`"), 0x654 }, // hamza above - { reinterpret_cast(L"_`"), 0x653 }, // hamza below - { reinterpret_cast(L"0"), 0x660 }, - { reinterpret_cast(L"1"), 0x661 }, - { reinterpret_cast(L"2"), 0x662 }, - { reinterpret_cast(L"3"), 0x663 }, - { reinterpret_cast(L"4"), 0x664 }, - { reinterpret_cast(L"5"), 0x665 }, - { reinterpret_cast(L"6"), 0x666 }, - { reinterpret_cast(L"7"), 0x667 }, - { reinterpret_cast(L"8"), 0x668 }, - { reinterpret_cast(L"9"), 0x669 } - }; + { + { reinterpret_cast(L"?"), 0x61F }, + { reinterpret_cast(L"`"), 0x621 }, // in-line hamza + { reinterpret_cast(L"a"), 0x627 }, // alif + { reinterpret_cast(L"b"), 0x628 }, + { reinterpret_cast(L"A"), 0x629 }, // teh marbuta + { reinterpret_cast(L"t"), 0x62A }, + { reinterpret_cast(L"th"), 0x62B }, + { reinterpret_cast(L"j"), 0x62C }, + { reinterpret_cast(L"H"), 0x62D }, // hah + { reinterpret_cast(L"kh"), 0x62E }, + { reinterpret_cast(L"d"), 0x62F }, + { reinterpret_cast(L"dh"), 0x630 }, + { reinterpret_cast(L"r"), 0x631 }, + { reinterpret_cast(L"z"), 0x632 }, + { reinterpret_cast(L"s"), 0x633 }, + { reinterpret_cast(L"sh"), 0x634 }, + { reinterpret_cast(L"S"), 0x635 }, + { reinterpret_cast(L"D"), 0x636 }, + { reinterpret_cast(L"T"), 0x637 }, + { reinterpret_cast(L"Z"), 0x638 }, // zah + { reinterpret_cast(L"'"), 0x639 }, // ain + { reinterpret_cast(L"g"), 0x63A }, + { reinterpret_cast(L"_"), 0x640 }, // kashida + { reinterpret_cast(L"f"), 0x641 }, + { reinterpret_cast(L"q"), 0x642 }, + { reinterpret_cast(L"k"), 0x643 }, + { reinterpret_cast(L"l"), 0x644 }, // lam + { reinterpret_cast(L"m"), 0x645 }, + { reinterpret_cast(L"n"), 0x646 }, + { reinterpret_cast(L"h"), 0x647 }, // heh + { reinterpret_cast(L"w"), 0x648 }, + { reinterpret_cast(L"y"), 0x64A }, + { reinterpret_cast(L"^F"), 0x64B }, // fathatan + { reinterpret_cast(L"^D"), 0x64C }, // dammatan + { reinterpret_cast(L"^K"), 0x64D }, // kasratan + { reinterpret_cast(L"^f"), 0x64E }, // fatha + { reinterpret_cast(L"^d"), 0x64F }, // damma + { reinterpret_cast(L"^k"), 0x650 }, // kasra + { reinterpret_cast(L"^s"), 0x651 }, // shadda + { reinterpret_cast(L"^h"), 0x652 }, // sukun + { reinterpret_cast(L"^~"), 0x653 }, // maddah + { reinterpret_cast(L"^`"), 0x654 }, // hamza above + { reinterpret_cast(L"_`"), 0x653 }, // hamza below + { reinterpret_cast(L"0"), 0x660 }, + { reinterpret_cast(L"1"), 0x661 }, + { reinterpret_cast(L"2"), 0x662 }, + { reinterpret_cast(L"3"), 0x663 }, + { reinterpret_cast(L"4"), 0x664 }, + { reinterpret_cast(L"5"), 0x665 }, + { reinterpret_cast(L"6"), 0x666 }, + { reinterpret_cast(L"7"), 0x667 }, + { reinterpret_cast(L"8"), 0x668 }, + { reinterpret_cast(L"9"), 0x669 } + }; +} +using namespace LocalToTGraphemeIterator; TText TransliterateSingle(const TText*& aInput, const TText* aEnd) { @@ -147,8 +155,7 @@ Tests RTmGraphemeEdgeIterator::DocPosMatches for this document position and edge. */ -void TestDocPosMatchesCase(RTest& aTest, - const TTmGraphemeEdgeInfo& aEdgeInfo, +void TestDocPosMatchesCase(const TTmGraphemeEdgeInfo& aEdgeInfo, TTmDocPosSpec& aPosSpec, RTmGraphemeEdgeIterator::TGraphemeMatch aExpectedMatchType) { @@ -162,16 +169,16 @@ ++end; } aPosSpec.iPos = start - 1; - aTest(RTmGraphemeEdgeIterator::DocPosMatches(aPosSpec, aEdgeInfo) + TESTPOINT(RTmGraphemeEdgeIterator::DocPosMatches(aPosSpec, aEdgeInfo) == RTmGraphemeEdgeIterator::ENoMatch); for (TInt i = start; i != end; ++i) { aPosSpec.iPos = i; - aTest(RTmGraphemeEdgeIterator::DocPosMatches(aPosSpec, aEdgeInfo) + TESTPOINT(RTmGraphemeEdgeIterator::DocPosMatches(aPosSpec, aEdgeInfo) == aExpectedMatchType); } aPosSpec.iPos = end; - aTest(RTmGraphemeEdgeIterator::DocPosMatches(aPosSpec, aEdgeInfo) + TESTPOINT(RTmGraphemeEdgeIterator::DocPosMatches(aPosSpec, aEdgeInfo) == RTmGraphemeEdgeIterator::ENoMatch); } @@ -179,8 +186,7 @@ Tests RTmGraphemeEdgeIterator::DocPosMatches for this edge and all relevant document position specifications. */ -void TestDocPosMatchesAllSpecs(RTest& aTest, - const TTmGraphemeEdgeInfo& aEdgeInfo) +void TestDocPosMatchesAllSpecs(const TTmGraphemeEdgeInfo& aEdgeInfo) { TTmDocPosSpec posSpec; RTmGraphemeEdgeIterator::TGraphemeMatch expected; @@ -188,29 +194,29 @@ expected = aEdgeInfo.iPos.iRightToLeft? RTmGraphemeEdgeIterator::EPositionOnly : RTmGraphemeEdgeIterator::ETotalMatch; - TestDocPosMatchesCase(aTest, aEdgeInfo, posSpec, expected); + TestDocPosMatchesCase(aEdgeInfo, posSpec, expected); posSpec.iType = TTmDocPosSpec::ERightToLeft; expected = aEdgeInfo.iPos.iRightToLeft? RTmGraphemeEdgeIterator::ETotalMatch : RTmGraphemeEdgeIterator::EPositionOnly; - TestDocPosMatchesCase(aTest, aEdgeInfo, posSpec, expected); + TestDocPosMatchesCase(aEdgeInfo, posSpec, expected); posSpec.iType = TTmDocPosSpec::ETrailing; expected = aEdgeInfo.iPos.iDocPos.iLeadingEdge? RTmGraphemeEdgeIterator::ENoMatch : RTmGraphemeEdgeIterator::ETotalMatch; - TestDocPosMatchesCase(aTest, aEdgeInfo, posSpec, expected); + TestDocPosMatchesCase(aEdgeInfo, posSpec, expected); posSpec.iType = TTmDocPosSpec::ELeading; expected = aEdgeInfo.iPos.iDocPos.iLeadingEdge? RTmGraphemeEdgeIterator::ETotalMatch : RTmGraphemeEdgeIterator::ENoMatch; - TestDocPosMatchesCase(aTest, aEdgeInfo, posSpec, expected); + TestDocPosMatchesCase(aEdgeInfo, posSpec, expected); } /** Tests RTmGraphemeEdgeIterator::DocPosMatches for a variety of edges and positions. */ -void TestDocPosMatches(RTest& aTest) +void TestDocPosMatches() { TTmGraphemeEdgeInfo edgeInfo; edgeInfo.iPos.iDocPos.iPos = 5; @@ -219,13 +225,13 @@ { edgeInfo.iPos.iDocPos.iLeadingEdge = ETrue; edgeInfo.iPos.iRightToLeft = EFalse; - TestDocPosMatchesAllSpecs(aTest, edgeInfo); + TestDocPosMatchesAllSpecs(edgeInfo); edgeInfo.iPos.iDocPos.iLeadingEdge = EFalse; - TestDocPosMatchesAllSpecs(aTest, edgeInfo); + TestDocPosMatchesAllSpecs(edgeInfo); edgeInfo.iPos.iRightToLeft = ETrue; - TestDocPosMatchesAllSpecs(aTest, edgeInfo); + TestDocPosMatchesAllSpecs(edgeInfo); edgeInfo.iPos.iDocPos.iLeadingEdge = ETrue; - TestDocPosMatchesAllSpecs(aTest, edgeInfo); + TestDocPosMatchesAllSpecs(edgeInfo); } } @@ -551,53 +557,53 @@ /** Tests that the edge information matches the expected edge. */ -void TestExpectedEdge(RTest& aTest, const TTmPosInfo2& aEdgeInfo, +void TestExpectedEdge(const TTmPosInfo2& aEdgeInfo, const TEdge* aExpected) { - aTest(aEdgeInfo.iRightToLeft? + TESTPOINT(aEdgeInfo.iRightToLeft? aExpected->iRightToLeft : !aExpected->iRightToLeft); - aTest(aEdgeInfo.iDocPos.iPos == aExpected->iPos); - aTest(aEdgeInfo.iDocPos.iLeadingEdge? + TESTPOINT(aEdgeInfo.iDocPos.iPos == aExpected->iPos); + TESTPOINT(aEdgeInfo.iDocPos.iLeadingEdge? aExpected->iLeading : !aExpected->iLeading); } /** Tests that the edge information matches one of the expected edges. */ -void TestEdgeExists(RTest& aTest, const TTmPosInfo2& aEdgeInfo, +void TestEdgeExists(const TTmPosInfo2& aEdgeInfo, const TEdge* aExpected, TInt aNumExpected) { TTmDocPos pos(aEdgeInfo.iDocPos); const TEdge* edge = FindExpectedEdge(pos, aExpected, aNumExpected); - aTest(edge != 0); - TestExpectedEdge(aTest, aEdgeInfo, edge); + TESTPOINT(edge != 0); + TestExpectedEdge(aEdgeInfo, edge); } /** Tests that the visual position matches one of the expected edges. */ -void TestVisualPositionExists(RTest& aTest, const TTmVisualDocPos& aPos, +void TestVisualPositionExists(const TTmVisualDocPos& aPos, const TEdge* aExpected, TInt aNumExpected) { - aTest(aPos.Ambiguity() != TTmVisualDocPos::ENotFound); + TESTPOINT(aPos.Ambiguity() != TTmVisualDocPos::ENotFound); TTmDocPos posLeft(aPos.LeftEdge().iDocPos); const TEdge* left = FindExpectedEdge(posLeft, aExpected, aNumExpected); - TestExpectedEdge(aTest, aPos.LeftEdge(), left); + TestExpectedEdge(aPos.LeftEdge(), left); TTmDocPos posRight(aPos.RightEdge().iDocPos); const TEdge* right = FindExpectedEdge(posRight, aExpected, aNumExpected); - TestExpectedEdge(aTest, aPos.RightEdge(), right); - aTest( (aPos.Ambiguity() == TTmVisualDocPos::EAmbiguous + TestExpectedEdge(aPos.RightEdge(), right); + TESTPOINT( (aPos.Ambiguity() == TTmVisualDocPos::EAmbiguous && left->iAmbiguity && right->iAmbiguity) || (aPos.Ambiguity() != TTmVisualDocPos::EAmbiguous && !left->iAmbiguity && !right->iAmbiguity) ); - aTest(ExpectedEdgesCoincide(left, right)); + TESTPOINT(ExpectedEdgesCoincide(left, right)); } /** Tests that a RTmGraphemeEdgeIterator iterates through all the positions in a line from left to right. */ -void TestLayoutSimplePass(RTest& aTest, CTestTmTextLayout& aLayout, +void TestLayoutSimplePass(CTestTmTextLayout& aLayout, const TEdge* aExpected, TInt aNumExpected) { CTmTextLayout& layout = aLayout.Layout(); @@ -610,12 +616,12 @@ for (TInt i = 0; i != aNumExpected; ++i) { const TEdge& expected = aExpected[i]; - aTest(expected.iPos == last.iDocPos.iPos); - aTest(expected.iLeading == last.iDocPos.iLeadingEdge); + TESTPOINT(expected.iPos == last.iDocPos.iPos); + TESTPOINT(expected.iLeading == last.iDocPos.iLeadingEdge); it.Next(); if (it.AtEnd()) { - aTest(expected.iNext == EEdgeNewline); + TESTPOINT(expected.iNext == EEdgeNewline); while (interp.Op() != TTmInterpreter::EOpLine && interp.Next()) {} if (i + 1 != aNumExpected) @@ -627,12 +633,12 @@ else { TTmPosInfo2 thisOne = it.GetInfo(); - TestEdgeExists(aTest, thisOne, aExpected, aNumExpected); - aTest(expected.iNext != EEdgeNewline); + TestEdgeExists(thisOne, aExpected, aNumExpected); + TESTPOINT(expected.iNext != EEdgeNewline); if (expected.iNext == EEdgeSame) - aTest(last.iEdge.iX == thisOne.iEdge.iX); + TESTPOINT(last.iEdge.iX == thisOne.iEdge.iX); else if (expected.iNext == EEdgeDifferent) - aTest(last.iEdge.iX != thisOne.iEdge.iX); + TESTPOINT(last.iEdge.iX != thisOne.iEdge.iX); last = thisOne; } } @@ -644,7 +650,7 @@ Tests that FindXPos returns the edge 'closest' to the input co-ordinate where there is no ambiguity. */ -void TestLayoutFindXPosEdges(RTest& aTest, TInt aLine, +void TestLayoutFindXPosEdges(TInt aLine, CTestTmTextLayout& aLayout, const TEdge* aExpected, TInt aNumExpected) { @@ -672,10 +678,10 @@ RTmGraphemeEdgeIterator it; it.Begin(interp); it.FindXPos(posInfo.iEdge.iX, visPos); - aTest(visPos.Ambiguity() != TTmVisualDocPos::EAmbiguous); - aTest(visPos.Ambiguity() != TTmVisualDocPos::ENotFound); - aTest(visPos.LeftEdge().iDocPos.iPos == expectedL.iPos); - aTest(visPos.LeftEdge().iDocPos.iLeadingEdge? + TESTPOINT(visPos.Ambiguity() != TTmVisualDocPos::EAmbiguous); + TESTPOINT(visPos.Ambiguity() != TTmVisualDocPos::ENotFound); + TESTPOINT(visPos.LeftEdge().iDocPos.iPos == expectedL.iPos); + TESTPOINT(visPos.LeftEdge().iDocPos.iLeadingEdge? expectedL.iLeading : !expectedL.iLeading); it.Close(); interp.Close(); @@ -691,10 +697,10 @@ RTmGraphemeEdgeIterator it; it.Begin(interp); it.FindXPos(posInfo.iEdge.iX - 1, visPos); - aTest(visPos.Ambiguity() != TTmVisualDocPos::EAmbiguous); - aTest(visPos.Ambiguity() != TTmVisualDocPos::ENotFound); - aTest(visPos.LeftEdge().iDocPos.iPos == expectedR.iPos); - aTest(visPos.LeftEdge().iDocPos.iLeadingEdge? + TESTPOINT(visPos.Ambiguity() != TTmVisualDocPos::EAmbiguous); + TESTPOINT(visPos.Ambiguity() != TTmVisualDocPos::ENotFound); + TESTPOINT(visPos.LeftEdge().iDocPos.iPos == expectedR.iPos); + TESTPOINT(visPos.LeftEdge().iDocPos.iLeadingEdge? expectedR.iLeading : !expectedR.iLeading); it.Close(); interp.Close(); @@ -707,7 +713,7 @@ Tests that RTmGraphemeEdgeIterator::FindXPos finds document positions that match the positions they are supposed to be in. */ -void TestLayoutFindXPos(RTest& aTest, TInt aLine, +void TestLayoutFindXPos(TInt aLine, CTestTmTextLayout& aLayout, const TEdge* aExpected, TInt aNumExpected) { @@ -724,31 +730,31 @@ RTmGraphemeEdgeIterator it; it.Begin(interp); it.FindXPos(x, visPos); - TestVisualPositionExists(aTest, visPos, aExpected, aNumExpected); - aTest(visPos.Ambiguity() != TTmVisualDocPos::ENotFound); - aTest(visPos.LeftEdge().iEdge.iX <= visPos.RightEdge().iEdge.iX); - aTest(visPos.Ambiguity() == TTmVisualDocPos::EAmbiguous + TestVisualPositionExists(visPos, aExpected, aNumExpected); + TESTPOINT(visPos.Ambiguity() != TTmVisualDocPos::ENotFound); + TESTPOINT(visPos.LeftEdge().iEdge.iX <= visPos.RightEdge().iEdge.iX); + TESTPOINT(visPos.Ambiguity() == TTmVisualDocPos::EAmbiguous || visPos.LeftEdge().iEdge.iX == visPos.RightEdge().iEdge.iX); - aTest(lastLeftX <= visPos.LeftEdge().iEdge.iX); + TESTPOINT(lastLeftX <= visPos.LeftEdge().iEdge.iX); if (lastLeftX == visPos.LeftEdge().iEdge.iX) { - aTest(lastRightX == visPos.RightEdge().iEdge.iX); + TESTPOINT(lastRightX == visPos.RightEdge().iEdge.iX); while (aExpected->iPos != visPos.LeftEdge().iDocPos.iPos || aExpected->iLeading != visPos.LeftEdge().iDocPos.iLeadingEdge) { - aTest(aExpected->iNext == EEdgeSame); - aTest(0 < aNumExpected); + TESTPOINT(aExpected->iNext == EEdgeSame); + TESTPOINT(0 < aNumExpected); ++aExpected; --aNumExpected; } } else { - aTest(lastRightX <= visPos.LeftEdge().iEdge.iX); + TESTPOINT(lastRightX <= visPos.LeftEdge().iEdge.iX); while (aExpected->iPos != visPos.LeftEdge().iDocPos.iPos || aExpected->iLeading != visPos.LeftEdge().iDocPos.iLeadingEdge) { - aTest(0 < aNumExpected); + TESTPOINT(0 < aNumExpected); ++aExpected; --aNumExpected; } @@ -760,8 +766,8 @@ } while (aExpected->iNext != EEdgeNewline) { - aTest(aExpected->iNext == EEdgeSame); - aTest(0 < aNumExpected); + TESTPOINT(aExpected->iNext == EEdgeSame); + TESTPOINT(0 < aNumExpected); ++aExpected; --aNumExpected; } @@ -790,7 +796,7 @@ Tests that RTmGraphemeEdgeIterator::FindEdge finds the edges in the layout with specifications of leading or trailing edges. */ -void TestLayoutFindEdgesInVisualOrder(RTest& aTest, TInt aLine, +void TestLayoutFindEdgesInVisualOrder(TInt aLine, CTestTmTextLayout& aLayout, const TEdge* aExpected, TInt aNumExpected) { @@ -802,12 +808,12 @@ TTmDocPosSpec posSpec(aExpected->iPos, aExpected->iLeading? TTmDocPosSpec::ELeading : TTmDocPosSpec::ETrailing); FindEdgeFromLayout(aLayout, aLine, posSpec, posInfo); - TestEdgeExists(aTest, posInfo, aExpected, aNumExpected); - aTest(aExpected->iLeading? + TestEdgeExists(posInfo, aExpected, aNumExpected); + TESTPOINT(aExpected->iLeading? posInfo.iDocPos.iLeadingEdge : !posInfo.iDocPos.iLeadingEdge); - aTest(aExpected->iPos == posInfo.iDocPos.iPos); - aTest(sameExpected || posInfo.iEdge.iX != lastX); - aTest(!sameExpected || posInfo.iEdge.iX == lastX); + TESTPOINT(aExpected->iPos == posInfo.iDocPos.iPos); + TESTPOINT(sameExpected || posInfo.iEdge.iX != lastX); + TESTPOINT(!sameExpected || posInfo.iEdge.iX == lastX); lastX = posInfo.iEdge.iX; sameExpected = aExpected->iNext == EEdgeSame? ETrue : EFalse; ++aExpected; @@ -819,7 +825,7 @@ Tests that RTmGraphemeEdgeIterator::FindEdge finds the edges in the layout with specifications of directionality. */ -void TestLayoutFindEdgesByDirectionality(RTest& aTest, TInt aLine, +void TestLayoutFindEdgesByDirectionality(TInt aLine, CTestTmTextLayout& aLayout, const TEdge* aExpected, TInt aNumExpected) { @@ -836,14 +842,14 @@ TBool lToRFound = FindEdgeFromLayout(aLayout, aLine, lToRPosSpec, lToRPosInfo); if (!lToRFound) { - aTest(!rToLFound); - aTest(pos < lineStart || lineEnd <= pos); + TESTPOINT(!rToLFound); + TESTPOINT(pos < lineStart || lineEnd <= pos); } else { - aTest(rToLFound); - TestEdgeExists(aTest, rToLPosInfo, aExpected, aNumExpected); - TestEdgeExists(aTest, lToRPosInfo, aExpected, aNumExpected); + TESTPOINT(rToLFound); + TestEdgeExists(rToLPosInfo, aExpected, aNumExpected); + TestEdgeExists(lToRPosInfo, aExpected, aNumExpected); // Now find the nearest edges in the expected range TTmDocPosSpec trailingPosSpec(pos, TTmDocPosSpec::ETrailing); const TEdge* trailingExpected @@ -859,17 +865,17 @@ = FindExpectedEdge(rToLPosInfo.iDocPos, aExpected, aNumExpected); const TEdge* lToRPosEdge = FindExpectedEdge(lToRPosInfo.iDocPos, aExpected, aNumExpected); - aTest(leadingExpected != 0); - aTest(trailingExpected != 0); - aTest(ExpectedEdgesCoincide(leadingExpected, rToLPosEdge) + TESTPOINT(leadingExpected != 0); + TESTPOINT(trailingExpected != 0); + TESTPOINT(ExpectedEdgesCoincide(leadingExpected, rToLPosEdge) || ExpectedEdgesCoincide(trailingExpected, rToLPosEdge)); - aTest(ExpectedEdgesCoincide(leadingExpected, lToRPosEdge) + TESTPOINT(ExpectedEdgesCoincide(leadingExpected, lToRPosEdge) || ExpectedEdgesCoincide(trailingExpected, lToRPosEdge)); // Also check that the "found" ones are at least as good as the // "expected" ones. - aTest(rToLPosInfo.iRightToLeft + TESTPOINT(rToLPosInfo.iRightToLeft || (!leadingExpected->iRightToLeft && !trailingExpected->iRightToLeft)); - aTest(!lToRPosInfo.iRightToLeft + TESTPOINT(!lToRPosInfo.iRightToLeft || (leadingExpected->iRightToLeft && trailingExpected->iRightToLeft)); } } @@ -879,7 +885,7 @@ Tests RTmGraphemeEdgeIterator::FindEdgeRightwards or RTmGraphemeEdgeIterator::FindEdgeLeftwards. */ -void TestLayoutFindEdgesLeftRight(RTest& aTest, TInt aLine, +void TestLayoutFindEdgesLeftRight(TInt aLine, CTestTmTextLayout& aLayout, TBool aRightwards, const TEdge* aExpected, TInt aNumExpected) { @@ -962,27 +968,27 @@ // Does what we got match what we expect? if (!leadingExpected) { - aTest(result == RTmGraphemeEdgeIterator::ENone); + TESTPOINT(result == RTmGraphemeEdgeIterator::ENone); } else { - aTest(result == RTmGraphemeEdgeIterator::ENearestOnly + TESTPOINT(result == RTmGraphemeEdgeIterator::ENearestOnly || result == RTmGraphemeEdgeIterator::ENearestAndNext); TTmDocPosSpec nearestPos(nearest.iDocPos); const TEdge* nearestEdge = FindExpectedEdge(nearestPos, aExpected, aNumExpected); - TestExpectedEdge(aTest, nearest, nearestEdge); + TestExpectedEdge(nearest, nearestEdge); const TEdge* matchingEdge = leadingExpected; if (posSpec.iType == TTmDocPosSpec::ELeading) - aTest(ExpectedEdgesCoincide(leadingExpected, nearestEdge)); + TESTPOINT(ExpectedEdgesCoincide(leadingExpected, nearestEdge)); else if (posSpec.iType == TTmDocPosSpec::ETrailing) { - aTest(ExpectedEdgesCoincide(trailingExpected, nearestEdge)); + TESTPOINT(ExpectedEdgesCoincide(trailingExpected, nearestEdge)); matchingEdge = trailingExpected; } else { - aTest(ExpectedEdgesCoincide(leadingExpected, nearestEdge) + TESTPOINT(ExpectedEdgesCoincide(leadingExpected, nearestEdge) || ExpectedEdgesCoincide(trailingExpected, nearestEdge)); if (ExpectedEdgesCoincide(trailingExpected, nearestEdge)) matchingEdge = trailingExpected; @@ -991,7 +997,7 @@ TBool foundCorrectDirectionality = posSpec.iType == TTmDocPosSpec::ERightToLeft? nearest.iRightToLeft : !nearest.iRightToLeft; - aTest(foundCorrectDirectionality || directionalitiesMatch); + TESTPOINT(foundCorrectDirectionality || directionalitiesMatch); } // Find next edge in expected list @@ -1008,18 +1014,18 @@ } } if (!nextExpected) - aTest(result == RTmGraphemeEdgeIterator::ENone + TESTPOINT(result == RTmGraphemeEdgeIterator::ENone || result == RTmGraphemeEdgeIterator::ENearestOnly); else { - aTest(result == RTmGraphemeEdgeIterator::ENearestAndNext); - TestVisualPositionExists(aTest, next, aExpected, aNumExpected); - aTest(next.Ambiguity() != TTmVisualDocPos::ENotFound); + TESTPOINT(result == RTmGraphemeEdgeIterator::ENearestAndNext); + TestVisualPositionExists(next, aExpected, aNumExpected); + TESTPOINT(next.Ambiguity() != TTmVisualDocPos::ENotFound); TTmDocPosSpec nextPosLeft(next.LeftEdge().iDocPos); - aTest(ExpectedEdgesCoincide(nextExpected, + TESTPOINT(ExpectedEdgesCoincide(nextExpected, FindExpectedEdge(nextPosLeft, aExpected, aNumExpected))); TTmDocPosSpec nextPosRight(next.RightEdge().iDocPos); - aTest(ExpectedEdgesCoincide(nextExpected, + TESTPOINT(ExpectedEdgesCoincide(nextExpected, FindExpectedEdge(nextPosRight, aExpected, aNumExpected))); } it.Close(); @@ -1030,22 +1036,22 @@ /** Tests RTmGraphemeEdgeIterator::FindEdgeRightwards. */ -void TestLayoutFindEdgesRightwards(RTest& aTest, TInt aLine, +void TestLayoutFindEdgesRightwards(TInt aLine, CTestTmTextLayout& aLayout, const TEdge* aExpected, TInt aNumExpected) { - TestLayoutFindEdgesLeftRight(aTest, aLine, aLayout, ETrue, + TestLayoutFindEdgesLeftRight(aLine, aLayout, ETrue, aExpected, aNumExpected); } /** Tests RTmGraphemeEdgeIterator::FindEdgeLeftwards. */ -void TestLayoutFindEdgesLeftwards(RTest& aTest, TInt aLine, +void TestLayoutFindEdgesLeftwards(TInt aLine, CTestTmTextLayout& aLayout, const TEdge* aExpected, TInt aNumExpected) { - TestLayoutFindEdgesLeftRight(aTest, aLine, aLayout, EFalse, + TestLayoutFindEdgesLeftRight(aLine, aLayout, EFalse, aExpected, aNumExpected); } @@ -1054,7 +1060,7 @@ smallest number 'n' that is a position in the same line greater than the input 'i', where the positions and are not coincident. */ -void TestLayoutFindEdgesForwards(RTest& aTest, TInt aLine, +void TestLayoutFindEdgesForwards(TInt aLine, CTestTmTextLayout& aLayout, const TEdge* aExpected, TInt aNumExpected) { @@ -1083,42 +1089,42 @@ const TEdge* outEdge = FindExpectedEdge(out, aExpected, aNumExpected); // ...and test that we failed. - aTest(!inEdge || inEdge->iPos <= i); - aTest(!outEdge || outEdge->iPos <= i); + TESTPOINT(!inEdge || inEdge->iPos <= i); + TESTPOINT(!outEdge || outEdge->iPos <= i); } else { - aTest(i < result); + TESTPOINT(i < result); TTmDocPosSpec in(i, TTmDocPosSpec::ELeading); const TEdge* inEdge = FindExpectedEdge(in, aExpected, aNumExpected); TTmDocPosSpec out(result, TTmDocPosSpec::ETrailing); const TEdge* outEdge = FindExpectedEdge(out, aExpected, aNumExpected); - aTest(outEdge != 0); + TESTPOINT(outEdge != 0); if (inEdge) { - aTest(lineStart <= i); - aTest(!ExpectedEdgesCoincide(inEdge, outEdge)); + TESTPOINT(lineStart <= i); + TESTPOINT(!ExpectedEdgesCoincide(inEdge, outEdge)); for (TInt j = i + 1; j != result; ++j) { TTmDocPosSpec between(j, TTmDocPosSpec::ETrailing); const TEdge* betweenEdge = FindExpectedEdge(between, aExpected, aNumExpected); - aTest(betweenEdge != 0); + TESTPOINT(betweenEdge != 0); // Test that, if there actually is a edge, it is // coincident with . If the edge does not exist // it does not matter. We can find out if it exists by checking // whether the returned expected edge has the same position // we asked for. - aTest(ExpectedEdgesCoincide(inEdge, betweenEdge) + TESTPOINT(ExpectedEdgesCoincide(inEdge, betweenEdge) || j != betweenEdge->iPos); } } else { // before the start means finding the first trailing edge - aTest (i < lineStart); + TESTPOINT (i < lineStart); TInt leastTrailingEdge = KMaxTInt; for (const TEdge* e = aExpected; e != aExpected + aNumExpected; ++e) @@ -1126,7 +1132,7 @@ if (!e->iLeading && e->iPos < leastTrailingEdge) leastTrailingEdge = e->iPos; } - aTest(leastTrailingEdge == result); + TESTPOINT(leastTrailingEdge == result); } } it.Close(); @@ -1138,7 +1144,7 @@ largest number 'n' that is a position in the same line smaller than the input 'i', where the positions and are not coincident. */ -void TestLayoutFindEdgesBackwards(RTest& aTest, TInt aLine, +void TestLayoutFindEdgesBackwards(TInt aLine, CTestTmTextLayout& aLayout, const TEdge* aExpected, TInt aNumExpected) { @@ -1161,15 +1167,15 @@ // Must be at or before the line's beginning. // Could possibly be that there are no leading edges in the line, but // we'll ignore that possibility. - aTest(i <= lineStart); + TESTPOINT(i <= lineStart); } else { - aTest(result < i); + TESTPOINT(result < i); TTmDocPosSpec out(result, TTmDocPosSpec::ELeading); const TEdge* outEdge = FindExpectedEdge(out, aExpected, aNumExpected); - aTest(outEdge != 0); + TESTPOINT(outEdge != 0); TTmDocPosSpec in(i, TTmDocPosSpec::ETrailing); const TEdge* inEdge = FindExpectedEdge(in, aExpected, aNumExpected); @@ -1177,20 +1183,20 @@ // were beyond the end of the line. if (inEdge && !inEdge->iLeading) { - aTest(inEdge != 0); - aTest(!ExpectedEdgesCoincide(inEdge, outEdge)); + TESTPOINT(inEdge != 0); + TESTPOINT(!ExpectedEdgesCoincide(inEdge, outEdge)); for (TInt j = result + 1; j != i; ++j) { TTmDocPosSpec between(j, TTmDocPosSpec::ELeading); const TEdge* betweenEdge = FindExpectedEdge(between, aExpected, aNumExpected); - aTest(betweenEdge != 0); + TESTPOINT(betweenEdge != 0); // Test that, if there actually is a edge, it is // coincident with . If the edge does not exist // it does not matter. We can find out if it exists by checking // whether the returned expected edge has the same position // we asked for. - aTest(ExpectedEdgesCoincide(inEdge, betweenEdge) + TESTPOINT(ExpectedEdgesCoincide(inEdge, betweenEdge) || j != betweenEdge->iPos); } } @@ -1204,21 +1210,21 @@ if (e->iLeading && greatestLeadingEdge < e->iPos) greatestLeadingEdge = e->iPos; } - aTest(greatestLeadingEdge == result); + TESTPOINT(greatestLeadingEdge == result); } } it.Close(); } } -typedef void FTestLine(RTest& aTest, TInt aLine, +typedef void FTestLine(TInt aLine, CTestTmTextLayout& aLayout, const TEdge* aExpected, TInt aNumExpected); /** Runs a particular test for each line in the input data. */ -void TestEachLine(RTest& aTest, FTestLine* aFn, +void TestEachLine(FTestLine* aFn, CTestTmTextLayout& aLayout, const TEdge* aExpected, TInt aNumExpected) { TInt line = 0; @@ -1227,7 +1233,7 @@ { if (aExpected[end - 1].iNext == EEdgeNewline) { - aFn(aTest, line, aLayout, aExpected + start, end - start); + aFn(line, aLayout, aExpected + start, end - start); start = end; ++line; } @@ -1238,107 +1244,96 @@ Tests TTmGraphemeIterator and supporting functionality for the specified layout. */ -void TestLayoutL(RTest& aTest, CTestTmTextLayout& aLayout, +void TestLayoutL(CTestTmTextLayout& aLayout, const TEdge* aExpected, TInt aNumExpected) { - aTest.Start(_L("Simple iteration")); - TestLayoutSimplePass(aTest, aLayout, aExpected, aNumExpected); - aTest.Next(_L("FindXPos")); - TestEachLine(aTest, TestLayoutFindXPos, + TESTPRINT(_L("Simple iteration")); + TestLayoutSimplePass(aLayout, aExpected, aNumExpected); + TESTPRINT(_L("FindXPos")); + TestEachLine(TestLayoutFindXPos, aLayout, aExpected, aNumExpected); - aTest.Next(_L("FindXPos (unambiguous edges)")); - TestEachLine(aTest, TestLayoutFindXPosEdges, + TESTPRINT(_L("FindXPos (unambiguous edges)")); + TestEachLine(TestLayoutFindXPosEdges, aLayout, aExpected, aNumExpected); - aTest.Next(_L("FindEdge")); - TestEachLine(aTest, TestLayoutFindEdgesInVisualOrder, + TESTPRINT(_L("FindEdge")); + TestEachLine(TestLayoutFindEdgesInVisualOrder, aLayout, aExpected, aNumExpected); - TestEachLine(aTest, TestLayoutFindEdgesByDirectionality, + TestEachLine(TestLayoutFindEdgesByDirectionality, aLayout, aExpected, aNumExpected); - aTest.Next(_L("FindEdgeRightwards")); - TestEachLine(aTest, TestLayoutFindEdgesRightwards, + TESTPRINT(_L("FindEdgeRightwards")); + TestEachLine(TestLayoutFindEdgesRightwards, aLayout, aExpected, aNumExpected); - aTest.Next(_L("FindEdgeLeftwards")); - TestEachLine(aTest, TestLayoutFindEdgesLeftwards, + TESTPRINT(_L("FindEdgeLeftwards")); + TestEachLine(TestLayoutFindEdgesLeftwards, aLayout, aExpected, aNumExpected); - aTest.Next(_L("NextPosition")); - TestEachLine(aTest, TestLayoutFindEdgesForwards, + TESTPRINT(_L("NextPosition")); + TestEachLine(TestLayoutFindEdgesForwards, aLayout, aExpected, aNumExpected); - aTest.Next(_L("PreviousPosition")); - TestEachLine(aTest, TestLayoutFindEdgesBackwards, + TESTPRINT(_L("PreviousPosition")); + TestEachLine(TestLayoutFindEdgesBackwards, aLayout, aExpected, aNumExpected); - aTest.End(); } /** Tests TTmGraphemeIterator and supporting functionality for each piece of text. */ -void RunTestsL(RTest& aTest) +TVerdict CTGraphemeIteratorStep::doTestStepL() { - aTest.Start(_L(" @SYMTestCaseID:SYSLIB-FORM-LEGACY-GRAPHEMEITERATOR-0001 DocPosMatches ")); - TestDocPosMatches(aTest); - aTest.Next(_L("Simple Latin")); + SetTestStepResult(EPass); + TestStep = this; + TESTPRINT(_L("RTmGraphemeEdgeIterator unit")); + + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORM-LEGACY-GRAPHEMEITERATOR-0001 DocPosMatches ")); + TestDocPosMatches(); + TESTPRINT(_L("Simple Latin")); CTestTmTextLayout* latin1 = CTestTmTextLayout::NewLC( KLatin1, 100, Transliterate); - TestLayoutL(aTest, *latin1, KLatin1Edges, + TestLayoutL( *latin1, KLatin1Edges, sizeof(KLatin1Edges)/sizeof(KLatin1Edges[0])); CleanupStack::PopAndDestroy(latin1); - aTest.Next(_L("Simple Arabic")); + TESTPRINT(_L("Simple Arabic")); CTestTmTextLayout* arabic1 = CTestTmTextLayout::NewLC( KArabic1, 100, Transliterate); - TestLayoutL(aTest, *arabic1, KArabic1Edges, + TestLayoutL(*arabic1, KArabic1Edges, sizeof(KArabic1Edges)/sizeof(KArabic1Edges[0])); CleanupStack::PopAndDestroy(arabic1); - aTest.Next(_L("Latin with combining marks and zero width characters")); + TESTPRINT(_L("Latin with combining marks and zero width characters")); CTestTmTextLayout* combiners1 = CTestTmTextLayout::NewLC( KCombiners1, 20, Transliterate); - TestLayoutL(aTest, *combiners1, KCombiners1Edges, + TestLayoutL(*combiners1, KCombiners1Edges, sizeof(KCombiners1Edges)/sizeof(KCombiners1Edges[0])); CleanupStack::PopAndDestroy(combiners1); - aTest.Next(_L("Bidirectional text with combining marks")); + TESTPRINT(_L("Bidirectional text with combining marks")); CTestTmTextLayout* bidi1 = CTestTmTextLayout::NewLC( KBidi1, 60, Transliterate); - TestLayoutL(aTest, *bidi1, KBidi1Edges, + TestLayoutL( *bidi1, KBidi1Edges, sizeof(KBidi1Edges)/sizeof(KBidi1Edges[0])); CleanupStack::PopAndDestroy(bidi1); - aTest.Next(_L("Bidirectional text with combining marks and 'amtriguity'")); + TESTPRINT(_L("Bidirectional text with combining marks and 'amtriguity'")); CTestTmTextLayout* bidi2 = CTestTmTextLayout::NewLC( KBidi2, 60, Transliterate); - TestLayoutL(aTest, *bidi2, KBidi2Edges, + TestLayoutL(*bidi2, KBidi2Edges, sizeof(KBidi2Edges)/sizeof(KBidi2Edges[0])); CleanupStack::PopAndDestroy(bidi2); - aTest.Next(_L("Small paragraphs of alternating directionality")); + TESTPRINT(_L("Small paragraphs of alternating directionality")); CTestTmTextLayout* paragraphs1 = CTestTmTextLayout::NewLC( KParagraphs1, 20, Transliterate); - TestLayoutL(aTest, *paragraphs1, KParagraphs1Edges, + TestLayoutL(*paragraphs1, KParagraphs1Edges, sizeof(KParagraphs1Edges)/sizeof(KParagraphs1Edges[0])); CleanupStack::PopAndDestroy(paragraphs1); - aTest.Next(_L("Lines ending over or next to embedded runs")); + TESTPRINT(_L("Lines ending over or next to embedded runs")); CTestTmTextLayout* embedded1 = CTestTmTextLayout::NewLC( KEmbedded1, 20, Transliterate); - TestLayoutL(aTest, *embedded1, KEmbedded1Edges, + TestLayoutL( *embedded1, KEmbedded1Edges, sizeof(KEmbedded1Edges)/sizeof(KEmbedded1Edges[0])); CleanupStack::PopAndDestroy(embedded1); - aTest.End(); + return TestStepResult(); } -/** -Tests TTmGraphemeIterator and supporting functionality. -*/ -TInt E32Main() - { - RTest rtest(_L("RTmGraphemeEdgeIterator unit")); - CTrapCleanup* TrapCleanup = CTrapCleanup::New(); - rtest.Title(); - TRAPD(err, RunTestsL(rtest)); - rtest.Close(); - delete TrapCleanup; - return err; - } - diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/TInlineText.cpp --- a/textrendering/textformatting/test/src/TInlineText.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/textformatting/test/src/TInlineText.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -25,8 +25,9 @@ #include #include #include +#include "tinlinetext.h" -namespace LocalToFile +namespace LocalToTInlineText { _LIT(KTInlineText, "TInlineText"); @@ -34,7 +35,11 @@ const TInt KDisplayWidthThin = 102; const TInt KDisplayHeight = 100; const TInt KPictureCharacter = 0xFFFC; -RTest test(KTInlineText); + +CTInLineTextStep* TestStep = NULL; +#define TESTPOINT(p) TestStep->testpoint(p,(TText8*)__FILE__,__LINE__) +#define TESTPRINT(p) TestStep->print(p,(TText8*)__FILE__,__LINE__) + enum TInlineTextPanic { EAccessOutsideText = 1 }; void Panic(TInlineTextPanic) @@ -151,7 +156,7 @@ CParaFormat* iParagraphFormat; }; } -using namespace LocalToFile; +using namespace LocalToTInlineText; class CTestTextView // slightly naughty { @@ -169,7 +174,7 @@ _LIT(KLength, ", Length of Data = %d 16-bit words\r\n"); _LIT(KSpaces, " "); _LIT(KPeriod, "."); -_LIT(KSingleString, "%s\r\n"); +_LIT(KSingleString, "%S\r\n"); //_LIT(KDoubleString, "%s <%s>\r\n"); //_LIT(KLinefeed, "\r\n"); @@ -188,7 +193,9 @@ buffer.Append(aTitle); buffer.Append(KLength); - test.Printf(buffer, length); + TBuf<256> buf; + buf.AppendFormat(buffer, length); + TESTPRINT(buf); for (i = 0 ; i < length ; i += 8) { @@ -217,7 +224,9 @@ } } buffer.ZeroTerminate(); - test.Printf(KSingleString, buffer.Ptr()); + buf.Zero(); + buf.AppendFormat(KSingleString,buffer.Ptr()); + TESTPRINT(buf); } } @@ -1203,35 +1212,35 @@ case 5: line1 = &(aDevice->LineArray().Line(4)); line2 = aDevice->LineArray().Find(KTestStrings[aIndex][aNumChar][5]); - test(0 != line1); - test(0 != line2); - test(line1->iLineData.Compare(line2->iLineData) == 0); + TESTPOINT(0 != line1); + TESTPOINT(0 != line2); + TESTPOINT(line1->iLineData.Compare(line2->iLineData) == 0); case 4: line1 = &(aDevice->LineArray().Line(3)); line2 = aDevice->LineArray().Find(KTestStrings[aIndex][aNumChar][4]); - test(0 != line1); - test(0 != line2); - test(line1->iLineData.Compare(line2->iLineData) == 0); + TESTPOINT(0 != line1); + TESTPOINT(0 != line2); + TESTPOINT(line1->iLineData.Compare(line2->iLineData) == 0); case 3: line1 = &(aDevice->LineArray().Line(2)); line2 = aDevice->LineArray().Find(KTestStrings[aIndex][aNumChar][3]); - test(0 != line1); - test(0 != line2); - test(line1->iLineData.Compare(line2->iLineData) == 0); + TESTPOINT(0 != line1); + TESTPOINT(0 != line2); + TESTPOINT(line1->iLineData.Compare(line2->iLineData) == 0); case 2: line1 = &(aDevice->LineArray().Line(1)); line2 = aDevice->LineArray().Find(KTestStrings[aIndex][aNumChar][2]); - test(0 != line1); - test(0 != line2); - test(line1->iLineData.Compare(line2->iLineData) == 0); + TESTPOINT(0 != line1); + TESTPOINT(0 != line2); + TESTPOINT(line1->iLineData.Compare(line2->iLineData) == 0); case 1: line1 = &(aDevice->LineArray().Line(0)); line2 = aDevice->LineArray().Find(KTestStrings[aIndex][aNumChar][1]); - test(0 != line1); - test(0 != line2); + TESTPOINT(0 != line1); + TESTPOINT(0 != line2); // Can't always do a direct comparison of lines because same string // may appear in more than one line, so compare contents - test(line1->iLineData.Compare(line2->iLineData) == 0); + TESTPOINT(line1->iLineData.Compare(line2->iLineData) == 0); } aLayout->SetInterfaceProvider(NULL); CleanupStack::PopAndDestroy(interfaceProvider); @@ -1240,49 +1249,47 @@ void GeneralCombinationTestsTextViewL(TDes& aText, CTextLayout* aLayout, CTestGraphicsDevice* aDevice, CTextView* aView, TInt aNumChar) { // For all tests carried out from here up to 20 chars will fit on a line - test.Start(_L("Test L-P")); + TESTPRINT(_L("Test L-P")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 0); - test.Next(_L("Test X L-P")); + TESTPRINT(_L("Test X L-P")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 1); - test.Next(_L("Test P-T")); + TESTPRINT(_L("Test P-T")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 2); - test.Next(_L("Test P-T Y")); + TESTPRINT(_L("Test P-T Y")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 3); - test.Next(_L("Test L-P-T")); + TESTPRINT(_L("Test L-P-T")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 4); - test.Next(_L("Test L-C-T")); + TESTPRINT(_L("Test L-C-T")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 5); - test.Next(_L("Test X L-P-T")); + TESTPRINT(_L("Test X L-P-T")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 6); - test.Next(_L("Test X L-C-T")); + TESTPRINT(_L("Test X L-C-T")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 7); - test.Next(_L("Test L-P-T Y")); + TESTPRINT(_L("Test L-P-T Y")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 8); - test.Next(_L("Test L-C-T Y")); + TESTPRINT(_L("Test L-C-T Y")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 9); - test.Next(_L("Test X L-P-T Y")); + TESTPRINT(_L("Test X L-P-T Y")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 10); - test.Next(_L("Test X L-C-T Y")); + TESTPRINT(_L("Test X L-C-T Y")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 11); - test.End(); } void SpecificTestsTextViewL(TDes& aText, CTextLayout* aLayout, CTestGraphicsDevice* aDevice, CTextView* aView, TInt aNumChar) { // For all tests carried out from here up to 10 chars will fit on a line - test.Start(_L("Test P-T B")); + TESTPRINT(_L("Test P-T B")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 12); - test.Next(_L("Test X P-T one")); + TESTPRINT(_L("Test X P-T one")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 13); - test.Next(_L("Test X P-T two")); + TESTPRINT(_L("Test X P-T two")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 14); - test.Next(_L("Test X L-P-T one")); + TESTPRINT(_L("Test X L-P-T one")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 15); - test.Next(_L("Test X L-P-T two")); + TESTPRINT(_L("Test X L-P-T two")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 16); - test.Next(_L("Test X L-P-T three")); + TESTPRINT(_L("Test X L-P-T three")); DoLineTestL(aText, aLayout, aDevice, aView, aNumChar, 17); - test.End(); } void DoLineTestForINC141914L(TDes& aText, CTextLayout* aLayout, CTestGraphicsDevice* aDevice, CTextView* aView) @@ -1445,46 +1452,45 @@ __UHEAP_MARKEND; } -TInt E32Main() +TVerdict CTInLineTextStep::doTestStepL() { + SetTestStepResult(EPass); + TestStep = this; + __UHEAP_MARK; - test.Title(); - static CTrapCleanup* TrapCleanup = CTrapCleanup::New(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FORM-LEGACY-INLINETEXT-0001 General combination tests - no inline text ")); + TESTPRINT(KTInlineText); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORM-LEGACY-INLINETEXT-0001 General combination tests - no inline text ")); TInt error = RFbsSession::Connect(); if (error == KErrNotFound) { FbsStartup(); error = RFbsSession::Connect(); } - test(error == KErrNone); + TEST(error == KErrNone); TRAP(error, RunGeneralCombinationTestsL(0)); - test(error == KErrNone); - test.Next(_L("General combination tests - single char inline text")); + TEST(error == KErrNone); + TESTPRINT(_L("General combination tests - single char inline text")); TRAP(error, RunGeneralCombinationTestsL(1)); - test(error == KErrNone); - test.Next(_L("General combination tests - multi char inline text")); + TEST(error == KErrNone); + TESTPRINT(_L("General combination tests - multi char inline text")); TRAP(error, RunGeneralCombinationTestsL(2)); - test(error == KErrNone); - test.Next(_L("Specific tests - no inline text")); + TEST(error == KErrNone); + TESTPRINT(_L("Specific tests - no inline text")); TRAP(error, RunSpecificTestsL(0)); - test(error == KErrNone); - test.Next(_L("Specific tests - single char inline text")); + TEST(error == KErrNone); + TESTPRINT(_L("Specific tests - single char inline text")); TRAP(error, RunSpecificTestsL(1)); - test(error == KErrNone); - test.Next(_L("Specific tests - multi char inline text")); + TEST(error == KErrNone); + TESTPRINT(_L("Specific tests - multi char inline text")); TRAP(error, RunSpecificTestsL(2)); - test(error == KErrNone); + TEST(error == KErrNone); - test.Next(_L("Defect tests - for INC141914")); + TESTPRINT(_L("Defect tests - for INC141914")); TRAP(error, RunTestsForINC141914L()); - test(error == KErrNone); + TEST(error == KErrNone); RFbsSession::Disconnect(); - test.End(); - delete TrapCleanup; - test.Close(); __UHEAP_MARKEND; User::Heap().Check(); - return error; + return TestStepResult(); } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/TInterpreter.cpp --- a/textrendering/textformatting/test/src/TInterpreter.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/textformatting/test/src/TInterpreter.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -21,14 +21,25 @@ #include "TestLayout.h" #include "TGraphicsContext.h" #include "TMINTERP.H" - +#include "tinterpreter.h" #include #include + +namespace LocalToTInterpreter +{ _LIT(KLeftToRight1, "abc \x5D0 def abc \x5D0\x5D1\x5D2 \x5D0\x5D1\x5D2 xyz abc a\tb\tc\td\te."); _LIT(KLeftToRight2, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); _LIT(KContingentBreak, "\xFFFC"); +CTInterpreterStep* TestStep = NULL; +#define TESTPOINT(p) TestStep->testpoint(p,(TText8*)__FILE__,__LINE__) +#define TESTPRINT(p) TestStep->print(p,(TText8*)__FILE__,__LINE__) + +} +using namespace LocalToTInterpreter; + + /** Checks if one region is a subset of another. @param aRegion @@ -105,7 +116,7 @@ Tests RTmBoundingRectInterpreter for a particular piece of text. @internalComponent */ -void TestTextL(RTest& aTest, CTestTmTextLayout& aLayout) +void TestTextL(CTestTmTextLayout& aLayout) { RRegion region1; RRegion region2; @@ -118,8 +129,8 @@ GetSelectionL(region2, aLayout, 0, 1, 1); GetSelectionL(region3, aLayout, 0, aLayout.Source().DocumentLength(), 1); - aTest(RegionsEqualL(region1, region2)); - aTest(RegionsEqualL(region1, region3)); + TESTPOINT(RegionsEqualL(region1, region2)); + TESTPOINT(RegionsEqualL(region1, region3)); CleanupStack::PopAndDestroy(®ion3); CleanupStack::PopAndDestroy(®ion2); @@ -127,7 +138,7 @@ } -void TestsL(RTest& aTest) +void TestsL() { CParaFormatLayer* paraLayer = CParaFormatLayer::NewL(); CleanupStack::PushL(paraLayer); @@ -136,7 +147,7 @@ CRichText* richText = CRichText::NewL(paraLayer, charLayer); CleanupStack::PushL(richText); - aTest.Next(_L("RTmBoundingRectInterpreter consistency of coverage")); + TESTPRINT(_L("RTmBoundingRectInterpreter consistency of coverage")); richText->Reset(); richText->InsertL(0, KLeftToRight1); CTestTmTextLayout* text1 = CTestTmTextLayout::NewLC(*richText, 100); @@ -156,7 +167,7 @@ param.iParInvalid = EFalse; TTmReformatResult out; text1->FormatL(param, out); - TestTextL(aTest, *text1); + TestTextL(*text1); //Test for finding text chunks adjoining a given document position text1->TestAdjacentChunks(); @@ -183,7 +194,7 @@ @SYMDEF DEF077884 */ -void Def077884L(RTest& aTest) +void Def077884L() { TInt testStartLength = 52; TInt testEndLength = 56; @@ -195,14 +206,14 @@ CRichText* richText = CRichText::NewL(paraLayer, charLayer); CleanupStack::PushL(richText); - aTest.Next(_L(" @SYMTestCaseID:SYSLIB-FORM-UT-1591 DEF077884: TSourcePictureBreaker crashes when picture not found. ")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORM-UT-1591 DEF077884: TSourcePictureBreaker crashes when picture not found. ")); richText->Reset(); richText->InsertL(0, KLeftToRight2); - aTest(testStartLength == richText->DocumentLength()); + TESTPOINT(testStartLength == richText->DocumentLength()); CTestTmTextLayout* text1 = CTestTmTextLayout::NewLC(*richText, 100); @@ -277,9 +288,9 @@ text2->FormatL(formatParam, param, out); // Scans the text from left to right. - TestTextL(aTest, *text1); + TestTextL(*text1); - aTest(testEndLength == richText->DocumentLength()); + TESTPOINT(testEndLength == richText->DocumentLength()); CleanupStack::PopAndDestroy(text1); CleanupStack::PopAndDestroy(richText); @@ -291,24 +302,15 @@ Tests RTmBoundingRectInterpreter. @internalComponent */ -void RunTestsL(RTest& aTest) +TVerdict CTInterpreterStep::doTestStepL() { - TestsL(aTest); - Def077884L(aTest); + SetTestStepResult(EPass); + TestStep = this; + TESTPRINT(_L("TInterpreter unit")); + TESTPRINT(_L("Start TInterpreter.exe Tests")); + TestsL(); + Def077884L(); + return TestStepResult(); } -/** -Tests RTmBoundingRectInterpreter. -@internalComponent -*/ -TInt E32Main() - { - RTest rtest(_L("TInterpreter unit")); - CTrapCleanup* TrapCleanup = CTrapCleanup::New(); - rtest.Start(_L("Start TInterpreter.exe Tests")); - TRAPD(err, RunTestsL(rtest)); - rtest.End(); - delete TrapCleanup; - return err; - } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/TLINEPAG.CPP --- a/textrendering/textformatting/test/src/TLINEPAG.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/textformatting/test/src/TLINEPAG.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -22,31 +22,30 @@ #include #include #include +#include "tlinepag.h" +namespace LocalToTLinePag +{ _LIT(KTLinePag, "TLinePag"); -RTest TheTest(KTLinePag); - +CTLinePagStep* TestStep = NULL; +#define TESTPOINT(p) TestStep->testpoint(p,(TText8*)__FILE__,__LINE__) +#define TESTPRINT(p) TestStep->print(p,(TText8*)__FILE__,__LINE__) +} +using namespace LocalToTLinePag; /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// //Test macroses and functions -LOCAL_C void CheckL(TInt aValue, TInt aLine) - { - if(!aValue) - { - TheTest(EFalse, aLine); - } - } LOCAL_C void CheckL(TInt aValue, TInt aExpected, TInt aLine) { if(aValue != aExpected) { - RDebug::Print(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - TheTest(EFalse, aLine); + TBuf<256> buf; + buf.AppendFormat(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); + TestStep->print(buf,(TText8*)__FILE__,aLine); + TestStep->testpoint(EFalse,(TText8*)__FILE__,aLine); } } -#define TEST(arg) ::CheckL((arg), __LINE__) -#define TEST2(aValue, aExpected) ::CheckL(aValue, aExpected, __LINE__) class CLinePaginatorTest : public CBase { @@ -116,7 +115,7 @@ { } TBool success=CompareArrays(); - TEST2(success, ETrue); + CheckL(success, ETrue,__LINE__); } @@ -153,7 +152,9 @@ lex.Val(pageHeight); iPaginator.SetPageHeight(pageHeight); - TheTest.Printf(_L("DocPos\tHeight\tKeep\tStart\tHeight of Pages = <%d>\n"), pageHeight); + TBuf<254> buf; + buf.AppendFormat(_L("DocPos\tHeight\tKeep\tStart\tHeight of Pages = <%d>\n"), pageHeight); + TESTPRINT(buf); } TBool CLinePaginatorTest::ReadTestFile(TPageLine& aLine) @@ -171,7 +172,9 @@ iFilePos+=startNum; lex=textBuffer; lex.Val(aLine.iDocPos); - TheTest.Printf(_L("%d\tX\n"), aLine.iDocPos); + TBuf<254> buf; + buf.AppendFormat(_L("%d\tX\n"), aLine.iDocPos); + TESTPRINT(buf); return EFalse; } @@ -212,13 +215,17 @@ void CLinePaginatorTest::WriteOutputFile(TPageLine aLine) { + TBuf<256> buf; if (iTestPageBreak) { - TheTest.Printf(_L("%d\t%d\t%d\t%d\tBREAK\n"), aLine.iDocPos, aLine.iLineHeight, aLine.iKeepWithNext, aLine.iStartNewPage); + buf.AppendFormat(_L("%d\t%d\t%d\t%d\tBREAK\n"), aLine.iDocPos, aLine.iLineHeight, aLine.iKeepWithNext, aLine.iStartNewPage); + TESTPRINT(buf); } else { - TheTest.Printf(_L("%d\t%d\t%d\t%d\n"), aLine.iDocPos, aLine.iLineHeight, aLine.iKeepWithNext, aLine.iStartNewPage); + buf.Zero(); + buf.AppendFormat(_L("%d\t%d\t%d\t%d\n"), aLine.iDocPos, aLine.iLineHeight, aLine.iKeepWithNext, aLine.iStartNewPage); + TESTPRINT(buf); } } @@ -241,9 +248,11 @@ TInt prevDocPos=0; TInt docPosError=0; + TBuf<256> buf; if (numPages==numTestPages) { - TheTest.Printf(_L("Correct Number of Pages = %d\n"), numPages); + buf.AppendFormat(_L("Correct Number of Pages = %d\n"), numPages); + TESTPRINT(buf); pagesSame=ETrue; for (TInt i=0; itestpoint(p,(TText8*)__FILE__,__LINE__) +#define TESTPRINT(p) TestStep->print(p,(TText8*)__FILE__,__LINE__) const TInt KPictureCharacter = 0xFFFC; @@ -146,9 +150,8 @@ { TInt iProcessHandles; TInt iThreadHandles; - RTest& iTest; public: - THandleTester(RTest& rt) : iTest(rt) + THandleTester() { RThread().HandleCount(iProcessHandles, iThreadHandles); } @@ -158,8 +161,8 @@ TInt t; RThread().HandleCount(p, t); // this seems to break at random... -// iTest(p == iProcessHandles); - iTest(t == iThreadHandles); +// TestStep->test(p == iProcessHandles); + TESTPOINT(t == iThreadHandles); } }; @@ -282,14 +285,15 @@ }; } -using namespace LocalToFile; +using namespace LocalToTTagmaImp; class CTagmaImpTest : public CBase { public: - CTagmaImpTest() : iDevice(0), iGc(0) + CTagmaImpTest(CTTagmaImpStep* aStep) : iDevice(0), iGc(0) { + TestStep = aStep; } void ConstructL() { @@ -351,9 +355,9 @@ TInt num = reader.ReadNumber(); TRect rect = reader.ReadRect(); TRect testRect(aStartValue + 2, aStartValue + 3, aStartValue + 4, aStartValue + 5); - test(byte == static_cast(aStartValue)); - test(num == aStartValue + 1); - test(rect == testRect); + TESTPOINT(byte == static_cast(aStartValue)); + TESTPOINT(num == aStartValue + 1); + TESTPOINT(rect == testRect); } return reader.CodePos(); } @@ -426,7 +430,7 @@ code->Delete(size1, size4); CheckLots(*code, 0, 0, count1); CheckLots(*code, size1, 0, count2); - test(code2->Size() == 0); + TESTPOINT(code2->Size() == 0); CleanupStack::PopAndDestroy(code2); CleanupStack::PopAndDestroy(code); } @@ -437,7 +441,7 @@ TInt err; TInt failAt = 1; do { - THandleTester h(test); + THandleTester h(); __UHEAP_MARK; __UHEAP_SETFAIL(RHeap::EDeterministic, failAt); @@ -447,7 +451,7 @@ ++failAt; } while (err == KErrNoMemory); - test(err == KErrNone); + TESTPOINT(err == KErrNone); } CTestSource* CTagmaImpTest::NewTestSourceLC() @@ -497,7 +501,7 @@ TInt err; TInt failAt = 1; do { - THandleTester h(test); + THandleTester h(); __UHEAP_MARK; __UHEAP_SETFAIL(RHeap::EDeterministic, failAt); @@ -507,7 +511,7 @@ ++failAt; } while (err == KErrNoMemory); - test(err == KErrNone); + TESTPOINT(err == KErrNone); } void CTagmaImpTest::ExerciseRTmTextCacheWidthL() @@ -532,7 +536,7 @@ TInt err; TInt failAt = 1; do { - THandleTester h(test); + THandleTester h(); __UHEAP_MARK; __UHEAP_SETFAIL(RHeap::EDeterministic, failAt); @@ -542,7 +546,7 @@ ++failAt; } while (err == KErrNoMemory); - test(err == KErrNone); + TESTPOINT(err == KErrNone); } void CTagmaImpTest::ExerciseRTmGeneralInterpreterGetDisplayedTextL() @@ -573,7 +577,7 @@ TInt err; TInt failAt = 1; do { - THandleTester h(test); + THandleTester h(); __UHEAP_MARK; __UHEAP_SETFAIL(RHeap::EDeterministic, failAt); @@ -583,7 +587,7 @@ ++failAt; } while (err == KErrNoMemory); - test(err == KErrNone); + TESTPOINT(err == KErrNone); } void CTagmaImpTest::WEP_55BHBF_DefectL() @@ -639,7 +643,7 @@ // check that format has found the break at 11 characters // This is at the end of "this is a " - test( info.iFirstLineEndChar == 11 ); + TESTPOINT(info.iFirstLineEndChar == 11 ); // get the text that would be displayed into displayBuffer TTmInterpreterParam interpreter_param(*code); @@ -656,8 +660,8 @@ // The defect caused this buffer to be missing the final 'a' // from "...this is a" at the end of the line // When this defect happens noCharsToDisplay != info.iFirstLineEndChar - test( info.iFirstLineEndChar == noCharsToDisplay ); - test( displayBuffer[9] == 'a' ); + TESTPOINT( info.iFirstLineEndChar == noCharsToDisplay ); + TESTPOINT( displayBuffer[9] == 'a' ); interpreter.Close(); CleanupStack::PopAndDestroy(layout); @@ -702,9 +706,9 @@ CTmFormatContext::FormatL(*source1, formatParam1, *code, info1, layout); // check that format didn't found any breaks - test( info1.iFirstLineEndChar == KTest1().Length()); - test( info1.iLastLineStartChar == 0 ); - test( info1.iHeight == 12 ); // just 1 line + TESTPOINT( info1.iFirstLineEndChar == KTest1().Length()); + TESTPOINT( info1.iLastLineStartChar == 0 ); + TESTPOINT( info1.iHeight == 12 ); // just 1 line @@ -727,9 +731,9 @@ CTmFormatContext::FormatL(*source2, formatParam2, *code, info2, layout); // check that format didn't found any breaks - test( info2.iFirstLineEndChar == KTest2().Length()); - test( info2.iLastLineStartChar == 0 ); - test( info2.iHeight == 12 ); // just 1 line + TESTPOINT( info2.iFirstLineEndChar == KTest2().Length()); + TESTPOINT( info2.iLastLineStartChar == 0 ); + TESTPOINT( info2.iHeight == 12 ); // just 1 line @@ -752,9 +756,9 @@ CTmFormatContext::FormatL(*source3, formatParam3, *code, info3, layout); // check that format didn't found any breaks - test( info3.iFirstLineEndChar == 54 ); - test( info3.iLastLineStartChar == 108 ); - test( info3.iHeight == 36 ); // 3 lines + TESTPOINT( info3.iFirstLineEndChar == 54 ); + TESTPOINT( info3.iLastLineStartChar == 108 ); + TESTPOINT( info3.iHeight == 36 ); // 3 lines CleanupStack::PopAndDestroy(source3); CleanupStack::PopAndDestroy(source2); @@ -895,33 +899,33 @@ text->GetText(0, testText, cft); text->GetParagraphFormatL(0, pft); - test(testText.Length() == 14); - test(testText.Compare(_L("first line\x2029sec")) == 0); - test(cft == cf1); - test(pft == pf1); + TESTPOINT(testText.Length() == 14); + TESTPOINT(testText.Compare(_L("first line\x2029sec")) == 0); + TESTPOINT(cft == cf1); + TESTPOINT(pft == pf1); text->GetText(11, testText, cft); text->GetParagraphFormatL(11, pft); - test(testText.Length() == 3); - test(testText.Compare(_L("sec")) == 0); - test(cft == cf1); - test(pft == pf2); + TESTPOINT(testText.Length() == 3); + TESTPOINT(testText.Compare(_L("sec")) == 0); + TESTPOINT(cft == cf1); + TESTPOINT(pft == pf2); text->GetText(14, testText, cft); text->GetParagraphFormatL(14, pft); - test(testText.Length() == 3); - test(testText.Compare(_L("t p")) == 0); - test(cft == cf2); - test(pft == pf2); + TESTPOINT(testText.Length() == 3); + TESTPOINT(testText.Compare(_L("t p")) == 0); + TESTPOINT(cft == cf2); + TESTPOINT(pft == pf2); text->GetText(17, testText, cft); text->GetParagraphFormatL(17, pft); - test(cft == cf1); - test(pft == pf2); + TESTPOINT(cft == cf1); + TESTPOINT(pft == pf2); text->GetText(21, testText, cft); text->GetParagraphFormatL(21, pft); - test(pft == pf2); + TESTPOINT(pft == pf2); CleanupStack::PopAndDestroy(&pft); CleanupStack::PopAndDestroy(&pf2); CleanupStack::PopAndDestroy(&pf1); @@ -930,7 +934,7 @@ void CTagmaImpTest::GetIndices(TDes8& aBuf, const CTmTextImp::RRunArray& aRunArray) { - test(aRunArray.Index(0) == aRunArray.Index(1)); + TESTPOINT(aRunArray.Index(0) == aRunArray.Index(1)); aBuf.Zero(); TInt index; for (TInt i = 1; 0 <= (index = aRunArray.Index(i)); ++i) @@ -962,7 +966,7 @@ TInt memUsed = text->MemoryUsed(); text->ChangeFormatL(formatParam); - test(text->MemoryUsed()==memUsed); + TESTPOINT(text->MemoryUsed()==memUsed); TTmFormatParam formatParam1; formatParam1.iStartChar = 0; @@ -975,12 +979,12 @@ //Setting the format of the text text->ChangeFormatL(formatParam1); //After changing the format, memory used by the text differs from the initial value - test(text->MemoryUsed()!=memUsed); + TESTPOINT(text->MemoryUsed()!=memUsed); TRgb color1(100,10,20); TRgb color2; //Setting the system colour with an index representing the system background colour color2 = text->SystemColor(TLogicalRgb::ESystemBackgroundIndex,color1); - test(color2==color1); + TESTPOINT(color2==color1); _LIT(KBody, "Body"); _LIT(KLabel, "Label, Longer than Body"); @@ -992,7 +996,7 @@ //Setting the system colour with an index representing the system foreground colour color2 = text->SystemColor(TLogicalRgb::ESystemSelectionForegroundIndex,color1); - test(color2!=color1); + TESTPOINT(color2!=color1); CleanupStack::PopAndDestroy(&pf1); CleanupStack::PopAndDestroy(text); } @@ -1003,50 +1007,50 @@ CTmTextImp::RRunArray ra; CleanupClosePushL(ra); GetIndices(indexBuf, ra); - test(0 == indexBuf.Compare(_L8(""))); + TESTPOINT(0 == indexBuf.Compare(_L8(""))); ra.Insert(0, 10, 0); GetIndices(indexBuf, ra); - test(0 == indexBuf.Compare(_L8("0000000000"))); + TESTPOINT(0 == indexBuf.Compare(_L8("0000000000"))); ra.Insert(5, 10, 1); GetIndices(indexBuf, ra); - test(0 == indexBuf.Compare(_L8("00000111111111100000"))); + TESTPOINT(0 == indexBuf.Compare(_L8("00000111111111100000"))); ra.Delete(13, 4); GetIndices(indexBuf, ra); - test(0 == indexBuf.Compare(_L8("0000011111111000"))); + TESTPOINT(0 == indexBuf.Compare(_L8("0000011111111000"))); ra.Delete(2, 12); GetIndices(indexBuf, ra); - test(0 == indexBuf.Compare(_L8("0000"))); + TESTPOINT(0 == indexBuf.Compare(_L8("0000"))); ra.Delete(0, 4); GetIndices(indexBuf, ra); - test(0 == indexBuf.Compare(_L8(""))); + TESTPOINT(0 == indexBuf.Compare(_L8(""))); ra.Insert(0, 20, 0); ra.Set(5, 10, 1); GetIndices(indexBuf, ra); - test(0 == indexBuf.Compare(_L8("00000111111111100000"))); + TESTPOINT(0 == indexBuf.Compare(_L8("00000111111111100000"))); ra.Set(6, 4, 2); GetIndices(indexBuf, ra); - test(0 == indexBuf.Compare(_L8("00000122221111100000"))); + TESTPOINT(0 == indexBuf.Compare(_L8("00000122221111100000"))); ra.Set(10, 4, 3); GetIndices(indexBuf, ra); - test(0 == indexBuf.Compare(_L8("00000122223333100000"))); + TESTPOINT(0 == indexBuf.Compare(_L8("00000122223333100000"))); ra.Set(9, 2, 1); GetIndices(indexBuf, ra); - test(0 == indexBuf.Compare(_L8("00000122211333100000"))); + TESTPOINT(0 == indexBuf.Compare(_L8("00000122211333100000"))); ra.Set(6, 1, 1); GetIndices(indexBuf, ra); - test(0 == indexBuf.Compare(_L8("00000112211333100000"))); + TESTPOINT(0 == indexBuf.Compare(_L8("00000112211333100000"))); ra.Set(8, 1, 1); GetIndices(indexBuf, ra); - test(0 == indexBuf.Compare(_L8("00000112111333100000"))); + TESTPOINT(0 == indexBuf.Compare(_L8("00000112111333100000"))); ra.Set(7, 1, 1); GetIndices(indexBuf, ra); - test(0 == indexBuf.Compare(_L8("00000111111333100000"))); + TESTPOINT(0 == indexBuf.Compare(_L8("00000111111333100000"))); ra.Set(7, 2, 2); GetIndices(indexBuf, ra); - test(0 == indexBuf.Compare(_L8("00000112211333100000"))); + TESTPOINT(0 == indexBuf.Compare(_L8("00000112211333100000"))); ra.Set(1, 19, 1); GetIndices(indexBuf, ra); - test(0 == indexBuf.Compare(_L8("01111111111111111111"))); + TESTPOINT(0 == indexBuf.Compare(_L8("01111111111111111111"))); CleanupStack::PopAndDestroy(&ra); } @@ -1063,34 +1067,34 @@ CleanupStack::PushL(pF); RTmParFormat rPF; - test(RTmParFormat::EAlignNormalBidirectional == rPF.iAlignment); + TESTPOINT(RTmParFormat::EAlignNormalBidirectional == rPF.iAlignment); rPF.CopyL(*pF); - test(RTmParFormat::EAlignNormal == rPF.iAlignment); + TESTPOINT(RTmParFormat::EAlignNormal == rPF.iAlignment); pF->iHorizontalAlignment = CParaFormat::ELeftAlign; rPF.CopyL(*pF); - test(RTmParFormat::EAlignNormal == rPF.iAlignment); + TESTPOINT(RTmParFormat::EAlignNormal == rPF.iAlignment); pF->iHorizontalAlignment = CParaFormat::ECenterAlign; rPF.CopyL(*pF); - test(RTmParFormat::EAlignCenter == rPF.iAlignment); + TESTPOINT(RTmParFormat::EAlignCenter == rPF.iAlignment); pF->iHorizontalAlignment = CParaFormat::ERightAlign; rPF.CopyL(*pF); - test(RTmParFormat::EAlignReverse == rPF.iAlignment); + TESTPOINT(RTmParFormat::EAlignReverse == rPF.iAlignment); pF->iHorizontalAlignment = CParaFormat::EJustifiedAlign; rPF.CopyL(*pF); - test(RTmParFormat::EAlignJustify == rPF.iAlignment); + TESTPOINT(RTmParFormat::EAlignJustify == rPF.iAlignment); pF->iHorizontalAlignment = CParaFormat::EAbsoluteLeftAlign; rPF.CopyL(*pF); - test(RTmParFormat::EAlignAbsoluteLeft == rPF.iAlignment); + TESTPOINT(RTmParFormat::EAlignAbsoluteLeft == rPF.iAlignment); pF->iHorizontalAlignment = CParaFormat::EAbsoluteRightAlign; rPF.CopyL(*pF); - test(RTmParFormat::EAlignAbsoluteRight == rPF.iAlignment); + TESTPOINT(RTmParFormat::EAlignAbsoluteRight == rPF.iAlignment); rPF.Close(); CleanupStack::PopAndDestroy(); //pF @@ -1102,31 +1106,31 @@ CleanupStack::PushL(pF); RTmParFormat rPF; - test(pF->iHorizontalAlignment == CParaFormat::ELeftAlign); + TESTPOINT(pF->iHorizontalAlignment == CParaFormat::ELeftAlign); rPF.iAlignment = RTmParFormat::EAlignNormal; rPF.GetCParaFormatL(*pF); - test(CParaFormat::ELeftAlign == pF->iHorizontalAlignment); + TESTPOINT(CParaFormat::ELeftAlign == pF->iHorizontalAlignment); rPF.iAlignment = RTmParFormat::EAlignCenter; rPF.GetCParaFormatL(*pF); - test(CParaFormat::ECenterAlign == pF->iHorizontalAlignment); + TESTPOINT(CParaFormat::ECenterAlign == pF->iHorizontalAlignment); rPF.iAlignment = RTmParFormat::EAlignReverse; rPF.GetCParaFormatL(*pF); - test(CParaFormat::ERightAlign == pF->iHorizontalAlignment); + TESTPOINT(CParaFormat::ERightAlign == pF->iHorizontalAlignment); rPF.iAlignment = RTmParFormat::EAlignJustify; rPF.GetCParaFormatL(*pF); - test(CParaFormat::EJustifiedAlign == pF->iHorizontalAlignment); + TESTPOINT(CParaFormat::EJustifiedAlign == pF->iHorizontalAlignment); rPF.iAlignment = RTmParFormat::EAlignAbsoluteLeft; rPF.GetCParaFormatL(*pF); - test(CParaFormat::EAbsoluteLeftAlign == pF->iHorizontalAlignment); + TESTPOINT(CParaFormat::EAbsoluteLeftAlign == pF->iHorizontalAlignment); rPF.iAlignment = RTmParFormat::EAlignAbsoluteRight; rPF.GetCParaFormatL(*pF); - test(CParaFormat::EAbsoluteRightAlign == pF->iHorizontalAlignment); + TESTPOINT(CParaFormat::EAbsoluteRightAlign == pF->iHorizontalAlignment); rPF.Close(); CleanupStack::PopAndDestroy(); // pF @@ -1143,7 +1147,7 @@ TTestCustomFormattingSource(MGraphicsDeviceMap* aDevice, const TDesC& aBody, TInt aCustomFormatType) : iDevice(aDevice) - { + { iCustomFormatType = aCustomFormatType; iBody.Set(aBody.Ptr(), aBody.Length()); iCurrent = &iBody; @@ -1221,7 +1225,9 @@ aNext.iLeadingEdge = EFalse; if (aNext.iPos - aFrom.iPos < aMaxLength + (aNext.iLeadingEdge ? 0 : 1)) return KErrNotFound; - test.Printf(_L("GetPos-InlineTextAt-%d %c-From-%d\n"), aNext.iPos, aNext.iLeadingEdge ? 'L' : 'T', aFrom.iPos); + TBuf<256> buf; + buf.AppendFormat(_L("GetPos-InlineTextAt-%d %c-From-%d\n"),aNext.iPos, aNext.iLeadingEdge ? 'L' : 'T', aFrom.iPos); + TESTPRINT(buf); return KErrNone; } return KErrNotFound; @@ -1246,7 +1252,9 @@ aNext.iLeadingEdge = ETrue; if (aNext.iPos - aFrom.iPos < aMaxLength + (aNext.iLeadingEdge ? 0 : 1)) return KErrNotFound; - test.Printf(_L("GetPos-InlineTextAt-%d %c-From-%d\n"), aNext.iPos, aNext.iLeadingEdge ? 'L' : 'T', aFrom.iPos); + TBuf<256> buf; + buf.AppendFormat(_L("GetPos-InlineTextAt-%d %c-From-%d\n"), aNext.iPos, aNext.iLeadingEdge ? 'L' : 'T', aFrom.iPos); + TESTPRINT(buf); return KErrNone; } // if it gets here search position is after the first break space @@ -1256,7 +1264,9 @@ aNext.iLeadingEdge = EFalse; if (aNext.iPos - aFrom.iPos < aMaxLength + (aNext.iLeadingEdge ? 0 : 1)) return KErrNotFound; - test.Printf(_L("GetPos-InlineTextAt-%d %c-From-%d\n"), aNext.iPos, aNext.iLeadingEdge ? 'L' : 'T', aFrom.iPos); + TBuf<256> buf; + buf.AppendFormat(_L("GetPos-InlineTextAt-%d %c-From-%d\n"), aNext.iPos, aNext.iLeadingEdge ? 'L' : 'T', aFrom.iPos); + TESTPRINT(buf); return KErrNone; } } @@ -1266,7 +1276,9 @@ } TPtrC GetInlineText(const TTmDocPos& aAt) { - test.Printf(_L("QueryTextAt-%d %c\n"), aAt.iPos, aAt.iLeadingEdge ? 'L' : 'T'); + TBuf<256> buf; + buf.AppendFormat(_L("QueryTextAt-%d %c\n"), aAt.iPos, aAt.iLeadingEdge ? 'L' : 'T'); + TESTPRINT(buf); if (iCustomFormatType == 0) { return iNullText; @@ -1287,7 +1299,9 @@ { _LIT(KCFS3, "?"); TPtrC tPtrC(KCFS3); - test.Printf(_L("GetText-QuestionMark-%d\n"), aAt.iPos); + TBuf<256> buf; + buf.AppendFormat(_L("GetText-QuestionMark-%d\n"), aAt.iPos); + TESTPRINT(buf); return tPtrC; } } @@ -1310,7 +1324,10 @@ { // search position is on the first break space _LIT(KCFS4, " "); TPtrC tPtrC(KCFS4); - test.Printf(_L("GetText-Space-%d-L\n"), aAt.iPos); + + TBuf<256> buf; + buf.AppendFormat(_L("GetText-Space-%d-L\n"), aAt.iPos); + TESTPRINT(buf); return tPtrC; } // if it gets here search position is not on the first break space @@ -1318,7 +1335,9 @@ { // but it is on the second _LIT(KCFS4, " "); TPtrC tPtrC(KCFS4); - test.Printf(_L("GetText-Space-%d-T\n"), aAt.iPos); + TBuf<256> buf; + buf.AppendFormat(_L("GetText-Space-%d-T\n"), aAt.iPos); + TESTPRINT(buf); return tPtrC; } } @@ -1335,7 +1354,7 @@ // Test one // ======== // First test is where inline text is enabled but where there is none to insert - _LIT(KBody0, "This is a bunch of boring plain text that doesn't get any inline text inserted.\x2029"); + _LIT(KBody0, "This is a bunch of boring plain text that doesn't get any inline text inserted.\x2029"); TTestCustomFormattingSource s0(iDevice, KBody0, 0); // No inline text CTmTextLayout* lay0 = new(ELeave) CTmTextLayout; TTmFormatParam fp0; @@ -1408,11 +1427,11 @@ text->GetDisplayedText(0,buffer,needed); //Verify that the text is formatted correctly - test(buffer == KDisplayedLatinZWJ); + TESTPOINT(buffer == KDisplayedLatinZWJ); //Verify that the length of the string is as expected textLength = (text->EndChar()) - (text->StartChar()); - test(textLength == KExpectedTextLength); + TESTPOINT(textLength == KExpectedTextLength); text->Clear(); //Test the sample text with ZWJ in the middle of the string @@ -1420,11 +1439,11 @@ text->GetDisplayedText(0,buffer,needed); //Verify that the text is formatted correctly - test(buffer == KDisplayedLatinZWJ); + TESTPOINT(buffer == KDisplayedLatinZWJ); //Verify that the length of the string is as expected textLength = (text->EndChar()) - (text->StartChar()); - test(textLength == KExpectedTextLength); + TESTPOINT(textLength == KExpectedTextLength); text->Clear(); //Test the sample text with ZWJ at the end of the string @@ -1432,11 +1451,11 @@ text->GetDisplayedText(0,buffer,needed); //Verify that the text is formatted correctly - test(buffer == KDisplayedLatinZWJ); + TESTPOINT(buffer == KDisplayedLatinZWJ); //Verify that the length of the string is as expected textLength = (text->EndChar()) - (text->StartChar()); - test(textLength == KExpectedTextLength); + TESTPOINT(textLength == KExpectedTextLength); text->Clear(); CleanupStack::PopAndDestroy(); // text @@ -1474,11 +1493,11 @@ text->GetDisplayedText(0,buffer,needed); //Verify that the text is formatted correctly - test(buffer == KDisplayedKannadaTamil); + TESTPOINT(buffer == KDisplayedKannadaTamil); //Verify that the length of the string is as expected textLength = (text->EndChar()) - (text->StartChar()); - test(textLength == KExpectedTextLength); + TESTPOINT(textLength == KExpectedTextLength); text->Clear(); CleanupStack::PopAndDestroy(); // text @@ -1525,27 +1544,27 @@ chunk.SetL(*formatContext,0,0,10,533,0,chunkInfo); TUint context = chunk.iContextCharInByteCode; // Test that the first chunk's context has been recognised as not needing supplied context. - test(0 == context); + TESTPOINT(0 == context); chunk.SetL(*formatContext,3,0,10,533,0,chunkInfo); context = chunk.iContextCharInByteCode; // Test that the next chunk retains the Hindi context. - test(2325 == context); + TESTPOINT(2325 == context); chunk.SetL(*formatContext,4,0,10,533,0,chunkInfo); context = chunk.iContextCharInByteCode; // Test that the next chunk retains the Hindi context. - test(2325 == context); + TESTPOINT(2325 == context); chunk.SetL(*formatContext,5,0,10,533,0,chunkInfo); context = chunk.iContextCharInByteCode; // Test that the next chunk retains the Hindi context. - test(2325 == context); + TESTPOINT(2325 == context); chunk.SetL(*formatContext,6,0,10,533,0,chunkInfo); context = chunk.iContextCharInByteCode; // Test that the next chunk has been recognised as not needing supplied context. - test(0 == context); + TESTPOINT(0 == context); chunk.SetL(*formatContext,9,0,10,533,0,chunkInfo); context = chunk.iContextCharInByteCode; // Test that the next chunk retains the Latin context. - test(99 == context); + TESTPOINT(99 == context); CleanupStack::PopAndDestroy(formatContext); // formatContext @@ -1605,13 +1624,13 @@ { if (interpreter.Op() == TTmInterpreter::EOpLine) { - test(interpreter.LineContextCharChar() == expectedResults[lines++]); + TESTPOINT(interpreter.LineContextCharChar() == expectedResults[lines++]); } interpreter.Skip(); } // Test the correct amount of lines have been tested. - test(4 == lines); + TESTPOINT(4 == lines); // Close the interpreter and clean up the heap. interpreter.Close(); @@ -1677,7 +1696,7 @@ TUint32 op = interpreter.Op(); if (interpreter.Op() == TTmInterpreter::EOpText || interpreter.Op() == TTmInterpreter::EOpSpecialChar) { - test(expectedResults[chunks++] == interpreter.ContextCharChar()); + TESTPOINT(expectedResults[chunks++] == interpreter.ContextCharChar()); } else { @@ -1686,7 +1705,7 @@ } // Test that the expected number of chunks were found in the bytecode. - test(3 == chunks); + TESTPOINT(3 == chunks); // Close the interpreter and clean up the heap. interpreter.Close(); @@ -1698,82 +1717,82 @@ void CTagmaImpTest::TestL() { // __UHEAP_MARK; - - test.Start(_L("Regression test: DEF073838")); // Line break problem with WORD + + TESTPRINT(_L("Regression test: DEF073838")); // Line break problem with WORD DEF_073838_DefectL(); - test.Next(_L("Regression test: INC044969")); + TESTPRINT(_L("Regression test: INC044969")); INC_044969_DefectL(); - test.Next(_L("CTmTextImp::RRunArray tests")); + TESTPRINT(_L("CTmTextImp::RRunArray tests")); CTmTextImp_RRunArrayL(); - test.Next(_L("Regression test: BUR-58FGE8")); + TESTPRINT(_L("Regression test: BUR-58FGE8")); BUR_58FGE8_DefectL(); - test.Next(_L("Regression test: WEP-55BHBF")); + TESTPRINT(_L("Regression test: WEP-55BHBF")); WEP_55BHBF_DefectL(); - test.Next(_L("Regression test: EXT-5ATF8D")); + TESTPRINT(_L("Regression test: EXT-5ATF8D")); EXT_5ATF8D_DefectL(); - test.Next(_L(" @SYMTestCaseID:SYSLIB-FORM-UT-1886 Test for CTmTextImp API's ")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORM-UT-1886 Test for CTmTextImp API's ")); TestAPIL(); - test.Next(_L("CTmCode tests")); + TESTPRINT(_L("CTmCode tests")); CTmCodeOOML(); - test.Next(_L("CTmFormatContext::FormatL tests")); + TESTPRINT(_L("CTmFormatContext::FormatL tests")); FormatOOML(); - test.Next(_L("RTmTextCache::Width tests")); + TESTPRINT(_L("RTmTextCache::Width tests")); RTmTextCacheWidthOOM(); - test.Next(_L("RTmGeneralInterpreter::GetDisplayedText tests")); + TESTPRINT(_L("RTmGeneralInterpreter::GetDisplayedText tests")); RTmGeneralInterpreterGetDisplayedTextOOM(); - test.Next(_L("Bidirectional alignment tests")); + TESTPRINT(_L("Bidirectional alignment tests")); CTmTextImp_BidirectionalAlignmentL(); - test.Next(_L("Custom formatting tests")); + TESTPRINT(_L("Custom formatting tests")); CustomFormattingL(); - test.Next(_L(" @SYMTestCaseID:SYSLIB-FORM-CT-3353 Regression test: PDEF101464 ")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORM-CT-3353 Regression test: PDEF101464 ")); PDEF_101464_DefectL(); - test.Next(_L(" @SYMTestCaseID:SYSLIB-FORM-CT-3398 Regression test: DEF101994 ")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORM-CT-3398 Regression test: DEF101994 ")); DEF101994_DefectL(); - test.Next(_L(" @SYMTestCaseID:SYSLIB-FORM-UT-4010 Drawing Text within context: Testing chunk context.")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORM-UT-4010 Drawing Text within context: Testing chunk context.")); TestChunkContext(); - test.Next(_L(" @SYMTestCaseID:SYSLIB-FORM-UT-4011 Drawing Text within context: Testing line context within bytecode.")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORM-UT-4011 Drawing Text within context: Testing line context within bytecode.")); TestBytecodeLineContext(); - test.Next(_L(" @SYMTestCaseID:SYSLIB-FORM-UT-4012 Drawing Text within context: Testing chunk context within bytecode.")); - TestBytecodeChunkContext(); - - test.End(); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORM-UT-4012 Drawing Text within context: Testing chunk context within bytecode.")); + TestBytecodeChunkContext(); // __UHEAP_MARKEND; } - -void RunTestsL() - { - CTagmaImpTest* t = new(ELeave) CTagmaImpTest(); - CleanupStack::PushL(t); - t->ConstructL(); - t->TestL(); - CleanupStack::PopAndDestroy(t); - } +CTTagmaImpStep::CTTagmaImpStep() + { + + } -TInt E32Main() - { - CTrapCleanup* theCleanup =CTrapCleanup::New(); - test.Title(); - TRAPD(err, RunTestsL()); - test.Close(); - delete theCleanup; - return err; - } +TVerdict CTTagmaImpStep::doTestStepL() + { + SetTestStepResult(EPass); + TestStep = this; + + TESTPRINT(_L("Tagma internals tests")); + CTagmaImpTest* t = new(ELeave) CTagmaImpTest(this); + CleanupStack::PushL(t); + t->ConstructL(); + t->TestL(); + CleanupStack::PopAndDestroy(t); + + return TestStepResult(); + } + + diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/TTmCode.cpp --- a/textrendering/textformatting/test/src/TTmCode.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/textformatting/test/src/TTmCode.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -21,15 +21,14 @@ #include "TMSTD.H" #include - #include +#include "ttmcode.h" -CTrapCleanup* TrapCleanup; -RTest test(_L("TTmCode - Tests CTmCode class")); - - -void RunTestsL() +TVerdict CTTmCodeStep::doTestStepL() { + SetTestStepResult(EPass); + INFO_PRINTF1(_L("TTmCode - Tests CTmCode class")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-FORM-LEGACY-TTMCODE-0001 CTmCode tests ")); CTmCode* code = new(ELeave) CTmCode; CleanupStack::PushL(code); @@ -38,7 +37,7 @@ TInt num = 42; code->AppendNumberL(num); TTmCodeReader reader(*code, 0, 0x7FFFFFFF); - test(reader.ReadNumber() == num); + TEST(reader.ReadNumber() == num); // Testcase 2 - Append largest positive number occupying 1 byte (where a byte is 7 bits in the case of CTmCode), check correct value read back TInt size; @@ -47,35 +46,35 @@ num = 63; TInt pos = code->AppendNumberL(num); sizeDelta = code->Size() - size; - test(sizeDelta == 1 && (pos - size) == 1 && reader.ReadNumber() == num); + TEST(sizeDelta == 1 && (pos - size) == 1 && reader.ReadNumber() == num); // Testcase 3 - Append smallest positive number occupying 2 bytes, check correct value read back size = code->Size(); num = 64; pos = code->AppendNumberL(num); sizeDelta = code->Size() - size; - test(sizeDelta == 2 && (pos - size) == 2 && reader.ReadNumber() == num); + TEST(sizeDelta == 2 && (pos - size) == 2 && reader.ReadNumber() == num); // Testcase 4 - Append largest negative number occupying 1 byte, check correct value read back size = code->Size(); num = -64; pos = code->AppendNumberL(num); sizeDelta = code->Size() - size; - test(sizeDelta == 1 && (pos - size) == 1 && reader.ReadNumber() == num); + TEST(sizeDelta == 1 && (pos - size) == 1 && reader.ReadNumber() == num); // Testcase 5 - Append smallest negative number occupying 2 bytes, check correct value read back size = code->Size(); num = -65; pos = code->AppendNumberL(num); sizeDelta = code->Size() - size; - test(sizeDelta == 2 && (pos - size) == 2 && reader.ReadNumber() == num); + TEST(sizeDelta == 2 && (pos - size) == 2 && reader.ReadNumber() == num); // Testcase 6 - Append rect, check same rect returned size = code->Size(); TRect rect(1, 1, 2, 2); pos = code->AppendRectL(rect); sizeDelta = code->Size() - size; - test(sizeDelta == 4 && (pos - size) == 4 && reader.ReadRect() == rect); + TEST(sizeDelta == 4 && (pos - size) == 4 && reader.ReadRect() == rect); // Testcase 7 - Replace first 2 bytes with 3 different bytes CTmCode* code2 = new(ELeave) CTmCode; @@ -86,7 +85,7 @@ code2->AppendNumberL(2); code->ChangeL(0, 1, *code2); reader.SetCodePos(0); - test(reader.ReadNumber() == 1 && reader.ReadNumber() == 1 && reader.ReadNumber() == 2 && reader.ReadNumber() == 63); + TEST(reader.ReadNumber() == 1 && reader.ReadNumber() == 1 && reader.ReadNumber() == 2 && reader.ReadNumber() == 63); // Testcase 8 - Insert 1000 numbers, then read them size = code->Size(); @@ -95,18 +94,18 @@ code->AppendNumberL(ii); reader.SetCodePos(size); for (ii = 0; ii < 1000; ii++) - test(reader.ReadNumber() == ii); + TEST(reader.ReadNumber() == ii); // Testcase 9 - Insert number at position 42 (1st segment), then reader to 42 and read number code->InsertNumberL(4242, 42); reader.SetCodePos(42); - test(reader.ReadNumber() == 4242); + TEST(reader.ReadNumber() == 4242); // Testcase 10 - Insert number so it spans a segment boundary, check it reads back OK num = -1234567; code->InsertNumberL(num, 511); reader.SetCodePos(511); - test(reader.ReadNumber() == num); + TEST(reader.ReadNumber() == num); // Testcase 11 - ChangeL using a range that spans a segment boundary code->InsertByteL(0x11, 515); @@ -116,24 +115,12 @@ code->ChangeL(510, 515, *code2); TTmCodeReader reader2(*code, 0, 0x7FFFFFFF); reader2.SetCodePos(510); - test(reader2.ReadNumber() == static_cast(0xabababab)); - test(reader2.ReadByte() == static_cast(0x11)); - - + TEST(reader2.ReadNumber() == static_cast(0xabababab)); + TEST(reader2.ReadByte() == static_cast(0x11)); CleanupStack::PopAndDestroy(code2); CleanupStack::PopAndDestroy(code); + + return TestStepResult(); } - -TInt E32Main() - { - TrapCleanup = CTrapCleanup::New(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FORM-LEGACY-TTMCODE-0001 CTmCode tests ")); - TRAPD(err, RunTestsL()); - test(err == KErrNone); - test.End(); - test.Close(); - delete TrapCleanup; - return 0; - } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/TTmSource.cpp --- a/textrendering/textformatting/test/src/TTmSource.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/textformatting/test/src/TTmSource.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -24,10 +24,18 @@ #include "TAGMA_INTERNAL.H" #endif +#include "ttmsource.h" + + #define UNUSED_VAR(a) a = a -CTrapCleanup* TrapCleanup; -RTest test(_L("TTmSource - MTmSource tests")); +namespace LocalToTTmSource +{ +CTTmSourceStep* TestStep = NULL; +#define TESTPOINT(p) TestStep->testpoint(p,(TText8*)__FILE__,__LINE__) +#define TESTPRINT(p) TestStep->print(p,(TText8*)__FILE__,__LINE__) +} +using namespace LocalToTTmSource; class TTestGraphicsDeviceMap : public MGraphicsDeviceMap { @@ -55,12 +63,12 @@ ++iRequestCount; if (aBeforePicture) { - test(aClass == iClassBefore); - test(aHaveSpaces == iSpacesBefore); + TESTPOINT(aClass == iClassBefore); + TESTPOINT(aHaveSpaces == iSpacesBefore); return iResultBefore; } - test(aClass == iClassAfter); - test(aHaveSpaces == iSpacesAfter); + TESTPOINT(aClass == iClassAfter); + TESTPOINT(aHaveSpaces == iSpacesAfter); return iResultAfter; } // expected parameters for LineBreakPossible @@ -132,15 +140,15 @@ if (ELineBreakClasses <= first && first < ELineBreakClasses + 10) { ++customCount; - test(first - ELineBreakClasses + '0' == FindNextCustomClass()); + TESTPOINT(first - ELineBreakClasses + '0' == FindNextCustomClass()); TInt countSpaces = CountSpaces(); - test(!aHaveSpaces == !countSpaces); + TESTPOINT(!aHaveSpaces == !countSpaces); } if (ELineBreakClasses <= second && second < ELineBreakClasses + 10) { ++customCount; TInt c = FindNextCustomClass(); - test(second - ELineBreakClasses + '0' == c); + TESTPOINT(second - ELineBreakClasses + '0' == c); } if (0 == customCount) return MTmSource::LineBreakPossible(aPrevClass, aNextClass, aHaveSpaces); @@ -161,12 +169,12 @@ const TDesC& aText, TInt aMinBreakPos, TInt aMaxBreakPos, TBool aForwards,TInt& aBreakPos) const { - test (iDirection == (aForwards? 1 : -1)); + TESTPOINT (iDirection == (aForwards? 1 : -1)); // The allowable break-points should not include the first // and last characters of the run. - test (aMinBreakPos != 0); + TESTPOINT (aMinBreakPos != 0); for (TInt i = aMinBreakPos - 1; i <= aMaxBreakPos; ++i) - test('@' == aText[i]); + TESTPOINT('@' == aText[i]); ++iSaRequestCount; aBreakPos = iText->Ptr() + iSaBreakpoint - aText.Ptr(); return aMinBreakPos <= aBreakPos && aBreakPos <= aMaxBreakPos; @@ -175,7 +183,7 @@ virtual TBool IsHangingCharacter(TUint aChar) const { ++iHangingCharRequestCount; - test(aChar == (*iText)[iMaxBreakPos]); + TESTPOINT(aChar == (*iText)[iMaxBreakPos]); if (!iHangingChar) return EFalse; if (iDirection < 0) @@ -200,33 +208,33 @@ aBreakPos, aHangingChars, aBreakPosAfterSpaces); if (r) { - test(aMinBreakPos <= aBreakPos); - test(0 < aBreakPos); - test(aBreakPos <= aHangingChars); - test(aHangingChars <= aBreakPosAfterSpaces); - test(aBreakPos <= aMaxBreakPos); - test(aHangingChars == aBreakPos || iHangingChar); + TESTPOINT(aMinBreakPos <= aBreakPos); + TESTPOINT(0 < aBreakPos); + TESTPOINT(aBreakPos <= aHangingChars); + TESTPOINT(aHangingChars <= aBreakPosAfterSpaces); + TESTPOINT(aBreakPos <= aMaxBreakPos); + TESTPOINT(aHangingChars == aBreakPos || iHangingChar); // If the direction was backwards, the algorithm should have // checked if a hanging character was allowed. // This condition could be relaxed to allow it not to be checked // if there is no break allowed between the possible hanging // character and the previous character. - test(!aForwards || aText.Length() == aMaxBreakPos + TESTPOINT(!aForwards || aText.Length() == aMaxBreakPos || 0 < iHangingCharRequestCount); // If the maximum break point was chosen or exceeded, the algorithm // should have checked to find out whether a hanging character is // allowed. - test(aHangingChars < aMaxBreakPos + TESTPOINT(aHangingChars < aMaxBreakPos || 0 < iHangingCharRequestCount); // Check that only spaces exist between aHangingChars and // aMaxBreakPos for (TInt i = aHangingChars; i != aBreakPosAfterSpaces; ++i) { TUint n; - test(ESpLineBreakClass == LineBreakClass(aText[i], n, n)); + TESTPOINT(ESpLineBreakClass == LineBreakClass(aText[i], n, n)); } // Check that all the spaces were counted - test(aBreakPosAfterSpaces == aText.Length() + TESTPOINT(aBreakPosAfterSpaces == aText.Length() || aText[aBreakPosAfterSpaces] != ' '); } // Find out how many runs of two or more Sa there are, and check that @@ -246,7 +254,7 @@ maxChecked = aText.Length(); TInt runs = 0; TInt sasSoFar = 0; - test (maxChecked - minChecked < 2 + TESTPOINT (maxChecked - minChecked < 2 || aText[minChecked] != '@' || aText[minChecked + 1] != '@' || !aForwards @@ -264,8 +272,8 @@ } if (1 < sasSoFar) ++runs; - test(sasSoFar < 2 || aForwards || aHangingChars == iSaBreakpoint); - test(runs == iSaRequestCount); + TESTPOINT(sasSoFar < 2 || aForwards || aHangingChars == iSaBreakpoint); + TESTPOINT(runs == iSaRequestCount); return r; } @@ -332,57 +340,54 @@ b1 : -1; } -void RunTests() +CTTmSourceStep::CTTmSourceStep() + { + + } + + +TVerdict CTTmSourceStep::doTestStepL() { - test.Title(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FORM-LEGACY-TTMSOURCE-0001 Line-Break Tests: ")); + SetTestStepResult(EPass); + TestStep = this; + TESTPRINT(_L("TTmSource - MTmSource tests")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORM-LEGACY-TTMSOURCE-0001 Line-Break Tests: ")); - test(-1 == TestLineBreak(_L(""), 0, 0, 0, 0, 0)); - test(-1 == TestLineBreak(_L("5"), 0, 0, 0, 0, 0)); - test(-1 == TestLineBreak(_L("5"), 0, 0, 0, 0, 1)); - test(-1 == TestLineBreak(_L("@"), 1, 0, 0, 0, 0)); - test(1 == TestLineBreak(_L("a b"), 0, 0, 0, 0, 0)); - test(-1 == TestLineBreak(_L("0 0 0 9 9"), 0, 0, 0, 0, 0)); - test(-1 == TestLineBreak(_L("0 0 0 9 9"), 0, 0, 0, 0, 1)); - test(9 == TestLineBreak(_L("4242454445"), 0, 0, 0, 0, 0)); - test(5 == TestLineBreak(_L("4242454445"), 0, 0, 0, 0, 1)); - test(5 == TestLineBreak(_L("hello there"), 0, 0, 0, 0, 0)); - test(5 == TestLineBreak(_L("hello there"), 0, 0, 0, 0, 1)); - test(-1 == TestLineBreak(_L("hel the re"), 0, 0, 5, 7, 0)); - test(-1 == TestLineBreak(_L("hel the re"), 0, 0, 5, 7, 1)); - test(8 == TestLineBreak(_L("hel the re"), 0, 1, 5, 7, 0)); - test(8 == TestLineBreak(_L("hel the re"), 0, 1, 6, 7, 1)); - test(3 == TestLineBreak(_L("@@@@@"), 3, 0, 0, 0, 0)); - test(3 == TestLineBreak(_L("@@@@@"), 3, 0, 0, 0, 1)); - test(5 == TestLineBreak(_L("9999@@@@@00099@@@@gfra"), 5, 0, 5, 0, 0)); - test(5 == TestLineBreak(_L("9999@@@@@00099@@@@gfra"), 5, 0, 5, 0, 1)); - test(16 == TestLineBreak(_L("9999@@@@@00099@@@@gfra"), 16, 0, 0, 0, 0)); - test(16 == TestLineBreak(_L("9999@@@@@00099@@@@gfra"), 16, 0, 0, 0, 1)); - test(5 == TestLineBreak(_L("55@@@55"), 0, 0, 0, 0, 0)); - test(2 == TestLineBreak(_L("55@@@55"), 0, 0, 0, 0, 1)); - test(3 == TestLineBreak(_L("55@55"), 0, 0, 0, 0, 0)); - test(2 == TestLineBreak(_L("55@55"), 0, 0, 0, 0, 1)); + TEST(-1 == TestLineBreak(_L(""), 0, 0, 0, 0, 0)); + TEST(-1 == TestLineBreak(_L("5"), 0, 0, 0, 0, 0)); + TEST(-1 == TestLineBreak(_L("5"), 0, 0, 0, 0, 1)); + TEST(-1 == TestLineBreak(_L("@"), 1, 0, 0, 0, 0)); + TEST(1 == TestLineBreak(_L("a b"), 0, 0, 0, 0, 0)); + TEST(-1 == TestLineBreak(_L("0 0 0 9 9"), 0, 0, 0, 0, 0)); + TEST(-1 == TestLineBreak(_L("0 0 0 9 9"), 0, 0, 0, 0, 1)); + TEST(9 == TestLineBreak(_L("4242454445"), 0, 0, 0, 0, 0)); + TEST(5 == TestLineBreak(_L("4242454445"), 0, 0, 0, 0, 1)); + TEST(5 == TestLineBreak(_L("hello there"), 0, 0, 0, 0, 0)); + TEST(5 == TestLineBreak(_L("hello there"), 0, 0, 0, 0, 1)); + TEST(-1 == TestLineBreak(_L("hel the re"), 0, 0, 5, 7, 0)); + TEST(-1 == TestLineBreak(_L("hel the re"), 0, 0, 5, 7, 1)); + TEST(8 == TestLineBreak(_L("hel the re"), 0, 1, 5, 7, 0)); + TEST(8 == TestLineBreak(_L("hel the re"), 0, 1, 6, 7, 1)); + TEST(3 == TestLineBreak(_L("@@@@@"), 3, 0, 0, 0, 0)); + TEST(3 == TestLineBreak(_L("@@@@@"), 3, 0, 0, 0, 1)); + TEST(5 == TestLineBreak(_L("9999@@@@@00099@@@@gfra"), 5, 0, 5, 0, 0)); + TEST(5 == TestLineBreak(_L("9999@@@@@00099@@@@gfra"), 5, 0, 5, 0, 1)); + TEST(16 == TestLineBreak(_L("9999@@@@@00099@@@@gfra"), 16, 0, 0, 0, 0)); + TEST(16 == TestLineBreak(_L("9999@@@@@00099@@@@gfra"), 16, 0, 0, 0, 1)); + TEST(5 == TestLineBreak(_L("55@@@55"), 0, 0, 0, 0, 0)); + TEST(2 == TestLineBreak(_L("55@@@55"), 0, 0, 0, 0, 1)); + TEST(3 == TestLineBreak(_L("55@55"), 0, 0, 0, 0, 0)); + TEST(2 == TestLineBreak(_L("55@55"), 0, 0, 0, 0, 1)); // Test for DEF046468, which was caused by the TLineBreakIterator constructor accessing past the end of a string - test.Next(_L("Line-Break DEF046468 Test:")); + TESTPRINT(_L("Line-Break DEF046468 Test:")); // Create a string of 16 chars with a picture code at the 17th position _LIT(KLarsString, "dolor sit amet, \xFFFC"); // Create a TPtrC for the 16 character string ( with the picture code after the string in memory ) TBufC<20> KTestBuffer(KLarsString); TPtrC KTestString( reinterpret_cast(KTestBuffer.Ptr()), 16); // Test the iterator overrun. If iterator accesses past the end of the array, it'll get picture code and crash - test(9 == TestLineBreak(KTestString,0,0,1,15,0)); - - test.End(); - test.Close(); - + TEST(9 == TestLineBreak(KTestString,0,0,1,15,0)); + + return TestStepResult(); } - -TInt E32Main() - { - TrapCleanup = CTrapCleanup::New(); - TRAPD(err, RunTests()); - test(err == KErrNone); - delete TrapCleanup; - return 0; - } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/TUndo.cpp --- a/textrendering/textformatting/test/src/TUndo.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/textformatting/test/src/TUndo.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -35,14 +35,17 @@ #include "txtfmlyr_internal.h" #endif +#include "tundo.h" + #define UNUSED_VAR(a) a = a using namespace UndoSystem; namespace { -CTrapCleanup* TrapCleanup; -RTest test(_L("TUndo - Undo system")); +CTUndoStep* TestStep = NULL; +#define TESTPOINT(p) TestStep->testpoint(p,(TText8*)__FILE__,__LINE__) +#define TESTPRINT(p) TestStep->print(p,(TText8*)__FILE__,__LINE__) } // @@ -1220,7 +1223,7 @@ CSingleCommand* single = a.Top()->Single(); if (!single) { - test.Printf(_L("CCommandStack : stack unexpectedly contained batches")); + TESTPRINT(_L("CCommandStack : stack unexpectedly contained batches")); a.Reset(); return 1; } @@ -1234,14 +1237,14 @@ { if (a.Passed()) return 0; - test.Printf(_L("CCommandStack... : log failed")); + TESTPRINT(_L("CCommandStack... : log failed")); return 1; } TInt CheckTop(CCommandStack& aStack, CCommand* aTop) { if (aStack.Top() != aTop) { - test.Printf(_L("CCommandStack : unexpected item at top of stack")); + TESTPRINT(_L("CCommandStack : unexpected item at top of stack")); return 1; } return 0; @@ -1250,7 +1253,7 @@ { if (aStack.Count() != aExpectedCount) { - test.Printf(_L("CCommandStack : stack an unexpected size")); + TESTPRINT(_L("CCommandStack : stack an unexpected size")); return 1; } return 0; @@ -1260,7 +1263,7 @@ CCommand* check = aStack.Top(); if (aStack.Pop() != check) { - test.Printf(_L("CCommandStack : Pop() does not match Top()")); + TESTPRINT(_L("CCommandStack : Pop() does not match Top()")); return 1; } return 0; @@ -1392,21 +1395,21 @@ single->ExecuteL(); if (a.Pop() != single) { - test.Printf(_L("CBatchCommand : Pop() didn't match Top()")); - test(0); + TESTPRINT(_L("CBatchCommand : Pop() didn't match Top()")); + TESTPOINT(0); } delete single; } - test(1); + TESTPOINT(1); } void CheckTop(CBatchCommand& aBatch, CCommand* aTop) { if (aBatch.Top() != aTop) { - test.Printf(_L("CCommandBatch : unexpected item at top of stack")); - test(0); + TESTPRINT(_L("CCommandBatch : unexpected item at top of stack")); + TESTPOINT(0); } - test(1); + TESTPOINT(1); } void TestCBatchCommandL() { @@ -1531,7 +1534,7 @@ else { CBatchCommand* batch = aHistory.Top()->Batch(); - test(batch != 0); + TESTPOINT(batch != 0); aLog << _L("batch{"); ExecuteBatchL(*batch); aLog << _L("}"); @@ -1606,41 +1609,41 @@ { if (aMan.CanUndo()) { - test(1); + TESTPOINT(1); return; } - test.Printf(_L("CCommandManager : unexpectedly could not undo")); - test(0); + TESTPRINT(_L("CCommandManager : unexpectedly could not undo")); + TESTPOINT(0); } void TestCanRedo(const CCommandManager& aMan) { if (aMan.CanRedo()) { - test(1); + TESTPOINT(1); return; } - test.Printf(_L("CCommandManager : unexpectedly could not redo")); - test(0); + TESTPRINT(_L("CCommandManager : unexpectedly could not redo")); + TESTPOINT(0); } void TestCannotUndo(const CCommandManager& aMan) { if (!aMan.CanUndo()) { - test(1); + TESTPOINT(1); return; } - test.Printf(_L("CCommandManager : unexpectedly could undo")); - test(0); + TESTPRINT(_L("CCommandManager : unexpectedly could undo")); + TESTPOINT(0); } void TestCannotRedo(const CCommandManager& aMan) { if (!aMan.CanRedo()) { - test(1); + TESTPOINT(1); return; } - test.Printf(_L("CCommandManager : unexpectedly could undo")); - test(0); + TESTPRINT(_L("CCommandManager : unexpectedly could undo")); + TESTPOINT(0); } void SetUpTestL(CCommandManager& aMan, CSingleCommand& aCommand, TInt* aTarget, CLogger* aLogger) { @@ -1669,9 +1672,9 @@ if (aErr == aExpected) return 0; if (aErr == KErrNone) - test.Printf(_L("CCommandManager : no leave where one was expected")); + TESTPRINT(_L("CCommandManager : no leave where one was expected")); else - test.Printf(_L("CCommandManager : unexpected leave code")); + TESTPRINT(_L("CCommandManager : unexpected leave code")); return 1; } void TestCCommandManagerL() @@ -1996,11 +1999,11 @@ { if (a.Passed()) { - test(1); + TESTPOINT(1); return; } - test.Printf(_L("EditorUndo : log failed")); - test(0); + TESTPRINT(_L("EditorUndo : log failed")); + TESTPOINT(0); } void TestPlainText(CTestEditor& aTestEditor, MUnifiedEditor& aUndoEditor, @@ -2792,16 +2795,16 @@ styleLog2 = log->GetStore(); if (retval != KErrNone) { - test.Printf(_L("EditorUndo : apply style failed")); - test(0); + TESTPRINT(_L("EditorUndo : apply style failed")); + TESTPOINT(0); } TPtrC testStyleName; TInt testStyleRunLength; ed->StyleSupport()->GetStyle(1, testStyleName, testStyleRunLength); if (testStyleRunLength != 3 || testStyleName != style1.iName) { - test.Printf(_L("EditorUndo : apply style failed")); - test(0); + TESTPRINT(_L("EditorUndo : apply style failed")); + TESTPOINT(0); } ed->InsertTextL(5, _L(","), &style1.iName, 0, 0); testEd->Print(*log); @@ -2832,14 +2835,14 @@ styleLog10 = log->GetStore(); if (retval != KErrNone) { - test.Printf(_L("EditorUndo : rename style failed")); - test(0); + TESTPRINT(_L("EditorUndo : rename style failed")); + TESTPOINT(0); } ed->StyleSupport()->GetStyle(1, testStyleName, testStyleRunLength); if (testStyleRunLength != 1 || testStyleName != style1.iName) { - test.Printf(_L("EditorUndo : rename or apply style failed")); - test(0); + TESTPRINT(_L("EditorUndo : rename or apply style failed")); + TESTPOINT(0); } ed->StyleSupport()->RenameStyleL(_L("title"), _L("zip")); style2.iName = _L("zip"); @@ -3169,82 +3172,82 @@ // in the way. if (i == 5) { - test(manager->IsAtBookmark()); + TESTPOINT(manager->IsAtBookmark()); check->SetCheckString(*bookMarkLog4); testEd->Print(*check); CheckEditorLog(*check); ed->UndoL(); } if (i == 4) - test(manager->IsAtBookmark()); + TESTPOINT(manager->IsAtBookmark()); else - test(!manager->IsAtBookmark()); + TESTPOINT(!manager->IsAtBookmark()); check->SetCheckString(*bookMarkLog3); testEd->Print(*check); CheckEditorLog(*check); ed->UndoL(); if (i == 2) - test(manager->IsAtBookmark()); + TESTPOINT(manager->IsAtBookmark()); else - test(!manager->IsAtBookmark()); + TESTPOINT(!manager->IsAtBookmark()); check->SetCheckString(*bookMarkLog2); testEd->Print(*check); CheckEditorLog(*check); ed->UndoL(); if (i == 1) - test(manager->IsAtBookmark()); + TESTPOINT(manager->IsAtBookmark()); else - test(!manager->IsAtBookmark()); + TESTPOINT(!manager->IsAtBookmark()); check->SetCheckString(*bookMarkLog1); testEd->Print(*check); CheckEditorLog(*check); ed->UndoL(); if (i == 0) - test(manager->IsAtBookmark()); + TESTPOINT(manager->IsAtBookmark()); else - test(!manager->IsAtBookmark()); + TESTPOINT(!manager->IsAtBookmark()); check->SetCheckString(*bookMarkLog0); testEd->Print(*check); CheckEditorLog(*check); - test(!ed->CanUndo()); + TESTPOINT(!ed->CanUndo()); ed->RedoL(); if (i == 1) - test(manager->IsAtBookmark()); + TESTPOINT(manager->IsAtBookmark()); else - test(!manager->IsAtBookmark()); + TESTPOINT(!manager->IsAtBookmark()); check->SetCheckString(*bookMarkLog1); testEd->Print(*check); CheckEditorLog(*check); ed->RedoL(); if (i == 2) - test(manager->IsAtBookmark()); + TESTPOINT(manager->IsAtBookmark()); else - test(!manager->IsAtBookmark()); + TESTPOINT(!manager->IsAtBookmark()); check->SetCheckString(*bookMarkLog2); testEd->Print(*check); CheckEditorLog(*check); ed->RedoL(); if (i == 4) - test(manager->IsAtBookmark()); + TESTPOINT(manager->IsAtBookmark()); else - test(!manager->IsAtBookmark()); + TESTPOINT(!manager->IsAtBookmark()); check->SetCheckString(*bookMarkLog3); testEd->Print(*check); CheckEditorLog(*check); ed->RedoL(); if (i == 5) { - test(manager->IsAtBookmark()); + TESTPOINT(manager->IsAtBookmark()); check->SetCheckString(*bookMarkLog4); testEd->Print(*check); CheckEditorLog(*check); ed->RedoL(); } - test(!ed->CanRedo()); + TESTPOINT(!ed->CanRedo()); if (i == 6) - test(manager->IsAtBookmark()); + TESTPOINT(manager->IsAtBookmark()); else - test(!manager->IsAtBookmark()); + TESTPOINT(!manager->IsAtBookmark()); delete bookMarkLog0; delete bookMarkLog1; @@ -3437,8 +3440,8 @@ TTmCharFormat charB1; RTmParFormat parT1; ed0->GetBaseFormatL(charB1,parT1); - test(charB1==charB); - test(parT1==parT); + TESTPOINT(charB1==charB); + TESTPOINT(parT1==parT); //Getting the character format TTmCharFormatLayer charLayer1; @@ -3453,7 +3456,7 @@ //Getting the text TPtrC text; ed0->GetText(0,text); - test(text==_L("a")); + TESTPOINT(text==_L("a")); //Deleting the formating ed0->DeleteCharFormatL(0,1); @@ -3541,13 +3544,15 @@ // // -void RunTests() +TVerdict CTUndoStep::doTestStepL() { - __UHEAP_MARK; - - test.Title(); - test.Start(_L("@SYMTestCaseID:SYSLIB-FORM-LEGACY-UNDO-0001 Undo System Tests: ")); - + SetTestStepResult(EPass); + TestStep = this; + TESTPRINT(_L("TUndo - Undo system")); + + __UHEAP_MARK; + TESTPRINT(_L("@SYMTestCaseID:SYSLIB-FORM-LEGACY-UNDO-0001 Undo System Tests: ")); + // test of general undo system components TestCCommandStackL(); TestCBatchCommandL(); @@ -3560,17 +3565,8 @@ // test that command manager and multiple editors integrate correctly TestMultipleEditorsL(); - test.End(); - test.Close(); - __UHEAP_MARKENDC(0); + + return TestStepResult(); } -TInt E32Main() - { - TrapCleanup = CTrapCleanup::New(); - TRAPD(err, RunTests()); - test(err == KErrNone); - delete TrapCleanup; - return 0; - } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/TUnique.cpp --- a/textrendering/textformatting/test/src/TUnique.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/textformatting/test/src/TUnique.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -19,6 +19,7 @@ #include "UniqueInstanceImpl.h" #include +#include "tunique.h" using namespace UniqueInstance; @@ -46,8 +47,9 @@ } void DeleteTInt(TInt* a) { delete a; } -CTrapCleanup* TrapCleanup; -RTest test(_L("TUnique - Unique instance repository tests")); +CTUniqueStep* TestStep; +#define TESTPOINT(p) TestStep->testpoint(p,(TText8*)__FILE__,__LINE__) +#define TESTPRINT(p) TestStep->print(p,(TText8*)__FILE__,__LINE__) } ///////////////// @@ -62,7 +64,7 @@ { if (!a.IsEmpty()) { - test.Printf(_L("RSkipList : unexpectedly has elements")); + TESTPRINT(_L("RSkipList : unexpectedly has elements")); return 1; } return 0; @@ -74,12 +76,12 @@ e = a.AddNewL(aElt); if (CompareVoids(e->iObject,aElt)) { - test.Printf(_L("RSkipList : added element does not compare equal to returned value")); + TESTPRINT(_L("RSkipList : added element does not compare equal to returned value")); return 1; } if (e->iRefCount != aExpectedRefCount) { - test.Printf(_L("RSkipList : unexpected reference count")); + TESTPRINT(_L("RSkipList : unexpected reference count")); return 1; } return 0; @@ -88,7 +90,7 @@ { if (CompareVoids(a.Remove(aElt), aElt)) { - test.Printf(_L("RSkipList : removed element does not compare equal to returned value")); + TESTPRINT(_L("RSkipList : removed element does not compare equal to returned value")); return 1; } return 0; @@ -516,12 +518,12 @@ { if (!e->iObject) { - test.Printf(_L("CRepositoryImpl : object undefined")); + TESTPRINT(_L("CRepositoryImpl : object undefined")); return 1; } if (*reinterpret_cast(e->iObject) != val) { - test.Printf(_L("CRepositoryImpl : object has wrong value")); + TESTPRINT(_L("CRepositoryImpl : object has wrong value")); return 1; } return 0; @@ -550,9 +552,9 @@ delete z; // test equal objects are nullified - test(zui->iObject == z2ui->iObject); - test(zui->iObject == z0ui->iObject); - test(zui->iObject == z3ui->iObject); + TESTPOINT(zui->iObject == z2ui->iObject); + TESTPOINT(zui->iObject == z0ui->iObject); + TESTPOINT(zui->iObject == z3ui->iObject); rep->DeleteOrDec(z0ui); rep->DeleteOrDec(z3ui); @@ -571,10 +573,10 @@ rep->DeleteOrDec(p8765ui); // test that copyable objects are not aliased - test(z != z2); + TESTPOINT(z != z2); // test that a valid copy is returned - test(*z == 0); - test(*z2 == 0); + TESTPOINT(*z == 0); + TESTPOINT(*z2 == 0); delete z; delete z2; @@ -598,7 +600,7 @@ { if (a.Peek()) { - test.Printf(_L("RUniqueInstance : null object has value")); + TESTPRINT(_L("RUniqueInstance : null object has value")); return 1; } return 0; @@ -607,12 +609,12 @@ { if (!a.Peek()) { - test.Printf(_L("RUniqueInstance : unexpected null object")); + TESTPRINT(_L("RUniqueInstance : unexpected null object")); return 1; } if (*a.Peek() != val) { - test.Printf(_L("RUniqueInstance : object has wrong value")); + TESTPRINT(_L("RUniqueInstance : object has wrong value")); return 1; } return 0; @@ -621,12 +623,12 @@ { if (!ob) { - test.Printf(_L("RUniqueInstance : object unexpectedly does not own")); + TESTPRINT(_L("RUniqueInstance : object unexpectedly does not own")); return 1; } if (*ob != val) { - test.Printf(_L("RUniqueInstance : object owns incorrect value")); + TESTPRINT(_L("RUniqueInstance : object owns incorrect value")); return 1; } return 0; @@ -647,7 +649,7 @@ c.TakeL(new(ELeave) TInt(45)); // test that equal elements are unified - test(a.Peek() == c.Peek()); + TESTPOINT(a.Peek() == c.Peek()); TestValue(a, 45); TestValue(b, -6); @@ -727,22 +729,22 @@ e.TakeL(new(ELeave) TInt(18)); // test that equal objects are unified - test(a.Peek() == e.Peek()); + TESTPOINT(a.Peek() == e.Peek()); d.TakeL(new(ELeave) TInt(-445)); // test that equal objects are unified - test(b.Peek() == d.Peek()); + TESTPOINT(b.Peek() == d.Peek()); a.TakeL(new(ELeave) TInt(-445)); // test that objects from different repositories are not unified - test(a.Peek() != b.Peek()); + TESTPOINT(a.Peek() != b.Peek()); a.Close(); // test that destroyed object peeks null - test(a.Peek() == 0); + TESTPOINT(a.Peek() == 0); b.MoveTo(c); b.Close(); @@ -764,27 +766,16 @@ // // //////////// -void RunTests() +TVerdict CTUniqueStep::doTestStepL() { - __UHEAP_MARK; - test.Title(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-FORM-LEGACY-UNIQUE-0001 Unique Instance Tests: ")); + SetTestStepResult(EPass); + TestStep = this; + TESTPRINT(_L("TUnique - Unique instance repository tests")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORM-LEGACY-UNIQUE-0001 Unique Instance Tests: ")); TestRSkipListL(); TestCRepositoryImplL(); TestRUniqueInstanceL(); - test.End(); - test.Close(); - - __UHEAP_MARKENDC(0); + return TestStepResult(); } - -TInt E32Main() - { - TrapCleanup = CTrapCleanup::New(); - TRAPD(err, RunTests()); - test(err == KErrNone); - delete TrapCleanup; - return 0; - } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/tbidicursorpos.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/tbidicursorpos.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,50 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + + +#ifndef TBIDICURSORPOS_H_ +#define TBIDICURSORPOS_H_ + +#include +#include + +class CTBidiCursorPosStep : public CTestStep + { +public: + CTBidiCursorPosStep(){}; + void print(const TDesC& aBuf, const TText8* text, int line); + void testpoint(TBool aCondition, const TText8* text, int line ); +protected: + TVerdict doTestStepL(); + }; + +inline void CTBidiCursorPosStep::print(const TDesC& aBuf, const TText8* text, int line) + { + Logger().LogExtra((text), line, ESevrInfo, (aBuf)); + } + +inline void CTBidiCursorPosStep::testpoint(TBool aCondition, const TText8* text, int line ) + { + testBooleanTrue((aCondition), text, line); + } + +_LIT(KTestStep_T_BidiCursorPos, "T_BidiCursorPos"); + + +#endif /* TBIDICURSORPOS_H_ */ diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/tcustomcharmapping.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/tcustomcharmapping.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,67 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + + +#ifndef TCUSTOMCHARMAPPING_H_ +#define TCUSTOMCHARMAPPING_H_ + +#include + +namespace LocalToTCustomCharMapping + { + _LIT(KTCustomCharMapping, "TCustomCharMapping"); + const TInt KDisplayWidth = 202; + const TInt KDisplayHeight = 100; + const TInt KPictureCharacter = 0xFFFC; + + enum TTestNum + { + EDefaultBehaviourInvisible = 0, + EDefaultBehaviourVisible = 1, + ECustomRemappingInvisible = 2, + ECustomRemappingVisible = 3, + ENewTest = 4 + //Test remapping with no custom remapper and some flags explicitly set to invisible + }; + } + +class CTextLayout; +class CTestGraphicsDevice; +class CTextView; + +class CTCustomCharMappingStep : public CTestStep + { +public: + CTCustomCharMappingStep(); +protected: + TVerdict doTestStepL(); + +private: + + void DoTestL(TDes& aText, CTextLayout* /*aLayout*/, CTestGraphicsDevice* aDevice, CTextView* aView, LocalToTCustomCharMapping::TTestNum aTestNum); + void RunInstallationTestsL(); + void RunDefaultBehaviourTestsL(); + void RunCustomBehaviourTestsL(); + + }; + +_LIT(KTestStep_T_CustomCharMapping, "T_CustomCharMapping"); + + +#endif /* TCUSTOMCHARMAPPING_H_ */ diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/tformat.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/tformat.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,48 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + +#ifndef TFORMAT_H_ +#define TFORMAT_H_ + +#include +#include + +class CTFormatStep : public CTestStep + { +public: + CTFormatStep(){}; + void print(const TDesC& aBuf, const TText8* text, int line); + void testpoint(TBool aCondition, const TText8* text, int line); +protected: + TVerdict doTestStepL(); + }; + +inline void CTFormatStep::print(const TDesC& aBuf, const TText8* text, int line) + { + Logger().LogExtra((text), line, ESevrInfo, (aBuf)); + } + +inline void CTFormatStep::testpoint(TBool aCondition, const TText8* text, int line ) + { + testBooleanTrue((aCondition), text, line); + } + +_LIT(KTestStep_T_Format, "T_Format"); + +#endif /* TFORMAT_H_ */ diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/tformbenchmark.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/tformbenchmark.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,48 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + +#ifndef TFORMBENCHMARK_H_ +#define TFORMBENCHMARK_H_ + +#include +#include + +class CTFormBenchmarkStep : public CTestStep + { +public: + CTFormBenchmarkStep(){}; + void print(const TDesC& aBuf, const TText8* text, int line); + void testpoint(TBool aCondition, const TText8* text, int line ); +protected: + TVerdict doTestStepL(); + }; + +inline void CTFormBenchmarkStep::print(const TDesC& aBuf, const TText8* text, int line) + { + Logger().LogExtra((text), line, ESevrInfo, (aBuf)); + } + +inline void CTFormBenchmarkStep::testpoint(TBool aCondition, const TText8* text, int line ) + { + testBooleanTrue((aCondition), text, line); + } + +_LIT(KTestStep_T_FormBenchmark, "T_FormBenchmark"); + +#endif /* TFORMBENCHMARK_H_ */ diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/tformhindi.cpp --- a/textrendering/textformatting/test/src/tformhindi.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/textformatting/test/src/tformhindi.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -27,17 +27,21 @@ #include #include #include +#include "tformhindi.h" -namespace LocalToFile { +namespace LocalToTFormHindi { _LIT(KTformhindi, "tformhindi"); const TInt KDisplayWidth = 100; const TInt KDisplayHeight = 100; -RTest test(KTformhindi); _LIT(KDevanagariFontName, "Devanagari OT Eval"); +CTFormHindiStep* TestStep = NULL; +#define TESTPOINT(p) TestStep->testpoint(p,(TText8*)__FILE__,__LINE__) +#define TESTPRINT(p) TestStep->print(p,(TText8*)__FILE__,__LINE__) + } -using namespace LocalToFile; +using namespace LocalToTFormHindi; _LIT(KTestDeva, "|\x915\x94d\x92b|\x907|\x920\x94d\x920|"); _LIT(KTestBidi, "|\x915|\x644|\x920|"); @@ -82,16 +86,16 @@ { aTextView->SetDocPosL(positions[j], EFalse); TInt pos = aTextView->GetForwardDeletePositionL().HigherPos(); - test(pos == positions[j + 1]); + TESTPOINT(pos == positions[j + 1]); aTextView->SetDocPosL(positions[j], ETrue); pos = aTextView->GetForwardDeletePositionL().HigherPos(); - test(pos == positions[j + 1]); + TESTPOINT(pos == positions[j + 1]); aTextView->SetDocPosL(positions[j + 1], EFalse); pos = aTextView->GetBackwardDeletePositionL().LowerPos(); - test(pos == positions[j]); + TESTPOINT(pos == positions[j]); aTextView->SetDocPosL(positions[j + 1], ETrue); pos = aTextView->GetBackwardDeletePositionL().LowerPos(); - test(pos == positions[j]); + TESTPOINT(pos == positions[j]); } aRichText->Reset(); @@ -151,13 +155,13 @@ // the first chunk with a LZW should be equal to iLeftChunk if (0 == iChunk) { - test(text == iLeftChunk); + TESTPOINT(text == iLeftChunk); iChunk++; } // the following chunk should be equal to iRightChunk, if it is not-null. else if (1 == iChunk && iRightChunk.Size() > 0) { - test(text == iRightChunk); + TESTPOINT(text == iRightChunk); iChunk++; } // just ignore the following chunks @@ -273,25 +277,24 @@ CTextView* aTextView) { // Test devanagari delete-by-syllable - test.Start(_L(" @SYMTestCaseID:SYSLIB-FORM-UT-1532 Test some simple Hindi ")); + TESTPRINT(_L(" @SYMTestCaseID:SYSLIB-FORM-UT-1532 Test some simple Hindi ")); TestDeletePosition(KTestDeva, aRichText, aTextView); // Test Bidi // The Arabic character is not present in this font, not even // as a fallback glyph. This allows us to exercise a fixes for // a latent defect. - test.Next(_L("Test with characters not in font")); + TESTPRINT(_L("Test with characters not in font")); TestDeletePosition(KTestBidi, aRichText, aTextView); // Test sample suggested by customer - test.Next(_L("Test Hindi #2")); + TESTPRINT(_L("Test Hindi #2")); TestDeletePosition(KTestDeva2, aRichText, aTextView); // regression test for PDEF101617: FORM always splits chunks at ZWJ character - test.Next(_L("Regression test: PDEF101617")); + TESTPRINT(_L("Regression test: PDEF101617")); PDEF_101617_DefectL(aRichText, aTextView); - test.End(); } void TestL(CFbsScreenDevice* aDevice) @@ -316,8 +319,12 @@ CleanupStack::PopAndDestroy(paraFormat); } -void MainL() +TVerdict CTFormHindiStep::doTestStepL() { + SetTestStepResult(EPass); + TestStep = this; + TESTPRINT(KTformhindi); + TInt error = RFbsSession::Connect(); if (error == KErrNotFound) { @@ -370,24 +377,12 @@ // We know that we have everything we need now, so we'll start the test! // A failure before this point would show up in the logs as "not run" rather // than "failed". - test.Title(); - test.Start(_L("Test forward/backward delete for Hindi")); + TESTPRINT(_L("Test forward/backward delete for Hindi")); TRAP(error, TestL(screenDevice)); - test.End(); - test.Close(); CleanupStack::PopAndDestroy(scheduler); CleanupStack::PopAndDestroy(gc); CleanupStack::PopAndDestroy(screenDevice); RFbsSession::Disconnect(); User::LeaveIfError(error); + return TestStepResult(); } - -TInt E32Main() - { - static CTrapCleanup* TrapCleanup = CTrapCleanup::New(); - if (!TrapCleanup) - return KErrNoMemory; - TRAPD(error, MainL()); - delete TrapCleanup; - return error; - } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/tformhindi.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/tformhindi.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,47 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + +#ifndef TFORMHINDI_H_ +#define TFORMHINDI_H_ +#include +#include + +class CTFormHindiStep : public CTestStep + { +public: + CTFormHindiStep(){}; + void print(const TDesC& aBuf, const TText8* text, int line); + void testpoint(TBool aCondition, const TText8* text, int line ); +protected: + TVerdict doTestStepL(); + }; + +inline void CTFormHindiStep::print(const TDesC& aBuf, const TText8* text, int line) + { + Logger().LogExtra((text), line, ESevrInfo, (aBuf)); + } + +inline void CTFormHindiStep::testpoint(TBool aCondition, const TText8* text, int line ) + { + testBooleanTrue((aCondition), text, line); + } + +_LIT(KTestStep_T_FormHindi, "T_FormHindi"); + +#endif /* TFORMHINDI_H_ */ diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/tformserver.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/tformserver.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,168 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + +#include "tformserver.h" +#include "tcustomcharmapping.h" +#include "ttagmaimp.h" +#include "ttmsource.h" +#include "tbidicursorpos.h" +#include "ttmcode.h" +#include "tunique.h" +#include "tundo.h" +#include "tinterpreter.h" +#include "tformat.h" +#include "tinlinetext.h" +#include "tgraphemeiterator.h" +#include "tformbenchmark.h" +#include "tlinepag.h" +#include "tformhindi.h" + +_LIT(KServerName,"TFormServer"); + +CTFormServer* CTFormServer::NewL() + { + CTFormServer * server = new (ELeave) CTFormServer(); + CleanupStack::PushL(server); + // CServer base class call + server->StartL(KServerName); + CleanupStack::Pop(server); + return server; + } + + +LOCAL_C void MainL() +// +// Secure variant +// Much simpler, uses the new Rendezvous() call to sync with the client +// + { +#if (defined __DATA_CAGING__) + RProcess().DataCaging(RProcess::EDataCagingOn); + RProcess().SecureApi(RProcess::ESecureApiOn); +#endif + CActiveScheduler* sched=NULL; + sched=new(ELeave) CActiveScheduler; + CActiveScheduler::Install(sched); + CTFormServer *server = NULL; + // Create the CTestServer derived server + TRAPD(err,server = CTFormServer::NewL()); + if(!err) + { + // Sync with the client and enter the active scheduler + RProcess::Rendezvous(KErrNone); + sched->Start(); + } + delete server; + delete sched; + } + +/** @return - Standard Epoc error code on process exit + Secure variant only + Process entry point. Called by client using RProcess API +*/ +GLDEF_C TInt E32Main() + { + __UHEAP_MARK; + CTrapCleanup* cleanup = CTrapCleanup::New(); + if(cleanup == NULL) + { + return KErrNoMemory; + } + TRAPD(err,MainL()); + // This if statement is here just to shut up RVCT, which would otherwise warn + // that err was set but never used + if (err) + { + err = KErrNone; + } + delete cleanup; + __UHEAP_MARKEND; + return KErrNone; + } + +CTestStep *CTFormServer::CreateTestStep(const TDesC& aStepName) +/** + @return - A CTestStep derived instance + Secure and non-secure variants + Implementation of CTestServer pure virtual + */ + { + if(aStepName == KTestStep_T_CustomCharMapping) + { + return new CTCustomCharMappingStep(); + } + else if(aStepName == KTestStep_T_TagmaImp) + { + return new CTTagmaImpStep(); + } + else if(aStepName == KTestStep_T_TmSource) + { + return new CTTmSourceStep(); + } + else if(aStepName == KTestStep_T_BidiCursorPos) + { + return new CTBidiCursorPosStep(); + } + else if(aStepName == KTestStep_T_TmCode) + { + return new CTTmCodeStep(); + } + else if(aStepName == KTestStep_T_Unique) + { + return new CTUniqueStep(); + } + else if(aStepName == KTestStep_T_Undo) + { + return new CTUndoStep(); + } + else if(aStepName == KTestStep_T_Interpreter) + { + return new CTInterpreterStep(); + } + else if(aStepName == KTestStep_T_Format) + { + return new CTFormatStep(); + } + else if(aStepName == KTestStep_T_InLineText) + { + return new CTInLineTextStep(); + } + else if(aStepName == KTestStep_T_GraphemeIterator) + { + return new CTGraphemeIteratorStep(); + } + else if(aStepName == KTestStep_T_FormBenchmark) + { + return new CTFormBenchmarkStep(); + } + else if(aStepName == KTestStep_T_LinePag) + { + return new CTLinePagStep(); + } + else if(aStepName == KTestStep_T_FormHindi) + { + return new CTFormHindiStep(); + } + + + return NULL; + } + + + diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/tformserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/tformserver.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + + +#ifndef TFORMSERVER_H +#define TFORMSERVER_H + +// INCLUDES +#include + +// CLASS DECLARATION + +/** + * Ctformserver + * + */ +class CTFormServer : public CTestServer + { +public: + static CTFormServer* NewL(); +//from CTestServer + virtual CTestStep* CreateTestStep(const TDesC& aStepName); + + }; + +#endif // TFORMSERVER_H diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/tgraphemeiterator.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/tgraphemeiterator.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,48 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + +#ifndef TGRAPHEMEITERATOR_H_ +#define TGRAPHEMEITERATOR_H_ + +#include +#include + +class CTGraphemeIteratorStep : public CTestStep + { +public: + CTGraphemeIteratorStep(){}; + void print(const TDesC& aBuf, const TText8* text, int line); + void testpoint(TBool aCondition, const TText8* text, int line); +protected: + TVerdict doTestStepL(); + }; + +inline void CTGraphemeIteratorStep::print(const TDesC& aBuf, const TText8* text, int line) + { + Logger().LogExtra((text), line, ESevrInfo, (aBuf)); + } + +inline void CTGraphemeIteratorStep::testpoint(TBool aCondition, const TText8* text, int line ) + { + testBooleanTrue((aCondition), text, line); + } + +_LIT(KTestStep_T_GraphemeIterator, "T_GraphemeIterator"); + +#endif /* TGRAPHEMEITERATOR_H_ */ diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/tinlinetext.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/tinlinetext.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,49 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + + +#ifndef TINLINETEXT_H_ +#define TINLINETEXT_H_ + +#include +#include + +class CTInLineTextStep : public CTestStep + { +public: + CTInLineTextStep(){}; + void print(const TDesC& aBuf, const TText8* text, int line); + void testpoint(TBool aCondition, const TText8* text, int line); +protected: + TVerdict doTestStepL(); + }; + +inline void CTInLineTextStep::print(const TDesC& aBuf, const TText8* text, int line) + { + Logger().LogExtra((text), line, ESevrInfo, (aBuf)); + } + +inline void CTInLineTextStep::testpoint(TBool aCondition, const TText8* text, int line ) + { + testBooleanTrue((aCondition), text, line); + } + +_LIT(KTestStep_T_InLineText, "T_InLineText"); + +#endif /* TINLINETEXT_H_ */ diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/tinterpreter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/tinterpreter.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,49 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + +#ifndef TINTERPRETER_H_ +#define TINTERPRETER_H_ + +#include +#include + +class CTInterpreterStep : public CTestStep + { +public: + CTInterpreterStep(){}; + void print(const TDesC& aBuf, const TText8* text, int line); + void testpoint(TBool aCondition, const TText8* text, int line ); +protected: + TVerdict doTestStepL(); + }; + +inline void CTInterpreterStep::print(const TDesC& aBuf, const TText8* text, int line) + { + Logger().LogExtra((text), line, ESevrInfo, (aBuf)); + } + + +inline void CTInterpreterStep::testpoint(TBool aCondition, const TText8* text, int line ) + { + testBooleanTrue((aCondition), text, line); + } + +_LIT(KTestStep_T_Interpreter, "T_Interpreter"); + +#endif /* TINTERPRETER_H_ */ diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/tlinepag.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/tlinepag.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,49 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + + +#ifndef TLINEPAG_H_ +#define TLINEPAG_H_ + +#include +#include + +class CTLinePagStep : public CTestStep + { +public: + CTLinePagStep(){}; + void print(const TDesC& aBuf, const TText8* text, int line); + void testpoint(TBool aCondition, const TText8* text, int line ); +protected: + TVerdict doTestStepL(); + }; + +inline void CTLinePagStep::print(const TDesC& aBuf, const TText8* text, int line) + { + Logger().LogExtra((text), line, ESevrInfo, (aBuf)); + } + +inline void CTLinePagStep::testpoint(TBool aCondition, const TText8* text, int line ) + { + testBooleanTrue((aCondition), text, line); + } + +_LIT(KTestStep_T_LinePag, "T_LinePag"); + +#endif /* TLINEPAG_H_ */ diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/ttagmaimp.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/ttagmaimp.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,48 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + +#ifndef TTAGMAIMP_H_ +#define TTAGMAIMP_H_ + +#include +#include + +class CTTagmaImpStep : public CTestStep + { +public: + CTTagmaImpStep(); + void print(const TDesC& aBuf, const TText8* text, int line); + void testpoint(TBool aCondition, const TText8* text, int line ); +protected: + TVerdict doTestStepL(); + }; + +inline void CTTagmaImpStep::print(const TDesC& aBuf, const TText8* text, int line) + { + Logger().LogExtra((text), line, ESevrInfo, (aBuf)); + } + +inline void CTTagmaImpStep::testpoint(TBool aCondition, const TText8* text, int line ) + { + testBooleanTrue((aCondition), text, line); + } + +_LIT(KTestStep_T_TagmaImp, "T_TagmaImp"); + +#endif /* TTAGMAIMP_H_ */ diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/ttmcode.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/ttmcode.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,38 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + +#ifndef TTMCODE_H_ +#define TTMCODE_H_ + +#include +#include + +class CTTmCodeStep : public CTestStep + { +public: + CTTmCodeStep(){}; + +protected: + TVerdict doTestStepL(); + }; + +_LIT(KTestStep_T_TmCode, "T_TmCode"); + + +#endif /* TTMCODE_H_ */ diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/ttmsource.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/ttmsource.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,49 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + + +#ifndef TTMSOURCE_H_ +#define TTMSOURCE_H_ + +#include +#include + +class CTTmSourceStep : public CTestStep + { +public: + CTTmSourceStep(); + void print(const TDesC& aBuf, const TText8* text, int line); + void testpoint(TBool aCondition, const TText8* text, int line ); +protected: + TVerdict doTestStepL(); + }; + +inline void CTTmSourceStep::print(const TDesC& aBuf, const TText8* text, int line) + { + Logger().LogExtra((text), line, ESevrInfo, (aBuf)); + } + +inline void CTTmSourceStep::testpoint(TBool aCondition, const TText8* text, int line ) + { + testBooleanTrue((aCondition), text, line); + } + +_LIT(KTestStep_T_TmSource, "T_TmSource"); + +#endif /* TTMSOURCE_H_ */ diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/tundo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/tundo.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,49 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + + +#ifndef TUNDO_H_ +#define TUNDO_H_ + +#include +#include + +class CTUndoStep : public CTestStep + { +public: + CTUndoStep(){}; + void print(const TDesC& aBuf, const TText8* text, int line); + void testpoint(TBool aCondition, const TText8* text, int line ); +protected: + TVerdict doTestStepL(); + }; + +inline void CTUndoStep::print(const TDesC& aBuf, const TText8* text, int line) + { + Logger().LogExtra((text), line, ESevrInfo, (aBuf)); + } + +inline void CTUndoStep::testpoint(TBool aCondition, const TText8* text, int line ) + { + testBooleanTrue((aCondition), text, line); + } + +_LIT(KTestStep_T_Undo, "T_Undo"); + +#endif /* TUNDO_H_ */ diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/textformatting/test/src/tunique.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/textformatting/test/src/tunique.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,49 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* @file +* @internalComponent +* +*/ + + +#ifndef TUNIQUE_H_ +#define TUNIQUE_H_ + +#include +#include + +class CTUniqueStep : public CTestStep + { +public: + CTUniqueStep(){}; + void print(const TDesC& aBuf, const TText8* text, int line); + void testpoint(TBool aCondition, const TText8* text, int line ); +protected: + TVerdict doTestStepL(); + }; + +inline void CTUniqueStep::print(const TDesC& aBuf, const TText8* text, int line) + { + Logger().LogExtra((text), line, ESevrInfo, (aBuf)); + } + +inline void CTUniqueStep::testpoint(TBool aCondition, const TText8* text, int line ) + { + testBooleanTrue((aCondition), text, line); + } + +_LIT(KTestStep_T_Unique, "T_Unique"); + +#endif /* TUNIQUE_H_ */ diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/ETextTests.bat --- a/textrendering/texthandling/group/ETextTests.bat Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/group/ETextTests.bat Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ @rem -@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +@rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). @rem All rights reserved. @rem This component and the accompanying materials are made available @rem under the terms of "Eclipse Public License v1.0" @@ -14,29 +14,31 @@ @rem Description: @rem -t_field1.exe -t_roman.exe -t_stream.exe -trichoom.exe -trtcopy.exe -ttimes1.exe -t_convrt.exe -t_convs.exe -t_convs1.exe -t_cplain.exe -t_cutpst.exe -t_fmt.exe -t_fmt1.exe -t_import.exe -t_indter.exe -t_laydoc.exe -t_parse.exe -t_picres.exe -t_rich1a.exe -t_rtclip.exe -t_scandc.exe -t_style.exe -t_times.exe -t_tran.exe -trtcustm.exe -TEtextDefect.exe \ No newline at end of file +@echo on +testexecute.exe z:\ETextTest\T_FIELD1.script +testexecute.exe z:\ETextTest\T_ROMAN.script +testexecute.exe z:\ETextTest\T_STREAM.script +testexecute.exe z:\ETextTest\T_RICHOOM.script +testexecute.exe z:\ETextTest\TRTCOPY.script +testexecute.exe z:\ETextTest\TRTCUSTM.script +testexecute.exe z:\ETextTest\TTIMES1.script +testexecute.exe z:\ETextTest\T_CONVRT.script +testexecute.exe z:\ETextTest\T_CONVS.script +testexecute.exe z:\ETextTest\T_CONVS1.script +testexecute.exe z:\ETextTest\T_CPLAIN.script +testexecute.exe z:\ETextTest\T_CUTPST.script +testexecute.exe z:\ETextTest\T_FMT.script +testexecute.exe z:\ETextTest\T_FMT1.script +testexecute.exe z:\ETextTest\T_IMPORT.script +testexecute.exe z:\ETextTest\T_INDTER.script +testexecute.exe z:\ETextTest\T_LAYDOC.script +testexecute.exe z:\ETextTest\T_PARSE.script +testexecute.exe z:\ETextTest\T_PICRES.script +testexecute.exe z:\ETextTest\T_RICH1A.script +testexecute.exe z:\ETextTest\T_RTCLIP.script +testexecute.exe z:\ETextTest\T_SCANDC.script +testexecute.exe z:\ETextTest\T_STYLE.script +testexecute.exe z:\ETextTest\T_TIMES.script +testexecute.exe z:\ETextTest\T_TRAN.script +testexecute.exe z:\ETextTest\TEtextDefect.script +@echo off diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/ETextTests.iby --- a/textrendering/texthandling/group/ETextTests.iby Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/group/ETextTests.iby Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -21,36 +21,12 @@ REM EText tests #include -// batch file that runs all automatic etext tests -data=ZSYSTEM\test\ETextTests.bat TEST\ETextTests.bat +data=DATAZ_\ETextTest\ETextTests.bat \ETextTests.bat +// TEF server +file=ABI_DIR\BUILD_DIR\TETextServer.exe \sys\bin\TETextServer.exe -file=ABI_DIR\BUILD_DIR\t_field1.exe Test\t_field1.exe -file=ABI_DIR\BUILD_DIR\t_roman.exe Test\t_roman.exe -file=ABI_DIR\BUILD_DIR\t_stream.exe Test\t_stream.exe -file=ABI_DIR\BUILD_DIR\trichoom.exe Test\trichoom.exe -file=ABI_DIR\BUILD_DIR\trtcopy.exe Test\trtcopy.exe -file=ABI_DIR\BUILD_DIR\ttimes1.exe Test\ttimes1.exe -file=ABI_DIR\BUILD_DIR\t_convrt.exe Test\t_convrt.exe -file=ABI_DIR\BUILD_DIR\t_convs.exe Test\t_convs.exe -file=ABI_DIR\BUILD_DIR\t_convs1.exe Test\t_convs1.exe -file=ABI_DIR\BUILD_DIR\t_cplain.exe Test\t_cplain.exe -file=ABI_DIR\BUILD_DIR\t_cutpst.exe Test\t_cutpst.exe -file=ABI_DIR\BUILD_DIR\t_fmt.exe Test\t_fmt.exe -file=ABI_DIR\BUILD_DIR\t_fmt1.exe Test\t_fmt1.exe -file=ABI_DIR\BUILD_DIR\t_import.exe Test\t_import.exe -file=ABI_DIR\BUILD_DIR\t_indter.exe Test\t_indter.exe -file=ABI_DIR\BUILD_DIR\t_laydoc.exe Test\t_laydoc.exe -file=ABI_DIR\BUILD_DIR\t_parse.exe Test\t_parse.exe -file=ABI_DIR\BUILD_DIR\t_picres.exe Test\t_picres.exe -file=ABI_DIR\BUILD_DIR\t_rich1a.exe Test\t_rich1a.exe -file=ABI_DIR\BUILD_DIR\t_rtclip.exe Test\t_rtclip.exe -file=ABI_DIR\BUILD_DIR\t_scandc.exe Test\t_scandc.exe -file=ABI_DIR\BUILD_DIR\t_style.exe Test\t_style.exe -file=ABI_DIR\BUILD_DIR\t_times.exe Test\t_times.exe -file=ABI_DIR\BUILD_DIR\t_tran.exe Test\t_tran.exe -file=ABI_DIR\BUILD_DIR\trtcustm.exe Test\trtcustm.exe -file=ABI_DIR\BUILD_DIR\TEtextDefect.exe Test\TEtextDefect.exe -file=ABI_DIR\BUILD_DIR\tins.dll system\libs\tins.dll +// script files +// - see pkg file ETextTests.pkg data=ZSYSTEM\..\test\app-framework\etext\AGGREGAT.PML test\app-framework\etext\AGGREGAT.PML data=ZSYSTEM\..\test\app-framework\etext\CHARTEST.PML test\app-framework\etext\CHARTEST.PML diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/ETextTests.pkg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/ETextTests.pkg Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,60 @@ +; +; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +; All rights reserved. +; This component and the accompanying materials are made available +; under the terms of "Eclipse Public License v1.0" +; which accompanies this distribution, and is available +; at the URL "http:;www.eclipse.org/legal/epl-v10.html". +; +; Initial Contributors: +; Nokia Corporation - initial contribution. +; +; Contributors: +; +; Description: +; + + +;Languages +&EN + + +;Localised Vendor name +%{"t_PTPipsuite EN"} + +; Vendor name +: "t_PTPipsuite" + +; sample from the PC Connectivity +; "\epoc32\data\z\testdata\scripts\mtp\t_PTPipsuite.script"-"c:\mtp\testdata\scripts\mtp\t_ptpipsuite.script" +; "\epoc32\data\z\testdata\scripts\mtp\PTPTest.ini"-"c:\mtp\testdata\scripts\mtp\ptptest.ini" + +; test scripts +; "\epoc32\data\z\ETextTest\ETextTest_All.script"-"c:\ETextTest\ETextTest_All.script" +"\epoc32\data\z\ETextTest\T_FIELD1.script"-"c:\ETextTest\T_FIELD1.script" +"\epoc32\data\z\ETextTest\T_ROMAN.script"-"c:\ETextTest\T_ROMAN.script" +"\epoc32\data\z\ETextTest\T_STREAM.script"-"c:\ETextTest\T_STREAM.script" +"\epoc32\data\z\ETextTest\T_RICHOOM.script"-"c:\ETextTest\T_RICHOOM.script" +"\epoc32\data\z\ETextTest\TRTCOPY.script"-"c:\ETextTest\TRTCOPY.script" +"\epoc32\data\z\ETextTest\TRTCUSTM.script"-"c:\ETextTest\TRTCUSTM.script" +"\epoc32\data\z\ETextTest\TTIMES1.script"-"c:\ETextTest\TTIMES1.script" +"\epoc32\data\z\ETextTest\T_CONVRT.script"-"c:\ETextTest\T_CONVRT.script" +"\epoc32\data\z\ETextTest\T_CONVS.script"-"c:\ETextTest\T_CONVS.script" +"\epoc32\data\z\ETextTest\T_CONVS1.script"-"c:\ETextTest\T_CONVS1.script" +"\epoc32\data\z\ETextTest\T_CPLAIN.script"-"c:\ETextTest\T_CPLAIN.script" +"\epoc32\data\z\ETextTest\T_CUTPST.script"-"c:\ETextTest\T_CUTPST.script" +"\epoc32\data\z\ETextTest\T_FMT.script"-"c:\ETextTest\T_FMT.script" +"\epoc32\data\z\ETextTest\T_FMT1.script"-"c:\ETextTest\T_FMT1.script" +"\epoc32\data\z\ETextTest\T_IMPORT.script"-"c:\ETextTest\T_IMPORT.script" +"\epoc32\data\z\ETextTest\T_INDTER.script"-"c:\ETextTest\T_INDTER.script" +"\epoc32\data\z\ETextTest\T_LAYDOC.script"-"c:\ETextTest\T_LAYDOC.script" +"\epoc32\data\z\ETextTest\T_PARSE.script"-"c:\ETextTest\T_PARSE.script" +"\epoc32\data\z\ETextTest\T_PICRES.script"-"c:\ETextTest\T_PICRES.script" +"\epoc32\data\z\ETextTest\T_RICH1A.script"-"c:\ETextTest\T_RICH1A.script" +"\epoc32\data\z\ETextTest\T_RTCLIP.script"-"c:\ETextTest\T_RTCLIP.script" +"\epoc32\data\z\ETextTest\T_SCANDC.script"-"c:\ETextTest\T_SCANDC.script" +"\epoc32\data\z\ETextTest\T_STYLE.script"-"c:\ETextTest\T_STYLE.script" +"\epoc32\data\z\ETextTest\T_TIMES.script"-"c:\ETextTest\T_TIMES.script" +"\epoc32\data\z\ETextTest\T_TRAN.script"-"c:\ETextTest\T_TRAN.script" +"\epoc32\data\z\ETextTest\TEtextDefect.script"-"c:\ETextTest\TEtextDefect.script" + diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/TETextServer.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/TETextServer.mmp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,58 @@ +TARGET TETextServer.exe +TARGETTYPE exe +UID 0x1000007A 0xE27AD85E +//UID 0 0xE27AD85D + +CAPABILITY ProtServ + +USERINCLUDE ..\inc +USERINCLUDE ..\tfields +USERINCLUDE ..\stext +USERINCLUDE ..\traces +APP_LAYER_SYSTEMINCLUDE +OS_LAYER_LIBC_SYSTEMINCLUDE + +SOURCEPATH ..\ttext +SOURCE TETextServer.cpp + +SOURCEPATH ..\tfields +SOURCE T_FIELD1.CPP TESTFAC.CPP + +SOURCEPATH ..\sconpics +SOURCE CONPICS.CPP TSTCLIPB.CPP CONMAIN.CPP + +SOURCEPATH ..\tfields +SOURCE T_ROMAN.CPP T_STREAM.CPP + +SOURCEPATH ..\ttext +SOURCE TRICHOOM.CPP TRTCOPY.CPP TRTCUSTM.CPP TTIMES1.CPP T_CONVRT.CPP T_CONVS.CPP T_CONVS1.CPP T_CPLAIN.CPP T_CUTPST.CPP T_FMT.CPP t_fmt1.cpp + +SOURCEPATH ..\ttext +SOURCE T_IMPORT.CPP T_INDTER.CPP T_LAYDOC.CPP T_parse.cpp T_PICRES.CPP T_RICH1A.CPP T_RTCLIP.CPP T_SCANDC.CPP T_STYLE.CPP T_TIMES.CPP T_TRAN.CPP TEtextDefect.cpp + +SOURCEPATH ..\spml +SOURCE T_PMLPAR.CPP + +LIBRARY euser.lib +LIBRARY testexecuteutils.lib +LIBRARY testexecutelogclient.lib +LIBRARY field.lib efsrv.lib estor.lib gdi.lib etext.lib charconv.lib + +#ifdef ENABLE_ABIV2_MODE +DEBUGGABLE_UDEBONLY +#endif + +SOURCEPATH ..\stext +SOURCE TXTPLAIN.CPP // for CPlainTextConverter used in TEtextDefect.cpp +SOURCE TxtWriter.cpp // for TSLBTransaltor + +source TXTFRMAT.CPP +source TXTUTIL.CPP +source TXTINDEX.CPP +source TXTFMLYR.CPP +source TXTFMSTM.CPP +source TXTIXSTR.CPP +source TXTRTMAP.CPP +source TXTSTYLE.CPP + +SMPSAFE diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/TINS.MMP --- a/textrendering/texthandling/group/TINS.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* -* Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* TINS.MMP for component ETEXT -* -*/ - - -target tins.dll -targettype DLL -capability All -Tcb - -UID 0x1000008D 0x10003A26 -VENDORID 0x70000001 -SOURCEPATH ../group - -SOURCEPATH ../sconpics // source files -userinclude ../sconpics -userinclude ../inc // your public include directory should be here -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source CONMAIN.CPP -source CONPICS.CPP -source TSTCLIPB.CPP - -library euser.lib efsrv.lib estor.lib gdi.lib field.lib - -deffile TINS.DEF - -START WINS - baseaddress 0x22000000 -END - -START MARM -END - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/bld.inf --- a/textrendering/texthandling/group/bld.inf Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/group/bld.inf Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -69,10 +69,38 @@ ../inc/CONPICS.H /epoc32/include/conpics.h // PRIVATE PRJ_TESTEXPORTS +../group/script/ETextTest_All.script z:/ETextTest/ETextTest_All.script +../group/script/T_FIELD1.script z:/ETextTest/T_FIELD1.script +../group/script/T_ROMAN.script z:/ETextTest/T_ROMAN.script +../group/script/T_STREAM.script z:/ETextTest/T_STREAM.script +../group/script/T_RICHOOM.script z:/ETextTest/T_RICHOOM.script +../group/script/TRTCOPY.script z:/ETextTest/TRTCOPY.script +../group/script/TRTCUSTM.script z:/ETextTest/TRTCUSTM.script +../group/script/TTIMES1.script z:/ETextTest/TTIMES1.script +../group/script/T_CONVRT.script z:/ETextTest/T_CONVRT.script +../group/script/T_CONVS.script z:/ETextTest/T_CONVS.script +../group/script/T_CONVS1.script z:/ETextTest/T_CONVS1.script +../group/script/T_CPLAIN.script z:/ETextTest/T_CPLAIN.script +../group/script/T_CUTPST.script z:/ETextTest/T_CUTPST.script +../group/script/T_FMT.script z:/ETextTest/T_FMT.script +../group/script/T_FMT1.script z:/ETextTest/T_FMT1.script +../group/script/T_IMPORT.script z:/ETextTest/T_IMPORT.script +../group/script/T_INDTER.script z:/ETextTest/T_INDTER.script +../group/script/T_LAYDOC.script z:/ETextTest/T_LAYDOC.script +../group/script/T_PARSE.script z:/ETextTest/T_PARSE.script +../group/script/T_PICRES.script z:/ETextTest/T_PICRES.script +../group/script/T_RICH1A.script z:/ETextTest/T_RICH1A.script +../group/script/T_RTCLIP.script z:/ETextTest/T_RTCLIP.script +../group/script/T_SCANDC.script z:/ETextTest/T_SCANDC.script +../group/script/T_STYLE.script z:/ETextTest/T_STYLE.script +../group/script/T_TIMES.script z:/ETextTest/T_TIMES.script +../group/script/T_TRAN.script z:/ETextTest/T_TRAN.script +../group/script/TEtextDefect.script z:/ETextTest/TEtextDefect.script + // batch file that runs all automatic etext tests on hardware -../group/ETextTests.bat /epoc32/data/z/system/test/etexttests.bat -../group/ETextTests.iby /epoc32/rom/include/etexttests.iby +../group/ETextTests.bat z:/ETextTest/ETextTests.bat +../group/ETextTests.iby /epoc32/rom/include/ETextTests.iby // etext test data ../testdata/CLIMB.txt z:/test/app-framework/etext/climb.txt @@ -106,34 +134,7 @@ ../group/FIELD.MMP PRJ_TESTMMPFILES - -../group/TINS.MMP support // not test code -../tfields/T_FIELD1.MMP -../tfields/T_ROMAN.MMP -../tfields/T_STREAM.MMP -../ttext/TRICHOOM.MMP -../ttext/TRTCOPY.MMP -../ttext/TRTCUSTM.MMP -../ttext/TTIMES1.MMP -../ttext/T_CONVRT.MMP -../ttext/T_CONVS.MMP -../ttext/T_CONVS1.MMP -../ttext/T_CPLAIN.MMP -../ttext/T_CUTPST.MMP -../ttext/T_FMT.MMP -../ttext/T_FMT1.mmp -../ttext/T_IMPORT.MMP -../ttext/T_INDTER.MMP -../ttext/T_LAYDOC.MMP -../ttext/T_parse.mmp -../ttext/T_PICRES.MMP -../ttext/T_RICH1A.MMP -../ttext/T_RTCLIP.MMP -../ttext/T_SCANDC.MMP -../ttext/T_STYLE.MMP -../ttext/T_TIMES.MMP -../ttext/T_TRAN.MMP -../ttext/TEtextDefect.mmp +../group/TETextServer.MMP PRJ_PLATFORMS default winc diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/ETextTest_All.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/ETextTest_All.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,45 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run All TETextServer tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 100 TETextServer T_FIELD1 +RUN_TEST_STEP 100 TETextServer T_ROMAN +RUN_TEST_STEP 100 TETextServer T_STREAM +RUN_TEST_STEP 100 TETextServer T_RICHOOM +RUN_TEST_STEP 100 TETextServer TRTCOPY +RUN_TEST_STEP 100 TETextServer TRTCUSTM +RUN_TEST_STEP 100 TETextServer TTIMES1 +RUN_TEST_STEP 100 TETextServer T_CONVRT +RUN_TEST_STEP 100 TETextServer T_CONVS +RUN_TEST_STEP 100 TETextServer T_CONVS1 +RUN_TEST_STEP 100 TETextServer T_CPLAIN +RUN_TEST_STEP 100 TETextServer T_CUTPST +RUN_TEST_STEP 100 TETextServer T_FMT +RUN_TEST_STEP 100 TETextServer T_FMT1 +RUN_TEST_STEP 100 TETextServer T_IMPORT +RUN_TEST_STEP 100 TETextServer T_INDTER +RUN_TEST_STEP 100 TETextServer T_LAYDOC +RUN_TEST_STEP 100 TETextServer T_PARSE +RUN_TEST_STEP 100 TETextServer T_PICRES +RUN_TEST_STEP 100 TETextServer T_RICH1A +RUN_TEST_STEP 100 TETextServer T_RTCLIP +RUN_TEST_STEP 100 TETextServer T_SCANDC +RUN_TEST_STEP 100 TETextServer T_STYLE +RUN_TEST_STEP 100 TETextServer T_TIMES +RUN_TEST_STEP 100 TETextServer T_TRAN +RUN_TEST_STEP 100 TETextServer TEtextDefect diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/TEtextDefect.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/TEtextDefect.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run TEtextDefect tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer TEtextDefect \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/TRTCOPY.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/TRTCOPY.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run TRTCOPY tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer TRTCOPY \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/TRTCUSTM.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/TRTCUSTM.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run TRTCUSTM tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer TRTCUSTM \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/TTIMES1.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/TTIMES1.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run TTIMES1 tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer TTIMES1 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_CONVRT.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_CONVRT.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_CONVRT tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_CONVRT \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_CONVS.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_CONVS.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_CONVS tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_CONVS \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_CONVS1.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_CONVS1.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_CONVS1 tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_CONVS1 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_CPLAIN.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_CPLAIN.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_CPLAIN tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_CPLAIN \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_CUTPST.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_CUTPST.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_CUTPST tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_CUTPST \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_FIELD1.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_FIELD1.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_FIELD1 tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_FIELD1 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_FMT.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_FMT.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_FMT tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_FMT \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_FMT1.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_FMT1.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_FMT1 tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_FMT1 \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_IMPORT.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_IMPORT.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_IMPORT tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_IMPORT \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_INDTER.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_INDTER.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_INDTER tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_INDTER \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_LAYDOC.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_LAYDOC.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_LAYDOC tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_LAYDOC \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_PARSE.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_PARSE.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_PARSE tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_PARSE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_PICRES.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_PICRES.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_PICRES tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_PICRES \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_RICH1A.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_RICH1A.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_RICH1A tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_RICH1A \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_RICHOOM.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_RICHOOM.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_RICHOOM tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_RICHOOM \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_ROMAN.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_ROMAN.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_ROMAN tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_ROMAN \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_RTCLIP.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_RTCLIP.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_RTCLIP tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_RTCLIP \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_SCANDC.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_SCANDC.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_SCANDC tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_SCANDC \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_STREAM.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_STREAM.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_STREAM tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_STREAM \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_STYLE.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_STYLE.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_STYLE tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_STYLE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_TIMES.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_TIMES.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_TIMES tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_TIMES \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/group/script/T_TRAN.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/group/script/T_TRAN.script Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,20 @@ +// +// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Run T_TRAN tests +// +LOAD_SUITE TETextServer +RUN_TEST_STEP 200 TETextServer T_TRAN \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/tfields/T_FIELD1.CPP --- a/textrendering/texthandling/tfields/T_FIELD1.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/tfields/T_FIELD1.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,22 +16,32 @@ */ -#include +#include "T_FIELD1.h" #include "TESTFAC.H" #include #include +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + #define UNUSED_VAR(a) a = a const TInt KTestCleanupStack=0x40; -LOCAL_D RTest test(_L("Testing Fields")); LOCAL_D CTrapCleanup* TheTrapCleanup; LOCAL_D CTextFieldSet* TheFieldSet; LOCAL_D TTestFieldFactory* TheFactory; -LOCAL_C TBool UpdateField(TInt aPos) +TBool CT_FIELD1::UpdateField(TInt aPos) { // find out which field aPos is in TFindFieldInfo info; @@ -51,11 +61,11 @@ } -LOCAL_C void test1() +void CT_FIELD1::test1() // Tests that all CTextFieldSet methods exist as specced // { - test.Next(_L("- Testing that all CTextFieldSet methods exist")); + INFO_PRINTF1(_L("- Testing that all CTextFieldSet methods exist")); // inform TheFieldSet about an imaginary insertion, then an imaginary deletion TheFieldSet->NotifyInsertion(0,10); // pos=0, len=10 TheFieldSet->NotifyDeletion(2,5); // pos=2, len=5 @@ -83,11 +93,11 @@ } -LOCAL_C void test2() +void CT_FIELD1::test2() // Tests inserting, updating and removing a field // { - test.Next(_L("- Testing field insertion, update and removal")); + INFO_PRINTF1(_L("- Testing field insertion, update and removal")); test(TheFieldSet->CharCount()==0); test(TheFieldSet->FieldCount()==0); // insert a field @@ -141,12 +151,12 @@ } -LOCAL_C void test3() +void CT_FIELD1::test3() // Tests InField() in "all" the oddball situations // { TFindFieldInfo info; - test.Next(_L("- Testing InField() calls")); + INFO_PRINTF1(_L("- Testing InField() calls")); test(TheFieldSet->CharCount()==0); test(TheFieldSet->FieldCount()==0); // Zero length doc @@ -232,12 +242,12 @@ } -LOCAL_C void test4() +void CT_FIELD1::test4() // Tests Insertion and deletion of text around and into fields // { TFindFieldInfo info; - test.Next(_L("- Testing insertion and deletion of text around and into fields")); + INFO_PRINTF1(_L("- Testing insertion and deletion of text around and into fields")); test(TheFieldSet->CharCount()==0); test(TheFieldSet->FieldCount()==0); // Insert some text @@ -389,11 +399,11 @@ } -LOCAL_C void test5() +void CT_FIELD1::test5() // Tests inserting, updating and removing a CDateTimeField // { - test.Next(_L("- Testing CDateTimeField")); + INFO_PRINTF1(_L("- Testing CDateTimeField")); test(TheFieldSet->CharCount()==0); test(TheFieldSet->FieldCount()==0); // insert a field with default format @@ -413,20 +423,20 @@ CleanupStack::PushL(miniBuf); test(ret==KErrNone); TPtr buf = miniBuf->Des(); - test.Printf(_L(" The field value is: ")); - test.Printf(buf); - test.Printf(_L("\n")); + INFO_PRINTF1(_L(" The field value is: ")); + INFO_PRINTF1(buf); + INFO_PRINTF1(_L("\n")); // reset the field array TheFieldSet->Reset(); CleanupStack::PopAndDestroy(); // miniBuf } -LOCAL_C void test6() +void CT_FIELD1::test6() // Tests CDateTimeFields with non-default formatting // { - test.Next(_L("- Testing CDateTimeField with non-default formatting")); + INFO_PRINTF1(_L("- Testing CDateTimeField with non-default formatting")); test(TheFieldSet->CharCount()==0); test(TheFieldSet->FieldCount()==0); // create a field and set format @@ -449,20 +459,20 @@ CleanupStack::PushL(miniBuf); test(ret==KErrNone); TPtr buf = miniBuf->Des(); - test.Printf(_L(" The field value is: ")); - test.Printf(buf); - test.Printf(_L("\n")); + INFO_PRINTF1(_L(" The field value is: ")); + INFO_PRINTF1(buf); + INFO_PRINTF1(_L("\n")); // reset the field array TheFieldSet->Reset(); CleanupStack::PopAndDestroy(); // miniBuf } -LOCAL_C void test7() +void CT_FIELD1::test7() // Tests inserting, updating and removing a CPageNumberField // { - test.Next(_L("- Testing CPageNumberField")); + INFO_PRINTF1(_L("- Testing CPageNumberField")); test(TheFieldSet->CharCount()==0); test(TheFieldSet->FieldCount()==0); // insert a field with default format @@ -482,20 +492,20 @@ CleanupStack::PushL(miniBuf); test(ret==KErrNone); TPtr buf = miniBuf->Des(); - test.Printf(_L(" The field value is: ")); - test.Printf(buf); - test.Printf(_L("\n")); + INFO_PRINTF1(_L(" The field value is: ")); + INFO_PRINTF1(buf); + INFO_PRINTF1(_L("\n")); // reset the field array TheFieldSet->Reset(); CleanupStack::PopAndDestroy(); // miniBuf } -LOCAL_C void test8() +void CT_FIELD1::test8() // Tests inserting, updating and removing a CPageNumberField // { - test.Next(_L("- Testing CFileNameField")); + INFO_PRINTF1(_L("- Testing CFileNameField")); test(TheFieldSet->CharCount()==0); test(TheFieldSet->FieldCount()==0); // insert a field with default format @@ -515,9 +525,9 @@ CleanupStack::PushL(miniBuf); test(ret==KErrNone); TPtr buf = miniBuf->Des(); - test.Printf(_L(" The field value is: ")); - test.Printf(buf); - test.Printf(_L("\n")); + INFO_PRINTF1(_L(" The field value is: ")); + INFO_PRINTF1(buf); + INFO_PRINTF1(_L("\n")); // reset the field array TheFieldSet->Reset(); CleanupStack::PopAndDestroy(); // miniBuf @@ -528,9 +538,9 @@ Added to test the fix to 'EDNHARN-4NVDHC: Text fields are not removed correctly in edwin'. Deletion of two fields failed to delete the second one. */ -static void test_multiple_fields() +void CT_FIELD1::test_multiple_fields() { - test.Next(_L(" - testing multiple fields")); + INFO_PRINTF1(_L(" - testing multiple fields")); test(TheFieldSet->CharCount()==0); test(TheFieldSet->FieldCount()==0); @@ -564,11 +574,11 @@ } -LOCAL_C void testFields() +void CT_FIELD1::testFields() // Test the fields dll. // { - test.Start(_L("Testing Fields")); + INFO_PRINTF1(_L("Testing Fields")); // instantiate the FieldSet and use the default factory TheFactory = new(ELeave) TTestFieldFactory(); @@ -601,7 +611,7 @@ } -LOCAL_C void setupCleanup() +void CT_FIELD1::setupCleanup() // // Initialise the cleanup stack. // @@ -617,25 +627,30 @@ }); } - -GLDEF_C TInt E32Main() -// -// Test the streaming framework. -// +CT_FIELD1::CT_FIELD1() { + SetTestStepName(KTestStep_T_FIELD1); + } - test.Title(); - - __UHEAP_MARK; +TVerdict CT_FIELD1::doTestStepL() + { + INFO_PRINTF1(_L("Testing Fields")); + SetTestStepResult(EFail); + + __UHEAP_MARK; + setupCleanup(); - TRAPD(r,testFields()); - UNUSED_VAR(r); - test(r == KErrNone); + + TRAPD(error1, testFields()); delete TheTrapCleanup; - - __UHEAP_MARKEND; - test.End(); - test.Close(); - return 0; + + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/tfields/T_FIELD1.MMP --- a/textrendering/texthandling/tfields/T_FIELD1.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_FIELD1.MMP for test component T_FIELD1 (released in ETEXT) -// - -target t_field1.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../tfields // source files -userinclude ../tfields -userinclude ../inc // your public include directory should be here -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_FIELD1.CPP -source TESTFAC.CPP - -library euser.lib field.lib tins.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/tfields/T_FIELD1.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/tfields/T_FIELD1.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,46 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_FIELD1_H__ +#define __T_FIELD1_H__ + +#include + +class CT_FIELD1 : public CTestStep + { +public: + CT_FIELD1(); +protected: + TVerdict doTestStepL(); +private: + TBool UpdateField(TInt aPos); + void test1(); + void test2(); + void test3(); + void test4(); + void test5(); + void test6(); + void test7(); + void test8(); + void test_multiple_fields(); + void testFields(); + void setupCleanup(); + }; + +_LIT(KTestStep_T_FIELD1, "T_FIELD1"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/tfields/T_ROMAN.CPP --- a/textrendering/texthandling/tfields/T_ROMAN.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/tfields/T_ROMAN.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -17,19 +17,28 @@ #include "../sfields/FLDNUMS.H" -#include -#include +#include "T_ROMAN.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } #define UNUSED_VAR(a) a = a const TInt KTestCleanupStack=0x40; -LOCAL_D RTest test(_L("Testing denery to Roman numeral converter")); LOCAL_D CTrapCleanup* TheTrapCleanup; // -LOCAL_C void GetValue(HBufC* aBuf,TInt aDenery,TDeneryToCharBase& aNumeral) +void CT_ROMAN::GetValue(HBufC* aBuf,TInt aDenery,TDeneryToCharBase& aNumeral) { TPtr ptr=aBuf->Des(); TInt size=aNumeral.DeneryToChar(ptr,aDenery); @@ -43,19 +52,19 @@ } -LOCAL_D void DisplayValue(HBufC* aBuf,TInt aDenery,TDeneryToCharBase& aNumeral) +void CT_ROMAN::DisplayValue(HBufC* aBuf,TInt aDenery,TDeneryToCharBase& aNumeral) { GetValue(aBuf,aDenery,aNumeral); - test.Printf(_L("%D: "),aDenery); - test.Printf(*aBuf); - test.Printf(_L("\n")); + INFO_PRINTF2(_L("%D: "),aDenery); + INFO_PRINTF1(*aBuf); + INFO_PRINTF1(_L("\n")); } -LOCAL_C void test1() +void CT_ROMAN::test1() { - test.Start(_L("Testing with buffer of adequate size")); - test.Next(_L(" @SYMTestCaseID:SYSLIB-ETEXT-LEGACY-T_ROMAN-0001 ")); + INFO_PRINTF1(_L("Testing with buffer of adequate size")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-ETEXT-LEGACY-T_ROMAN-0001 ")); HBufC* hbuf = HBufC::NewL(10); CleanupStack::PushL(hbuf); TRomanNumeral roman; @@ -64,7 +73,7 @@ test(buf==_L("IV")); CleanupStack::PopAndDestroy(); // - test.Next(_L("Testing with inadequate buffer")); + INFO_PRINTF1(_L("Testing with inadequate buffer")); HBufC* minibuf = HBufC::NewL(1); CleanupStack::PushL(minibuf); GetValue(minibuf,4,roman); @@ -74,9 +83,9 @@ } -LOCAL_C void test2() +void CT_ROMAN::test2() { - test.Next(_L("Testing Roman numerals for a range of denery values")); + INFO_PRINTF1(_L("Testing Roman numerals for a range of denery values")); HBufC* hbuf = HBufC::NewL(10); CleanupStack::PushL(hbuf); TRomanNumeral roman; @@ -102,9 +111,9 @@ } -LOCAL_C void test3() +void CT_ROMAN::test3() { - test.Next(_L("Testing alphabetic numerals for a range of denery values")); + INFO_PRINTF1(_L("Testing alphabetic numerals for a range of denery values")); HBufC* hbuf = HBufC::NewL(10); CleanupStack::PushL(hbuf); TAlphabeticNumeral alpha; @@ -130,7 +139,7 @@ } -LOCAL_C void runTests() +void CT_ROMAN::runTests() // Test the fields dll. // { @@ -145,7 +154,7 @@ } -LOCAL_C void setupCleanup() +void CT_ROMAN::setupCleanup() // // Initialise the cleanup stack. // @@ -161,24 +170,30 @@ }); } +CT_ROMAN::CT_ROMAN() + { + SetTestStepName(KTestStep_T_ROMAN); + } -GLDEF_C TInt E32Main() -// -// Test the streaming framework. -// +TVerdict CT_ROMAN::doTestStepL() { + INFO_PRINTF1(_L("Testing denery to Roman numeral converter")); + SetTestStepResult(EFail); - test.Title(); - - __UHEAP_MARK; + __UHEAP_MARK; + setupCleanup(); - - TRAPD(r,runTests()); - test(r == KErrNone); - + + TRAPD(error1, runTests()); + delete TheTrapCleanup; - __UHEAP_MARKEND; - test.End(); - test.Close(); - return 0; + + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/tfields/T_ROMAN.MMP --- a/textrendering/texthandling/tfields/T_ROMAN.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_ROMAN.MMP for test component T_ROMAN (released in ETEXT) -// - -target t_roman.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../tfields // source files -userinclude ../tfields -userinclude ../inc // your public include directory should be here -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_ROMAN.CPP - -library euser.lib field.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/tfields/T_ROMAN.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/tfields/T_ROMAN.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_ROMAN_H__ +#define __T_ROMAN_H__ + +#include +#include "../sfields/FLDNUMS.H" + +class CT_ROMAN : public CTestStep + { +public: + CT_ROMAN(); +protected: + TVerdict doTestStepL(); +private: + void GetValue(HBufC* aBuf,TInt aDenery,TDeneryToCharBase& aNumeral); + void DisplayValue(HBufC* aBuf,TInt aDenery,TDeneryToCharBase& aNumeral); + void test1(); + void test2(); + void test3(); + void runTests(); + void setupCleanup(); + }; + +_LIT(KTestStep_T_ROMAN, "T_ROMAN"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/tfields/T_STREAM.CPP --- a/textrendering/texthandling/tfields/T_STREAM.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/tfields/T_STREAM.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -16,17 +16,26 @@ */ -#include -//#include /**/ #include #include #include #include #include "TESTFAC.H" +#include "T_STREAM.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } const TInt KTestCleanupStack=0x20; -LOCAL_D RTest test(_L("T_STREAM - Fields Persistence")); LOCAL_D CTrapCleanup* TheTrapCleanup; LOCAL_D CTextFieldSet* TheFieldSetOriginal; LOCAL_D CTextFieldSet* TheFieldSetCopy; @@ -34,7 +43,7 @@ _LIT(KTFieldOutputFile, "c:\\etext\\tfield.tst"); // Test Picture persistance. -LOCAL_C void testStoreRestore(CTextFieldSet* aCopy,const CTextFieldSet* aOriginal) +void CT_STREAM::testStoreRestore(CTextFieldSet* aCopy,const CTextFieldSet* aOriginal) { // set up the store RFs theFs; @@ -62,7 +71,7 @@ template -void testCopyPaste(T* aCopy, T* aOriginal,TInt aCopyPos,TInt aLen,TInt aPastePos,TInt aPasteLen=-1) +void CT_STREAM::testCopyPaste(T* aCopy, T* aOriginal,TInt aCopyPos,TInt aLen,TInt aPastePos,TInt aPasteLen) // Copy part of anOriginal to aCopy using memory-based streams. // { @@ -89,7 +98,7 @@ } -LOCAL_C TBool IsEqual(const CTextFieldSet* aCopy,const CTextFieldSet* anOriginal) +TBool CT_STREAM::IsEqual(const CTextFieldSet* aCopy,const CTextFieldSet* anOriginal) // // Returns true if aCopy contents matches anOriginal contents. // @@ -116,7 +125,7 @@ } -LOCAL_C TBool UpdateField(TInt aPos,CTextFieldSet* aSet) +TBool CT_STREAM::UpdateField(TInt aPos,CTextFieldSet* aSet) { // find out which field aPos is in TFindFieldInfo info; @@ -136,11 +145,11 @@ } -LOCAL_C void test2() +void CT_STREAM::test2() // Streams an empty field set // { - test.Next(_L("- streaming of a default FieldSet (no fields)")); + INFO_PRINTF1(_L("- streaming of a default FieldSet (no fields)")); testStoreRestore(TheFieldSetCopy,TheFieldSetOriginal); test(IsEqual(TheFieldSetCopy,TheFieldSetOriginal)); TheFieldSetOriginal->Reset(); @@ -148,11 +157,11 @@ } -LOCAL_C void test3() +void CT_STREAM::test3() // Streams a field set containing 100 chars & 1 field // { - test.Next(_L("- streaming with a field")); + INFO_PRINTF1(_L("- streaming with a field")); // insert a block of text into the original TheFieldSetOriginal->NotifyInsertion(0,100); // pos=0, len=100 @@ -172,11 +181,11 @@ } -LOCAL_C void test4() +void CT_STREAM::test4() // Streams a field set into a non-empty target // { - test.Next(_L("- streaming into a non-empty target")); + INFO_PRINTF1(_L("- streaming into a non-empty target")); // insert a block of text into the original TheFieldSetOriginal->NotifyInsertion(0,100); // pos=0, len=100 @@ -210,11 +219,11 @@ } -LOCAL_C void test5() +void CT_STREAM::test5() // Streams a field set containing an out of date field // { - test.Next(_L("- streaming an out of date field")); + INFO_PRINTF1(_L("- streaming an out of date field")); // insert a block of text into the original TheFieldSetOriginal->NotifyInsertion(0,100); // pos=0, len=100 @@ -236,11 +245,11 @@ } -LOCAL_C void test6() +void CT_STREAM::test6() // Tests that copy/paste methods exist // { - test.Next(_L("- testing copy/paste methods with empty array")); + INFO_PRINTF1(_L("- testing copy/paste methods with empty array")); testCopyPaste(TheFieldSetCopy,TheFieldSetOriginal,0,0,0); // copyPos,Len,PastePos test(IsEqual(TheFieldSetCopy,TheFieldSetOriginal)); TheFieldSetOriginal->Reset(); @@ -248,11 +257,11 @@ } -LOCAL_C void test7() +void CT_STREAM::test7() // Tests copy/paste methods in detail // { - test.Next(_L("- testing copy/paste methods in detail")); + INFO_PRINTF1(_L("- testing copy/paste methods in detail")); // insert a block of text into the original TheFieldSetOriginal->NotifyInsertion(0,100); // pos=0, len=100 // insert a field into the original @@ -346,11 +355,11 @@ } -LOCAL_C void test8() +void CT_STREAM::test8() // Tests paste method with restricted target length // { - test.Next(_L("- testing paste method with restricted length")); + INFO_PRINTF1(_L("- testing paste method with restricted length")); // insert a block of text into the original TheFieldSetOriginal->NotifyInsertion(0,100); // pos=0, len=100 // insert 2 fields into the original @@ -413,12 +422,12 @@ } -LOCAL_C void test9() +void CT_STREAM::test9() // Tests paste into set with no field factory // Should convert all pasted fields to text... // { - test.Next(_L("- testing paste into set with no field factory")); + INFO_PRINTF1(_L("- testing paste into set with no field factory")); TheFieldSetCopy->SetFieldFactory(NULL); // insert a block of text into the original TheFieldSetOriginal->NotifyInsertion(0,100); // pos=0, len=100 @@ -442,11 +451,11 @@ } -LOCAL_C void test10() +void CT_STREAM::test10() // Streams a field set containing 100 chars & 1 field // { - test.Next(_L("- streaming CDateTimeField")); + INFO_PRINTF1(_L("- streaming CDateTimeField")); // insert a block of text into the original TheFieldSetOriginal->NotifyInsertion(0,100); // pos=0, len=100 @@ -465,9 +474,9 @@ ret=TheFieldSetOriginal->NewFieldValueL(miniBuf,10); // pos=10 test(ret==KErrNone); TPtr buf = miniBuf->Des(); - test.Printf(_L(" Value before streaming: ")); - test.Printf(buf); - test.Printf(_L("\n")); + INFO_PRINTF1(_L(" Value before streaming: ")); + INFO_PRINTF1(buf); + INFO_PRINTF1(_L("\n")); // test streaming testStoreRestore(TheFieldSetCopy,TheFieldSetOriginal); test(IsEqual(TheFieldSetCopy,TheFieldSetOriginal)); @@ -475,23 +484,23 @@ ret=TheFieldSetCopy->NewFieldValueL(miniBuf,10); // pos=10 test(ret==KErrNone); buf = miniBuf->Des(); - test.Printf(_L(" Value after streaming: ")); - test.Printf(buf); - test.Printf(_L("\n")); + INFO_PRINTF1(_L(" Value after streaming: ")); + INFO_PRINTF1(buf); + INFO_PRINTF1(_L("\n")); CleanupStack::PopAndDestroy(); // miniBuf TheFieldSetOriginal->Reset(); TheFieldSetCopy->Reset(); } -void TestStreamingL() +void CT_STREAM::TestStreamingL() // // Test streaming of PrintSetup info. // Stream from one copy to another, then compare // { // create the PrintSetups - test.Start(_L("Streaming CTextFieldSet")); + INFO_PRINTF1(_L("Streaming CTextFieldSet")); // instantiate the factory and FieldSet TheFactory = new(ELeave) TTestFieldFactory(); @@ -534,7 +543,7 @@ } -LOCAL_C void setupCleanup() +void CT_STREAM::setupCleanup() // // Initialise the cleanup stack. // @@ -551,7 +560,7 @@ } -LOCAL_C void DeleteDataFile(const TDesC& aFullName) +void CT_STREAM::DeleteDataFile(const TDesC& aFullName) { RFs fsSession; TInt err = fsSession.Connect(); @@ -580,28 +589,32 @@ } } -GLDEF_C TInt E32Main() -// -// Test streaming conversions. -// + +CT_STREAM::CT_STREAM() + { + SetTestStepName(KTestStep_T_STREAM); + } + +TVerdict CT_STREAM::doTestStepL() { - test.Title(); + INFO_PRINTF1(_L("T_STREAM - Fields Persistence")); + SetTestStepResult(EFail); - __UHEAP_MARK; + __UHEAP_MARK; + setupCleanup(); - - TRAPD(r,TestStreamingL()); - test(r==KErrNone); + + TRAPD(error1, TestStreamingL()); delete TheTrapCleanup; - __UHEAP_MARKEND; - - ::DeleteDataFile(KTFieldOutputFile); //deletion of data files must be before call to End() - DEF047652 - - test.End(); - test.Close(); + __UHEAP_MARKEND; + DeleteDataFile(KTFieldOutputFile); //deletion of data files must be before call to End() - DEF047652 - return 0; + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); } - diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/tfields/T_STREAM.MMP --- a/textrendering/texthandling/tfields/T_STREAM.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_STREAM.MMP for test component T_STREAM (released in ETEXT) -// - -target t_stream.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../tfields // source files -userinclude ../tfields -userinclude ../inc // your public include directory should be here -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_STREAM.CPP -source TESTFAC.CPP - -library euser.lib efsrv.lib estor.lib field.lib tins.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/tfields/T_STREAM.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/tfields/T_STREAM.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,55 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_STREAM_H__ +#define __T_STREAM_H__ + +#include +#include +#include +#include +#include + +class CT_STREAM : public CTestStep + { +public: + CT_STREAM(); +protected: + TVerdict doTestStepL(); +private: + void testStoreRestore(CTextFieldSet* aCopy,const CTextFieldSet* aOriginal); + template + void testCopyPaste(T* aCopy, T* aOriginal,TInt aCopyPos,TInt aLen,TInt aPastePos,TInt aPasteLen=-1); + TBool IsEqual(const CTextFieldSet* aCopy,const CTextFieldSet* anOriginal); + TBool UpdateField(TInt aPos,CTextFieldSet* aSet); + void test2(); + void test3(); + void test4(); + void test5(); + void test6(); + void test7(); + void test8(); + void test9(); + void test10(); + void TestStreamingL(); + void setupCleanup(); + void DeleteDataFile(const TDesC& aFullName); + }; + +_LIT(KTestStep_T_STREAM, "T_STREAM"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TETextServer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/TETextServer.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,175 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include "TETextServer.h" +#include "T_FIELD1.h" +#include "T_ROMAN.h" +#include "T_STREAM.h" +#include "T_RICHOOM.h" +#include "TRTCOPY.h" +#include "TRTCUSTM.h" +#include "TTIMES1.h" +#include "T_CONVRT.h" +#include "T_CONVS.h" +#include "T_CONVS1.h" +#include "T_CPLAIN.h" +#include "T_CUTPST.h" +#include "T_FMT.h" +#include "T_FMT1.h" +#include "T_IMPORT.h" +#include "T_INDTER.h" +#include "T_LAYDOC.h" +#include "T_PARSE_for_TEF.h" +#include "T_PICRES.h" +#include "T_RICH1A.h" +#include "T_RTCLIP.h" +#include "T_SCANDC.h" +#include "T_STYLE.h" +#include "T_TIMES.h" +#include "T_TRAN.h" +#include "TEtextDefect.h" + +_LIT(KServerName, "TETextServer"); + +CTETextServer *CTETextServer::NewL() +/** + @return - Instance of the test server + Same code for Secure and non-secure variants + Called inside the MainL() function to create and start the + CTestServer derived server. + */ + { + CTETextServer * server = new (ELeave) CTETextServer(); + CleanupStack::PushL(server); + // CServer base class call + server->StartL(KServerName); + CleanupStack::Pop(server); + return server; + } + + +LOCAL_C void MainL() +// +// Secure variant +// Much simpler, uses the new Rendezvous() call to sync with the client +// + { +#if (defined __DATA_CAGING__) + RProcess().DataCaging(RProcess::EDataCagingOn); + RProcess().SecureApi(RProcess::ESecureApiOn); +#endif + CActiveScheduler* sched=NULL; + sched=new(ELeave) CActiveScheduler; + CActiveScheduler::Install(sched); + CTETextServer *server = NULL; + // Create the CTestServer derived server + TRAPD(err,server = CTETextServer::NewL()); + if(!err) + { + // Sync with the client and enter the active scheduler + RProcess::Rendezvous(KErrNone); + sched->Start(); + } + delete server; + delete sched; + } + +/** @return - Standard Epoc error code on process exit + Secure variant only + Process entry point. Called by client using RProcess API +*/ +GLDEF_C TInt E32Main() + { + __UHEAP_MARK; + CTrapCleanup* cleanup = CTrapCleanup::New(); + if(cleanup == NULL) + { + return KErrNoMemory; + } + TRAPD(err,MainL()); + // This if statement is here just to shut up RVCT, which would otherwise warn + // that err was set but never used + if (err) + { + err = KErrNone; + } + delete cleanup; + __UHEAP_MARKEND; + return KErrNone; + } + +CTestStep *CTETextServer::CreateTestStep(const TDesC& aStepName) +/** + @return - A CTestStep derived instance + Secure and non-secure variants + Implementation of CTestServer pure virtual + */ + { + if (aStepName == KTestStep_T_FIELD1) + return new CT_FIELD1(); + else if (aStepName == KTestStep_T_ROMAN) + return new CT_ROMAN(); + else if (aStepName == KTestStep_T_STREAM) + return new CT_STREAM(); + else if (aStepName == KTestStep_T_RICHOOM) + return new CT_RICHOOM(); + else if (aStepName == KTestStep_T_TRTCOPY) + return new CT_TRTCOPY(); + else if (aStepName == KTestStep_T_TRTCUSTM) + return new CT_TRTCUSTM(); + else if (aStepName == KTestStep_T_TTIMES1) + return new CT_TTIMES1(); + else if (aStepName == KTestStep_T_CONVRT) + return new CT_CONVRT(); + else if (aStepName == KTestStep_T_CONVS) + return new CT_CONVS(); + else if (aStepName == KTestStep_T_CONVS1) + return new CT_CONVS1(); + else if (aStepName == KTestStep_T_CPLAIN) + return new CT_CPLAIN(); + else if (aStepName == KTestStep_T_CUTPST) + return new CT_CUTPST(); + else if (aStepName == KTestStep_T_FMT) + return new CT_FMT(); + else if (aStepName == KTestStep_T_FMT1) + return new CT_FMT1(); + else if (aStepName == KTestStep_T_IMPORT) + return new CT_IMPORT(); + else if (aStepName == KTestStep_T_INDTER) + return new CT_INDTER(); + else if (aStepName == KTestStep_T_LAYDOC) + return new CT_LAYDOC(); + else if (aStepName == KTestStep_T_PARSE) + return new CT_PARSE(); + else if (aStepName == KTestStep_T_PICRES) + return new CT_PICRES(); + else if (aStepName == KTestStep_T_RICH1A) + return new CT_RICH1A(); + else if (aStepName == KTestStep_T_RTCLIP) + return new CT_RTCLIP(); + else if (aStepName == KTestStep_T_SCANDC) + return new CT_SCANDC(); + else if (aStepName == KTestStep_T_STYLE) + return new CT_STYLE(); + else if (aStepName == KTestStep_T_TIMES) + return new CT_TIMES(); + else if (aStepName == KTestStep_T_TRAN) + return new CT_TRAN(); + else if (aStepName == KTestStep_TEtextDefect) + return new CTEtextDefect(); + return NULL; + } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TETextServer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/TETextServer.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,33 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_TETextServer_H__ +#define __T_TETextServer_H__ + +// Include Files + +#include + +class CTETextServer : public CTestServer + { +public: + static CTETextServer* NewL(); +//from CTestServer + virtual CTestStep* CreateTestStep(const TDesC& aStepName); + }; + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TEtextDefect.cpp --- a/textrendering/texthandling/ttext/TEtextDefect.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/TEtextDefect.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,7 +16,6 @@ */ -#include #include #include #include @@ -25,6 +24,41 @@ #include "TXTPLAIN.H" #include "TxtWriter.h" +#include "TETextDefect.h" + +LOCAL_D CTestStep *pTestStep = NULL; +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } +#define test2(cond, line) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF2(_L("Line %d, ERROR: Test Failed"), line); \ + User::Leave(1); \ + } \ + } +#undef INFO_PRINTF1 +#undef INFO_PRINTF2 +#undef ERR_PRINTF1 +#undef ERR_PRINTF2 +#undef ERR_PRINTF3 +// copy from tefexportconst.h +#define INFO_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) +#define INFO_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) +#define ERR_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrErr, (p1)) +#define ERR_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrErr, (p1), (p2)) +#define ERR_PRINTF3(p1, p2, p3) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrErr, (p1), (p2), (p3)) ; + //Used for supressing warning in OOM tests #define __UNUSED_VAR(var) var = var @@ -35,7 +69,6 @@ #endif _LIT(KTestName, "Start of Tests..."); -RTest theTest(KTestName); /////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////// @@ -44,24 +77,24 @@ { if(!aValue) { - theTest(EFalse, aLine); + test2(EFalse, aLine); } } LOCAL_C void Check(TInt aValue, TInt aExpected, TInt aLine) { if(aValue != aExpected) { - theTest.Printf(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); - theTest(EFalse, aLine); + ERR_PRINTF3(_L("*** Expected error: %d, got: %d\r\n"), aExpected, aValue); + test2(EFalse, aLine); } } -#define TEST(arg) ::Check((arg), __LINE__) -#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) +#define CHECK1(arg) ::Check((arg), __LINE__) +#define CHECK2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__) LOCAL_C void Inc049456L() { - theTest.Next(_L("Inc049456L")); + INFO_PRINTF1(_L("Inc049456L")); CPlainTextConverter* converter = CPlainTextConverter::NewLC(); CleanupStack::PopAndDestroy(converter); @@ -69,7 +102,7 @@ LOCAL_C void OOM049456L() { - theTest.Next(_L("OOM049456L")); + INFO_PRINTF1(_L("OOM049456L")); TInt tryCount=0; TInt error = KErrNone; @@ -95,15 +128,15 @@ TInt endThreadHandleCount; RThread().HandleCount(endProcessHandleCount, endThreadHandleCount); - TEST(startProcessHandleCount == endProcessHandleCount); - TEST(startThreadHandleCount == endThreadHandleCount); + CHECK1(startProcessHandleCount == endProcessHandleCount); + CHECK1(startThreadHandleCount == endThreadHandleCount); __UHEAP_MARKEND; }while(error==KErrNoMemory); - TEST2(error, KErrNone); - theTest.Printf(_L("- server succeeded at heap failure rate of %i\n"),tryCount); + CHECK2(error, KErrNone); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"),tryCount); } @@ -111,7 +144,7 @@ LOCAL_C void Inc051360L() { - theTest.Next(_L("Inc051360L")); + INFO_PRINTF1(_L("Inc051360L")); // Test data to force a remainder of 2 from the charconv unicode conversion. // The etext buffer is 1024 bytes that truncates the last utf-8 character. @@ -223,7 +256,7 @@ const TUint16* ptr = (TUint16*) (ptr8.Ptr()); TPtrC16 des16 (ptr, 2); - TEST(unicodeConversion == des16); + CHECK1(unicodeConversion == des16); CleanupStack::PopAndDestroy (&outputStr); CleanupStack::PopAndDestroy (outbuffer); @@ -234,7 +267,7 @@ LOCAL_C void OOM051360L() { - theTest.Next(_L("OOM051360L")); + INFO_PRINTF1(_L("OOM051360L")); TInt tryCount=0; TInt error = KErrNone; @@ -260,20 +293,20 @@ TInt endThreadHandleCount; RThread().HandleCount(endProcessHandleCount, endThreadHandleCount); - TEST(startProcessHandleCount == endProcessHandleCount); - TEST(startThreadHandleCount == endThreadHandleCount); + CHECK1(startProcessHandleCount == endProcessHandleCount); + CHECK1(startThreadHandleCount == endThreadHandleCount); __UHEAP_MARKEND; }while(error==KErrNoMemory); - TEST2(error, KErrNone); - theTest.Printf(_L("- server succeeded at heap failure rate of %i\n"),tryCount); + CHECK2(error, KErrNone); + INFO_PRINTF2(_L("- server succeeded at heap failure rate of %i\n"),tryCount); } LOCAL_C void OOM056552L() { - theTest.Next(_L("OOM056552L")); + INFO_PRINTF1(_L("OOM056552L")); TInt tryCount=0; TInt error = KErrNone; @@ -305,8 +338,8 @@ }while(error==KErrNoMemory); - theTest(error==KErrNone); - theTest.Printf(_L(" richText->InsertL - succeeded at heap failure rate of %i\n"),tryCount); + test(error==KErrNone); + INFO_PRINTF2(_L(" richText->InsertL - succeeded at heap failure rate of %i\n"),tryCount); } ///////////////////////////////////////////////////////////////////////////////////////////////// // Testing the fix for @@ -352,7 +385,7 @@ TBuf<32> testBuf; TOutputChar outputChar; - theTest.Next(_L("INC055971L - OrganiseByParagraph test")); + INFO_PRINTF1(_L("INC055971L - OrganiseByParagraph test")); { TParagraphTextWriter paragraphTextWriter(outputChar); @@ -361,43 +394,43 @@ testBuf = _L("\xD"); TheOutputTestBuf.Zero(); ::TranslateToEofTestL(slbTranslator, testBuf); - TEST(TheOutputTestBuf.Length() == 1); - TEST(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf.Length() == 1); + CHECK1(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); testBuf = _L("\xA"); TheOutputTestBuf.Zero(); ::TranslateToEofTestL(slbTranslator, testBuf); - TEST(TheOutputTestBuf.Length() == 1); - TEST(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf.Length() == 1); + CHECK1(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); testBuf = _L("\xD\xA"); TheOutputTestBuf.Zero(); ::TranslateToEofTestL(slbTranslator, testBuf); - TEST(TheOutputTestBuf.Length() == 1); - TEST(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf.Length() == 1); + CHECK1(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); testBuf = _L("zz\xD\xA\xD\xA\xAz\xD"); TheOutputTestBuf.Zero(); ::TranslateToEofTestL(slbTranslator, testBuf); - TEST(TheOutputTestBuf.Length() == 7); - TEST(TheOutputTestBuf[0] == 'z'); - TEST(TheOutputTestBuf[1] == 'z'); - TEST(TheOutputTestBuf[2] == CEditableText::EParagraphDelimiter); - TEST(TheOutputTestBuf[3] == CEditableText::EParagraphDelimiter); - TEST(TheOutputTestBuf[4] == CEditableText::EParagraphDelimiter); - TEST(TheOutputTestBuf[5] == 'z'); - TEST(TheOutputTestBuf[6] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf.Length() == 7); + CHECK1(TheOutputTestBuf[0] == 'z'); + CHECK1(TheOutputTestBuf[1] == 'z'); + CHECK1(TheOutputTestBuf[2] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf[3] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf[4] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf[5] == 'z'); + CHECK1(TheOutputTestBuf[6] == CEditableText::EParagraphDelimiter); testBuf = _L("This\xDIs\xATest\xD\xAMessage"); TheOutputTestBuf.Zero(); ::TranslateToEofTestL(slbTranslator, testBuf); - TEST(TheOutputTestBuf.Length() == 20); - TEST(TheOutputTestBuf[4] == CEditableText::EParagraphDelimiter); - TEST(TheOutputTestBuf[7] == CEditableText::EParagraphDelimiter); - TEST(TheOutputTestBuf[12] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf.Length() == 20); + CHECK1(TheOutputTestBuf[4] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf[7] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf[12] == CEditableText::EParagraphDelimiter); } - theTest.Next(_L("INC055971L - OrganiseByLine test")); + INFO_PRINTF1(_L("INC055971L - OrganiseByLine test")); { TLineTextWriter lineTextWriter(outputChar); @@ -406,61 +439,61 @@ testBuf = _L("\xD"); TheOutputTestBuf.Zero(); ::TranslateToEofTestL(slbTranslator, testBuf); - TEST(TheOutputTestBuf.Length() == 1); - TEST(TheOutputTestBuf[0] == ' '); + CHECK1(TheOutputTestBuf.Length() == 1); + CHECK1(TheOutputTestBuf[0] == ' '); testBuf = _L("\xA"); TheOutputTestBuf.Zero(); ::TranslateToEofTestL(slbTranslator, testBuf); - TEST(TheOutputTestBuf.Length() == 1); - TEST(TheOutputTestBuf[0] == ' '); + CHECK1(TheOutputTestBuf.Length() == 1); + CHECK1(TheOutputTestBuf[0] == ' '); testBuf = _L("\xD\xA"); TheOutputTestBuf.Zero(); ::TranslateToEofTestL(slbTranslator, testBuf); - TEST(TheOutputTestBuf.Length() == 1); - TEST(TheOutputTestBuf[0] == ' '); + CHECK1(TheOutputTestBuf.Length() == 1); + CHECK1(TheOutputTestBuf[0] == ' '); testBuf = _L("\xD\xA\xD\xA"); TheOutputTestBuf.Zero(); ::TranslateToEofTestL(slbTranslator, testBuf); - TEST(TheOutputTestBuf.Length() == 1); - TEST(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf.Length() == 1); + CHECK1(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); testBuf = _L("\xD\xD"); TheOutputTestBuf.Zero(); ::TranslateToEofTestL(slbTranslator, testBuf); - TEST(TheOutputTestBuf.Length() == 1); - TEST(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf.Length() == 1); + CHECK1(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); testBuf = _L("\xA\xA"); TheOutputTestBuf.Zero(); ::TranslateToEofTestL(slbTranslator, testBuf); - TEST(TheOutputTestBuf.Length() == 1); - TEST(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf.Length() == 1); + CHECK1(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); testBuf = _L("\xA\xD"); TheOutputTestBuf.Zero(); ::TranslateToEofTestL(slbTranslator, testBuf); - TEST(TheOutputTestBuf.Length() == 1); - TEST(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf.Length() == 1); + CHECK1(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); testBuf = _L("\xD\xA\xA"); TheOutputTestBuf.Zero(); ::TranslateToEofTestL(slbTranslator, testBuf); - TEST(TheOutputTestBuf.Length() == 1); - TEST(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf.Length() == 1); + CHECK1(TheOutputTestBuf[0] == CEditableText::EParagraphDelimiter); testBuf = _L("\xD\xAz\xAzz\xA\xD"); TheOutputTestBuf.Zero(); ::TranslateToEofTestL(slbTranslator, testBuf); - TEST(TheOutputTestBuf.Length() == 6); - TEST(TheOutputTestBuf[0] == ' '); - TEST(TheOutputTestBuf[1] == 'z'); - TEST(TheOutputTestBuf[2] == ' '); - TEST(TheOutputTestBuf[3] == 'z'); - TEST(TheOutputTestBuf[4] == 'z'); - TEST(TheOutputTestBuf[5] == CEditableText::EParagraphDelimiter); + CHECK1(TheOutputTestBuf.Length() == 6); + CHECK1(TheOutputTestBuf[0] == ' '); + CHECK1(TheOutputTestBuf[1] == 'z'); + CHECK1(TheOutputTestBuf[2] == ' '); + CHECK1(TheOutputTestBuf[3] == 'z'); + CHECK1(TheOutputTestBuf[4] == 'z'); + CHECK1(TheOutputTestBuf[5] == CEditableText::EParagraphDelimiter); } } @@ -479,7 +512,7 @@ */ LOCAL_C void INC097216L() { - theTest.Next(_L(" @SYMTestCaseID:SYSLIB-ETEXT-CT-3346 INC097216L - Test EOD character is formatted with rest of text ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-ETEXT-CT-3346 INC097216L - Test EOD character is formatted with rest of text ")); __UHEAP_MARK; @@ -504,7 +537,7 @@ richText->GetCharFormat(charFormat, formatMask, textLength, 1); // get format info for EOD character TInt EodFontHeight = charFormat.iFontSpec.iHeight; - TEST(characterFontHeight == EodFontHeight); + CHECK1(characterFontHeight == EodFontHeight); delete paraLayer; paraLayer = NULL; delete charLayer; charLayer = NULL; @@ -526,7 +559,7 @@ */ LOCAL_C void INC101996L() { - theTest.Next(_L("@SYMTestCaseID:SYSLIB-ETEXT-CT-3386 INC101996 CEikRichTextEditor control don't support anti-aliasing font")); + INFO_PRINTF1(_L("@SYMTestCaseID:SYSLIB-ETEXT-CT-3386 INC101996 CEikRichTextEditor control don't support anti-aliasing font")); __UHEAP_MARK; @@ -565,8 +598,8 @@ TGlyphBitmapType startBitmapType = defaultCharFormat.iFontSpec.iFontStyle.BitmapType(); //Verify the formatting and the contents of the string - TEST2(startBitmapType, EDefaultGlyphBitmap); - TEST(defaultString == KDefaulFormattedText); + CHECK2(startBitmapType, EDefaultGlyphBitmap); + CHECK1(defaultString == KDefaulFormattedText); //Get the string portion with antialiased formatting TPtrC antialiasedString; @@ -575,8 +608,8 @@ TGlyphBitmapType endBitmapType = antiAliasedCharFormat.iFontSpec.iFontStyle.BitmapType(); //Verify the formatting and the contents of the string - TEST2(endBitmapType,EAntiAliasedGlyphBitmap); - TEST(antialiasedString == KAntiAliasedText); + CHECK2(endBitmapType,EAntiAliasedGlyphBitmap); + CHECK1(antialiasedString == KAntiAliasedText); delete paraLayer; paraLayer = NULL; delete charLayer; charLayer = NULL; @@ -603,28 +636,28 @@ __UHEAP_MARKEND; } - -/*** -Main -*/ -GLDEF_C TInt E32Main() - { - CTrapCleanup* trapCleanup=CTrapCleanup::New(); + +CTEtextDefect::CTEtextDefect() + { + SetTestStepName(KTestStep_TEtextDefect); + pTestStep = this; + } + +TVerdict CTEtextDefect::doTestStepL() + { + SetTestStepResult(EFail); + + CTrapCleanup* trapCleanup=CTrapCleanup::New(); - theTest.Start(KTestName); - TRAPD(error, DoTestsL()); - TEST2(error, KErrNone); - - delete trapCleanup; - - theTest.End(); - theTest.Close(); + INFO_PRINTF1(KTestName); + TRAPD(error, DoTestsL()); + + delete trapCleanup; - return KErrNone; - } - - - + if (error == KErrNone) + { + SetTestStepResult(EPass); + } - - + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TEtextDefect.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/TEtextDefect.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __TEtextDefect_H__ +#define __TEtextDefect_H__ + +#include + +class CTEtextDefect : public CTestStep + { +public: + CTEtextDefect(); +protected: + TVerdict doTestStepL(); +private: + }; + +_LIT(KTestStep_TEtextDefect, "TEtextDefect"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TEtextDefect.mmp --- a/textrendering/texthandling/ttext/TEtextDefect.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -target tetextdefect.exe -targettype EXE -UID 0x100039CE 0xE0008383 -VENDORID 0x70000001 - -userinclude ../ttext -userinclude ../stext -userinclude ../inc ../traces -MW_LAYER_SYSTEMINCLUDE_SYMBIAN - -SOURCEPATH ../ttext -source TEtextDefect.cpp -SOURCEPATH ../stext -source TXTPLAIN.CPP -source TxtWriter.cpp - -library euser.lib estor.lib efsrv.lib charconv.lib gdi.lib etext.lib tins.lib - -SMPSAFE diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TRICHOOM.CPP --- a/textrendering/texthandling/ttext/TRICHOOM.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/TRICHOOM.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -19,7 +19,6 @@ #include #include "TSTCLIPB.H" #include -#include #include #include #include @@ -27,9 +26,21 @@ #include #include #include "../incp/T_PMLPAR.H" +#include "T_RICHOOM.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } const TInt KTestCleanupStack=0x500; -GLDEF_C RTest test(_L("TRICHOOM")); + LOCAL_D RFs theFs; LOCAL_D CParaFormatLayer* GlobalParaFormatLayer; LOCAL_D CCharFormatLayer* GlobalCharFormatLayer; @@ -39,7 +50,7 @@ LOCAL_D RFs TheSession; -LOCAL_C CRichText* LoadIntoTextL(TFileName& aFileName) +CRichText* CT_RICHOOM::LoadIntoTextL(TFileName& aFileName) // { TRAPD(ret, @@ -57,12 +68,12 @@ } -LOCAL_D void ConstructOOM() +void CT_RICHOOM::ConstructOOM() // Test CRichText construction, (and index), forcing a leave error at each // possible stage of the process. // { - test.Start(_L("Construction under low memory conditions")); + INFO_PRINTF1(_L("Construction under low memory conditions")); CParaFormatLayer* paraLayer=CParaFormatLayer::NewL(); CCharFormatLayer* charLayer=CCharFormatLayer::NewL(); @@ -93,14 +104,14 @@ delete charLayer; TBuf<36> answer; answer.Format(_L(" #allocs for full c'tion: %d\n"),failRate-1); - test.Printf(answer); + INFO_PRINTF1(answer); } -LOCAL_D void CopyPasteOOM() +void CT_RICHOOM::CopyPasteOOM() { // Set up the framework - test.Next(_L("Copy/Paste OOM")); + INFO_PRINTF1(_L("Copy/Paste OOM")); CRichText* richText1=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); TFileName file=_L("z:\\test\\app-framework\\etext\\climb.txt"); /*TInt count=*/richText1->ImportTextFileL(0,file,CPlainText::EOrganiseByParagraph); @@ -129,7 +140,7 @@ richText1->ApplyCharFormatL(charFormat,charMask,10,37); // // Copy to clipboard normally. - test.Start(_L("Copy Normally")); + INFO_PRINTF1(_L("Copy Normally")); User::LeaveIfError(TheSession.Connect()); CClipboard* writeBoard=CClipboard::NewForWritingLC(TheSession); richText1->CopyToStoreL(writeBoard->Store(),writeBoard->StreamDictionary(),0,richText1->DocumentLength()-1); // forces virtual trailing phrase @@ -140,7 +151,7 @@ richText1=NULL; // // Paste from clipboard normally. - test.Next(_L("Paste Normally")); + INFO_PRINTF1(_L("Paste Normally")); __UHEAP_MARK; CRichText* empty=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); MDemPictureFactory pictureFactory; @@ -156,8 +167,8 @@ __UHEAP_MARKEND; // // Paste from clipboard with OOM - test.Next(_L("Paste with OOM")); - test.Next(_L("...please wait")); + INFO_PRINTF1(_L("Paste with OOM")); + INFO_PRINTF1(_L("...please wait")); __UHEAP_MARK; empty=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); for (TInt ii=1; ;ii++) @@ -178,17 +189,16 @@ empty=NULL; TheSession.Close(); __UHEAP_MARKEND; - test.End(); } -LOCAL_D void CopyPasteOOM2() +void CT_RICHOOM::CopyPasteOOM2() // Test case for defect HA-282 - simple case // { __UHEAP_MARK; // Set up the framework - test.Next(_L("Copy/Paste OOM 2")); + INFO_PRINTF1(_L("Copy/Paste OOM 2")); CRichText* richText1=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); richText1->InsertL(0,_L("HelloHello")); richText1->InsertL(5,CEditableText::EParagraphDelimiter); @@ -200,7 +210,7 @@ richText1->ApplyCharFormatL(charFormat,charMask,0,6); // // Copy to clipboard normally. - test.Start(_L("Copy Normally")); + INFO_PRINTF1(_L("Copy Normally")); User::LeaveIfError(TheSession.Connect()); CClipboard* writeBoard=CClipboard::NewForWritingLC(TheSession); richText1->CopyToStoreL(writeBoard->Store(),writeBoard->StreamDictionary(),2,6); // forces virtual trailing phrase @@ -209,7 +219,7 @@ writeBoard=NULL; // // Paste from clipboard normally. - test.Next(_L("Paste Normally")); + INFO_PRINTF1(_L("Paste Normally")); // __UHEAP_MARK; CRichText* empty=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); empty->AppendTakingSolePictureOwnershipL(*richText1); @@ -224,8 +234,8 @@ // __UHEAP_MARKEND; // // Paste from clipboard with OOM - test.Next(_L("Paste with OOM")); - test.Next(_L("...please wait")); + INFO_PRINTF1(_L("Paste with OOM")); + INFO_PRINTF1(_L("...please wait")); __UHEAP_MARK; empty=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); empty->AppendTakingSolePictureOwnershipL(*richText1); @@ -249,18 +259,17 @@ __UHEAP_MARKEND; TheSession.Close(); __UHEAP_MARKEND; - test.End(); } -LOCAL_D void WriteInlineL(RWriteStream& aStream,CRichText* aRichText) +void CT_RICHOOM::WriteInlineL(RWriteStream& aStream,CRichText* aRichText) { aRichText->ExternalizeStyleDataL(aStream); aRichText->ExternalizeMarkupDataL(aStream); aRichText->ExternalizePlainTextL(aStream); } -LOCAL_D void ReadInlineL(RReadStream& aStream,CRichText* aRichText) +void CT_RICHOOM::ReadInlineL(RReadStream& aStream,CRichText* aRichText) { aRichText->InternalizeStyleDataL(aStream); aRichText->InternalizeMarkupDataL(aStream); @@ -268,7 +277,7 @@ } -LOCAL_C CStyleList* CreatePopulatedStyleList() +CStyleList* CT_RICHOOM::CreatePopulatedStyleList() // { // @@ -287,7 +296,7 @@ } _LIT(KTRichOutputFile,"c:\\etext\\TRICH.DAT"); -LOCAL_C void SaveLoadOOM() +void CT_RICHOOM::SaveLoadOOM() { // Set up the framework theFs.Delete(KTRichOutputFile); @@ -305,8 +314,8 @@ RStoreWriteStream out; TStreamId id1 = out.CreateLC(*store); - test.Next(_L("Store/Restore OOM")); - test.Start(_L("Writing Inline noramlly")); + INFO_PRINTF1(_L("Store/Restore OOM")); + INFO_PRINTF1(_L("Writing Inline noramlly")); // Write out inline normally WriteInlineL(out,richText1); delete richText1; @@ -317,7 +326,7 @@ in.OpenLC(*store,id1); CRichText* empty = CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); - test.Next(_L("Reading Inline noramlly")); + INFO_PRINTF1(_L("Reading Inline noramlly")); // Read in inline normally: TRAPD(ret,ReadInlineL(in,empty)); test(ret==KErrNone); @@ -325,7 +334,7 @@ delete empty; empty=NULL; - test.Next(_L("Reading Inline with OOM")); + INFO_PRINTF1(_L("Reading Inline with OOM")); // Read in inline with OOM: empty=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); @@ -346,7 +355,7 @@ } } - test.Next(_L("Writing Inline with OOM")); + INFO_PRINTF1(_L("Writing Inline with OOM")); // Write out inline with OOM: CStyleList* list2=CreatePopulatedStyleList(); CRichText* richText2 = CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer,*list2); @@ -371,7 +380,7 @@ } store->CommitL(); - test.Next(_L("Reading Inline after OOM write")); + INFO_PRINTF1(_L("Reading Inline after OOM write")); // Read in inline normally following a write out with OOM RStoreReadStream in3; in3.OpenLC(*store,i); @@ -404,20 +413,20 @@ richText3->InsertL(0,hdr1); richText3->InsertL(2,_L("hello")); - test.Next(_L("Writing Outline noramlly")); + INFO_PRINTF1(_L("Writing Outline noramlly")); // Write outline normally: TStreamId id2 = richText3->StoreL(*store); store->CommitL(); delete richText3; - test.Next(_L("Reading Outline noramlly")); + INFO_PRINTF1(_L("Reading Outline noramlly")); // Read outline normally: empty->Reset(); TRAP(ret,empty->RestoreL(*store,id2)); test(ret==KErrNone); empty->Reset(); - test.Next(_L("Reading Outline with OOM")); + INFO_PRINTF1(_L("Reading Outline with OOM")); // Read outline with OOM: CRichText* inText2=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); for (TInt kk = 1; ;++kk) @@ -454,7 +463,7 @@ richText4->InsertL(0,hdr6); richText4->InsertL(1,_L("hello")); - test.Next(_L("Writing Outline with OOM")); + INFO_PRINTF1(_L("Writing Outline with OOM")); // Wtite outline with OOM: TStreamId id3(0); for (TInt mm=1; ;++mm) @@ -470,7 +479,7 @@ } } - test.Next(_L("Reading Outline after OOM write")); + INFO_PRINTF1(_L("Reading Outline after OOM write")); // Read outline normally folliwng a write with OOM: empty->Reset(); TRAP(ret,empty->RestoreL(*store,id3)); @@ -478,11 +487,10 @@ CleanupStack::PopAndDestroy(); // store delete empty; - test.End(); } -LOCAL_C void CheckTextIntegrity(const CRichText* aText) +void CT_RICHOOM::CheckTextIntegrity(const CRichText* aText) // Simply invokes a method to run the text (& component's) onvariants. // { @@ -493,12 +501,12 @@ } -LOCAL_C void BasicEditOOM() +void CT_RICHOOM::BasicEditOOM() // Tests basic editing functions under OOM conditions. // { - test.Next(_L("Basic Editing methods under OOM")); - test.Start(_L("InsertL(TChar)")); + INFO_PRINTF1(_L("Basic Editing methods under OOM")); + INFO_PRINTF1(_L("InsertL(TChar)")); // // Insert a single character const TInt insertCharLoop=10; @@ -525,7 +533,7 @@ delete richText1; // // - test.Next(_L("InsertL(TDesC&)")); + INFO_PRINTF1(_L("InsertL(TDesC&)")); // // Insert a descriptor const TInt insertDescriptorLoop=10; @@ -538,9 +546,13 @@ __UHEAP_SETFAIL(RHeap::EDeterministic,nn); TRAPD(ret,richText1->InsertL(richText1->DocumentLength(),buf)); if (ret!=KErrNone) + { test(richText1->DocumentLength()==0); + } else + { test(richText1->DocumentLength()==buf.Length()); + } CheckTextIntegrity(richText1); richText1->Reset(); } @@ -549,7 +561,7 @@ // // - test.Next(_L("InsertL(TPictureHeader&)")); + INFO_PRINTF1(_L("InsertL(TPictureHeader&)")); // // Insert a picture header richText1=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer,CEditableText::ESegmentedStorage,KSmallTextBufferSize); @@ -583,15 +595,13 @@ } __UHEAP_RESET; delete richText1; - - test.End(); __UHEAP_RESET; // delete richText1; } -LOCAL_C void AppendTest1L() +void CT_RICHOOM::AppendTest1L() { // Insert a single character const TInt insertDescriptorLoop=10; @@ -606,7 +616,9 @@ __UHEAP_SETFAIL(RHeap::EDeterministic,nn); TRAPD(ret,target->AppendTakingSolePictureOwnershipL(*source)); if (ret!=KErrNone) + { test(target->DocumentLength()==targetStartLength); + } else { TInt targetLength=target->DocumentLength(); @@ -618,11 +630,10 @@ __UHEAP_RESET; delete target; delete source; -// test.End(); } -LOCAL_C void AppendTest2L(CRichText* aTarget) +void CT_RICHOOM::AppendTest2L(CRichText* aTarget) { __UHEAP_RESET; const TInt KSmallTextBufferSize=1; @@ -638,7 +649,9 @@ aTarget->AppendTakingSolePictureOwnershipL(*source)); __UHEAP_RESET; if (ret!=KErrNone) + { test(aTarget->DocumentLength()==targetStartLength); + } else {// We have succeeded in appending the document. TInt paraDelimiter=(targetStartLength>0) ? 1 : 0; @@ -651,7 +664,7 @@ } -LOCAL_C void AppendTestNewL(CRichText* aTarget) +void CT_RICHOOM::AppendTestNewL(CRichText* aTarget) { const TInt KSmallTextBufferSize=4; TFileName filename=_L("z:\\test\\app-framework\\etext\\richoom2.pml"); @@ -670,7 +683,9 @@ aTarget->AppendTakingSolePictureOwnershipL(*source)); __UHEAP_RESET; if (ret!=KErrNone) + { test(aTarget->DocumentLength()==targetStartLength); + } else {// We have succeeded in appending the document. TInt paraDelimiter=(targetStartLength>0) ? 1 : 0; @@ -683,7 +698,7 @@ } -LOCAL_C void AppendTest3L(CRichText* aTarget) +void CT_RICHOOM::AppendTest3L(CRichText* aTarget) { const TInt KSmallTextBufferSize=31; TFileName filename=_L("z:\\test\\app-framework\\etext\\richoom2.pml"); @@ -698,7 +713,9 @@ aTarget->AppendTakingSolePictureOwnershipL(*source)); __UHEAP_RESET; if (ret!=KErrNone) + { test(aTarget->DocumentLength()==targetStartLength); + } else {// We have succeeded in appending the document. TInt paraDelimiter=(targetStartLength>0) ? 1 : 0; @@ -711,50 +728,48 @@ } -LOCAL_C void AppendTakingSolePictureOwnershipOOM() +void CT_RICHOOM::AppendTakingSolePictureOwnershipOOM() // { - test.Next(_L("AppendTakingSolePictureOwnershipL() under OOM")); + INFO_PRINTF1(_L("AppendTakingSolePictureOwnershipL() under OOM")); // - test.Start(_L("Plain text only")); + INFO_PRINTF1(_L("Plain text only")); TRAPD(ret, AppendTest1L()); test(ret==KErrNone); // - test.Next(_L("Plain text + phrase markup, with empty target")); + INFO_PRINTF1(_L("Plain text + phrase markup, with empty target")); TRAP(ret, AppendTest2L(STATIC_CAST(CRichText*,NULL))); test(ret==KErrNone); // - test.Next(_L("Plain text + phrase markup, with non-empty target")); + INFO_PRINTF1(_L("Plain text + phrase markup, with non-empty target")); TFileName filename=_L("z:\\test\\app-framework\\etext\\richoom1.pml"); CRichText* target=LoadIntoTextL(filename); TRAP(ret, AppendTest2L(target)); test(ret==KErrNone); // -// test.Next(_L("Plain text + shared markup, with empty target")); +// INFO_PRINTF1(_L("Plain text + shared markup, with empty target")); // TRAP(ret, // AppendTest3L(STATIC_CAST(CRichText*,NULL))); // test(ret==KErrNone); // - test.Next(_L("Plain text + shared markup, non-empty target")); + INFO_PRINTF1(_L("Plain text + shared markup, non-empty target")); TRAP(ret, AppendTestNewL(STATIC_CAST(CRichText*,NULL))); test(ret==KErrNone); // - test.Next(_L("Plain text + shared markup, with non-empty target")); + INFO_PRINTF1(_L("Plain text + shared markup, with non-empty target")); filename=_L("z:\\test\\app-framework\\etext\\richoom2.pml"); target=LoadIntoTextL(filename); TRAP(ret, AppendTest3L(target)); test(ret==KErrNone); - // - test.End(); } -LOCAL_C void DoAppendParagraphOOM(CRichText* aRichText,TBool aUnderOOM,TInt aReplicas) +void CT_RICHOOM::DoAppendParagraphOOM(CRichText* aRichText,TBool aUnderOOM,TInt aReplicas) { if (!aUnderOOM) { @@ -784,53 +799,51 @@ test(newParaCount==paraCount+aReplicas); TBuf<30> buf; buf.Format(_L(" allocs=%d\n"),jj); - test.Printf(buf); + INFO_PRINTF1(buf); break; } } } -LOCAL_C void AppendParagraphOOM() +void CT_RICHOOM::AppendParagraphOOM() // { TInt manyParas=5; TInt singlePara=1; - test.Next(_L("AppendParagraphL() under OOM")); + INFO_PRINTF1(_L("AppendParagraphL() under OOM")); // - test.Start(_L("appending normally - text has markup - single para")); + INFO_PRINTF1(_L("appending normally - text has markup - single para")); TFileName filename=_L("z:\\test\\app-framework\\etext\\richoom1.pml"); CRichText* text=LoadIntoTextL(filename); DoAppendParagraphOOM(text,EFalse,singlePara); delete text; text=NULL; - test.Next(_L("appending with OOM - text has markup - single para")); + INFO_PRINTF1(_L("appending with OOM - text has markup - single para")); text=LoadIntoTextL(filename); DoAppendParagraphOOM(text,ETrue,singlePara); delete text; text=NULL; - test.Next(_L("appending normally - text has markup - many paras")); + INFO_PRINTF1(_L("appending normally - text has markup - many paras")); text=LoadIntoTextL(filename); DoAppendParagraphOOM(text,EFalse,manyParas); delete text; text=NULL; - test.Next(_L("appending with OOM - text has markup - many paras")); + INFO_PRINTF1(_L("appending with OOM - text has markup - many paras")); text=LoadIntoTextL(filename); DoAppendParagraphOOM(text,ETrue,manyParas); delete text; text=NULL; - - test.End(); } -LOCAL_C void ApplyCharFormatOOM1() +void CT_RICHOOM::ApplyCharFormatOOM1() { // Set up the framework - test.Next(_L("ApplyCharFormatL() OOM - no markup")); + INFO_PRINTF1(_L("ApplyCharFormatL() OOM - no markup")); CRichText* richText1=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); richText1->InsertL(0,_L("SOME VERY FINE TEXT")); @@ -865,10 +878,10 @@ } -LOCAL_C void ApplyCharFormatOOM2() +void CT_RICHOOM::ApplyCharFormatOOM2() { // Set up the framework - test.Next(_L("ApplyCharFormatL() OOM - with markup")); + INFO_PRINTF1(_L("ApplyCharFormatL() OOM - with markup")); CRichText* richText1=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); richText1->InsertL(0,_L("SOME TEXT")); @@ -911,7 +924,7 @@ } -LOCAL_C void doMainL() +void CT_RICHOOM::doMainL() { GlobalPictureFactory=new(ELeave) MDemPictureFactory; @@ -937,7 +950,6 @@ test(ret==KErrNone); TRAP(ret,ApplyCharFormatOOM2()); test(ret==KErrNone); - test.End(); // delete GlobalPictureFactory; delete GlobalParaFormatLayer; @@ -946,7 +958,7 @@ } -LOCAL_C void setupCleanup() +void CT_RICHOOM::setupCleanup() // // Initialise the cleanup stack. // @@ -963,7 +975,7 @@ } -LOCAL_C void DeleteDataFile(const TDesC& aFullName) +void CT_RICHOOM::DeleteDataFile(const TDesC& aFullName) { RFs fsSession; TInt err = fsSession.Connect(); @@ -992,27 +1004,30 @@ } } -GLDEF_C TInt E32Main() -// -// Test permanent file store. -// +CT_RICHOOM::CT_RICHOOM() { - test.Title(); - setupCleanup(); - - __UHEAP_MARK; -// - test.Start(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_TRICHOOM-0001 RichText OOM Testing ")); - TRAPD(ret,doMainL()); - test(ret==KErrNone); - - ::DeleteDataFile(KTRichOutputFile); //deletion of data files must be before call to End() - DEF047652 - test.End(); -// - __UHEAP_MARKEND; - delete TheTrapCleanup; - test.Close(); - - return KErrNone; + SetTestStepName(KTestStep_T_RICHOOM); } +TVerdict CT_RICHOOM::doTestStepL() + { + SetTestStepResult(EFail); + + __UHEAP_MARK; + + setupCleanup(); + + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_TRICHOOM-0001 RichText OOM Testing ")); + TRAPD(error1, doMainL()); + + delete TheTrapCleanup; + + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TRICHOOM.MMP --- a/textrendering/texthandling/ttext/TRICHOOM.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// TRICHOOM.MMP for test component TRICHOOM (released in ETEXT) -// - -target trichoom.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc // your public include directory should be here -userinclude ../incp -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source TRICHOOM.CPP -source XRICHOOM.CPP - -library euser.lib efsrv.lib estor.lib gdi.lib etext.lib tins.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TRTCOPY.CPP --- a/textrendering/texthandling/ttext/TRTCOPY.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/TRTCOPY.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,7 +16,6 @@ */ -#include #include #include #include @@ -26,8 +25,19 @@ #include #include #include "../incp/T_PMLPAR.H" +#include "TRTCOPY.h" -GLDEF_C RTest test(_L("TRTCOPY")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + LOCAL_D RFs theFs; LOCAL_D CRichText* ComponentText; LOCAL_D CParaFormatLayer* GlobalParaFormatLayer; @@ -38,7 +48,7 @@ const TInt KTestCleanupStack=0x500; -LOCAL_C CRichText* LoadIntoTextL(TFileName& aFileName) +CRichText* CT_TRTCOPY::LoadIntoTextL(TFileName& aFileName) // { TRAPD(ret, @@ -54,7 +64,7 @@ } /* -LOCAL_C CStyleList* CreatePopulatedStyleList() +CStyleList* CT_TRTCOPY::CreatePopulatedStyleList() // { // @@ -70,7 +80,7 @@ } */ -LOCAL_C void CreateAggregateTextL() +void CT_TRTCOPY::CreateAggregateTextL() // { TFileName theFileName=_L("z:\\test\\app-framework\\etext\\aggregat.pml"); @@ -103,15 +113,13 @@ } -LOCAL_C void doMainL() +void CT_TRTCOPY::doMainL() { CreateAggregateTextL(); - - } -LOCAL_C void setupCleanup() +void CT_TRTCOPY::setupCleanup() // // Initialise the cleanup stack. // @@ -127,24 +135,29 @@ test(r==KErrNone); } - -GLDEF_C TInt E32Main() -// -// Test permanent file store. -// +CT_TRTCOPY::CT_TRTCOPY() { - test.Title(); - setupCleanup(); - __UHEAP_MARK; -// - test.Start(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_TRTCOPY-0001 RichText Copy Testing ")); - TRAPD(ret,doMainL()); - test(ret==KErrNone); - test.End(); -// - __UHEAP_MARKEND; - delete TheTrapCleanup; - test.Close(); - return KErrNone; + SetTestStepName(KTestStep_T_TRTCOPY); } +TVerdict CT_TRTCOPY::doTestStepL() + { + SetTestStepResult(EFail); + + INFO_PRINTF1(_L("TRTCOPY")); + setupCleanup(); + __UHEAP_MARK; + + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_TRTCOPY-0001 RichText Copy Testing ")); + TRAPD(error1, doMainL()); + + __UHEAP_MARKEND; + delete TheTrapCleanup; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TRTCOPY.MMP --- a/textrendering/texthandling/ttext/TRTCOPY.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// TRTCOPY.MMP for test component TRTCOPY (released in ETEXT) -// - -target trtcopy.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source TRTCOPY.CPP -source XRTCOPY.CPP - -library euser.lib efsrv.lib gdi.lib etext.lib tins.lib -debuglibrary estor.lib - -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TRTCOPY.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/TRTCOPY.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,39 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_TRTCOPY_H__ +#define __T_TRTCOPY_H__ + +#include + +class CT_TRTCOPY : public CTestStep + { +public: + CT_TRTCOPY(); +protected: + TVerdict doTestStepL(); +private: + CRichText* LoadIntoTextL(TFileName& aFileName); + //CStyleList* CT_TRTCOPY::CreatePopulatedStyleList(); + void CreateAggregateTextL(); + void doMainL(); + void setupCleanup(); + }; + +_LIT(KTestStep_T_TRTCOPY, "TRTCOPY"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TRTCUSTM.CPP --- a/textrendering/texthandling/ttext/TRTCUSTM.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/TRTCUSTM.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -19,7 +19,6 @@ #include #include #include "TXTMRTSR.H" -#include #include #include #include @@ -27,8 +26,19 @@ #include #include #include +#include "TRTCUSTM.h" -GLDEF_C RTest test(_L("TRTCUSTM")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } + LOCAL_D RFs theFs; LOCAL_D CFileStore* TheStore; LOCAL_D CParaFormatLayer* GlobalParaFormatLayer; @@ -47,7 +57,7 @@ //////////////////////////////////////////////////////////////////////////////////////////// -class TTestFieldFactory : public MTextFieldFactory +class TTestFieldFactoryTRTCUSTM : public MTextFieldFactory { public: // from MTextFieldFactory @@ -56,7 +66,7 @@ // Returns NULL if it does not recognise/support the field type }; -CTextField* TTestFieldFactory::NewFieldL(TUid aFieldType) +CTextField* TTestFieldFactoryTRTCUSTM::NewFieldL(TUid aFieldType) // Creates a field (in aHeader) of the type specified in aHeader // { @@ -67,7 +77,7 @@ } ///////////////////////////////////////////////////////////////////////////////////////////// -LOCAL_D void WriteInlineL(RWriteStream& aStream,CRichText* aRichText) +void CT_TRTCUSTM::WriteInlineL(RWriteStream& aStream,CRichText* aRichText) { aRichText->CancelInsertCharFormat(); aRichText->ExternalizeFieldDataL(aStream); @@ -79,7 +89,7 @@ aRichText->ExternalizePlainTextL(aStream); } -LOCAL_D void ReadInlineL(RReadStream& aStream,CRichText* aRichText) +void CT_TRTCUSTM::ReadInlineL(RReadStream& aStream,CRichText* aRichText) { aRichText->InternalizeFieldDataL(aStream); aRichText->InternalizeStyleDataL(aStream); @@ -90,7 +100,7 @@ } -LOCAL_D TStreamId PerformSaveL(CRichText* aRichText) +TStreamId CT_TRTCUSTM::PerformSaveL(CRichText* aRichText) // { RStoreWriteStream out; @@ -104,7 +114,7 @@ } -LOCAL_C CRichText* PerformLoadL(TStreamId aId) +CRichText* CT_TRTCUSTM::PerformLoadL(TStreamId aId) // { CRichText* text=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); @@ -118,7 +128,7 @@ } -LOCAL_C CStyleList* CreatePopulatedStyleList() +CStyleList* CT_TRTCUSTM::CreatePopulatedStyleList() // { // @@ -138,7 +148,7 @@ _LIT(KTRtCustOutputFile,"c:\\etext\\TRTCUSTM.DAT"); -LOCAL_C void CustomLoadSave() +void CT_TRTCUSTM::CustomLoadSave() { // Set up the framework theFs.Delete(KTRtCustOutputFile); @@ -149,7 +159,7 @@ // // Case (1) Rich text with owned style list. - no markup data // - test.Start(_L("RT + no markup + style list owned")); + INFO_PRINTF1(_L("RT + no markup + style list owned")); // // Setup the rich text CStyleList* list=CreatePopulatedStyleList(); @@ -175,7 +185,7 @@ // // Case (2) Rich text with referenced style list. - no markup data // - test.Next(_L("RT + no markup + style list externally owned")); + INFO_PRINTF1(_L("RT + no markup + style list externally owned")); // // Setup the rich text list=CreatePopulatedStyleList(); @@ -207,7 +217,7 @@ // // Case (3) Rich text with referenced style list. - with markup // - test.Next(_L("RT + markup + style list externally owned")); + INFO_PRINTF1(_L("RT + markup + style list externally owned")); // Setup the rich text list=CreatePopulatedStyleList(); richText1=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer,*list); @@ -244,7 +254,7 @@ // // Case (4) Rich text with no style list. - no effective markup // - test.Next(_L("RT + delete picture + no style list")); + INFO_PRINTF1(_L("RT + delete picture + no style list")); // Setup the rich text richText1=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); hasMarkupData=richText1->HasMarkupData(); @@ -283,7 +293,7 @@ // // Case (5) Rich text with SetInsertCharFormat() // - test.Next(_L("RT + SetInsertCharFormatL()")); + INFO_PRINTF1(_L("RT + SetInsertCharFormatL()")); // Setup the rich text richText1=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); hasMarkupData=richText1->HasMarkupData(); @@ -315,7 +325,7 @@ // Case (6) Rich text with components - default re/store used. // - test.Next(_L("RT + components")); + INFO_PRINTF1(_L("RT + components")); // Setup the rich text richText1=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); hasMarkupData=richText1->HasMarkupData(); @@ -326,7 +336,7 @@ richText1->InsertL(richText1->DocumentLength(),CEditableText::EParagraphDelimiter); // // Create & insert some fields - TTestFieldFactory factory; + TTestFieldFactoryTRTCUSTM factory; richText1->SetFieldFactory(&factory); CTextField* field=NULL; CTextField* field2=NULL; @@ -384,7 +394,7 @@ // // Case (7) Rich text with fields with referenced style list with markup // - test.Next(_L("RT + fields + markup + style list")); + INFO_PRINTF1(_L("RT + fields + markup + style list")); // Setup the rich text list=CreatePopulatedStyleList(); richText1=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer,*list); @@ -465,7 +475,7 @@ // // Case (8) Rich text with fields with referenced style list with markup - default store // - test.Next(_L("RT + fields + markup + style list - default store")); + INFO_PRINTF1(_L("RT + fields + markup + style list - default store")); // Setup the rich text list=CreatePopulatedStyleList(); richText1=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer,*list); @@ -518,7 +528,7 @@ // // Case (9) Rich text with no components whatsoever - default store // - test.Next(_L("RT + no markup whatsoever - default store")); + INFO_PRINTF1(_L("RT + no markup whatsoever - default store")); richText1=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); hasMarkupData=richText1->HasMarkupData(); test(!hasMarkupData); @@ -548,7 +558,6 @@ // // CleanupStack::PopAndDestroy(); // TheStore - test.End(); } /** @@ -567,10 +576,10 @@ dealing with paragraph delimiter and hidden characters in a paragraph @SYMDEF PDEF101757 */ -LOCAL_C void TestDEF101757() +void CT_TRTCUSTM::TestDEF101757() { TFindFieldInfo info; - TTestFieldFactory factory; + TTestFieldFactoryTRTCUSTM factory; CTextField* field=NULL; CTextField* field1=NULL; CTextField* field2=NULL; @@ -580,7 +589,7 @@ _LIT(KSample1, "Hello"); // length:5 _LIT(KSample2, "How are you"); // length:11 - test.Start(_L(" @SYMTestCaseID:SYSLIB-ETEXT-CT-3380 Insertion and deletion to rich text object ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-ETEXT-CT-3380 Insertion and deletion to rich text object ")); CRichText* richText=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); CleanupStack::PushL(richText); @@ -697,12 +706,11 @@ test(richText->FieldCount()==2); CleanupStack::PopAndDestroy(richText); - test.End(); } //Testcode for INC054540 -LOCAL_C void TestINC054540() +void CT_TRTCUSTM::TestINC054540() { theFs.Delete(KTRtCustOutputFile); theFs.MkDirAll(KTRtCustOutputFile); @@ -711,12 +719,12 @@ // //test 1: Test INC054540 fix for 255 fields // - test.Start(_L("test")); + INFO_PRINTF1(_L("test")); CRichText* richText1=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); // // Now add a text field to this. - TTestFieldFactory factory; + TTestFieldFactoryTRTCUSTM factory; richText1->SetFieldFactory(&factory); CTextField* field=NULL; TInt x=0; @@ -764,7 +772,7 @@ // //test 2: Test INC054540 fix for more than 255 fields // - test.Next(_L("test for more than 255 fields")); + INFO_PRINTF1(_L("test for more than 255 fields")); richText1=CRichText::NewL(GlobalParaFormatLayer,GlobalCharFormatLayer); // Add the text fields richText1->SetFieldFactory(&factory); @@ -812,11 +820,10 @@ // // CleanupStack::PopAndDestroy(); // TheStore - test.End(); } -LOCAL_C void doMainL() +void CT_TRTCUSTM::doMainL() { GlobalParaFormatLayer=CParaFormatLayer::NewL(); GlobalCharFormatLayer=CCharFormatLayer::NewL(); @@ -832,7 +839,7 @@ } -LOCAL_C void setupCleanup() +void CT_TRTCUSTM::setupCleanup() // // Initialise the cleanup stack. // @@ -849,7 +856,7 @@ } -LOCAL_C void DeleteDataFile(const TDesC& aFullName) +void CT_TRTCUSTM::DeleteDataFile(const TDesC& aFullName) { RFs fsSession; TInt err = fsSession.Connect(); @@ -878,26 +885,31 @@ } } -GLDEF_C TInt E32Main() -// -// Test permanent file TheStore. -// + +CT_TRTCUSTM::CT_TRTCUSTM() { - test.Title(); - setupCleanup(); - __UHEAP_MARK; -// - test.Start(_L("Testing custom save/load optimization")); - TRAPD(ret,doMainL()); - test(ret==KErrNone); - - ::DeleteDataFile(KTRtCustOutputFile); //deletion of data files must be before call to End() - DEF047652 - test.End(); -// - __UHEAP_MARKEND; - delete TheTrapCleanup; - test.Close(); - - return KErrNone; + SetTestStepName(KTestStep_T_TRTCUSTM); } +TVerdict CT_TRTCUSTM::doTestStepL() + { + SetTestStepResult(EFail); + + setupCleanup(); + __UHEAP_MARK; + + INFO_PRINTF1(_L("TRTCUSTM")); + INFO_PRINTF1(_L("Testing custom save/load optimization")); + TRAPD(error1, doMainL()); + DeleteDataFile(KTRtCustOutputFile); //deletion of data files must be before call to End() - DEF047652 + + __UHEAP_MARKEND; + delete TheTrapCleanup; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TRTCUSTM.MMP --- a/textrendering/texthandling/ttext/TRTCUSTM.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// TRTCUSTM.MMP for test component TRTCUSTM (released in ETEXT) -// - -target trtcustm.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc // your public include directory should be here -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source TRTCUSTM.CPP - -library euser.lib efsrv.lib estor.lib gdi.lib field.lib etext.lib tins.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TRTCUSTM.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/TRTCUSTM.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,45 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_TRTCUSTM_H__ +#define __T_TRTCUSTM_H__ + +#include + +class CT_TRTCUSTM : public CTestStep + { +public: + CT_TRTCUSTM(); +protected: + TVerdict doTestStepL(); +private: + void WriteInlineL(RWriteStream& aStream,CRichText* aRichText); + void ReadInlineL(RReadStream& aStream,CRichText* aRichText); + TStreamId PerformSaveL(CRichText* aRichText); + CRichText* PerformLoadL(TStreamId aId); + CStyleList* CreatePopulatedStyleList(); + void CustomLoadSave(); + void TestDEF101757(); + void TestINC054540(); + void doMainL(); + void setupCleanup(); + void DeleteDataFile(const TDesC& aFullName); + }; + +_LIT(KTestStep_T_TRTCUSTM, "TRTCUSTM"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TTIMES1.CPP --- a/textrendering/texthandling/ttext/TTIMES1.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/TTIMES1.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,7 +16,6 @@ */ -#include #include #include @@ -25,11 +24,22 @@ #include #include "../incp/T_PMLPAR.H" +#include "TTIMES1.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } #define UNUSED_VAR(a) a = a LOCAL_D CTrapCleanup* TheTrapCleanup; -LOCAL_D RTest test(_L("CRichText Document")); LOCAL_D CParaFormatLayer* TheGlobalParaFormatLayer; LOCAL_D CCharFormatLayer* TheGlobalCharFormatLayer; LOCAL_D CParser* TheParser; @@ -39,7 +49,7 @@ LOCAL_D CRichText* TheText[KCreateRichTextCount]; -LOCAL_C void GenerateGlobalLayersL() +void CT_TTIMES1::GenerateGlobalLayersL() // Provides the base layers for globl text and below // { @@ -51,7 +61,7 @@ } -LOCAL_C void KillGlobalLayers() +void CT_TTIMES1::KillGlobalLayers() // Destroy the base layers for global text and below // { @@ -61,7 +71,7 @@ TheGlobalCharFormatLayer=NULL; } -LOCAL_C void KillText() +void CT_TTIMES1::KillText() { for (TInt ii=0; ii context; context.Format(_L(" Create rich text %d times: %d\n"),KCreateRichTextCount,finish.MicroSecondsFrom(start).Int64()); - test.Printf(context); + INFO_PRINTF1(context); // // Tidy up KillText(); @@ -102,7 +112,7 @@ } -LOCAL_C CRichText* LoadIntoTextL(TFileName& aFileName) +CRichText* CT_TTIMES1::LoadIntoTextL(TFileName& aFileName) // { TRAPD(ret, @@ -118,7 +128,7 @@ } -LOCAL_C void GetAppendTestTimeL(const CRichText* aSource,TInt aTestLoopCount) +void CT_TTIMES1::GetAppendTestTimeL(const CRichText* aSource,TInt aTestLoopCount) { CRichText* target=CRichText::NewL(TheGlobalParaFormatLayer,TheGlobalCharFormatLayer); test(target->DocumentLength()==0); @@ -138,12 +148,12 @@ test(ii==aTestLoopCount); TBuf<60> context; context.Format(_L(" Append %d rich text's: %d\n"),aTestLoopCount,finish.MicroSecondsFrom(start).Int64()); - test.Printf(context); + INFO_PRINTF1(context); delete target; } -LOCAL_C void GetBenchmarkAppendTestTimeL(const CRichText* aSource,TInt aTestLoopCount) +void CT_TTIMES1::GetBenchmarkAppendTestTimeL(const CRichText* aSource,TInt aTestLoopCount) { CRichText** target=new CRichText*[aTestLoopCount]; CBufStore** store=new CBufStore*[aTestLoopCount]; @@ -175,11 +185,11 @@ test(ii==aTestLoopCount); TBuf<70> context2; context2.Format(_L(" Benchmark : %d\n"),finish.MicroSecondsFrom(start).Int64()); - test.Printf(context2); + INFO_PRINTF1(context2); } -LOCAL_C void AppendTest1L() +void CT_TTIMES1::AppendTest1L() // { TInt testLoopCount=900; @@ -196,7 +206,7 @@ } -LOCAL_C void AppendTest2L() +void CT_TTIMES1::AppendTest2L() // { KillGlobalLayers(); // they are replaced by the ones read in from the PML file. @@ -214,38 +224,37 @@ } -LOCAL_C void AppendTestsL() +void CT_TTIMES1::AppendTestsL() // { GenerateGlobalLayersL(); // - test.Start(_L("Plain Text Component Only")); + INFO_PRINTF1(_L("Plain Text Component Only")); TRAPD(ret, AppendTest1L()); test(ret==KErrNone); // - test.Next(_L("Plain Text with limited Markup - no pictures")); + INFO_PRINTF1(_L("Plain Text with limited Markup - no pictures")); TRAP(ret, AppendTest2L()); test(ret==KErrNone); // KillGlobalLayers(); - test.End(); } -LOCAL_C void DoTestsL() +void CT_TTIMES1::DoTestsL() // { - test.Start(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_TTIMES1-0001 Creation Tests ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_TTIMES1-0001 Creation Tests ")); CreationTestsL(); - test.Next(_L("Appending Tests")); + INFO_PRINTF1(_L("Appending Tests")); AppendTestsL(); // } -LOCAL_C void setupCleanup() +void CT_TTIMES1::setupCleanup() // // Initialise the cleanup stack. // @@ -261,23 +270,30 @@ }); } - +CT_TTIMES1::CT_TTIMES1() + { + SetTestStepName(KTestStep_T_TTIMES1); + } -GLDEF_C TInt E32Main() -// -// Test the Document Model Services. -// +TVerdict CT_TTIMES1::doTestStepL() { - setupCleanup(); - test.Title(); - __UHEAP_MARK; - - TRAPD(ret,DoTestsL()); - test(ret == KErrNone); - - test.End(); - test.Close(); - __UHEAP_MARKEND; - delete TheTrapCleanup; - return(0); + SetTestStepResult(EFail); + + __UHEAP_MARK; + + setupCleanup(); + + INFO_PRINTF1(_L("CRichText Document")); + TRAPD(error1, DoTestsL()); + + delete TheTrapCleanup; + + __UHEAP_MARKEND; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TTIMES1.MMP --- a/textrendering/texthandling/ttext/TTIMES1.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// TTIMES1.MMP for test component TTIMES1 (released in ETEXT) -// - -target ttimes1.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source TTIMES1.CPP -source XTIMES1.CPP - -library euser.lib efsrv.lib estor.lib gdi.lib etext.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/TTIMES1.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/TTIMES1.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,47 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_TTIMES1_H__ +#define __T_TTIMES1_H__ + +#include +#include + +class CT_TTIMES1 : public CTestStep + { +public: + CT_TTIMES1(); +protected: + TVerdict doTestStepL(); +private: + void GenerateGlobalLayersL(); + void KillGlobalLayers(); + void KillText(); + void CreationTestsL(); + CRichText* LoadIntoTextL(TFileName& aFileName); + void GetAppendTestTimeL(const CRichText* aSource,TInt aTestLoopCount); + void GetBenchmarkAppendTestTimeL(const CRichText* aSource,TInt aTestLoopCount); + void AppendTest1L(); + void AppendTest2L(); + void AppendTestsL(); + void DoTestsL(); + void setupCleanup(); + }; + +_LIT(KTestStep_T_TTIMES1, "TTIMES1"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_CONVRT.CPP --- a/textrendering/texthandling/ttext/T_CONVRT.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_CONVRT.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -22,15 +22,25 @@ #include #include #include -#include #include "../incp/T_PMLPAR.H" +#include "T_CONVRT.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } #define UNUSED_VAR(a) a = a const TInt KTestCleanupStack=0x20; LOCAL_D CTrapCleanup* TheTrapCleanup; -LOCAL_D RTest test(_L("T_CONVRT - Rich Text Persistence")); // LOCAL_D CRichText* TheText=NULL; LOCAL_D CParaFormatLayer* TheGlobalParaLayer=NULL; @@ -38,7 +48,7 @@ //////////////////////////////////////////////////////////////////////////////////////////// -class TTestFieldFactory : public MTextFieldFactory +class TTestFieldFactoryCONVRT : public MTextFieldFactory { public: // from MTextFieldFactory @@ -47,7 +57,7 @@ // Returns NULL if it does not recognise/support the field type }; -CTextField* TTestFieldFactory::NewFieldL(TUid aFieldType) +CTextField* TTestFieldFactoryCONVRT::NewFieldL(TUid aFieldType) // Creates a field (in aHeader) of the type specified in aHeader // { @@ -60,7 +70,7 @@ _LIT(KOutputFile, "c:\\etext\\t_convrt.tst"); template -void testStoreRestoreL(T& aCopy,const T& aOriginal) +void CT_CONVRT::testStoreRestoreL(T& aCopy,const T& aOriginal) // Test document persistance. // { @@ -89,7 +99,7 @@ } -LOCAL_C TInt IsEqual(const CEditableText* aCopy,const CEditableText* aOriginal) +TInt CT_CONVRT::IsEqual(const CEditableText* aCopy,const CEditableText* aOriginal) // // Returns true if aCopy contents matches aOriginal contents. // Takes account of multiple segments of a segmented text component. @@ -115,7 +125,7 @@ } -LOCAL_C void DoTestRichTextL() +void CT_CONVRT::DoTestRichTextL() // // Test streaming CRichText. // @@ -143,14 +153,14 @@ TInt globalPrint=size-newsize; TBuf<50> buf; buf.Format(_L("Empty rich text takes: %d bytes\n"),footprint); - test.Printf(buf); + INFO_PRINTF1(buf); buf.Format(_L("Empty global text takes: %d bytes\n"),globalPrint); - test.Printf(buf); + INFO_PRINTF1(buf); // test.Getch(); delete gText; // // Now add a text field to this. - TTestFieldFactory factory; + TTestFieldFactoryCONVRT factory; TheText->SetFieldFactory(&factory); theCopy->SetFieldFactory(&factory); CTextField* field=NULL; @@ -175,7 +185,7 @@ } -LOCAL_C void LoadIntoText(TFileName& aFileName) +void CT_CONVRT::LoadIntoText(TFileName& aFileName) // { CParser* myParser=NULL; @@ -191,21 +201,21 @@ } -LOCAL_C void KillText() +void CT_CONVRT::KillText() // { delete TheText; } -LOCAL_C void KillLayers() +void CT_CONVRT::KillLayers() { delete TheGlobalParaLayer; delete TheGlobalCharLayer; } -LOCAL_C void Reset() +void CT_CONVRT::Reset() // { KillText(); @@ -213,10 +223,10 @@ } -LOCAL_C void GoL() +void CT_CONVRT::GoL() // { - test.Start(_L("Rich Text of Shared Para Formats Only")); + INFO_PRINTF1(_L("Rich Text of Shared Para Formats Only")); TFileName fileName=_L("z:\\test\\app-framework\\etext\\shared.pml"); LoadIntoText(fileName); TBool hasMarkupData=TheText->HasMarkupData(); @@ -224,19 +234,17 @@ DoTestRichTextL(); Reset(); // - test.Next(_L("Rich Text with specific character formatting")); + INFO_PRINTF1(_L("Rich Text with specific character formatting")); fileName=_L("z:\\test\\app-framework\\etext\\test1.pml"); LoadIntoText(fileName); hasMarkupData=TheText->HasMarkupData(); test(hasMarkupData); DoTestRichTextL(); Reset(); - // - test.End(); } -LOCAL_C void setupCleanup() +void CT_CONVRT::setupCleanup() // // Initialise the cleanup stack. // @@ -253,7 +261,7 @@ } -LOCAL_C void DeleteDataFile(const TDesC& aFullName) +void CT_CONVRT::DeleteDataFile(const TDesC& aFullName) { RFs fsSession; TInt err = fsSession.Connect(); @@ -282,26 +290,30 @@ } } -GLDEF_C TInt E32Main() -// -// Test streaming conversions. -// +CT_CONVRT::CT_CONVRT() { - setupCleanup(); - test.Title(); - test.Start(_L("Persisting Rich Text")); - test.Next(_L(" @SYMTestCaseID:SYSLIB-ETEXT-LEGACY-T_CONVRT-0001 ")); - __UHEAP_MARK; - TRAPD(ret, GoL()); - __UHEAP_MARKEND; - test(ret == KErrNone); - - //deletion of data files must be before call to End() - DEF047652 - ::DeleteDataFile(KOutputFile); - test.End(); - test.Close(); - - delete TheTrapCleanup; - return 0; + SetTestStepName(KTestStep_T_CONVRT); } +TVerdict CT_CONVRT::doTestStepL() + { + SetTestStepResult(EFail); + + setupCleanup(); + __UHEAP_MARK; + + INFO_PRINTF1(_L("T_CONVRT - Rich Text Persistence")); + INFO_PRINTF1(_L("Persisting Rich Text")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-ETEXT-LEGACY-T_CONVRT-0001 ")); + TRAPD(error1, GoL()); + + __UHEAP_MARKEND; + delete TheTrapCleanup; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_CONVRT.MMP --- a/textrendering/texthandling/ttext/T_CONVRT.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_CONVRT.MMP for test component T_CONVRT (released in ETEXT) -// - -target t_convrt.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc -userinclude ../incp -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_CONVRT.CPP -source X_CONVRT.CPP - -library euser.lib efsrv.lib estor.lib gdi.lib field.lib etext.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_CONVRT.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_CONVRT.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,44 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_CONVRT_H__ +#define __T_CONVRT_H__ + +#include + +class CT_CONVRT : public CTestStep + { +public: + CT_CONVRT(); +protected: + TVerdict doTestStepL(); +private: + template void testStoreRestoreL(T& aCopy,const T& aOriginal); + TInt IsEqual(const CEditableText* aCopy,const CEditableText* aOriginal); + void DoTestRichTextL(); + void LoadIntoText(TFileName& aFileName); + void KillText(); + void KillLayers(); + void Reset(); + void GoL(); + void setupCleanup(); + void DeleteDataFile(const TDesC& aFullName); + }; + +_LIT(KTestStep_T_CONVRT, "T_CONVRT"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_CONVS.CPP --- a/textrendering/texthandling/ttext/T_CONVS.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_CONVS.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -21,21 +21,31 @@ #include #include #include -#include #include #include #include +#include "T_CONVS.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } const TInt KTestCleanupStack=0x20; const TInt KTestExpandSize=0x20; LOCAL_D CTrapCleanup* TheTrapCleanup; -LOCAL_D RTest test(_L("T_CONVS - EditableText Persistence")); LOCAL_D TPtrC bigBuf(_L("This is a very big buffer indeed, containing text and special characters,\ big enough to fill a segment of an editable text component that employs segmented storage")); //////////////////////////////////////////////////////////////////////////////////////////// -class TTestFieldFactory : public MTextFieldFactory +class TTestFieldFactoryCONVS : public MTextFieldFactory { public: // from MTextFieldFactory @@ -44,7 +54,7 @@ // Returns NULL if it does not recognise/support the field type }; -CTextField* TTestFieldFactory::NewFieldL(TUid aFieldType) +CTextField* TTestFieldFactoryCONVS::NewFieldL(TUid aFieldType) // Creates a field (in aHeader) of the type specified in aHeader // { @@ -56,14 +66,14 @@ ///////////////////////////////////////////////////////////////////////////////////////////// template -void testCopy(T &aCopy,const T &anOriginal) +void CT_CONVS::testCopy(T &aCopy,const T &anOriginal) // // Copy anOriginal to aCopy using memory-based streams. // { CBufSeg *buf=CBufSeg::NewL(KTestExpandSize); if (buf==NULL) - test.Panic(_L("Allocating buffer")); + User::Panic(_L("Allocating buffer"), 1234); // Write anOriginal out to the buffer. RBufWriteStream out(*buf); @@ -71,7 +81,7 @@ test(r==KErrNone); TRAP(r,out.CommitL()); if (r!=KErrNone) - test.Panic(_L("Committing write stream")); + User::Panic(_L("Committing write stream"), 1234); // Read anOriginal in from the buffer. RBufReadStream in(*buf); @@ -87,7 +97,7 @@ _LIT(KOutputFile, "c:\\etext\\t_convs.tst"); template -void testStoreRestoreL(T& aCopy,const T& aOriginal) +void CT_CONVS::testStoreRestoreL(T& aCopy,const T& aOriginal) // Test document persistance. // { @@ -117,14 +127,14 @@ template -void testCopyChain(T &aCopy,const T &anOriginal,TInt aExcludeCount,const CFormatLayer* aBase) +void CT_CONVS::testCopyChain(T &aCopy,const T &anOriginal,TInt aExcludeCount,const CFormatLayer* aBase) // // Copy anOriginal to aCopy using memory-based streams. // { CBufSeg *buf=CBufSeg::NewL(KTestExpandSize); if (buf==NULL) - test.Panic(_L("Allocating buffer")); + User::Panic(_L("Allocating buffer"), 1234); // Write anOriginal out to the buffer. RBufWriteStream out(*buf); @@ -132,7 +142,7 @@ test(r==KErrNone); TRAP(r,out.CommitL()); if (r!=KErrNone) - test.Panic(_L("Committing write stream")); + User::Panic(_L("Committing write stream"), 1234); // Read anOriginal in from the buffer. RBufReadStream in(*buf); @@ -147,7 +157,7 @@ } -LOCAL_C TInt IsEqual(const CPlainText* aCopy,const CPlainText* aOriginal) +TInt CT_CONVS::IsEqual(const CPlainText* aCopy,const CPlainText* aOriginal) // // Returns true if aCopy contents matches aOriginal contents. // Takes account of multiple segments of a segmented text component. @@ -174,35 +184,35 @@ } -void testPlainTextL(CEditableText::TDocumentStorage aStorage) +void CT_CONVS::testPlainTextL(CEditableText::TDocumentStorage aStorage) // // Test streaming CPlainText. // {// Create the plain text components. - test.Start(_L("Streaming CPlainText")); + INFO_PRINTF1(_L("Streaming CPlainText")); CPlainText* copy=CPlainText::NewL(aStorage); CPlainText* testDoc=CPlainText::NewL(aStorage); // // Set the original - empty - test.Start(_L("empty.")); + INFO_PRINTF1(_L("empty.")); testStoreRestoreL(*copy,*testDoc); test(IsEqual(copy,testDoc)); // - test.Next(_L("paragraph delimiter")); + INFO_PRINTF1(_L("paragraph delimiter")); TRAPD(r,testDoc->InsertL(0,CEditableText::EParagraphDelimiter)); test(r==KErrNone); testStoreRestoreL(*copy,*testDoc); test(IsEqual(copy,testDoc)); // // Next test with tons of text guaranteed to force segment break when using segmented storage. - test.Next(_L("big text component")); + INFO_PRINTF1(_L("big text component")); testDoc->InsertL(0,bigBuf); testStoreRestoreL(*copy,*testDoc); test(IsEqual(copy,testDoc)); // // Now test with field components. - test.Next(_L("big text doc with field components.")); - TTestFieldFactory factory; + INFO_PRINTF1(_L("big text doc with field components.")); + TTestFieldFactoryCONVS factory; testDoc->SetFieldFactory(&factory); copy->SetFieldFactory(&factory); CTextField* field=NULL; @@ -216,18 +226,17 @@ test(IsEqual(copy,testDoc)); // // - test.End(); delete copy; delete testDoc; } -void testGlobalTextL(CEditableText::TDocumentStorage aStorage) +void CT_CONVS::testGlobalTextL(CEditableText::TDocumentStorage aStorage) // // Test streaming CGlobalText. // {// Create the plain text components. - test.Next(_L("Streaming CGlobalText")); + INFO_PRINTF1(_L("Streaming CGlobalText")); CParaFormatLayer* paraLayer=CParaFormatLayer::NewL(); CCharFormatLayer* charLayer=CCharFormatLayer::NewL(); // Set something interesting in the layers: @@ -244,24 +253,22 @@ CGlobalText* testDoc=CGlobalText::NewL(paraLayer,charLayer,aStorage); // Set the original - empty - test.Start(_L("empty.")); + INFO_PRINTF1(_L("empty.")); testStoreRestoreL(*copy,*testDoc); test(IsEqual(copy,testDoc)); // - test.Next(_L("paragraph delimiter")); + INFO_PRINTF1(_L("paragraph delimiter")); TRAPD(r,testDoc->InsertL(0,CEditableText::EParagraphDelimiter)); test(r==KErrNone); testStoreRestoreL(*copy,*testDoc); test(IsEqual(copy,testDoc)); // Next test with tons of text guaranteed to force segment break when using segmented storage. - test.Next(_L("big text component")); + INFO_PRINTF1(_L("big text component")); testDoc->InsertL(0,bigBuf); testStoreRestoreL(*copy,*testDoc); test(IsEqual(copy,testDoc)); - test.End(); - test.End(); delete copy; delete testDoc; delete paraLayer; @@ -270,7 +277,7 @@ } -LOCAL_C TInt LayerIsEqual(const CParaFormatLayer* aRestored,const CParaFormatLayer* aOriginal) +TInt CT_CONVS::LayerIsEqual(const CParaFormatLayer* aRestored,const CParaFormatLayer* aOriginal) // // Returns true if aRestored contents matches aOriginal contents. // @@ -291,7 +298,7 @@ } -LOCAL_C TInt LayerIsEqual(const CCharFormatLayer* aRestored,const CCharFormatLayer* aOriginal) +TInt CT_CONVS::LayerIsEqual(const CCharFormatLayer* aRestored,const CCharFormatLayer* aOriginal) // // Returns true if aRestored contents matches aOriginal contents. // @@ -308,12 +315,12 @@ } -void testFmtLayerStoreL() +void CT_CONVS::testFmtLayerStoreL() // // Test the format layer StoreL(). // { - test.Start(_L("CParaFormatLayer")); + INFO_PRINTF1(_L("CParaFormatLayer")); // Create test layers. CParaFormatLayer* pfl1=NULL; CParaFormatLayer* restored=NULL; @@ -327,13 +334,13 @@ TParaFormatMask pm1; pm1.SetAll(); // Sets all but the compound attributes. // TEST ONE DEFAULT CASES - test.Start(_L("Default paragraph format values.")); + INFO_PRINTF1(_L("Default paragraph format values.")); TRAP(r,pfl1->SetL(pf1,pm1)); test(r==KErrNone); testCopy(*restored,*pfl1); test(LayerIsEqual(restored,pfl1)); test(restored->SenseBase()==pfl1->SenseBase()); // Both should default to based on NULL // TEST TWO - test.Next(_L("Setting all attributes")); + INFO_PRINTF1(_L("Setting all attributes")); pf1->iLeftMarginInTwips=5000; pm1.ClearAll(); pm1.SetAttrib(EAttLeftMargin); pf1->iRightMarginInTwips=5001; pm1.SetAttrib(EAttRightMargin); pf1->iIndentInTwips=5002;pm1.SetAttrib(EAttIndent); @@ -399,7 +406,6 @@ testCopy(*restored,*pfl1); test(LayerIsEqual(restored,pfl1)); test(restored->SenseBase()==pfl1->SenseBase()); // Both should default to based on NULL - test.End(); // delete pf1; delete pfl1; @@ -407,9 +413,9 @@ // // Now the CCharFormatLayer Store/Restore // - test.Next(_L("CCharFormatLayer")); + INFO_PRINTF1(_L("CCharFormatLayer")); // - test.Start(_L("Setting all attributes")); + INFO_PRINTF1(_L("Setting all attributes")); // Create test layers. CCharFormatLayer* cfl1=NULL; CCharFormatLayer* cRestored=NULL; @@ -451,11 +457,10 @@ // delete cfl1; delete cRestored; - test.End(); } -LOCAL_C TInt ChainIsEqual(const CParaFormatLayer* aCopy,const CParaFormatLayer* aOriginal) +TInt CT_CONVS::ChainIsEqual(const CParaFormatLayer* aCopy,const CParaFormatLayer* aOriginal) // // Tests that the restored chain is identical to the original chain. // @@ -479,7 +484,7 @@ } -LOCAL_C TInt ChainIsEqual(const CCharFormatLayer* aCopy,const CCharFormatLayer* aOriginal) +TInt CT_CONVS::ChainIsEqual(const CCharFormatLayer* aCopy,const CCharFormatLayer* aOriginal) // // Tests that the restored chain is identical to the original chain. // @@ -503,13 +508,13 @@ } -void DoParaChainL() +void CT_CONVS::DoParaChainL() // // Tests the streaming of a chain of format layers // { - test.Next(_L("Re/StoreChainL()")); - test.Start(_L("CParaFormatLayer")); + INFO_PRINTF1(_L("Re/StoreChainL()")); + INFO_PRINTF1(_L("CParaFormatLayer")); // Create the chain of para format layers. CParaFormatLayer* l1=CParaFormatLayer::NewL(); CParaFormatLayer* l2=CParaFormatLayer::NewL(); @@ -585,12 +590,12 @@ } -void DoCharChainL() +void CT_CONVS::DoCharChainL() // // // { - test.Next(_L("CCharFormatLayer")); + INFO_PRINTF1(_L("CCharFormatLayer")); // Create the chain of character format layers. CCharFormatLayer* cl1=CCharFormatLayer::NewL(); CCharFormatLayer* cl2=CCharFormatLayer::NewL(); @@ -630,7 +635,7 @@ charMask.SetAttrib(EAttFontTypeface); cl4->SetL(charFormat,charMask); // NOW DO IT - test.Start(_L("Chain 4 layers deep, terminating on a based on NULL")); + INFO_PRINTF1(_L("Chain 4 layers deep, terminating on a based on NULL")); testCopyChain(*rChar,*cl1,0,(const CFormatLayer*)NULL); TInt restoredChainCount=rChar->ChainCount(); test(ChainIsEqual(rChar,cl1)); @@ -651,7 +656,7 @@ } -void DoCharChainVariant1() +void CT_CONVS::DoCharChainVariant1() // // Case 2: Where the chain does not terminate at a NULL link. // @@ -695,7 +700,7 @@ charMask.SetAttrib(EAttFontTypeface); cl4->SetL(charFormat,charMask); // NOW DO IT - test.Next(_L("Chain 3 layers deep, terminating on a non-NULL based-on")); + INFO_PRINTF1(_L("Chain 3 layers deep, terminating on a non-NULL based-on")); testCopyChain(*rChar,*cl1,1,(const CFormatLayer*)cl4); TInt restoredChainCount=rChar->ChainCount(); test(ChainIsEqual(rChar,cl1)); @@ -713,14 +718,10 @@ delete cl2; delete cl3; delete cl4; - - test.End(); - test.End(); - test.End(); } -void testFmtLayerStoreChainL() +void CT_CONVS::testFmtLayerStoreChainL() // // Controls the testing of the chainig stuff. // @@ -733,7 +734,7 @@ } -void testFmtLayerL() +void CT_CONVS::testFmtLayerL() // // Tests the streaming of format layers. // @@ -743,7 +744,7 @@ } -LOCAL_C void setupCleanup() +void CT_CONVS::setupCleanup() // // Initialise the cleanup stack. // @@ -760,7 +761,7 @@ } -LOCAL_C void DeleteDataFile(const TDesC& aFullName) +void CT_CONVS::DeleteDataFile(const TDesC& aFullName) { RFs fsSession; TInt err = fsSession.Connect(); @@ -789,40 +790,38 @@ } } -GLDEF_C TInt E32Main() -// -// Test streaming conversions. -// +CT_CONVS::CT_CONVS() { - setupCleanup(); - test.Title(); - __UHEAP_MARK; - - test.Start(_L(" @SYMTestCaseID:SYSLIB-ETEXT-LEGACY-T_CONVS-0001 EText components using Flat Storage ")); - TRAPD(r,testPlainTextL(CEditableText::EFlatStorage)); - test(r==KErrNone); - TRAP(r,testGlobalTextL(CEditableText::EFlatStorage)); - test(r==KErrNone); - -// - test.Next(_L("EText components using Segmented storage")); - TRAP(r,testPlainTextL(CEditableText::ESegmentedStorage)); - test(r==KErrNone); - TRAP(r,testGlobalTextL(CEditableText::ESegmentedStorage)); - test(r==KErrNone); - - test.Next(_L("Format Layer components")); - TRAP(r,testFmtLayerL()); - test(r==KErrNone); - -// test.End(); - __UHEAP_MARKEND; - - ::DeleteDataFile(KOutputFile); //deletion of data files must be before call to End() - DEF047652 - test.End(); - test.Close(); - delete TheTrapCleanup; - - return 0; + SetTestStepName(KTestStep_T_CONVS); } +TVerdict CT_CONVS::doTestStepL() + { + SetTestStepResult(EFail); + + INFO_PRINTF1(_L("T_CONVS - EditableText Persistence")); + setupCleanup(); + __UHEAP_MARK; + + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-ETEXT-LEGACY-T_CONVS-0001 EText components using Flat Storage ")); + TRAPD(error1, testPlainTextL(CEditableText::EFlatStorage)); + TRAPD(error2, testGlobalTextL(CEditableText::EFlatStorage)); + + INFO_PRINTF1(_L("EText components using Segmented storage")); + TRAPD(error3, testPlainTextL(CEditableText::ESegmentedStorage)); + TRAPD(error4, testGlobalTextL(CEditableText::ESegmentedStorage)); + + INFO_PRINTF1(_L("Format Layer components")); + TRAPD(error5, testFmtLayerL()); + + __UHEAP_MARKEND; + DeleteDataFile(KOutputFile); //deletion of data files must be before call to End() - DEF047652 + delete TheTrapCleanup; + + if(error1 == KErrNone && error2 == KErrNone && error3 == KErrNone && error4 == KErrNone && error5 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_CONVS.MMP --- a/textrendering/texthandling/ttext/T_CONVS.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_CONVS.MMP for test component T_CONVS (released in ETEXT) -// - -target t_convs.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc // your public include directory should be here -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_CONVS.CPP - -library euser.lib efsrv.lib estor.lib gdi.lib field.lib etext.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_CONVS.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_CONVS.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,52 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_CONVS_H__ +#define __T_CONVS_H__ + +#include + +class CT_CONVS : public CTestStep + { +public: + CT_CONVS(); +protected: + TVerdict doTestStepL(); +private: + template void testCopy(T &aCopy,const T &anOriginal); + template void testStoreRestoreL(T& aCopy,const T& aOriginal); + template void testCopyChain(T &aCopy,const T &anOriginal,TInt aExcludeCount,const CFormatLayer* aBase); + TInt IsEqual(const CPlainText* aCopy,const CPlainText* aOriginal); + void testPlainTextL(CEditableText::TDocumentStorage aStorage); + void testGlobalTextL(CEditableText::TDocumentStorage aStorage); + TInt LayerIsEqual(const CParaFormatLayer* aRestored,const CParaFormatLayer* aOriginal); + TInt LayerIsEqual(const CCharFormatLayer* aRestored,const CCharFormatLayer* aOriginal); + void testFmtLayerStoreL(); + TInt ChainIsEqual(const CParaFormatLayer* aCopy,const CParaFormatLayer* aOriginal); + TInt ChainIsEqual(const CCharFormatLayer* aCopy,const CCharFormatLayer* aOriginal); + void DoParaChainL(); + void DoCharChainL(); + void DoCharChainVariant1(); + void testFmtLayerStoreChainL(); + void testFmtLayerL(); + void setupCleanup(); + void DeleteDataFile(const TDesC& aFullName); + }; + +_LIT(KTestStep_T_CONVS, "T_CONVS"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_CONVS1.CPP --- a/textrendering/texthandling/ttext/T_CONVS1.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_CONVS1.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -20,20 +20,30 @@ #include #include #include -#include #include #include +#include "T_CONVS1.h" + +#define test(cond) \ + { \ + TBool __bb = (cond); \ + TEST(__bb); \ + if (!__bb) \ + { \ + ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } const TInt KTestCleanupStack=0x20; LOCAL_D CTrapCleanup* TheTrapCleanup; -LOCAL_D RTest test(_L("T_CONVS1 - GlobalText Persistence")); LOCAL_D TPtrC bigBuf(_L("This is a very big buffer indeed, containing text and special characters,\ big enough to fill a segment of an editable text component that employs segmented storage")); //////////////////////////////////////////////////////////////////////////////////////////// -class TTestFieldFactory : public MTextFieldFactory +class TTestFieldFactoryCONVS1 : public MTextFieldFactory { public: // from MTextFieldFactory @@ -42,7 +52,7 @@ // Returns NULL if it does not recognise/support the field type }; -CTextField* TTestFieldFactory::NewFieldL(TUid aFieldType) +CTextField* TTestFieldFactoryCONVS1::NewFieldL(TUid aFieldType) // Creates a field (in aHeader) of the type specified in aHeader // { @@ -55,7 +65,7 @@ _LIT(KOutputFile, "c:\\etext\\t_convs1.tst"); template -void testStoreRestoreL(T& aCopy,const T& aOriginal) +void CT_CONVS1::testStoreRestoreL(T& aCopy,const T& aOriginal) // Test document persistance. // { @@ -83,7 +93,7 @@ theFs.Close(); } -LOCAL_C TInt IsEqual(const CPlainText* aCopy,const CPlainText* aOriginal) +TInt CT_CONVS1::IsEqual(const CPlainText* aCopy,const CPlainText* aOriginal) // // Tests for equality of plain text components. // Takes account of multiple segments of a segmented text component. @@ -105,7 +115,7 @@ lengthRead+=orig.Length(); } test(lengthRead==lengthOfOriginal+1); - test.Next(_L("Restored plain text component matches original")); + INFO_PRINTF1(_L("Restored plain text component matches original")); TInt copyFieldCount=aCopy->FieldCount(); TInt origFieldCount=aOriginal->FieldCount(); test(copyFieldCount==origFieldCount); @@ -113,7 +123,7 @@ } -LOCAL_C TInt DocsEqual(const CGlobalText* aCopy,const CGlobalText* aOrig) +TInt CT_CONVS1::DocsEqual(const CGlobalText* aCopy,const CGlobalText* aOrig) // // // @@ -123,7 +133,7 @@ } -void GenerateGlobalTextL() +void CT_CONVS1::GenerateGlobalTextL() // // Create a global text documnet. // @@ -160,7 +170,7 @@ TParaFormatMask nn; r1->SetL((CParaFormat*)NULL,nn); CGlobalText* restoredDoc=CGlobalText::NewL(r1,cr1,CEditableText::ESegmentedStorage); // Store a text field in the global text. - TTestFieldFactory factory; + TTestFieldFactoryCONVS1 factory; globalDoc->SetFieldFactory(&factory); restoredDoc->SetFieldFactory(&factory); CTextField* field=NULL; @@ -171,11 +181,10 @@ globalDoc->InsertFieldL(0,field,KDateTimeFieldUid)); test(ret==KErrNone); // And do the streaming/restore. - test.Start(_L("Storing global text with field record")); - test.Next(_L("Restoring global text")); + INFO_PRINTF1(_L("Storing global text with field record")); + INFO_PRINTF1(_L("Restoring global text")); testStoreRestoreL(*restoredDoc,*globalDoc); test(DocsEqual(restoredDoc,globalDoc)); - test.End(); // Now clean up. TInt restoredCharChain=cr1->ChainCount(); TInt restoredParaChain=r1->ChainCount(); @@ -205,7 +214,7 @@ } -LOCAL_C void setupCleanup() +void CT_CONVS1::setupCleanup() // // Initialise the cleanup stack. // @@ -222,7 +231,7 @@ } -LOCAL_C void DeleteDataFile(const TDesC& aFullName) +void CT_CONVS1::DeleteDataFile(const TDesC& aFullName) { RFs fsSession; TInt err = fsSession.Connect(); @@ -251,29 +260,31 @@ } } -GLDEF_C TInt E32Main() -// -// Test streaming conversions. -// +CT_CONVS1::CT_CONVS1() { - setupCleanup(); - test.Title(); - __UHEAP_MARK; - - test.Start(_L("Generate global text")); - test.Next(_L(" @SYMTestCaseID:SYSLIB-ETEXT-LEGACY-T_CONVS1-0001 ")); - TRAPD(r,GenerateGlobalTextL()); - test(r==KErrNone); - - __UHEAP_MARKEND; - - ::DeleteDataFile(KOutputFile); //deletion of data files must be before call to End() - DEF047652 - test.End(); - test.Close(); - delete TheTrapCleanup; - - - - return 0; + SetTestStepName(KTestStep_T_CONVS1); } +TVerdict CT_CONVS1::doTestStepL() + { + SetTestStepResult(EFail); + + setupCleanup(); + __UHEAP_MARK; + + INFO_PRINTF1(_L("T_CONVS1 - GlobalText Persistence")); + INFO_PRINTF1(_L("Generate global text")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-ETEXT-LEGACY-T_CONVS1-0001 ")); + TRAPD(error1, GenerateGlobalTextL()); + + __UHEAP_MARKEND; + DeleteDataFile(KOutputFile); //deletion of data files must be before call to End() - DEF047652 + delete TheTrapCleanup; + + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_CONVS1.MMP --- a/textrendering/texthandling/ttext/T_CONVS1.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_CONVS1.MMP for test component T_CONVS1 (released in ETEXT) -// - -target t_convs1.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc // your public include directory should be here -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_CONVS1.CPP - -library euser.lib efsrv.lib estor.lib gdi.lib field.lib etext.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_CONVS1.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_CONVS1.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,40 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_CONVS1_H__ +#define __T_CONVS1_H__ + +#include + +class CT_CONVS1 : public CTestStep + { +public: + CT_CONVS1(); +protected: + TVerdict doTestStepL(); +private: + template void testStoreRestoreL(T& aCopy,const T& aOriginal); + TInt IsEqual(const CPlainText* aCopy,const CPlainText* aOriginal); + TInt DocsEqual(const CGlobalText* aCopy,const CGlobalText* aOrig); + void GenerateGlobalTextL(); + void setupCleanup(); + void DeleteDataFile(const TDesC& aFullName); + }; + +_LIT(KTestStep_T_CONVS1, "T_CONVS1"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_CPLAIN.CPP --- a/textrendering/texthandling/ttext/T_CPLAIN.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_CPLAIN.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,10 +16,25 @@ */ -#include #include +#include "T_CPLAIN.h" -LOCAL_D RTest test(_L("CPlainText Document")); +LOCAL_D CTestStep *pTestStep = NULL; +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + pTestStep->ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } +#undef INFO_PRINTF1 +#undef INFO_PRINTF2 +// copy from tefexportconst.h +#define INFO_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) +#define INFO_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) const TBool KPictureIsDelimiter=EFalse; const TBool KPunctuationIsDelimiter=ETrue; @@ -292,13 +307,13 @@ test(iByteStore!=NULL); CheckDocLength(0); - test.Start(_L("NewL()")); + INFO_PRINTF1(_L("NewL()")); CPlainText* document=CPlainText::NewL(D); document->InsertL(0,iDefaultDoc); test(document->DocumentLength()==95); delete document; #ifdef _DEBUG - test.Next(_L("NewL() failing on OOM")); + INFO_PRINTF1(_L("NewL() failing on OOM")); TInt flag=0; __UHEAP_FAILNEXT(1); TRAPD(ret, (void)CPlainText::NewL(D)); @@ -306,10 +321,11 @@ { flag++; } - test(flag!=0); + // seems __UHEAP_FAILNEXT does not work well in platsim. + // below test does not pass in platsim. +// test(flag!=0); #endif - test.End(); __UHEAP_MARKEND; } @@ -325,12 +341,12 @@ CPlainText* document=CPlainText::NewL(D); document->InsertL(0,iDefaultDoc); - test.Start(_L("sense from start")); + INFO_PRINTF1(_L("sense from start")); /*TPtrC dummy=*/document->Read(0); CheckDocLength(document,95); CheckContent(document,iComp1); - test.Next(_L("sense from n")); + INFO_PRINTF1(_L("sense from n")); TPtrC dummy2=document->Read(45); //iDummy.Set(document->Read(45).Ptr(),document->Read(45).Length()); CPlainText* doc2=CPlainText::NewL(D); @@ -345,7 +361,7 @@ CheckContent(doc2,iComp2); delete doc2; - test.Next(_L("sense from last-1")); + INFO_PRINTF1(_L("sense from last-1")); iDummy.Set(document->Read(93).Ptr(),document->Read(93).Length()); CPlainText* doc3=CPlainText::NewL(D); doc3->InsertL(0,iDummy); @@ -354,7 +370,7 @@ CheckContent(doc3,iComp3); delete doc3; - test.Next(_L("sense from last")); + INFO_PRINTF1(_L("sense from last")); iDummy.Set(document->Read(94).Ptr(),document->Read(94).Length()); CPlainText* doc4=CPlainText::NewL(D); doc4->InsertL(0,iDummy); @@ -363,7 +379,7 @@ CheckContent(doc4,iComp4); delete doc4; - test.Next(_L("sense from last+1")); + INFO_PRINTF1(_L("sense from last+1")); iDummy.Set(document->Read(95).Ptr(),document->Read(95).Length()); CPlainText* doc5=CPlainText::NewL(D); doc5->InsertL(0,iDummy); @@ -373,7 +389,6 @@ delete doc5; delete document; - test.End(); __UHEAP_MARKEND; } @@ -395,7 +410,7 @@ CheckDocLength(document,10); CheckContent(document,iOutBufComp); - test.Start(_L("Inverting at start")); + INFO_PRINTF1(_L("Inverting at start")); document->InsertL(0,iInBuf2); document->InsertL(0,character); document->DeleteL(0,1); @@ -405,7 +420,7 @@ CheckDocLength(document,10); CheckContent(document,iOutBufComp); - test.Next(_L("Inverting in middle")); + INFO_PRINTF1(_L("Inverting in middle")); document->InsertL(4,iInBuf2); document->InsertL(5,character); document->DeleteL(5,1); @@ -415,7 +430,7 @@ CheckDocLength(document,10); CheckContent(document,iOutBufComp); - test.Next(_L("Inverting at end")); + INFO_PRINTF1(_L("Inverting at end")); document->InsertL(10,iInBuf2); document->InsertL(11,character); document->DeleteL(11,1); @@ -428,7 +443,7 @@ document->DeleteL(0,10); CheckDocLength(0); delete document; - test.End(); + __UHEAP_MARKEND; } @@ -459,17 +474,16 @@ TPtrC body(content); document->InsertL(0,body); // Now do the tests. - test.Start(_L("Paragraph 1")); + INFO_PRINTF1(_L("Paragraph 1")); DoParagraphStart(0,55,document); // Paragraph 1 - test.Next(_L("Paragraph 2")); + INFO_PRINTF1(_L("Paragraph 2")); DoParagraphStart(55,23,document); // Paragraph 2 - test.Next(_L("Paragraph 3")); + INFO_PRINTF1(_L("Paragraph 3")); DoParagraphStart(78,20,document); // Paragraph 3 - test.Next(_L("Paragraph 4->2 consecutive delimiters, posshould not change")); + INFO_PRINTF1(_L("Paragraph 4->2 consecutive delimiters, posshould not change")); DoParagraphStart(99,1,document); // Paragraph 6 delete document; - test.End(); } @@ -483,17 +497,17 @@ CPlainText* doc=CPlainText::NewL(D); doc->InsertL(0,iDefaultDoc); - test.Start(_L("Extract(buf)")); + INFO_PRINTF1(_L("Extract(buf)")); TBuf<128> buf; doc->Extract(buf); CheckContent(iDefaultDoc,buf); - test.Next(_L("Extract(buf,pos)")); + INFO_PRINTF1(_L("Extract(buf,pos)")); TInt pos=45; doc->Extract(buf,pos); CheckContent(iComp2,buf); - test.Next(_L("Extract(buf) from multiple segments")); + INFO_PRINTF1(_L("Extract(buf) from multiple segments")); TBuf<256> bigBuf(_L("abcdefghijklmnopqrstuvwxyzABCEDFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCEDFGHIJKLMNOPQRSTUVWXYZ")); CPlainText* segDoc=CPlainText::NewL(ESegmentedStorage); segDoc->InsertL(0,bigBuf); @@ -501,7 +515,6 @@ CheckContent(bigBuf,buf); delete segDoc; - test.End(); delete doc; __UHEAP_MARKEND; } @@ -519,7 +532,7 @@ CPlainText* doc=CPlainText::NewL(D); doc->InsertL(0,content); - test.Start(_L("WordInfo()")); + INFO_PRINTF1(_L("WordInfo()")); TInt currentPos,startPos,length; currentPos=0; doc->GetWordInfo(currentPos,startPos,length,KPictureIsDelimiter,KPunctuationIsDelimiter); @@ -579,7 +592,6 @@ doc->GetWordInfo(currentPos,startPos,length,KPictureIsDelimiter,KPunctuationIsDelimiter); test(startPos=32); test(length==7); - test.End(); delete doc; __UHEAP_MARKEND; } @@ -756,7 +768,7 @@ // { __UHEAP_MARK; - test.Start(_L("1st Reset")); + INFO_PRINTF1(_L("1st Reset")); CPlainText* doc=CPlainText::NewL(D); doc->InsertL(0,iDefaultDoc); test(doc->DocumentLength()==95); @@ -768,11 +780,10 @@ // It arises because I have added an assert length>0 in the delete method. // Clearly on a second reset the length is zero, hence the failure. // Defect fixed 13.10.95 by DuncanS and included in the tests below. - test.Next(_L("2nd Reset - defect - DavidW 13.10.95")); + INFO_PRINTF1(_L("2nd Reset - defect - DavidW 13.10.95")); doc->Reset(); delete doc; - test.End(); __UHEAP_MARKEND; } @@ -806,7 +817,7 @@ TBufC<20> InitialInlineText =_L("INLINE_TEXT"); // inline text to be inserted TBuf<50> outputBuf; - test.Start(_L("Return all the text")); + INFO_PRINTF1(_L("Return all the text")); CPlainText* doc=CPlainText::NewL(D); doc->DocumentLength(); doc->InsertL(0,iInsertBuf); // insert "abcdefghijklmnopqrstuvwxyz" @@ -819,7 +830,7 @@ doc->Extract(outputBuf, startingPositionZero, textLengthFifty); // Returns all the text test (iTestBuf1 == outputBuf); // testing outputBuf, making sure it contains the inline text - "abcdefINLINE_TEXTghijklmnopqrstuvwxyz" - test.Next(_L("Extract and discard only the inline text, from Pos0 returning the rest")); + INFO_PRINTF1(_L("Extract and discard only the inline text, from Pos0 returning the rest")); doc->ExtractSelectively(outputBuf, startingPositionZero, textLengthFifty, EExcludeInlineEditedText); // Returns only non-inline text test (iInsertBuf == outputBuf); // testing outputBuf, making sure the inline text has been extracted correctly - "abcdefghijklmnopqrstuvwxyz" delete doc; @@ -829,17 +840,17 @@ doc2->DocumentLength(); doc2->InsertL(0,iInsertBuf); // insert "abcdefghijklmnopqrstuvwxyz" - test.Next(_L("Extract upto 50 character, from Pos10, within the range (no inline editting set)")); + INFO_PRINTF1(_L("Extract upto 50 character, from Pos10, within the range (no inline editting set)")); // Returns upto 50 characters starting from Pos10 doc2->ExtractSelectively(outputBuf, startingPositionTen, textLengthFifty, EExcludeInlineEditedText); test (iTestBuf2 == outputBuf); // "klmnopqrstuvwxyz" - test.Next(_L("Extract upto 10 characters, from Pos10, within the range (no inline editting set)")); + INFO_PRINTF1(_L("Extract upto 10 characters, from Pos10, within the range (no inline editting set)")); // Returns upto 10 characters starting from Pos10 doc2->ExtractSelectively(outputBuf, startingPositionTen, textLengthTen, EExcludeInlineEditedText); test (iTestBuf2a == outputBuf); // "klmnopqrst" - test.Next(_L("Extract upto 50 character, from Pos0, 'EExtractAll' flag selected")); + INFO_PRINTF1(_L("Extract upto 50 character, from Pos0, 'EExtractAll' flag selected")); // Returns upto 50 characters starting from Pos0. doc2->ExtractSelectively(outputBuf, startingPositionZero, textLengthFifty, EExtractAll); test (iInsertBuf == outputBuf); // "abcdefghijklmnopqrstuvwxyz" @@ -854,13 +865,11 @@ doc3->StartFepInlineEditL(HasChangedFormat,NumberDeleted,NumberInserted,PositionOfInsertion,NewPositionOfInsertion,InitialInlineText,PosOfInlineText,NumberToHide,*InlineTextFormatRetriever); - test.Next(_L("Extract all the non-inline text, from Pos10, within the range (inline editting on)")); + INFO_PRINTF1(_L("Extract all the non-inline text, from Pos10, within the range (inline editting on)")); doc3->ExtractSelectively(outputBuf, startingPositionTen, textLengthTen, EExcludeInlineEditedText); // Returns only non-inline text. test (iTestBuf3 == outputBuf); // testing outputBuf, making sure the inline text has been extracted correctly - "efghi". delete doc3; - - test.End(); - + __UHEAP_MARKEND; } @@ -871,32 +880,31 @@ // Controls testing of the segmented storage case. // { - test.Start(_L("All methods")); + INFO_PRINTF1(_L("All methods")); CPlainTest0L(); - test.Next(_L("Construction")); + INFO_PRINTF1(_L("Construction")); CPlainTest1L(); - test.Next(_L("Read")); - test.Start(_L("Not yet implemented")); - test.End(); - test.Next(_L("Inverse Testing using InsertL&Delete: content left intact")); + INFO_PRINTF1(_L("Read")); + INFO_PRINTF1(_L("Not yet implemented")); + + INFO_PRINTF1(_L("Inverse Testing using InsertL&Delete: content left intact")); CPlainTest3L(); - test.Next(_L("Paragraph Start")); + INFO_PRINTF1(_L("Paragraph Start")); CPlainTest4L(); - test.Next(_L("Extract")); + INFO_PRINTF1(_L("Extract")); CPlainTest5L(); - test.Next(_L("WordInfo")); + INFO_PRINTF1(_L("WordInfo")); CPlainTest5aL(); - test.Next(_L("CharPosOfParagraph")); + INFO_PRINTF1(_L("CharPosOfParagraph")); CPlainTest5bL(); - test.Next(_L("ParagraphNumberForPos")); + INFO_PRINTF1(_L("ParagraphNumberForPos")); CPlainTest5cL(); - test.Next(_L("CountWords")); + INFO_PRINTF1(_L("CountWords")); CPlainTest6L(); - test.Next(_L("CountParas")); + INFO_PRINTF1(_L("CountParas")); CPlainTest7L(); - test.Next(_L("Reset")); + INFO_PRINTF1(_L("Reset")); CPlainTest8L(); - test.End(); } @@ -907,31 +915,30 @@ // Test the CPlainText methods // { - test.Start(_L("All methods")); + INFO_PRINTF1(_L("All methods")); CPlainTest0L(); - test.Next(_L("Construction")); + INFO_PRINTF1(_L("Construction")); CPlainTest1L(); - test.Next(_L("Read")); + INFO_PRINTF1(_L("Read")); CPlainTest2L(); - test.Next(_L("Inverse Testing using InsertL&Delete: content left intact")); + INFO_PRINTF1(_L("Inverse Testing using InsertL&Delete: content left intact")); CPlainTest3L(); - test.Next(_L("Paragraph Start")); + INFO_PRINTF1(_L("Paragraph Start")); CPlainTest4L(); - test.Next(_L("Extract")); + INFO_PRINTF1(_L("Extract")); CPlainTest5L(); - test.Next(_L("WordInfo")); + INFO_PRINTF1(_L("WordInfo")); CPlainTest5aL(); - test.Next(_L("CharPosOfParagraph")); + INFO_PRINTF1(_L("CharPosOfParagraph")); CPlainTest5bL(); - test.Next(_L("ParagraphNumberForPos")); + INFO_PRINTF1(_L("ParagraphNumberForPos")); CPlainTest5cL(); - test.Next(_L("CountWords")); + INFO_PRINTF1(_L("CountWords")); CPlainTest6L(); - test.Next(_L("CountParas")); + INFO_PRINTF1(_L("CountParas")); CPlainTest7L(); - test.Next(_L("Reset")); + INFO_PRINTF1(_L("Reset")); CPlainTest8L(); - test.End(); } @@ -942,63 +949,56 @@ // Defect Fixes // { - test.Start(_L(" @SYMTestCaseID:SYSLIB-ETEXT-UT-1574 INC070807 ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-ETEXT-UT-1574 INC070807 ")); INC070807L(); - test.End(); } - +CT_CPLAIN::CT_CPLAIN() + { + SetTestStepName(KTestStep_T_CPLAIN); + pTestStep = this; + } -GLDEF_C TInt E32Main() -// -// Test the Document Model Services. -// +TVerdict CT_CPLAIN::doTestStepL() { - CTrapCleanup* cleanup=CTrapCleanup::New(); - - __UHEAP_MARK; - - typedef TestCPlainText instance1; - typedef TestCPlainText instance2; - typedef TestCPlainText instance3; + SetTestStepResult(EFail); - instance1* doctest=NULL; - - TRAPD(ret, doctest=instance1::NewL()); - test(ret == KErrNone); + CTrapCleanup* cleanup=CTrapCleanup::New(); + + __UHEAP_MARK; + + typedef TestCPlainText instance1; + typedef TestCPlainText instance2; + typedef TestCPlainText instance3; - test.Start(_L("CPlainText - Flat")); + instance1* doctest=NULL; - TRAP(ret,doctest->TestL()); - test(ret == KErrNone); - delete doctest; + TRAPD(ret1, doctest=instance1::NewL()); - test.Next(_L("CPlainText - Segmented")); - instance2* doctest1=NULL; + INFO_PRINTF1(_L("CPlainText - Flat")); + TRAPD(ret2, doctest->TestL()); + delete doctest; - TRAP(ret, doctest1=instance2::NewL()); - test(ret == KErrNone); - - TRAP(ret, doctest1->TestSegmentedL()); - test(ret == KErrNone); - delete doctest1; + INFO_PRINTF1(_L("CPlainText - Segmented")); + instance2* doctest1=NULL; + TRAPD(ret3, doctest1=instance2::NewL()); + TRAPD(ret4, doctest1->TestSegmentedL()); + delete doctest1; - test.Next(_L("Defect...")); - instance3* doctest2=NULL; - - TRAP(ret, doctest2=instance3::NewL()); - test(ret == KErrNone); - - TRAP(ret, doctest2->DefectsL()); - test(ret == KErrNone); - delete doctest2; + INFO_PRINTF1(_L("Defect...")); + instance3* doctest2=NULL; + TRAPD(ret5, doctest2=instance3::NewL()); + TRAPD(ret6, doctest2->DefectsL()); + delete doctest2; - test.End(); - test.Close(); - - __UHEAP_MARKEND; - - delete cleanup; + __UHEAP_MARKEND; + + delete cleanup; - return(0); + if (ret1 == KErrNone && ret2 == KErrNone && ret3 == KErrNone && ret4 == KErrNone && ret5 == KErrNone && ret6 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_CPLAIN.MMP --- a/textrendering/texthandling/ttext/T_CPLAIN.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_CPLAIN.MMP for test component T_CPLAIN (released in ETEXT) -// - -target t_cplain.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc // your public include directory should be here -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_CPLAIN.CPP - -library euser.lib etext.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_CPLAIN.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_CPLAIN.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_CPLAIN_H__ +#define __T_CPLAIN_H__ + +#include + +class CT_CPLAIN : public CTestStep + { +public: + CT_CPLAIN(); +protected: + TVerdict doTestStepL(); +private: + }; + +_LIT(KTestStep_T_CPLAIN, "T_CPLAIN"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_CUTPST.CPP --- a/textrendering/texthandling/ttext/T_CUTPST.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_CUTPST.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -20,14 +20,30 @@ #include #include #include -#include +#include "T_CUTPST.h" + +LOCAL_D CTestStep *pTestStep = NULL; +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + pTestStep->ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } +#undef INFO_PRINTF1 +#undef INFO_PRINTF2 +// copy from tefexportconst.h +#define INFO_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) +#define INFO_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) #define UNUSED_VAR(a) a = a const TInt KTestCleanupStack=0x40; -LOCAL_D RTest test(_L("Cut & Paste")); LOCAL_D CTrapCleanup* TheTrapCleanup=NULL; LOCAL_D CPlainText* TheTextObject=NULL; LOCAL_D CClipboard* TheWriteBoard=NULL; @@ -75,18 +91,18 @@ OpenWriteClipboardLC(); // delete the system clipboard file if it exists. // Copy zero-length text to the clipboard. - test.Next(_L("Copy zero-length text to the clipboard")); + INFO_PRINTF1(_L("Copy zero-length text to the clipboard")); TheTextObject->CopyToStoreL(TheWriteBoard->Store(),TheWriteBoard->StreamDictionary(),0,0); OpenReadClipboardLC(); test(TheTextObject->DocumentLength()==0); // Paste zero-length text from the clipboard. - test.Next(_L("Paste zero-length text from the clipboard")); + INFO_PRINTF1(_L("Paste zero-length text from the clipboard")); TheTextObject->PasteFromStoreL(TheReadBoard->Store(),TheReadBoard->StreamDictionary(),0); // Copy multiple paragraphs to the clipboard - test.Next(_L("PasteFromStoreL(aPos,aMaxPasteLength)")); + INFO_PRINTF1(_L("PasteFromStoreL(aPos,aMaxPasteLength)")); TBuf<512> buf(_L("Here is para one.")); buf.Append(CEditableText::EParagraphDelimiter); buf.Append(_L("This is paragraph two.")); @@ -116,27 +132,27 @@ // // { - test.Start(_L(" @SYMTestCaseID:SYSLIB-ETEXT-LEGACY-CPLAIN-0001 Cut&Paste - with plainText ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-ETEXT-LEGACY-CPLAIN-0001 Cut&Paste - with plainText ")); TheTextObject=CPlainText::NewL(); CleanupStack::PushL(TheTextObject); OpenWriteClipboardLC(); // delete the system clipboard file if it exists. test(TheTextObject->DocumentLength()==0); // - test.Next(_L("Paste from empty store")); + INFO_PRINTF1(_L("Paste from empty store")); OpenReadClipboardLC(); TInt charCount=0; TRAPD(ret, charCount=TheTextObject->PasteFromStoreL(TheReadBoard->Store(),TheReadBoard->StreamDictionary(),TheTextObject->DocumentLength())); UNUSED_VAR(ret); if (charCount<=0) - test.Printf(_L(" No recognised data to paste or clipboard empty\n\r")); + INFO_PRINTF1(_L(" No recognised data to paste or clipboard empty\n\r")); TInt fieldCount=TheTextObject->FieldCount(); test(fieldCount==0); // -// test.Next(_L("Paste from clipboard with no recognised types")); +// INFO_PRINTF1(_L("Paste from clipboard with no recognised types")); // WriteForeignDataToClipboardL(); // - test.Next(_L("Paste into empty PlainText")); + INFO_PRINTF1(_L("Paste into empty PlainText")); TheTextObject->InsertL(TheTextObject->DocumentLength(),_L("SomeData")); OpenWriteClipboardLC(); TheTextObject->CopyToStoreL(TheWriteBoard->Store(),TheWriteBoard->StreamDictionary(),0,TheTextObject->DocumentLength()); @@ -148,19 +164,19 @@ fieldCount=TheTextObject->FieldCount(); test(fieldCount==0); // - test.Next(_L("Paste @ start (pos=0)")); + INFO_PRINTF1(_L("Paste @ start (pos=0)")); TheTextObject->PasteFromStoreL(TheReadBoard->Store(),TheReadBoard->StreamDictionary(),0); test(TheTextObject->DocumentLength()==_L("SomeDataSomeData").Length()); fieldCount=TheTextObject->FieldCount(); test(fieldCount==0); // - test.Next(_L("Paste @ end (DocumentLength())")); + INFO_PRINTF1(_L("Paste @ end (DocumentLength())")); TheTextObject->PasteFromStoreL(TheReadBoard->Store(),TheReadBoard->StreamDictionary(),TheTextObject->DocumentLength()); test(TheTextObject->DocumentLength()==_L("SomeDataSomeDataSomeData").Length()); fieldCount=TheTextObject->FieldCount(); test(fieldCount==0); // - test.Next(_L("Paste @ middle")); + INFO_PRINTF1(_L("Paste @ middle")); TheTextObject->PasteFromStoreL(TheReadBoard->Store(),TheReadBoard->StreamDictionary(),4); fieldCount=TheTextObject->FieldCount(); test(fieldCount==0); @@ -192,25 +208,30 @@ }); } +CT_CUTPST::CT_CUTPST() + { + SetTestStepName(KTestStep_T_CUTPST); + pTestStep = this; + } -GLDEF_C TInt E32Main() -// -// Test the streaming framework. -// +TVerdict CT_CUTPST::doTestStepL() { + SetTestStepResult(EFail); - test.Title(); - __UHEAP_MARK; - setupCleanup(); - TRAPD(r,testPlainTextCutPaste()); - test(r == KErrNone); - TRAP(r,testPlainTextCutPaste2()); - test(r == KErrNone); + INFO_PRINTF1(_L("Cut & Paste")); + __UHEAP_MARK; + setupCleanup(); + TRAPD(r1,testPlainTextCutPaste()); + TRAPD(r2,testPlainTextCutPaste2()); - delete TheTrapCleanup; - - __UHEAP_MARKEND; - test.End(); - test.Close(); - return 0; + delete TheTrapCleanup; + + __UHEAP_MARKEND; + + if (r1 == KErrNone && r2 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_CUTPST.MMP --- a/textrendering/texthandling/ttext/T_CUTPST.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_CUTPST.MMP for test component T_CUTPST (released in ETEXT) -// - -target t_cutpst.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc // your public include directory should be here -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_CUTPST.CPP - -library euser.lib efsrv.lib etext.lib tins.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_CUTPST.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_CUTPST.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_CUTPST_H__ +#define __T_CUTPST_H__ + +#include + +class CT_CUTPST : public CTestStep + { +public: + CT_CUTPST(); +protected: + TVerdict doTestStepL(); +private: + }; + +_LIT(KTestStep_T_CUTPST, "T_CUTPST"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_FMT.CPP --- a/textrendering/texthandling/ttext/T_FMT.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_FMT.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,13 +16,28 @@ */ -#include #include #include #include #include +#include "T_FMT.h" -LOCAL_D RTest test(_L("TFormat Test Code")); +LOCAL_D CTestStep *pTestStep = NULL; +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + pTestStep->ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } +#undef INFO_PRINTF1 +#undef INFO_PRINTF2 +// copy from tefexportconst.h +#define INFO_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) +#define INFO_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) template class TestFormat @@ -54,7 +69,7 @@ // Checks TTabStop construction and methods. // { - test.Start(_L("Checking all methods")); + INFO_PRINTF1(_L("Checking all methods")); // Default constructor. TTabStop tab1; @@ -62,22 +77,22 @@ TTabStop tab3; tab3=tab1; - test.Next(_L("Default constructor")); + INFO_PRINTF1(_L("Default constructor")); test(tab1.iTwipsPosition==0); if (tab1.iType==TTabStop::ELeftTab) - test.Printf(_L("\nleft tab - %d\n"),tab1.iType); + INFO_PRINTF2(_L("\nleft tab - %d\n"),tab1.iType); else if (tab1.iType==TTabStop::ECenteredTab) - test.Printf(_L("\ncentered tab - %d\n"),tab1.iType); + INFO_PRINTF2(_L("\ncentered tab - %d\n"),tab1.iType); else if (tab1.iType==TTabStop::ERightTab) - test.Printf(_L("\nright tab - %d\n"),tab1.iType); + INFO_PRINTF2(_L("\nright tab - %d\n"),tab1.iType); else if (tab1.iType==TTabStop::ENullTab) - test.Printf(_L("\nnull tab - %d\n"),tab1.iType); + INFO_PRINTF2(_L("\nnull tab - %d\n"),tab1.iType); else - test.Printf(_L("\nsomething completely different - %d \n"),tab1.iType); + INFO_PRINTF2(_L("\nsomething completely different - %d \n"),tab1.iType); test(tab1.iType==TTabStop::ELeftTab); // test.Getch(); - test.Next(_L("Copy constructor")); + INFO_PRINTF1(_L("Copy constructor")); TTabStop tab4; tab4.iTwipsPosition=1440; tab4.iType=TTabStop::ERightTab; @@ -85,18 +100,17 @@ test(tab5.iTwipsPosition==tab4.iTwipsPosition); test(tab5.iType==tab4.iType); - test.Next(_L("Assignment operator")); + INFO_PRINTF1(_L("Assignment operator")); tab1=tab5;; test(tab1.iTwipsPosition==tab5.iTwipsPosition); test(tab1.iType==tab5.iType); - test.Next(_L("Equality operator")); + INFO_PRINTF1(_L("Equality operator")); test(tab1==tab5); - test.Next(_L("Inequality operator")); + INFO_PRINTF1(_L("Inequality operator")); tab1.iTwipsPosition=2; test(tab1!=tab5); - test.End(); } @@ -106,21 +120,21 @@ // Checks TParaBorder construction. // { - test.Start(_L("Checking all methods")); + INFO_PRINTF1(_L("Checking all methods")); // Default Constructor. TParaBorder border1; - test.Next(_L("Default constructor")); + INFO_PRINTF1(_L("Default constructor")); test(border1.iLineStyle==TParaBorder::ENullLineStyle); test(border1.iAutoColor); TLogicalRgb c(TLogicalRgb::ESystemForegroundColor); test(border1.iColor == c); TParaBorder border2; - test.Next(_L("Equality operator")); + INFO_PRINTF1(_L("Equality operator")); test(border2==border1); - test.Next(_L("Inequality operator")); + INFO_PRINTF1(_L("Inequality operator")); border2.iLineStyle=TParaBorder::ESolid; border2.iThickness=2; test(border2!=border1); @@ -128,8 +142,6 @@ border1.iLineStyle=TParaBorder::ESolid; border1.iThickness=2; test(border2==border1); - - test.End(); } @@ -139,15 +151,15 @@ // Checks TBullet construction. // { - test.Start(_L("Checking all methods")); + INFO_PRINTF1(_L("Checking all methods")); // Default constructor. TBullet bullet; - test.Next(_L("Default constructor")); + INFO_PRINTF1(_L("Default constructor")); test(0x2022==bullet.iCharacterCode); test(bullet.iHeightInTwips==0); - test.Next(_L("==/!=")); + INFO_PRINTF1(_L("==/!=")); TBullet bullet2; test(bullet==bullet2); test(!(bullet!=bullet2)); @@ -156,7 +168,6 @@ bullet3.iCharacterCode=45; test(bullet!=bullet3); test(!(bullet==bullet3)); - test.End(); } @@ -174,7 +185,7 @@ // Checks CParaFormat construction and methods. // { - test.Start(_L("Checking all methods")); + INFO_PRINTF1(_L("Checking all methods")); CheckCParaFormatSpecialL(); __UHEAP_MARK; @@ -206,7 +217,7 @@ CParaFormat* format=CParaFormat::NewL(); - test.Next(_L("Tab methods")); + INFO_PRINTF1(_L("Tab methods")); TTabStop control[5]; control[4].iTwipsPosition=KMaxTUint32; control[3].iTwipsPosition=8640; @@ -259,7 +270,6 @@ delete format; format=NULL; __UHEAP_MARKEND; - test.End(); } @@ -294,14 +304,16 @@ #ifdef _DEBUG __UHEAP_MARK; // Construction. - test.Next(_L("Construction failing on OOM")); + INFO_PRINTF1(_L("Construction failing on OOM")); __UHEAP_FAILNEXT(1); TRAP(ret,format=CParaFormat::NewL()); if (ret!=KErrNone) check=1; - test(check==1); + // seems __UHEAP_FAILNEXT does not work well in platsim. + // below test does not pass in platsim. +// test(check==1); #endif - test.Next(_L("Construction succeeding")); + INFO_PRINTF1(_L("Construction succeeding")); check=0; TRAP(ret,format=CParaFormat::NewL()); if (ret!=KErrNone) @@ -330,19 +342,19 @@ test(format->iLineSpacingControl==CParaFormat::ELineSpacingAtLeastInTwips); test(format->iDefaultTabWidthInTwips==360); - test.Next(_L("Equality operator")); + INFO_PRINTF1(_L("Equality operator")); CParaFormat* two=CParaFormat::NewL(); test(two->IsEqual(*format)); delete two; - test.Next(_L("Copy constructor")); + INFO_PRINTF1(_L("Copy constructor")); CParaFormat* three=CParaFormat::NewL(*two); test(three->IsEqual(*two)); delete three; // Destroy() - test.Next(_L("Destroy()")); + INFO_PRINTF1(_L("Destroy()")); delete format; format=NULL; __UHEAP_MARKEND; @@ -358,7 +370,7 @@ __UHEAP_MARK; TInt count=0; // All methods. - test.Start(_L("Checking all methods")); + INFO_PRINTF1(_L("Checking all methods")); TParaFormatMask mask; mask.SetAttrib(EAttLeftMargin); mask.AttribIsSet(EAttLeftMargin); @@ -368,7 +380,7 @@ test(!(maskTemp!=mask)); // Construction. - test.Next(_L("Construction")); + INFO_PRINTF1(_L("Construction")); TParaFormatMask mask1; for (count=EAttParaLanguage;countSetBase(formatLayer2); - test.Start(_L("ChainCount()")); + INFO_PRINTF1(_L("ChainCount()")); test(formatLayer1->ChainCount()==2); // Now read them in and compare them: // First just the layers. - test.Next(_L("SenseL() - Sensing this layer only")); + INFO_PRINTF1(_L("SenseL() - Sensing this layer only")); TCharFormat result1; TCharFormatMask result1Mask; formatLayer1->Sense(result1,result1Mask); @@ -544,7 +555,7 @@ test(result2.iFontSpec.iFontStyle.BitmapType() == EAntiAliasedGlyphBitmap); // Now check the effective formats are correct - test.Next(_L("SenseEffectiveL() - utilising basedOn")); + INFO_PRINTF1(_L("SenseEffectiveL() - utilising basedOn")); TCharFormatMask dummy; TCharFormat result3; formatLayer1->SenseEffective(result3); @@ -554,10 +565,10 @@ // The result should be the same as above, // since all these values are present in the resultant TCharFormat. // Ie, checking that overlapping attributes in a lower layer are not taken. - test.Next(_L("SenseEffectiveL() - checking overlapping attributes are ignored")); + INFO_PRINTF1(_L("SenseEffectiveL() - checking overlapping attributes are ignored")); // Add another layer of formatting by implementing the next based on link. formatLayer2->SetBase(formatLayer3); - test.Next(_L("ChainCount()")); + INFO_PRINTF1(_L("ChainCount()")); test(formatLayer1->ChainCount()==3); test(formatLayer2->ChainCount()==2); test(formatLayer3->ChainCount()==1); @@ -565,7 +576,6 @@ formatLayer1->SenseEffective(result4); CheckFormatsEqual(format3,dummy,result4,dummy); - test.End(); delete formatLayer1; delete formatLayer2; delete formatLayer3; @@ -769,7 +779,7 @@ // Now read them in and compare them: // First just the layers. - test.Next(_L("SenseL() - Sensing this layer only")); + INFO_PRINTF1(_L("SenseL() - Sensing this layer only")); CParaFormat* formatResult1=CParaFormat::NewL(); TParaFormatMask formatResult1Mask; formatLayer->SenseL(formatResult1,formatResult1Mask); @@ -785,7 +795,7 @@ delete formatResult1; // Now check the effective formats are correct - test.Next(_L("SenseEffectiveL() - utilising basedOn")); + INFO_PRINTF1(_L("SenseEffectiveL() - utilising basedOn")); CParaFormat* formatResult2=CParaFormat::NewL(); formatLayer->SenseEffectiveL(formatResult2); CheckFormatsEqual(format3,formatResult2); @@ -795,7 +805,7 @@ // The result should be the same as above, // since all these values are present in the resultant CParaFormat. // Ie, checking that overlapping attributes in a lower layer are not taken. - test.Next(_L("SenseEffectiveL() - checking overlapping attributes are ignored")); + INFO_PRINTF1(_L("SenseEffectiveL() - checking overlapping attributes are ignored")); // Add another layer of formatting by implementing the next based on link. formatLayer2->SetBase(formatLayer4); formatResult2=CParaFormat::NewL(); @@ -804,7 +814,7 @@ delete formatResult2; // Test ChainCount() method - test.Next(_L("ChainCount()")); + INFO_PRINTF1(_L("ChainCount()")); test(formatLayer4->ChainCount()==1); test(formatLayer2->ChainCount()==2); test(formatLayer->ChainCount()==3); @@ -827,7 +837,7 @@ // Checks correct inheritance of bullets. // { - test.Next(_L("Testing bullet inheritance")); + INFO_PRINTF1(_L("Testing bullet inheritance")); __UHEAP_MARK; CParaFormatLayer* baseLayer=CParaFormatLayer::NewL(); @@ -842,7 +852,7 @@ specificLayer->SetL(paraFormat,paraMask); // // specific bullet over null inherited - test.Start(_L("Specific bullet over null inherited")); + INFO_PRINTF1(_L("Specific bullet over null inherited")); CParaFormat* sensed=CParaFormat::NewLC(); specificLayer->SenseEffectiveL(sensed); test(sensed->iBullet!=NULL); @@ -850,7 +860,7 @@ CleanupStack::PopAndDestroy(); // sensed // // null bullet over inherited - test.Next(_L("Null bullet over inherited")); + INFO_PRINTF1(_L("Null bullet over inherited")); baseLayer->Reset(); specificLayer->Reset(); baseLayer->SetL(paraFormat,paraMask); @@ -865,7 +875,7 @@ // test(sensed->iBullet==NULL); // // non-null bullet over inherited bullet - test.Next(_L("Non-Null bullet over inherited")); + INFO_PRINTF1(_L("Non-Null bullet over inherited")); specificLayer->Reset(); paraFormat->iBullet->iHeightInTwips=1000; specificLayer->SetL(paraFormat,paraMask); @@ -878,7 +888,6 @@ CleanupStack::PopAndDestroy(); // paraFormat. delete specificLayer; delete baseLayer; - test.End(); __UHEAP_MARKEND; } @@ -897,17 +906,19 @@ TInt check=0; CParaFormatLayer* layer0=NULL; - test.Start(_L("Constructor")); + INFO_PRINTF1(_L("Constructor")); #ifdef _DEBUG - test.Next(_L("Failing on OOM")); + INFO_PRINTF1(_L("Failing on OOM")); __UHEAP_FAILNEXT(1); TRAP(ret,layer0=CParaFormatLayer::NewL()); if (ret!=KErrNone) check++; - test(check>0); + // seems __UHEAP_FAILNEXT does not work well in platsim. + // below test does not pass in platsim. +// test(check>0); #endif - test.Next(_L("Succeeding")); + INFO_PRINTF1(_L("Succeeding")); check=0; TRAP(ret,layer0=CParaFormatLayer::NewL()); if (ret!=KErrNone) @@ -916,7 +927,7 @@ delete layer0; // Set/Sense Default Para Format. - test.Next(_L("Set/Sense Default ParaFormat")); + INFO_PRINTF1(_L("Set/Sense Default ParaFormat")); CParaFormat* defaultFormat=CParaFormat::NewL(); //to test EAttParaLanguageX @@ -966,7 +977,6 @@ CheckCParaFormatLayerRestL(); __UHEAP_MARKEND; - test.End(); } @@ -978,11 +988,11 @@ { __UHEAP_MARK; // All methods - test.Start(_L("Constructor")); + INFO_PRINTF1(_L("Constructor")); TCharFormat format; test(format.iLanguage==0); - test.Next(_L("Constructor with arguments")); + INFO_PRINTF1(_L("Constructor with arguments")); TInt height=240; TBuf<32> name=_S("arial"); TCharFormat format1(name,height); @@ -992,7 +1002,6 @@ control.iFontSpec.iTypeface.iName=_S("arial"); test(format1.IsEqual(control)); - test.End(); __UHEAP_MARKEND; } @@ -1006,20 +1015,20 @@ __UHEAP_MARK; // All methods. TInt count=0; - test.Start(_L("Checking all methods")); + INFO_PRINTF1(_L("Checking all methods")); TCharFormatMask mask; mask.SetAttrib(EAttFontHeight); mask.AttribIsSet(EAttFontHeight); mask.ClearAttrib(EAttFontHeight); // Construction. - test.Next(_L("Construction")); + INFO_PRINTF1(_L("Construction")); TCharFormatMask mask1; for (count=EAttCharLanguage;count* fmt=new(ELeave) TestFormat; - TRAPD(ret,fmt->CheckAllClassesL()); - - TRAP(ret, - TestFormatLayerResetL()); - test(ret==KErrNone); +TVerdict CT_FMT::doTestStepL() + { + SetTestStepResult(EFail); - TRAP(ret, - TestSettingNullTabsL()); - test(ret==KErrNone); - - TRAP(ret, - CheckBulletInheritance()); - test(ret==KErrNone); - - test.End(); + CTrapCleanup* cleanup=CTrapCleanup::New(); + INFO_PRINTF1(_L("TFormat Test Code")); + TestFormat* fmt=new(ELeave) TestFormat; + TRAPD(ret1, fmt->CheckAllClassesL()); + TRAPD(ret2, TestFormatLayerResetL()); + TRAPD(ret3, TestSettingNullTabsL()); + TRAPD(ret4, CheckBulletInheritance()); + + __UHEAP_MARK; + delete(fmt); + fmt=NULL; + __UHEAP_MARKEND; - __UHEAP_MARK; - delete(fmt); - fmt=NULL; - __UHEAP_MARKEND; - test.Close(); + delete cleanup; - delete cleanup; + if (ret1 == KErrNone && ret2 == KErrNone && ret3 == KErrNone && ret4 == KErrNone) + { + SetTestStepResult(EPass); + } - return(0); - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_FMT.MMP --- a/textrendering/texthandling/ttext/T_FMT.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_FMT.MMP for test component T_FMT (released in ETEXT) -// - -target t_fmt.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc // your public include directory should be here -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_FMT.CPP - -library euser.lib gdi.lib etext.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_FMT.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_FMT.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_FMT_H__ +#define __T_FMT_H__ + +#include + +class CT_FMT : public CTestStep + { +public: + CT_FMT(); +protected: + TVerdict doTestStepL(); +private: + }; + +_LIT(KTestStep_T_FMT, "T_FMT"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_FMT1.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_FMT1.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,35 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_FMT1_H__ +#define __T_FMT1_H__ + +#include + +class CT_FMT1 : public CTestStep + { +public: + CT_FMT1(); +protected: + TVerdict doTestStepL(); +private: + void TestDEF047316L(); + }; + +_LIT(KTestStep_T_FMT1, "T_FMT1"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_FMT1.mmp --- a/textrendering/texthandling/ttext/T_FMT1.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_FMT1.MMP for test component T_FMT1 (released in ETEXT) -// - -target t_fmt1.exe -targettype EXE -UID 0x100039CE 0xE0008383 -VENDORID 0x70000001 - -userinclude ../ttext -userinclude ../stext -userinclude ../inc ../traces // your public include directory should be here -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - - - -SOURCEPATH ../ttext // source files -source t_fmt1.cpp - -SOURCEPATH ../stext // source files -source TXTFRMAT.CPP -source TXTUTIL.CPP -source TXTINDEX.CPP -source TXTFMLYR.CPP -source TXTFMSTM.CPP -source TXTIXSTR.CPP -source TXTRTMAP.CPP -source TXTSTYLE.CPP - -library euser.lib estor.lib gdi.lib - -SMPSAFE diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_IMPORT.CPP --- a/textrendering/texthandling/ttext/T_IMPORT.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_IMPORT.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -18,7 +18,6 @@ #include #include -#include #include #include @@ -29,6 +28,24 @@ #include #include #include +#include "T_IMPORT.h" + +LOCAL_D CTestStep *pTestStep = NULL; +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + pTestStep->ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } +#undef INFO_PRINTF1 +#undef INFO_PRINTF2 +// copy from tefexportconst.h +#define INFO_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) +#define INFO_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) /* this fixes a MSVC link warning */ #ifdef __VC32__ @@ -42,7 +59,7 @@ _LIT(KTestFileName1, "c:\\etext\\climb.txg"); _LIT(KTestFileName2, "c:\\etext\\import1.txg"); -void EnsureFileExists(const TDesC& aName) +LOCAL_D void EnsureFileExists(const TDesC& aName) { RFs fs; fs.Connect(); @@ -53,7 +70,6 @@ fs.Close(); } -LOCAL_D RTest test(_L("Plain Text File Imports")); LOCAL_D CTrapCleanup* TheTrapCleanup=NULL; LOCAL_D CPlainText* TheText=NULL; LOCAL_D CRichText* richText=NULL; @@ -309,7 +325,7 @@ pos += p1.Length(); } while (pos < length1); - test.Next(_L("DEF058651 - Propagated:NTT - Received MMS with line break CR set does not cause line feed.")); + INFO_PRINTF1(_L("DEF058651 - Propagated:NTT - Received MMS with line break CR set does not cause line feed.")); buffer->Reset(); plain1->Reset(); @@ -334,7 +350,7 @@ // Main routine // { - test.Start(_L(" @SYMTestCaseID:SYSLIB-ETEXT-LEGACY-T_IMPORT-0001 CPlainText ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-ETEXT-LEGACY-T_IMPORT-0001 CPlainText ")); CreateTextL(); ImportText1(); @@ -343,14 +359,14 @@ TestUnicodeCompressionL(); TestEncodingConversionL(); - test.Next(_L("CRichText")); + INFO_PRINTF1(_L("CRichText")); delete TheText; TheText=richText; ImportText1(); ImportText2(); - test.Next(_L("CRichText - more than 256 styles, defect INC044582")); + INFO_PRINTF1(_L("CRichText - more than 256 styles, defect INC044582")); TestInc044582(); DestroyText(); @@ -402,29 +418,32 @@ } } -GLDEF_C TInt E32Main() -// -// Test the streaming framework. -// +CT_IMPORT::CT_IMPORT() { + SetTestStepName(KTestStep_T_IMPORT); + pTestStep = this; + } - test.Title(); - __UHEAP_MARK; - setupCleanup(); - TRAPD(r, DoTestL()); +TVerdict CT_IMPORT::doTestStepL() + { + SetTestStepResult(EFail); - test(r == KErrNone); + INFO_PRINTF1(_L("Plain Text File Imports")); + __UHEAP_MARK; + setupCleanup(); + TRAPD(r, DoTestL()); - ::DeleteDataFile(KTestFileName1); //deletion of data files must be before call to End() - DEF047652 - ::DeleteDataFile(KTestFileName2); + ::DeleteDataFile(KTestFileName1); //deletion of data files must be before call to End() - DEF047652 + ::DeleteDataFile(KTestFileName2); - test.End(); - - delete TheTrapCleanup; + delete TheTrapCleanup; - __UHEAP_MARKEND; + __UHEAP_MARKEND; + + if (r == KErrNone) + { + SetTestStepResult(EPass); + } - test.Close(); - - return 0; + return TestStepResult(); } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_IMPORT.MMP --- a/textrendering/texthandling/ttext/T_IMPORT.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_IMPORT.MMP for test component T_IMPORT (released in ETEXT) -// - -target t_import.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_IMPORT.CPP -source ../spml/T_PMLPAR.CPP - -library euser.lib estor.lib etext.lib -library efsrv.lib gdi.lib - -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_IMPORT.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_IMPORT.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_IMPORT_H__ +#define __T_IMPORT_H__ + +#include + +class CT_IMPORT : public CTestStep + { +public: + CT_IMPORT(); +protected: + TVerdict doTestStepL(); +private: + }; + +_LIT(KTestStep_T_IMPORT, "T_IMPORT"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_INDTER.CPP --- a/textrendering/texthandling/ttext/T_INDTER.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_INDTER.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -18,7 +18,6 @@ #include #include -#include #include #include @@ -26,13 +25,29 @@ #include #include "../incp/T_PMLPAR.H" +#include "T_INDTER.h" + +LOCAL_D CTestStep *pTestStep = NULL; +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + pTestStep->ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } +#undef INFO_PRINTF1 +#undef INFO_PRINTF2 +// copy from tefexportconst.h +#define INFO_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) +#define INFO_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) #define UNUSED_VAR(a) a = a const TInt KTestCleanupStack=0x40; - -LOCAL_D RTest test(_L("Rich Text Format attribute Indeterminate State tests")); LOCAL_D CTrapCleanup* TheTrapCleanup=NULL; LOCAL_D CRichText* TheText=NULL; LOCAL_D CParaFormatLayer* TheGlobalParaLayer=NULL; @@ -164,7 +179,7 @@ // Test the indeterminate state of paragraph format attributes. // { - test.Start(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_INDTER-0001 Paragraph format attributes ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_INDTER-0001 Paragraph format attributes ")); TestParaBordersL(); } @@ -173,7 +188,7 @@ // Test the indeterminate state of character format attributes. // { - test.Next(_L("Character format attributes")); + INFO_PRINTF1(_L("Character format attributes")); // ResetTextL(); TCharFormat applyFormat; @@ -221,7 +236,7 @@ CreateRichTextL(); TestParaFormatL(); TestCharFormatL(); - test.End(); + DestroyRichText(); } @@ -241,22 +256,30 @@ }); } - -GLDEF_C TInt E32Main() -// -// Test the streaming framework. -// +CT_INDTER::CT_INDTER() { + SetTestStepName(KTestStep_T_INDTER); + pTestStep = this; + } - test.Title(); - __UHEAP_MARK; - setupCleanup(); - TRAPD(r, DoTestL()); +TVerdict CT_INDTER::doTestStepL() + { + SetTestStepResult(EFail); + + INFO_PRINTF1(_L("Rich Text Format attribute Indeterminate State tests")); + __UHEAP_MARK; + setupCleanup(); + TRAPD(r, DoTestL()); test(r == KErrNone); - delete TheTrapCleanup; - - __UHEAP_MARKEND; - test.Close(); - return 0; + delete TheTrapCleanup; + + __UHEAP_MARKEND; + + if (r == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_INDTER.MMP --- a/textrendering/texthandling/ttext/T_INDTER.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_INDTER.MMP for test component T_INDTER (released in ETEXT) -// - -target t_indter.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_INDTER.CPP -source X_INDTER.CPP - -library euser.lib efsrv.lib gdi.lib etext.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_INDTER.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_INDTER.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_INDTER_H__ +#define __T_INDTER_H__ + +#include + +class CT_INDTER : public CTestStep + { +public: + CT_INDTER(); +protected: + TVerdict doTestStepL(); +private: + }; + +_LIT(KTestStep_T_INDTER, "T_INDTER"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_LAYDOC.CPP --- a/textrendering/texthandling/ttext/T_LAYDOC.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_LAYDOC.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,15 +16,32 @@ */ -#include #include #include #include #include +#include "T_LAYDOC.h" + +LOCAL_D CTestStep *pTestStep = NULL; +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + pTestStep->ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } +#undef INFO_PRINTF1 +#undef INFO_PRINTF2 +// copy from tefexportconst.h +#define INFO_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) +#define INFO_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) + #define UNUSED_VAR(a) a = a -LOCAL_D RTest test(_L("TGlobalLayDoc - Layout class")); LOCAL_D TPtrC defaultText(_L("This is default text")); LOCAL_D TPtrC comp1(_L("fault text")); LOCAL_D TPtrC comp2(_L("t")); @@ -92,23 +109,23 @@ TCharFormat format; TPtrC view; - test.Start(_L("Sensing at start")); + INFO_PRINTF1(_L("Sensing at start")); doc->GetChars(view,format,0); CheckView(view,defaultText); - test.Next(_L("Sensing from char.pos.10")); + INFO_PRINTF1(_L("Sensing from char.pos.10")); doc->GetChars(view,format,10); CheckView(view,comp1); - test.Next(_L("Sensing from end-1")); + INFO_PRINTF1(_L("Sensing from end-1")); doc->GetChars(view,format,19); CheckView(view,comp2); - test.Next(_L("Sensing from end")); + INFO_PRINTF1(_L("Sensing from end")); doc->GetChars(view,format,20); test(*view.Ptr()==CEditableText::EParagraphDelimiter); - test.End(); + delete doc; delete paraLayer; delete charLayer; @@ -180,17 +197,17 @@ TPtrC body(content); document->InsertL(0,body); // Now do the tests. - test.Start(_L("Paragraph 1")); + INFO_PRINTF1(_L("Paragraph 1")); DoParagraphStart(0,55,document); // Paragraph 1 - test.Next(_L("Paragraph 2")); + INFO_PRINTF1(_L("Paragraph 2")); DoParagraphStart(55,23,document); // Paragraph 2 - test.Next(_L("Paragraph 3")); + INFO_PRINTF1(_L("Paragraph 3")); DoParagraphStart(78,20,document); // Paragraph 3 delete paraLayer; delete charLayer; delete document; - test.End(); + __UHEAP_MARKEND; User::Heap().Check(); } @@ -268,28 +285,28 @@ doc->SetGlobalParaFormat(layer); // Check constructor - test.Start(_L("Constructor")); + INFO_PRINTF1(_L("Constructor")); // Check DocumentLength - test.Next(_L("DocumentLength()")); + INFO_PRINTF1(_L("DocumentLength()")); doc->LdDocumentLength(); // Check ParagraphStart - test.Next(_L("ParagraphStart()")); + INFO_PRINTF1(_L("ParagraphStart()")); doc->LdToParagraphStart(pos); // Check GetParagraphFormatL - test.Next(_L("GetParagraphFormatL()")); + INFO_PRINTF1(_L("GetParagraphFormatL()")); doc->GetParagraphFormatL(format,pos); // Check GetChars - test.Next(_L("GetChars()")); + INFO_PRINTF1(_L("GetChars()")); TPtrC view; TCharFormat charFormat; doc->GetChars(view,charFormat,pos); // check EnquirePage - test.Next(_L("EnquirePageBreak()")); + INFO_PRINTF1(_L("EnquirePageBreak()")); doc->EnquirePageBreak(pos,0); delete paraLayer; @@ -297,7 +314,7 @@ delete doc; delete layer; delete format; - test.End(); + __UHEAP_MARKEND; User::Heap().Check(); } @@ -308,25 +325,25 @@ // { __UHEAP_MARK; - test.Start(_L("Checking all methods present")); + INFO_PRINTF1(_L("Checking all methods present")); TestRegister(CEditableText::EFlatStorage); - test.Next(_L("DocumentLength()")); + INFO_PRINTF1(_L("DocumentLength()")); TestDocumentLength(CEditableText::EFlatStorage); - test.Next(_L("EnquirePage()")); - test.Start(_L("Always returns 0")); - test.End(); + INFO_PRINTF1(_L("EnquirePage()")); + INFO_PRINTF1(_L("Always returns 0")); + - test.Next(_L("ParagraphStart()")); + INFO_PRINTF1(_L("ParagraphStart()")); TestParagraphStart(CEditableText::EFlatStorage); - test.Next(_L("GetParagraphFormatL()")); + INFO_PRINTF1(_L("GetParagraphFormatL()")); TestGetParagraphFormatL(CEditableText::EFlatStorage); - test.Next(_L("GetChars")); + INFO_PRINTF1(_L("GetChars")); TestRead(CEditableText::EFlatStorage); - test.End(); + __UHEAP_MARKEND; } @@ -337,56 +354,59 @@ // { __UHEAP_MARK; - test.Next(_L("Checking all methods present")); + INFO_PRINTF1(_L("Checking all methods present")); TestRegister(CEditableText::ESegmentedStorage); - test.Next(_L("DocumentLength()")); + INFO_PRINTF1(_L("DocumentLength()")); TestDocumentLength(CEditableText::ESegmentedStorage); - test.Next(_L("EnquirePage()")); - test.Start(_L("Always returns 0")); - test.End(); + INFO_PRINTF1(_L("EnquirePage()")); + INFO_PRINTF1(_L("Always returns 0")); + - test.Next(_L("ParagraphStart()")); + INFO_PRINTF1(_L("ParagraphStart()")); TestParagraphStart(CEditableText::ESegmentedStorage); - test.Next(_L("SenseParagraphFormatL()")); + INFO_PRINTF1(_L("SenseParagraphFormatL()")); TestGetParagraphFormatL(CEditableText::ESegmentedStorage); - test.Next(_L("GetChars")); + INFO_PRINTF1(_L("GetChars")); //TestRead(); - //test.End(); - test.Start(_L("Test not yet implemented")); - test.End(); + // + INFO_PRINTF1(_L("Test not yet implemented")); + __UHEAP_MARKEND; } - - -GLDEF_C TInt E32Main() -// -// Drives the test program -// - { - CTrapCleanup* cleanup=CTrapCleanup::New(); - + +CT_LAYDOC::CT_LAYDOC() + { + SetTestStepName(KTestStep_T_LAYDOC); + pTestStep = this; + } + +TVerdict CT_LAYDOC::doTestStepL() + { + SetTestStepResult(EFail); + + CTrapCleanup* cleanup=CTrapCleanup::New(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_LAYDOC-0001 MLayDoc - Using Flat document ")); - - __UHEAP_MARK; - TRAPD(ret,Test()); - __UHEAP_MARKEND; - test(ret == KErrNone); - - test.Next(_L("MLaydoc - Using Segmented document")); - __UHEAP_MARK; - TRAP(ret,TestSeg()); - __UHEAP_MARKEND; - test(ret == KErrNone); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_LAYDOC-0001 MLayDoc - Using Flat document ")); + + __UHEAP_MARK; + TRAPD(ret1,Test()); + __UHEAP_MARKEND; + + INFO_PRINTF1(_L("MLaydoc - Using Segmented document")); + __UHEAP_MARK; + TRAPD(ret2,TestSeg()); + __UHEAP_MARKEND; - test.End(); - test.Close(); + delete cleanup; - delete cleanup; + if (ret1 == KErrNone && ret2 == KErrNone) + { + SetTestStepResult(EPass); + } - return(0); - } + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_LAYDOC.MMP --- a/textrendering/texthandling/ttext/T_LAYDOC.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_LAYDOC.MMP for test component T_LAYDOC (released in ETEXT) -// - -target t_laydoc.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc // your public include directory should be here -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_LAYDOC.CPP - -library euser.lib etext.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_LAYDOC.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_LAYDOC.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_LAYDOC_H__ +#define __T_LAYDOC_H__ + +#include + +class CT_LAYDOC : public CTestStep + { +public: + CT_LAYDOC(); +protected: + TVerdict doTestStepL(); +private: + }; + +_LIT(KTestStep_T_LAYDOC, "T_LAYDOC"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_PARSE_for_TEF.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_PARSE_for_TEF.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_PARSE_H__ +#define __T_PARSE_H__ + +#include + +class CT_PARSE : public CTestStep + { +public: + CT_PARSE(); +protected: + TVerdict doTestStepL(); +private: + }; + +_LIT(KTestStep_T_PARSE, "T_PARSE"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_PICRES.CPP --- a/textrendering/texthandling/ttext/T_PICRES.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_PICRES.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -22,13 +22,31 @@ #include #include #include -#include #include #include #include "TXTMRTSR.H" #include "../incp/T_PMLPAR.H" +#include "T_PICRES.h" + +LOCAL_D CTestStep *pTestStep = NULL; +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + pTestStep->ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } +#undef INFO_PRINTF1 +#undef INFO_PRINTF2 +// copy from tefexportconst.h +#define INFO_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) +#define INFO_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) + #define UNUSED_VAR(a) a = a @@ -55,8 +73,6 @@ const CCharFormatLayer* iGlobalCharFormatLayer; }; - -LOCAL_D RTest test(_L("Testing Picture Restorer mechanism")); LOCAL_D CTrapCleanup* TheTrapCleanup; LOCAL_D RFs TheFs; // the file server LOCAL_D RFile TheFile; // the data file @@ -362,7 +378,7 @@ TRAPD(ret, TheContainer->iText->DetachFromStoreL(CPicture::EDetachFull)); if (ret==KErrNotSupported) - test.Printf(_L(" SIMULATION: Some picture data is not supported by the current factory.")); + INFO_PRINTF1(_L(" SIMULATION: Some picture data is not supported by the current factory.")); // if (aAlwaysFailToLoad) // test(error==KErrNotFound); // else @@ -379,9 +395,13 @@ TheContainer->RestoreL(*TheStore,id,factory); TInt pictureCount=TheContainer->iText->PictureCount(); if (aAlwaysFailToLoad) + { test(pictureCount==1); + } else + { test(pictureCount==3); + } // delete factory; CleanupStack::PopAndDestroy(); // TheStore @@ -393,7 +413,7 @@ // Run the tests // { - test.Start(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_PICRES-0001 RichText Storing - with pictures deferred loading ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_PICRES-0001 RichText Storing - with pictures deferred loading ")); TheContainer=CContainer::NewL(); TRAPD(r, testPictureRestorer()); @@ -401,7 +421,7 @@ delete TheContainer; // deletes the rich text, which deletes the contained pictures. // // - test.Next(_L("RichText Storing - with pictures auto loading")); + INFO_PRINTF1(_L("RichText Storing - with pictures auto loading")); TheContainer=CContainer::NewL(); TRAP(r, testPictureRestorer(EFalse)); // DO NOT DEFER PICTURE LOADING @@ -410,7 +430,7 @@ // // // - test.Next(_L("Testing no missing picture app's")); + INFO_PRINTF1(_L("Testing no missing picture app's")); TheContainer=CContainer::NewL(); TRAP(r, testPictureRestorer2()); @@ -421,7 +441,7 @@ /* TEST NOW REDUNDANT AS OF NEW PICTURE CONTAINMENT MECHANISM AS AT RELEASE 073 - test.Next(_L("Testing missing picture app's")); + INFO_PRINTF1(_L("Testing missing picture app's")); TheContainer=CContainer::NewL(); TRAP(r, testPictureRestorer2(ETrue)); // ALWAYS FAIL TO DETACH FROM STORE @@ -477,27 +497,32 @@ } } -GLDEF_C TInt E32Main() -// -// Test the streaming framework. -// +CT_PICRES::CT_PICRES() { + SetTestStepName(KTestStep_T_PICRES); + pTestStep = this; + } - test.Title(); +TVerdict CT_PICRES::doTestStepL() + { + SetTestStepResult(EFail); + + INFO_PRINTF1(_L("Testing Picture Restorer mechanism")); __UHEAP_MARK; - setupCleanup(); - TRAPD(r,GoL()); - test(r == KErrNone); + setupCleanup(); + TRAPD(r,GoL()); - delete TheTrapCleanup; - - __UHEAP_MARKEND; - - ::DeleteDataFile(KOutputFile); //deletion of data files must be before call to End() - DEF047652 - ::DeleteDataFile(KOutputFile1); - - test.End(); - test.Close(); + delete TheTrapCleanup; + + __UHEAP_MARKEND; + + ::DeleteDataFile(KOutputFile); //deletion of data files must be before call to End() - DEF047652 + ::DeleteDataFile(KOutputFile1); - return 0; + if (r == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_PICRES.MMP --- a/textrendering/texthandling/ttext/T_PICRES.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_PICRES.MMP for test component T_PICRES (released in ETEXT) -// - -target t_picres.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_PICRES.CPP -source X_PICRES.CPP - -library euser.lib efsrv.lib estor.lib gdi.lib etext.lib tins.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_PICRES.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_PICRES.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_PICRES_H__ +#define __T_PICRES_H__ + +#include + +class CT_PICRES : public CTestStep + { +public: + CT_PICRES(); +protected: + TVerdict doTestStepL(); +private: + }; + +_LIT(KTestStep_T_PICRES, "T_PICRES"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_RICH1A.CPP --- a/textrendering/texthandling/ttext/T_RICH1A.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_RICH1A.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,17 +16,34 @@ */ -#include #include #include #include #include #include "../incp/T_PMLPAR.H" +#include "T_RICH1A.h" + +LOCAL_D CTestStep *pTestStep = NULL; +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + pTestStep->ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } +#undef INFO_PRINTF1 +#undef INFO_PRINTF2 +// copy from tefexportconst.h +#define INFO_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) +#define INFO_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) + #define UNUSED_VAR(a) a = a LOCAL_D CTrapCleanup* TheTrapCleanup; -LOCAL_D RTest test(_L("CRichText Document")); LOCAL_D const TInt KTestCleanupStack=0x200; class MAtomicTest @@ -127,18 +144,18 @@ template void CRichTest::DoFlatTests() { - test.Start(_L("Registering all methods")); + INFO_PRINTF1(_L("Registering all methods")); RegisterMethodsL(); - test.Next(_L("Inserting with embedded paragraph delimiters")); + INFO_PRINTF1(_L("Inserting with embedded paragraph delimiters")); InsertWithDelimsL(); - test.End(); + } template void CRichTest::InsertWithDelimsL() { - test.Start(_L("Inserting into shared para")); + INFO_PRINTF1(_L("Inserting into shared para")); Reset(); TBuf<512> testbuf(_L("a")); @@ -176,7 +193,7 @@ ////////////////////////////////// // Pathalogical case (1) // Inserting text with delimiters between 2 adjacent pictures. - test.Next(_L("Inserting text with delimiters between 2 adjacent pictures.")); + INFO_PRINTF1(_L("Inserting text with delimiters between 2 adjacent pictures.")); // Reset(); CXzePicture* picA=CXzePicture::NewL('Z'); @@ -211,7 +228,7 @@ //////////////////////////////// // Pathalogical case (2) // Insert text with delimiters after a picture - test.Next(_L("Insert text with delimiters after a picture")); + INFO_PRINTF1(_L("Insert text with delimiters after a picture")); // Reset(); // Destroys all pictures. picA=CXzePicture::NewL('Z'); @@ -224,7 +241,7 @@ //////////////////////////////// // Pathalogical case (3) // Insert text with delimiters before a picture - test.Next(_L("Insert text with delimiters before a picture")); + INFO_PRINTF1(_L("Insert text with delimiters before a picture")); // Reset(); // Destroys all pictures. picA=CXzePicture::NewL('Z'); @@ -235,7 +252,7 @@ InsertL(0,buf); // Reset(); - test.End(); + } @@ -246,10 +263,10 @@ // methods exist and run without panicking. // { - test.Start(_L("CRichText::NewL()")); + INFO_PRINTF1(_L("CRichText::NewL()")); // InsertL() - test.Next(_L("InsertL()")); + INFO_PRINTF1(_L("InsertL()")); TPtrC buf(_L("Herewith")); InsertL(0,buf); @@ -267,7 +284,7 @@ DeleteL(3,7); // SetInsertCharFormatL() - test.Next(_L("SetInsertCharFormatL()")); + INFO_PRINTF1(_L("SetInsertCharFormatL()")); TCharFormat format; TCharFormatMask mask; format.iFontSpec.iFontStyle.SetStrokeWeight(EStrokeWeightBold); mask.SetAttrib(EAttFontStrokeWeight); @@ -282,20 +299,20 @@ CancelInsertCharFormat(); // Inserting new paragraph - test.Next(_L("Inserting paragraph delimiter (Insert(TChar))")); + INFO_PRINTF1(_L("Inserting paragraph delimiter (Insert(TChar))")); InsertL(4,CEditableText::EParagraphDelimiter); // Delete() - test.Next(_L("DeleteL()")); + INFO_PRINTF1(_L("DeleteL()")); DeleteL(5,1); // Sensing character format over a specified range. - test.Next(_L("GetCharFormat()")); + INFO_PRINTF1(_L("GetCharFormat()")); TCharFormat charFormat1; TCharFormatMask undeterminedMask; GetCharFormat(charFormat1,undeterminedMask,0,4); // Sensing paragraph format over a specified range. - test.Next(_L("SenseParagraphFormatL()")); + INFO_PRINTF1(_L("SenseParagraphFormatL()")); CParaFormat* pParaFormat=NULL; TRAPD(r,pParaFormat=CParaFormat::NewL()); test(r==KErrNone); @@ -304,7 +321,7 @@ delete pParaFormat; // DelSetInsertCharFormatL() - test.Next(_L("DelSetInsertCharFormatL()")); + INFO_PRINTF1(_L("DelSetInsertCharFormatL()")); TPtrC buf4(_L("This is para 2.")); InsertL(0,buf4); SetInsertCharFormatL(format,mask,15); @@ -313,32 +330,32 @@ DelSetInsertCharFormatL(4,5); // CancelInsertCharFormat() - test.Next(_L("CancelInsertCharFormat()")); + INFO_PRINTF1(_L("CancelInsertCharFormat()")); CancelInsertCharFormat(); // ApplyParaFormatL() - test.Next(_L("ApplyParaFormatL()")); + INFO_PRINTF1(_L("ApplyParaFormatL()")); CParaFormat* paraFormat=CParaFormat::NewL(); TParaFormatMask paraMask; paraFormat->iHorizontalAlignment=CParaFormat::ECenterAlign; paraMask.SetAttrib(EAttAlignment); ApplyParaFormatL(paraFormat,paraMask,0,DocumentLength()); // ApplyCharFormatL() - test.Next(_L("ApplyCharFormatL()")); + INFO_PRINTF1(_L("ApplyCharFormatL()")); format.iFontSpec.iFontStyle.SetPosture(EPostureItalic); mask.SetAttrib(EAttFontPosture); format.iFontPresentation.iStrikethrough=EStrikethroughOn; mask.SetAttrib(EAttFontStrikethrough); ApplyCharFormatL(format,mask,0,DocumentLength()); // SenseParaFormatL() - test.Next(_L("SenseParaFormatL()")); + INFO_PRINTF1(_L("SenseParaFormatL()")); GetParagraphFormatL(paraFormat,DocumentLength()-1); // CountParas() - test.Next(_L("ParagraphCount()")); + INFO_PRINTF1(_L("ParagraphCount()")); ParagraphCount(); // ParagraphStart() - test.Next(_L("ParagraphStart()")); + INFO_PRINTF1(_L("ParagraphStart()")); TInt aPos=0; ToParagraphStart(aPos); @@ -347,7 +364,7 @@ delete paraFormat; - test.End(); + } /** @@ -366,7 +383,7 @@ void CRichTest::TestForDefectINC109323L() { __UHEAP_MARK; - test.Next(_L(" @SYMTestCaseID:SYSLIB-ETEXT-UT-3548 Test ApplyCharFormatL() for bold at end positions of text ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-ETEXT-UT-3548 Test ApplyCharFormatL() for bold at end positions of text ")); _LIT(KText1, "Testing Bold format"); _LIT(KText2, "bold"); @@ -409,7 +426,7 @@ // { __UHEAP_MARK; - test.Next(_L("RemoveSpecificParaFormatL()")); + INFO_PRINTF1(_L("RemoveSpecificParaFormatL()")); CParaFormat* globalParaFormat=CParaFormat::NewLC(); TParaFormatMask globalParaMask; globalParaFormat->iHorizontalAlignment=CParaFormat::ECenterAlign; @@ -457,7 +474,7 @@ // { __UHEAP_MARK; - test.Next(_L("DeleteL()")); + INFO_PRINTF1(_L("DeleteL()")); CParaFormatLayer* paraLayer=CParaFormatLayer::NewL(); CCharFormatLayer* charLayer=CCharFormatLayer::NewL(); CRichText* doc=NULL; @@ -502,7 +519,7 @@ // { __UHEAP_MARK; - test.Next(_L("DeleteL()")); + INFO_PRINTF1(_L("DeleteL()")); CParaFormatLayer* paraLayer=CParaFormatLayer::NewL(); CCharFormatLayer* charLayer=CCharFormatLayer::NewL(); CRichText* doc=NULL; @@ -563,7 +580,7 @@ void CRichTest::TestApplyRemoveCharFormat() { __UHEAP_MARK; - test.Next(_L(" @SYMTestCaseID:SYSLIB-ETEXT-UT-3431 Test ApplyCharFormatL() & RemoveSpecificCharFormat() ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-ETEXT-UT-3431 Test ApplyCharFormatL() & RemoveSpecificCharFormat() ")); CParaFormatLayer* paraLayer = CParaFormatLayer::NewL(); CleanupStack::PushL(paraLayer); CCharFormatLayer* charLayer = CCharFormatLayer::NewL(); @@ -619,7 +636,7 @@ // { __UHEAP_MARK; - test.Next(_L("Reset()")); + INFO_PRINTF1(_L("Reset()")); CParaFormatLayer* paraLayer=CParaFormatLayer::NewL(); CCharFormatLayer* charLayer=CCharFormatLayer::NewL(); CRichText* doc=NULL; @@ -656,7 +673,7 @@ // { __UHEAP_MARK; - test.Next(_L("Checking PML sourced RichText Component")); + INFO_PRINTF1(_L("Checking PML sourced RichText Component")); // set filename TFileName theFileName=_L("z:\\test\\app-framework\\etext\\t_rich1a.pml"); // Parse PML @@ -708,7 +725,7 @@ { __UHEAP_MARK; - test.Next(_L("Testing for the presence of defect TET-5DHEWW")); + INFO_PRINTF1(_L("Testing for the presence of defect TET-5DHEWW")); CParaFormatLayer* paraLayer = CParaFormatLayer::NewL(); CCharFormatLayer* charLayer = CCharFormatLayer::NewL(); @@ -742,7 +759,7 @@ TInt docLen = doc->DocumentLength(); test(docLen==19); - test.Printf(_L("RTEST: Test PASSED - defect not present!\n")); + INFO_PRINTF1(_L("RTEST: Test PASSED - defect not present!\n")); delete doc; delete paraLayer; @@ -757,7 +774,7 @@ { __UHEAP_MARK; - test.Next(_L("Testing for the presence of defect INC010183")); + INFO_PRINTF1(_L("Testing for the presence of defect INC010183")); CParaFormatLayer* paraLayer = CParaFormatLayer::NewL(); CleanupStack::PushL(paraLayer); @@ -805,7 +822,7 @@ { __UHEAP_MARK; - test.Next(_L("INC064162 - Testing insertion of zero-length text doesn't cancel the pending TCharFormat")); + INFO_PRINTF1(_L("INC064162 - Testing insertion of zero-length text doesn't cancel the pending TCharFormat")); TInt length = 3; TPtrC bufPtrLetterNone(_L("")); @@ -1000,7 +1017,7 @@ doc->TestForDefectINC010183L(); doc->TestForDefectINC064162L(); doc->TestForDefectINC109323L(); - test.Next(_L("INC038479 - Email editor: font settings made at doc end can be lost and returned to default")); + INFO_PRINTF1(_L("INC038479 - Email editor: font settings made at doc end can be lost and returned to default")); // Also tests SetInsetCharFormat more thoroughly. doc->RunAtomicTest(); @@ -1013,11 +1030,11 @@ void DoTestsL() { - test.Start(_L("CRichText - Flat")); + INFO_PRINTF1(_L("CRichText - Flat")); TestClassesL(); - test.Next(_L("CRichText - Segmented")); + INFO_PRINTF1(_L("CRichText - Segmented")); TestClassesL(); - test.End(); + } @@ -1037,17 +1054,29 @@ }); } -TInt E32Main() - { - setupCleanup(); - test.Title(); - __UHEAP_MARK; - - TRAPD(ret,DoTestsL()); - test(ret == KErrNone); - - test.Close(); - __UHEAP_MARKEND; - delete TheTrapCleanup; - return 0; - } +CT_RICH1A::CT_RICH1A() + { + SetTestStepName(KTestStep_T_RICH1A); + pTestStep = this; + } + +TVerdict CT_RICH1A::doTestStepL() + { + SetTestStepResult(EFail); + + setupCleanup(); + INFO_PRINTF1(_L("CRichText Document")); + __UHEAP_MARK; + + TRAPD(ret,DoTestsL()); + + __UHEAP_MARKEND; + delete TheTrapCleanup; + + if (ret == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_RICH1A.MMP --- a/textrendering/texthandling/ttext/T_RICH1A.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_RICH1A.MMP for test component T_RICH1A (released in ETEXT) -// - -target t_rich1a.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_RICH1A.CPP -source X_RICH1A.CPP - -library euser.lib efsrv.lib gdi.lib etext.lib tins.lib -debuglibrary estor.lib - -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_RICH1A.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_RICH1A.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_RICH1A_H__ +#define __T_RICH1A_H__ + +#include + +class CT_RICH1A : public CTestStep + { +public: + CT_RICH1A(); +protected: + TVerdict doTestStepL(); +private: + }; + +_LIT(KTestStep_T_RICH1A, "T_RICH1A"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_RICHOOM.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_RICHOOM.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,57 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_RICHOOM_H__ +#define __T_RICHOOM_H__ + +#include +#include + +class CT_RICHOOM : public CTestStep + { +public: + CT_RICHOOM(); +protected: + TVerdict doTestStepL(); +private: + CRichText* LoadIntoTextL(TFileName& aFileName); + void ConstructOOM(); + void CopyPasteOOM(); + void CopyPasteOOM2(); + void WriteInlineL(RWriteStream& aStream,CRichText* aRichText); + void ReadInlineL(RReadStream& aStream,CRichText* aRichText); + CStyleList* CreatePopulatedStyleList(); + void SaveLoadOOM(); + void CheckTextIntegrity(const CRichText* aText); + void BasicEditOOM(); + void AppendTest1L(); + void AppendTest2L(CRichText* aTarget); + void AppendTestNewL(CRichText* aTarget); + void AppendTest3L(CRichText* aTarget); + void AppendTakingSolePictureOwnershipOOM(); + void DoAppendParagraphOOM(CRichText* aRichText,TBool aUnderOOM,TInt aReplicas); + void AppendParagraphOOM(); + void ApplyCharFormatOOM1(); + void ApplyCharFormatOOM2(); + void doMainL(); + void setupCleanup(); + void DeleteDataFile(const TDesC& aFullName); + }; + +_LIT(KTestStep_T_RICHOOM, "T_RICHOOM"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_RTCLIP.CPP --- a/textrendering/texthandling/ttext/T_RTCLIP.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_RTCLIP.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -23,15 +23,31 @@ #include #include #include -#include #include "../incp/T_PMLPAR.H" +#include "T_RTCLIP.h" + +LOCAL_D CTestStep *pTestStep = NULL; +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + pTestStep->ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } +#undef INFO_PRINTF1 +#undef INFO_PRINTF2 +// copy from tefexportconst.h +#define INFO_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) +#define INFO_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) + #define UNUSED_VAR(a) a = a const TInt KTestCleanupStack=0x80; - -LOCAL_D RTest test(_L("Cut & Paste")); LOCAL_D CTrapCleanup* TheTrapCleanup=NULL; LOCAL_D CRichText* TheText=NULL; LOCAL_D CParaFormatLayer* TheGlobalParaLayer=NULL; @@ -112,7 +128,7 @@ // // { - test.Next(_L("Cut & paste, preserving formatting into non-empty document")); + INFO_PRINTF1(_L("Cut & paste, preserving formatting into non-empty document")); TheFileName=_L("z:\\test\\app-framework\\etext\\rtclipb2.pml"); ParseRichTextDocumentLC(); TheText->DeleteL(0,TheText->DocumentLength()); @@ -141,7 +157,7 @@ { TheReadBoard=NULL; TheWriteBoard=NULL; - test.Next(_L("Copy to Clipboard with pictures, with missing host applications.")); + INFO_PRINTF1(_L("Copy to Clipboard with pictures, with missing host applications.")); TheFileName=_L("z:\\test\\app-framework\\etext\\rtclipb2.pml"); // dummy - just to get global layers ParseRichTextDocumentLC(); TheText->Reset(); @@ -196,7 +212,7 @@ TRAP(r, TheText->DetachFromStoreL(CPicture::EDetachFull,0,documentLength)); if (r==KErrNotSupported) - test.Printf(_L(" SIMULATION: Some picture data has been removed\n")); + INFO_PRINTF1(_L(" SIMULATION: Some picture data has been removed\n")); else if (r!=KErrNone) User::Leave(r); TheText->CopyToStoreL(TheWriteBoard->Store(),TheWriteBoard->StreamDictionary(),0,documentLength); @@ -225,7 +241,7 @@ // // { - test.Next(_L("Cut&Paste - preserving formatting")); + INFO_PRINTF1(_L("Cut&Paste - preserving formatting")); TheFileName=_L("z:\\test\\app-framework\\etext\\rtclipb2.pml"); ParseRichTextDocumentLC(); // @@ -235,7 +251,7 @@ TheWriteBoard=NULL; // // Scenario 1 - test.Start(_L("multiple partial phrases")); + INFO_PRINTF1(_L("multiple partial phrases")); OpenWriteClipboardLC(); TheText->CopyToStoreL(TheWriteBoard->Store(),TheWriteBoard->StreamDictionary(),36,73); OpenReadClipboardLC(); @@ -249,7 +265,7 @@ test(copiedText->ParagraphCount()==3); // // Scenario 2 - test.Next(_L("multiple whole phrases")); + INFO_PRINTF1(_L("multiple whole phrases")); OpenWriteClipboardLC(); TheText->CopyToStoreL(TheWriteBoard->Store(),TheWriteBoard->StreamDictionary(),51,60); copiedText->Reset(); @@ -260,7 +276,7 @@ test(copiedText->ParagraphCount()==3); // // Scenario 3 - test.Next(_L("single middle portion of a phrase")); + INFO_PRINTF1(_L("single middle portion of a phrase")); OpenWriteClipboardLC(); TheText->CopyToStoreL(TheWriteBoard->Store(),TheWriteBoard->StreamDictionary(),53,2); copiedText->Reset(); @@ -271,7 +287,7 @@ test(copiedText->ParagraphCount()==1); // // Scenario 4 - test.Next(_L("multiple phrases, starting/ending on shared paragraphs")); + INFO_PRINTF1(_L("multiple phrases, starting/ending on shared paragraphs")); OpenWriteClipboardLC(); TheText->CopyToStoreL(TheWriteBoard->Store(),TheWriteBoard->StreamDictionary(),0,140); copiedText->Reset(); @@ -283,7 +299,7 @@ // // Scenario 5 - test.Next(_L("zero phrases")); + INFO_PRINTF1(_L("zero phrases")); OpenWriteClipboardLC(); TheText->CopyToStoreL(TheWriteBoard->Store(),TheWriteBoard->StreamDictionary(),70,10); copiedText->Reset(); @@ -299,7 +315,7 @@ delete copiedText; delete TheGlobalParaLayer; delete TheGlobalCharLayer; - test.End(); + } @@ -317,7 +333,7 @@ */ LOCAL_C void testRichTextCutPaste2() { - test.Next(_L(" @SYMTestCaseID:SYSLIB-ETEXT-CT-4001 Pasted final paragraph format should match copied final paragraph format ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-ETEXT-CT-4001 Pasted final paragraph format should match copied final paragraph format ")); TheReadBoard=NULL; TheWriteBoard=NULL; TheFileName=_L("z:\\test\\app-framework\\etext\\rtclipb2.pml"); // dummy - just to get global layers @@ -363,14 +379,14 @@ // // { - test.Next(_L("Cutting paragraph of constant character formatting")); + INFO_PRINTF1(_L("Cutting paragraph of constant character formatting")); TheFileName=_L("z:\\test\\app-framework\\etext\\rtclipb3.pml"); ParseRichTextDocumentLC(); // TheReadBoard=NULL; TheWriteBoard=NULL; // - test.Start(_L("Copying to clipboard")); + INFO_PRINTF1(_L("Copying to clipboard")); OpenWriteClipboardLC(); TheText->CopyToStoreL(TheWriteBoard->Store(),TheWriteBoard->StreamDictionary(),4,3); // @@ -378,7 +394,7 @@ CleanupStack::PopAndDestroy(); // TheTextObject delete TheGlobalParaLayer; delete TheGlobalCharLayer; - test.End(); + } @@ -387,24 +403,24 @@ // // { - test.Start(_L("Cut&Paste - with Rich Text")); + INFO_PRINTF1(_L("Cut&Paste - with Rich Text")); ParseRichTextDocumentLC(); OpenWriteClipboardLC(); - test.Next(_L("Copy zero-length text to the clipboard")); + INFO_PRINTF1(_L("Copy zero-length text to the clipboard")); TheText->CopyToStoreL(TheWriteBoard->Store(),TheWriteBoard->StreamDictionary(),0,0); OpenReadClipboardLC(); - test.Next(_L("Paste from empty clipboard")); + INFO_PRINTF1(_L("Paste from empty clipboard")); TInt err=0; TRAPD(ret, err=TheText->PasteFromStoreL(TheReadBoard->Store(),TheReadBoard->StreamDictionary(),TheText->DocumentLength())); UNUSED_VAR(ret); if (err==KErrNotFound) - test.Printf(_L(" No recognised data to paste or clipboard empty\n\r")); + INFO_PRINTF1(_L(" No recognised data to paste or clipboard empty\n\r")); TInt fieldCount=TheText->FieldCount(); test(fieldCount==0); //////////////////////////////////////////////////////////////////////////// - test.Next(_L("Paste into empty RichText")); + INFO_PRINTF1(_L("Paste into empty RichText")); TheText->Reset(); TheText->InsertL(TheText->DocumentLength(),_L("SomeData")); OpenWriteClipboardLC(); @@ -418,13 +434,13 @@ fieldCount=TheText->FieldCount(); test(fieldCount==0); ///////////////////////////////////////////////////////////////////////////// - test.Next(_L("Pasting text only - no paragraph delimiter")); + INFO_PRINTF1(_L("Pasting text only - no paragraph delimiter")); TheText->Reset(); TheText->InsertL(0,_L("the end")); TheText->PasteFromStoreL(TheReadBoard->Store(),TheReadBoard->StreamDictionary(),4); test(TheText->DocumentLength()==16); ////////////////////////////////////////////////////////////////////////// - test.Next(_L("Paste @ start (pos=0)")); + INFO_PRINTF1(_L("Paste @ start (pos=0)")); TheText->Reset(); TheText->InsertL(TheText->DocumentLength(),_L("SomeData")); TheText->PasteFromStoreL(TheReadBoard->Store(),TheReadBoard->StreamDictionary(),0); @@ -433,14 +449,14 @@ fieldCount=TheText->FieldCount(); test(fieldCount==0); //////////////////////////////////////////////////////////////////////////// - test.Next(_L("Paste @ end (DocumentLength())")); + INFO_PRINTF1(_L("Paste @ end (DocumentLength())")); TheText->PasteFromStoreL(TheReadBoard->Store(),TheReadBoard->StreamDictionary(),TheText->DocumentLength()); test(TheText->DocumentLength()==_L("SomeDataSomeDataSomeData").Length()); test(TheText->ParagraphCount()==1); fieldCount=TheText->FieldCount(); test(fieldCount==0); //////////////////////////////////////////////////////////////////////////// - test.Next(_L("Paste @ middle")); + INFO_PRINTF1(_L("Paste @ middle")); TheText->PasteFromStoreL(TheReadBoard->Store(),TheReadBoard->StreamDictionary(),4); fieldCount=TheText->FieldCount(); test(fieldCount==0); @@ -452,7 +468,7 @@ ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// - test.Next(_L("Pasting rich text inbetween 2 pictures")); + INFO_PRINTF1(_L("Pasting rich text inbetween 2 pictures")); TheText->Reset(); // CXzePicture* pic1=CXzePicture::NewL('1'); @@ -479,7 +495,7 @@ test(TheText->DocumentLength()==4); test(TheText->ParagraphCount()==1); ///////////////////////////////////////////////////////////////////////////// - test.Next(_L("Pasting rich text with para delimiters")); + INFO_PRINTF1(_L("Pasting rich text with para delimiters")); TheText->InsertL(1,CEditableText::EParagraphDelimiter); // OpenWriteClipboardLC(); @@ -544,43 +560,38 @@ } } -GLDEF_C TInt E32Main() -// -// Test the streaming framework. -// +CT_RTCLIP::CT_RTCLIP() { + SetTestStepName(KTestStep_T_RTCLIP); + pTestStep = this; + } - test.Title(); - - __UHEAP_MARK; - setupCleanup(); +TVerdict CT_RTCLIP::doTestStepL() + { + SetTestStepResult(EFail); - TRAPD(r, testRichTextCutPaste()); - test(r == KErrNone); - - TRAP(r, testRichTextCutPaste1()); - test(r == KErrNone); - - TRAP(r, testRichTextCutPaste1a()); - test(r == KErrNone); + INFO_PRINTF1(_L("Cut & Paste")); + + __UHEAP_MARK; + setupCleanup(); - TRAP(r, testRichTextCutPaste1b()); - test(r == KErrNone); - - TRAP(r, testRichTextCutPaste2()); - test(r == KErrNone); - - TRAP(r, testRichTextCutPaste3()); - test(r == KErrNone); + TRAPD(r1, testRichTextCutPaste()); + TRAPD(r2, testRichTextCutPaste1()); + TRAPD(r3, testRichTextCutPaste1a()); + TRAPD(r4, testRichTextCutPaste1b()); + TRAPD(r5, testRichTextCutPaste2()); + TRAPD(r6, testRichTextCutPaste3()); - delete TheTrapCleanup; - - __UHEAP_MARKEND; - - ::DeleteDataFile(KOutputFile); //deletion of data files must be before call to End() - DEF047652 - - test.End(); - test.Close(); + delete TheTrapCleanup; + + __UHEAP_MARKEND; + + ::DeleteDataFile(KOutputFile); //deletion of data files must be before call to End() - DEF047652 - return 0; + if (r1 == KErrNone && r2 == KErrNone && r3 == KErrNone && r4 == KErrNone && r5 == KErrNone && r6 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_RTCLIP.MMP --- a/textrendering/texthandling/ttext/T_RTCLIP.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_RTCLIP.MMP for test component T_RTCLIP (released in ETEXT) -// - -target t_rtclip.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_RTCLIP.CPP -source X_RTCLIP.CPP - -library euser.lib efsrv.lib estor.lib gdi.lib etext.lib tins.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_RTCLIP.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_RTCLIP.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_RTCLIP_H__ +#define __T_RTCLIP_H__ + +#include + +class CT_RTCLIP : public CTestStep + { +public: + CT_RTCLIP(); +protected: + TVerdict doTestStepL(); +private: + }; + +_LIT(KTestStep_T_RTCLIP, "T_RTCLIP"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_SCANDC.CPP --- a/textrendering/texthandling/ttext/T_SCANDC.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_SCANDC.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,12 +16,29 @@ */ -#include #include +#include "T_SCANDC.h" + +LOCAL_D CTestStep *pTestStep = NULL; +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + pTestStep->ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } +#undef INFO_PRINTF1 +#undef INFO_PRINTF2 +// copy from tefexportconst.h +#define INFO_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) +#define INFO_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) + #define UNUSED_VAR(a) a = a -LOCAL_D RTest test(_L("SCANNING OF TEXT DOCUMENTS")); LOCAL_D CTrapCleanup* TheTrapCleanup; template @@ -198,7 +215,7 @@ { TBuf<64> temp; - //test.Start(_L("0 words")); + //INFO_PRINTF1(_L("0 words")); //iDocument->InsertL(0,buf.Ptr(),buf.Size()); //DoCountWords(0); // This test has been removed since it is no longer feasible. @@ -206,40 +223,40 @@ // as soon as the document is created, hence, there can not // be 0 words. - test.Start(_L("0 words, all delimiters")); + INFO_PRINTF1(_L("0 words, all delimiters")); temp.Append(_L(" ")); temp.Append(iDelimiter); temp.Append(_L(" ")); StoreTextL(temp); DoCountWords(0); - test.Next(_L("1 word, no delimiter")); + INFO_PRINTF1(_L("1 word, no delimiter")); temp.Append(_L("This")); StoreTextL(temp); DoCountWords(1); - test.Next(_L("1 word, at start, no delimiter")); + INFO_PRINTF1(_L("1 word, at start, no delimiter")); temp.Delete(0,temp.Size()); temp.Append(_L("THIS")); StoreTextL(temp); DoCountWords(1); - test.Next(_L("1 word, with delimiter")); + INFO_PRINTF1(_L("1 word, with delimiter")); temp.Append(' '); StoreTextL(temp); DoCountWords(1); - test.Next(_L("Many words, no delimiter")); + INFO_PRINTF1(_L("Many words, no delimiter")); temp.Append(_L(" is a wonderful world")); StoreTextL(temp); DoCountWords(5); - test.Next(_L("Many words with delimiter")); + INFO_PRINTF1(_L("Many words with delimiter")); temp.Append(' '); StoreTextL(temp); DoCountWords(5); - test.End(); + } @@ -254,16 +271,16 @@ StoreTextL(buf); iCharsSkipped=iUnitCount=0; - test.Start(_L("Forward scan")); + INFO_PRINTF1(_L("Forward scan")); - test.Next(_L("Stay at boundary:to unit start")); + INFO_PRINTF1(_L("Stay at boundary:to unit start")); TUint flags=(CPlainText::EScanStayIfBoundary | CPlainText::EScanToUnitStart); DoScanWords(8,flags,12,4); DoScanWords(7,flags,7,0); DoScanWords(6,flags,6,0); DoScanWords(5,flags,6,1); - test.Next(_L("Stay at boundary:to unit end")); + INFO_PRINTF1(_L("Stay at boundary:to unit end")); flags |= CPlainText::EScanToUnitEnd; flags &=~CPlainText::EScanToUnitStart; DoScanWords(8,flags,11,3); @@ -271,14 +288,14 @@ DoScanWords(6,flags,6,0); DoScanWords(5,flags,5,0); - test.Next(_L("Stay at boundary:to unit start:join delimiters")); + INFO_PRINTF1(_L("Stay at boundary:to unit start:join delimiters")); flags=(CPlainText::EScanStayIfBoundary|CPlainText::EScanToUnitStart|CPlainText::EScanJoinDelimiters); DoScanWords(8,flags,13,5); DoScanWords(7,flags,7,0); DoScanWords(6,flags,7,1); DoScanWords(5,flags,7,2); - test.Next(_L("Stay at boundary:to unit end:join delimiters")); + INFO_PRINTF1(_L("Stay at boundary:to unit end:join delimiters")); flags |= CPlainText::EScanToUnitEnd; flags &=~CPlainText::EScanToUnitStart; DoScanWords(8,flags,11,3); @@ -286,14 +303,14 @@ DoScanWords(6,flags,11,5); DoScanWords(5,flags,5,0); - test.Next(_L("To unit start")); + INFO_PRINTF1(_L("To unit start")); flags=CPlainText::EScanToUnitStart; DoScanWords(8,flags,12,4); DoScanWords(7,flags,12,5); DoScanWords(6,flags,7,1); DoScanWords(5,flags,6,1); - test.Next(_L("To unit end")); + INFO_PRINTF1(_L("To unit end")); flags |= CPlainText::EScanToUnitEnd; flags &=~CPlainText::EScanToUnitStart; DoScanWords(8,flags,11,3); @@ -301,14 +318,14 @@ DoScanWords(6,flags,11,5); DoScanWords(5,flags,6,1); - test.Next(_L("To unit start:join delimiters")); + INFO_PRINTF1(_L("To unit start:join delimiters")); flags=(CPlainText::EScanToUnitStart|CPlainText::EScanJoinDelimiters); DoScanWords(8,flags,13,5); DoScanWords(7,flags,13,6); DoScanWords(6,flags,7,1); DoScanWords(5,flags,7,2); - test.Next(_L("To unit end:join delimiters")); + INFO_PRINTF1(_L("To unit end:join delimiters")); flags |= CPlainText::EScanToUnitEnd; flags &=~CPlainText::EScanToUnitStart; DoScanWords(8,flags,11,3); @@ -316,8 +333,8 @@ DoScanWords(6,flags,11,5); DoScanWords(5,flags,11,6); - test.Next(_L("Backward scan")); - test.Next(_L("Stay at boundary:to unit start")); + INFO_PRINTF1(_L("Backward scan")); + INFO_PRINTF1(_L("Stay at boundary:to unit start")); flags=(CPlainText::EScanBackwards|CPlainText::EScanStayIfBoundary|CPlainText::EScanToUnitStart); DoScanWords(9,flags,7,2); DoScanWords(10,flags,7,3); @@ -325,7 +342,7 @@ DoScanWords(12,flags,12,0); DoScanWords(13,flags,13,0); - test.Next(_L("Stay at boundary:to unit end")); + INFO_PRINTF1(_L("Stay at boundary:to unit end")); flags |= CPlainText::EScanToUnitEnd; flags &=~CPlainText::EScanToUnitStart; DoScanWords(9,flags,6,3); @@ -334,7 +351,7 @@ DoScanWords(12,flags,12,0); DoScanWords(13,flags,12,1); - test.Next(_L("Stay at boundary:to unit start:join delimiters")); + INFO_PRINTF1(_L("Stay at boundary:to unit start:join delimiters")); flags=CPlainText::EScanBackwards|CPlainText::EScanStayIfBoundary|CPlainText::EScanToUnitStart|CPlainText::EScanJoinDelimiters; DoScanWords(9,flags,7,2); DoScanWords(10,flags,7,3); @@ -342,7 +359,7 @@ DoScanWords(12,flags,7,5); DoScanWords(13,flags,13,0); - test.Next(_L("Stay at boundary:to unit end:join delimiters")); + INFO_PRINTF1(_L("Stay at boundary:to unit end:join delimiters")); flags |= CPlainText::EScanToUnitEnd; flags &=~CPlainText::EScanToUnitStart; DoScanWords(9,flags,5,4); @@ -351,7 +368,7 @@ DoScanWords(12,flags,11,1); DoScanWords(13,flags,11,2); - test.Next(_L("To unit start")); + INFO_PRINTF1(_L("To unit start")); flags=CPlainText::EScanBackwards|CPlainText::EScanToUnitStart; DoScanWords(9,flags,7,2); DoScanWords(10,flags,7,3); @@ -359,7 +376,7 @@ DoScanWords(12,flags,7,5); DoScanWords(13,flags,12,1); - test.Next(_L("To unit end")); + INFO_PRINTF1(_L("To unit end")); flags |= CPlainText::EScanToUnitEnd; flags &=~CPlainText::EScanToUnitStart; DoScanWords(9,flags,6,3); @@ -368,7 +385,7 @@ DoScanWords(12,flags,11,1); DoScanWords(13,flags,12,1); - test.Next(_L("To unit start:join delimiters")); + INFO_PRINTF1(_L("To unit start:join delimiters")); flags=CPlainText::EScanBackwards|CPlainText::EScanToUnitStart|CPlainText::EScanJoinDelimiters; DoScanWords(9,flags,7,2); DoScanWords(10,flags,7,3); @@ -376,14 +393,14 @@ DoScanWords(12,flags,7,5); DoScanWords(13,flags,7,6); - test.Next(_L("To unit end:join delimiters")); + INFO_PRINTF1(_L("To unit end:join delimiters")); flags=CPlainText::EScanToUnitEnd|CPlainText::EScanJoinDelimiters|CPlainText::EScanBackwards; DoScanWords(9,flags,5,4); DoScanWords(10,flags,5,5); DoScanWords(11,flags,5,6); DoScanWords(12,flags,11,1); DoScanWords(13,flags,11,2); - test.End(); + } @@ -395,46 +412,46 @@ { TBuf<64> buf; - //test.Start(_L("0 paras")); + //INFO_PRINTF1(_L("0 paras")); //iDocument->InsertL(0,buf.Ptr(),buf.Size()); //DoCountParagraphs(0); // This test no longer applies, since documents are created with // an end of document character. ie, The document can not have // 0 words. - test.Start(_L("Empty text source")); + INFO_PRINTF1(_L("Empty text source")); // buf.Append(iDelimiter); // buf.Append(iDelimiter); StoreTextL(buf); DoCountParas(1); - test.Next(_L("1 para. no delimiter")); + INFO_PRINTF1(_L("1 para. no delimiter")); buf.Append(_L("This")); StoreTextL(buf); DoCountParas(1); - test.Next(_L("1 para. at start, no delimiter")); + INFO_PRINTF1(_L("1 para. at start, no delimiter")); buf.Delete(0,buf.Size()); buf.Append(_L(" THIS ")); StoreTextL(buf); DoCountParas(1); - test.Next(_L("1 para, with delimiter")); + INFO_PRINTF1(_L("1 para, with delimiter")); buf.Append(iDelimiter); StoreTextL(buf); DoCountParas(2); - test.Next(_L("2 paras, no delimiter")); + INFO_PRINTF1(_L("2 paras, no delimiter")); buf.Append(' '); StoreTextL(buf); DoCountParas(2); - test.Next(_L("2 paras with delimiter")); + INFO_PRINTF1(_L("2 paras with delimiter")); buf.Append(iDelimiter); StoreTextL(buf); DoCountParas(3); - test.End(); + } @@ -455,16 +472,16 @@ StoreTextL(buf); iCharsSkipped=iUnitCount=0; - test.Start(_L("Forward scan")); + INFO_PRINTF1(_L("Forward scan")); - test.Next(_L("Stay at boundary:to unit start")); + INFO_PRINTF1(_L("Stay at boundary:to unit start")); TUint flags=(CPlainText::EScanStayIfBoundary|CPlainText::EScanToUnitStart); DoScanParas(8,flags,12,4); DoScanParas(7,flags,7,0); DoScanParas(6,flags,6,0); DoScanParas(5,flags,6,1); - test.Next(_L("Stay at boundary:to unit end")); + INFO_PRINTF1(_L("Stay at boundary:to unit end")); flags |= CPlainText::EScanToUnitEnd; flags &=~CPlainText::EScanToUnitStart; DoScanParas(8,flags,11,3); @@ -472,14 +489,14 @@ DoScanParas(6,flags,6,0); DoScanParas(5,flags,5,0); - test.Next(_L("Stay at boundary:to unit start:join delimiters")); + INFO_PRINTF1(_L("Stay at boundary:to unit start:join delimiters")); flags=(CPlainText::EScanStayIfBoundary | CPlainText::EScanToUnitStart | CPlainText::EScanJoinDelimiters); DoScanParas(8,flags,13,5); DoScanParas(7,flags,7,0); DoScanParas(6,flags,7,1); DoScanParas(5,flags,7,2); - test.Next(_L("Stay at boundary:to unit end:join delimiters")); + INFO_PRINTF1(_L("Stay at boundary:to unit end:join delimiters")); flags |= CPlainText::EScanToUnitEnd; flags &=~CPlainText::EScanToUnitStart; DoScanParas(8,flags,11,3); @@ -487,14 +504,14 @@ DoScanParas(6,flags,11,5); DoScanParas(5,flags,5,0); - test.Next(_L("To unit start")); + INFO_PRINTF1(_L("To unit start")); flags=CPlainText::EScanToUnitStart; DoScanParas(8,flags,12,4); DoScanParas(7,flags,12,5); DoScanParas(6,flags,7,1); DoScanParas(5,flags,6,1); - test.Next(_L("To unit end")); + INFO_PRINTF1(_L("To unit end")); flags |= CPlainText::EScanToUnitEnd; flags &=~CPlainText::EScanToUnitStart; DoScanParas(8,flags,11,3); @@ -502,14 +519,14 @@ DoScanParas(6,flags,11,5); DoScanParas(5,flags,6,1); - test.Next(_L("To unit start:join delimiters")); + INFO_PRINTF1(_L("To unit start:join delimiters")); flags=(CPlainText::EScanToUnitStart | CPlainText::EScanJoinDelimiters); DoScanParas(8,flags,13,5); DoScanParas(7,flags,13,6); DoScanParas(6,flags,7,1); DoScanParas(5,flags,7,2); - test.Next(_L("To unit end:join delimiters")); + INFO_PRINTF1(_L("To unit end:join delimiters")); flags |= CPlainText::EScanToUnitEnd; flags &=~CPlainText::EScanToUnitStart; DoScanParas(8,flags,11,3); @@ -517,8 +534,8 @@ DoScanParas(6,flags,11,5); DoScanParas(5,flags,11,6); - test.Next(_L("Backward scan")); - test.Next(_L("Stay at boundary:to unit start")); + INFO_PRINTF1(_L("Backward scan")); + INFO_PRINTF1(_L("Stay at boundary:to unit start")); flags=(CPlainText::EScanBackwards|CPlainText::EScanStayIfBoundary|CPlainText::EScanToUnitStart); DoScanParas(9,flags,7,2); DoScanParas(10,flags,7,3); @@ -532,12 +549,12 @@ DoScanParas(3,flags,0,3); DoScanParas(2,flags,0,2); DoScanParas(1,flags,0,1); - test.Next(_L("Testing at buffer boundaries.")); + INFO_PRINTF1(_L("Testing at buffer boundaries.")); DoScanParas(0,flags,0,0); DoScanParas(16,flags,13,3); - test.Next(_L("Stay at boundary:to unit end")); + INFO_PRINTF1(_L("Stay at boundary:to unit end")); flags |= CPlainText::EScanToUnitEnd; flags &=~CPlainText::EScanToUnitStart; DoScanParas(9,flags,6,3); @@ -546,7 +563,7 @@ DoScanParas(12,flags,12,0); DoScanParas(13,flags,12,1); - test.Next(_L("Stay at boundary:to unit start:join delimiters")); + INFO_PRINTF1(_L("Stay at boundary:to unit start:join delimiters")); flags=CPlainText::EScanBackwards|CPlainText::EScanStayIfBoundary|CPlainText::EScanToUnitStart|CPlainText::EScanJoinDelimiters; DoScanParas(9,flags,7,2); DoScanParas(10,flags,7,3); @@ -554,7 +571,7 @@ DoScanParas(12,flags,7,5); DoScanParas(13,flags,13,0); - test.Next(_L("Stay at boundary:to unit end:join delimiters")); + INFO_PRINTF1(_L("Stay at boundary:to unit end:join delimiters")); flags |= CPlainText::EScanToUnitEnd; flags &=~CPlainText::EScanToUnitStart; DoScanParas(9,flags,5,4); @@ -563,7 +580,7 @@ DoScanParas(12,flags,11,1); DoScanParas(13,flags,11,2); - test.Next(_L("To unit start")); + INFO_PRINTF1(_L("To unit start")); flags=CPlainText::EScanBackwards|CPlainText::EScanToUnitStart; DoScanParas(9,flags,7,2); DoScanParas(10,flags,7,3); @@ -571,7 +588,7 @@ DoScanParas(12,flags,7,5); DoScanParas(13,flags,12,1); - test.Next(_L("To unit end")); + INFO_PRINTF1(_L("To unit end")); flags |= CPlainText::EScanToUnitEnd; flags &=~CPlainText::EScanToUnitStart; DoScanParas(9,flags,6,3); @@ -580,7 +597,7 @@ DoScanParas(12,flags,11,1); DoScanParas(13,flags,12,1); - test.Next(_L("To unit start:join delimiters")); + INFO_PRINTF1(_L("To unit start:join delimiters")); flags=CPlainText::EScanBackwards|CPlainText::EScanToUnitStart|CPlainText::EScanJoinDelimiters; DoScanParas(9,flags,7,2); DoScanParas(10,flags,7,3); @@ -588,7 +605,7 @@ DoScanParas(12,flags,7,5); DoScanParas(13,flags,7,6); - test.Next(_L("To unit end:join delimiters")); + INFO_PRINTF1(_L("To unit end:join delimiters")); flags |= CPlainText::EScanToUnitEnd; flags &=~CPlainText::EScanToUnitStart; DoScanParas(9,flags,5,4); @@ -597,7 +614,7 @@ DoScanParas(12,flags,11,1); DoScanParas(13,flags,11,2); - test.End(); + } @@ -607,76 +624,72 @@ // Test all the methods of the class // { - test.Start(_L("CountWords")); + INFO_PRINTF1(_L("CountWords")); Test2aL(); - test.Next(_L("ScanWord")); + INFO_PRINTF1(_L("ScanWord")); Test2bL(); - test.Next(_L("Count Paragraphs")); + INFO_PRINTF1(_L("Count Paragraphs")); Test2cL(); - test.Next(_L("Scan Paragraph")); + INFO_PRINTF1(_L("Scan Paragraph")); Test2dL(); - test.End(); + } +CT_SCANDC::CT_SCANDC() + { + SetTestStepName(KTestStep_T_SCANDC); + pTestStep = this; + } -GLDEF_C TInt E32Main() -// -// Test the OLIB Varray types. -// - { - TheTrapCleanup=CTrapCleanup::New(); +TVerdict CT_SCANDC::doTestStepL() + { + SetTestStepResult(EFail); + + TheTrapCleanup=CTrapCleanup::New(); - test.Title(); - test.Start(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_SCANDC-0001 CPlainText - Flat ")); - typedef CTestScan instance1; - typedef CTestScan instance2; - - instance1* aa=NULL; - TRAPD(ret, aa=instance1::NewL()); - test(ret == KErrNone); + INFO_PRINTF1(_L("SCANNING OF TEXT DOCUMENTS")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_SCANDC-0001 CPlainText - Flat ")); + typedef CTestScan instance1; + typedef CTestScan instance2; + + instance1* aa=NULL; + TRAPD(ret1, aa=instance1::NewL()); - test.Start(_L("Registering all methods")); - - TRAP(ret,aa->Test1L()); - test(ret == KErrNone); + INFO_PRINTF1(_L("Registering all methods")); - test.Next(_L("Testing all methods")); + TRAPD(ret2,aa->Test1L()); - TRAP(ret,aa->Test2L()); - test(ret == KErrNone); + INFO_PRINTF1(_L("Testing all methods")); - __UHEAP_MARK; - delete aa; - __UHEAP_MARKEND; - - test.End(); + TRAPD(ret3,aa->Test2L()); - test.Next(_L("CPlainText - Segmented")); + __UHEAP_MARK; + delete aa; + __UHEAP_MARKEND; - instance2* bb=NULL; - TRAP(ret, bb=instance2::NewL()); - test(ret == KErrNone); + INFO_PRINTF1(_L("CPlainText - Segmented")); + + instance2* bb=NULL; + TRAPD(ret4, bb=instance2::NewL()); - __UHEAP_MARK; - test.Start(_L("Registering all methods")); - TRAP(ret,bb->Test1L()); - test(ret == KErrNone); - test.Next(_L("Testing all methods")); - TRAP(ret,bb->Test2L()); - test(ret == KErrNone); - delete bb; - __UHEAP_MARKEND; - test.End(); + __UHEAP_MARK; + INFO_PRINTF1(_L("Registering all methods")); + TRAPD(ret5,bb->Test1L()); + INFO_PRINTF1(_L("Testing all methods")); + TRAPD(ret6,bb->Test2L()); + delete bb; + __UHEAP_MARKEND; + + delete TheTrapCleanup; - test.End(); - test.Close(); - - delete TheTrapCleanup; + if (ret1 == KErrNone && ret2 == KErrNone && ret3 == KErrNone && ret4 == KErrNone && ret5 == KErrNone && ret6 == KErrNone) + { + SetTestStepResult(EPass); + } - return(0); - } - + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_SCANDC.MMP --- a/textrendering/texthandling/ttext/T_SCANDC.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_SCANDC.MMP for test component T_SCANDC (released in ETEXT) -// - -target t_scandc.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc // your public include directory should be here -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_SCANDC.CPP - -library euser.lib etext.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_SCANDC.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_SCANDC.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_SCANDC_H__ +#define __T_SCANDC_H__ + +#include + +class CT_SCANDC : public CTestStep + { +public: + CT_SCANDC(); +protected: + TVerdict doTestStepL(); +private: + }; + +_LIT(KTestStep_T_SCANDC, "T_SCANDC"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_STYLE.CPP --- a/textrendering/texthandling/ttext/T_STYLE.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_STYLE.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -21,18 +21,35 @@ #include #include -#include #include #include #include #include +#include "T_STYLE.h" + +LOCAL_D CTestStep *pTestStep = NULL; +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + pTestStep->ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } +#undef INFO_PRINTF1 +#undef INFO_PRINTF2 +// copy from tefexportconst.h +#define INFO_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) +#define INFO_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) + #define UNUSED_VAR(a) a = a const TInt KTestCleanupStack=0x40; -LOCAL_D RTest test(_L("Testing Paragraph Styles")); LOCAL_D CTrapCleanup* TheTrapCleanup; LOCAL_D CRichText* TheText; @@ -255,7 +272,7 @@ { CParagraphStyle::TApplyParaStyleMode applyMode=CParagraphStyle::ERetainNoSpecificFormats; - test.Next(_L("Apply style to paragraph with NULL para format")); + INFO_PRINTF1(_L("Apply style to paragraph with NULL para format")); ConstructEnvWithNullParaFormat(); TheText->InsertL(0,_L("HEADINGBODYTEXT")); // @@ -280,7 +297,7 @@ { CParagraphStyle::TApplyParaStyleMode applyMode=CParagraphStyle::ERetainNoSpecificFormats; - test.Next(_L("Apply style to shared paragraph")); + INFO_PRINTF1(_L("Apply style to shared paragraph")); ConstructEnvironment(); TheText->InsertL(0,_L("HEADINGBODYTEXT")); // @@ -305,7 +322,7 @@ { CParagraphStyle::TApplyParaStyleMode applyMode=CParagraphStyle::ERetainNoSpecificFormats; - test.Next(_L("Apply style to non-shared paragraph")); + INFO_PRINTF1(_L("Apply style to non-shared paragraph")); ConstructEnvironment(); // TheText->InsertL(0,_L("This is paragraph one.This is paragraph number two.")); @@ -371,7 +388,7 @@ __UHEAP_MARK; // Test 1 // Construction under OOM - test.Start(_L("Construction under OOM")); + INFO_PRINTF1(_L("Construction under OOM")); CStyleList* list=NULL; TInt nn; for (nn=0; ;nn++) @@ -398,12 +415,12 @@ __UHEAP_RESET; TBuf<36> answer; answer.Format(_L(" #allocs for full c'tion: %d\n"),nn-1); - test.Printf(answer); + INFO_PRINTF1(answer); // Test 2 // Populated style list, Append under OOM; - test.Next(_L("AppendL() under OOM")); + INFO_PRINTF1(_L("AppendL() under OOM")); CParaFormatLayer* paraLayer=CParaFormatLayer::NewL(); CCharFormatLayer* charLayer=CCharFormatLayer::NewL(); __UHEAP_MARK; @@ -449,7 +466,7 @@ // Test 3 // Inserting a duplicate - test.Next(_L("AppendL() a duplicate")); + INFO_PRINTF1(_L("AppendL() a duplicate")); list=CStyleList::NewL(); style=NULL; for (TInt pp=0;pp + +class CT_STYLE : public CTestStep + { +public: + CT_STYLE(); +protected: + TVerdict doTestStepL(); +private: + }; + +_LIT(KTestStep_T_STYLE, "T_STYLE"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_TIMES.CPP --- a/textrendering/texthandling/ttext/T_TIMES.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_TIMES.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -16,11 +16,29 @@ */ -#include #include #include #include +#include "T_TIMES.h" + +LOCAL_D CTestStep *pTestStep = NULL; +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + pTestStep->ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } +#undef INFO_PRINTF1 +#undef INFO_PRINTF2 +// copy from tefexportconst.h +#define INFO_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) +#define INFO_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) + /* this fixes a MSVC link warning */ #ifdef __VC32__ @@ -55,7 +73,6 @@ LOCAL_D CTrapCleanup* TheTrapCleanup; -LOCAL_D RTest test(_L("CRichText Document")); LOCAL_D CGlobalText* TheText; LOCAL_D CParaFormatLayer* TheParaFormatLayer; LOCAL_D CCharFormatLayer* TheCharFormatLayer; @@ -156,23 +173,23 @@ TInt wordCount=TheText->WordCount(); TBuf<80> stats; stats.Format(_L("Document Stats:\nChars: %d\nWords: %d\nParas: %d\n"),documentLength,wordCount,paraCount); - test.Printf(stats); + INFO_PRINTF1(stats); RDebug::Print(_L("%S"),&stats); TBuf<80> testTitle; // testTitle.Format(_L("Pos: 0-100 %d times"),aTest1Count); - test.Start(testTitle); + INFO_PRINTF1(testTitle); GetTimesForGetChars(aTest1Count,0,100,50); // testTitle.Format(_L("Pos: 18200-18300 %d times"),aTest2Count); - test.Next(testTitle); + INFO_PRINTF1(testTitle); GetTimesForGetChars(aTest2Count,18200,100,50); // testTitle.Format(_L("Pos: all %d times"),aTest3Count); - test.Next(testTitle); + INFO_PRINTF1(testTitle); GetTimesForGetChars(aTest3Count,0,documentLength,50); // - test.End(); + } @@ -193,7 +210,7 @@ // Display the metric TBuf<60> context; context.Format(_L("10 att X %d loops=%d atts\n"),aLoopCount,10*aLoopCount); - test.Printf(context); + INFO_PRINTF1(context); RDebug::Print(_L("%S"),&context); } @@ -222,21 +239,21 @@ // Time tests on format layer access. // { - test.Start(_L("CCharFormatLayer - Attribute reads")); + INFO_PRINTF1(_L("CCharFormatLayer - Attribute reads")); GenerateGlobalLayersL(); // TBuf<80> testTitle; testTitle.Format(_L("Reading empty char format layer %d times"),KCharFormatLayerTest); - test.Next(testTitle); + INFO_PRINTF1(testTitle); DoEmptyCharFormatLayerReadL(KCharFormatLayerTest); // testTitle.Format(_L("Read 10 attributes from layer %d times"),KCharFormatLayerTest); - test.Next(testTitle); + INFO_PRINTF1(testTitle); TRAPD(ret, DoCharFormatLayerReadL(KCharFormatLayerTest)); test(ret==KErrNone); // KillGlobalLayers(); - test.End(); + } @@ -244,18 +261,18 @@ // { // - test.Start(_L("Global text - Empty layers")); + INFO_PRINTF1(_L("Global text - Empty layers")); GenerateGlobalTextL(); DoLongDocumentTestL(KGlobalTextATest1,KGlobalTextATest2,KGlobalTextATest3); KillText(); // - test.Next(_L("Rich text - Empty layers")); + INFO_PRINTF1(_L("Rich text - Empty layers")); GenerateBasicRichTextL(); DoLongDocumentTestL(KRichTextTest1,KRichTextTest2,KRichTextTest3); KillText(); KillGlobalLayers(); // - test.Next(_L("Global text - 2 character attributes stored")); + INFO_PRINTF1(_L("Global text - 2 character attributes stored")); GenerateGlobalTextL(); TBuf<5> name=_L("SWiss"); TCharFormat charFormat(name,178); @@ -268,23 +285,23 @@ DoLongDocumentTestL(KGlobalTextBTest1,KGlobalTextBTest2,KGlobalTextBTest3); KillText(); // - test.Next(_L("Rich text - 2 charcter attributes stored")); + INFO_PRINTF1(_L("Rich text - 2 charcter attributes stored")); GenerateBasicRichTextL(); DoLongDocumentTestL(KRichTextTest1,KRichTextTest2,KRichTextTest3); KillText(); // KillGlobalLayers(); - test.End(); + } LOCAL_C void DoTestsL() // { - test.Start(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_TIMES-0001 Long document tests ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_TIMES-0001 Long document tests ")); LongDocumentTestL(); // - test.Next(_L("Format layer tests")); + INFO_PRINTF1(_L("Format layer tests")); FormatLayerTestL(); // } @@ -306,23 +323,29 @@ }); } - +CT_TIMES::CT_TIMES() + { + SetTestStepName(KTestStep_T_TIMES); + pTestStep = this; + } -GLDEF_C TInt E32Main() -// -// Test the Document Model Services. -// +TVerdict CT_TIMES::doTestStepL() { - setupCleanup(); - test.Title(); - __UHEAP_MARK; - - TRAPD(ret,DoTestsL()); - test(ret == KErrNone); - - test.End(); - test.Close(); - __UHEAP_MARKEND; - delete TheTrapCleanup; - return(0); + SetTestStepResult(EFail); + + setupCleanup(); + INFO_PRINTF1(_L("CRichText Document")); + __UHEAP_MARK; + + TRAPD(ret,DoTestsL()); + + __UHEAP_MARKEND; + delete TheTrapCleanup; + + if (ret == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_TIMES.MMP --- a/textrendering/texthandling/ttext/T_TIMES.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_TIMES.MMP for test component T_TIMES (released in ETEXT) -// - -target t_times.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_TIMES.CPP -source X_TIMES.CPP - -library euser.lib etext.lib -library efsrv.lib gdi.lib - -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_TIMES.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_TIMES.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_TIMES_H__ +#define __T_TIMES_H__ + +#include + +class CT_TIMES : public CTestStep + { +public: + CT_TIMES(); +protected: + TVerdict doTestStepL(); +private: + }; + +_LIT(KTestStep_T_TIMES, "T_TIMES"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_TRAN.CPP --- a/textrendering/texthandling/ttext/T_TRAN.CPP Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_TRAN.CPP Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -22,15 +22,34 @@ #include #include #include -#include #include #include #include "TXTMRTSR.H" #include "../incp/T_PMLPAR.H" -#include "../spml/T_PMLPAR.CPP" +//#include "../spml/T_PMLPAR.CPP" +#include "T_TRAN.h" +LOCAL_D CTestStep *pTestStep = NULL; +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + pTestStep->ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } +#undef INFO_PRINTF1 +#undef INFO_PRINTF2 +// copy from tefexportconst.h +#define INFO_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) +#define INFO_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) + +// included in a namespace, to avoid confliction +namespace T_TRAN { /* this fixes a MSVC link warning */ #ifdef __VC32__ #pragma comment (linker, "/opt:noref") @@ -75,8 +94,6 @@ const CCharFormatLayer* iGlobalCharFormatLayer; }; - -LOCAL_D RTest test(_L("Testing Picture Restorer mechanism")); LOCAL_D CTrapCleanup* TheTrapCleanup; LOCAL_D RFs TheFs; // the file server LOCAL_D RFile TheFile; // the data file @@ -375,7 +392,7 @@ // Now store the stuff again TInt error=TheContainer->iText->LoadAllPicturesNowL(); if (error==KErrNotFound) - test.Printf(_L(" SIMULATION: Some picture data has been removed as no app could be found.")); + INFO_PRINTF1(_L(" SIMULATION: Some picture data has been removed as no app could be found.")); // if (aAlwaysFailToLoad) // test(error==KErrNotFound); // else @@ -405,22 +422,22 @@ LOCAL_C void CompareRichTextL(CRichText *aDoc1,CRichText *aDoc2) // { - test.Start(_L("Comparing Documents")); + INFO_PRINTF1(_L("Comparing Documents")); TInt length; TInt num1,num2; TInt ii=0,len1,len2,pos1,pos2,oldPos; - test.Next(_L("Document Length")); + INFO_PRINTF1(_L("Document Length")); length=aDoc1->LdDocumentLength(); num2=aDoc2->LdDocumentLength(); test(length==num2); - test.Next(_L("Paragraph Count")); + INFO_PRINTF1(_L("Paragraph Count")); num1=aDoc1->ParagraphCount(); num2=aDoc2->ParagraphCount(); test(num1==num2); - test.Next(_L("Paragraph Lengths")); + INFO_PRINTF1(_L("Paragraph Lengths")); pos1=-1; oldPos=-2; while (pos1>oldPos) @@ -433,12 +450,12 @@ ii++; } - test.Next(_L("Word Count")); + INFO_PRINTF1(_L("Word Count")); num1=aDoc1->WordCount(); num2=aDoc2->WordCount(); test(num1==num2); - test.Next(_L("Characters")); + INFO_PRINTF1(_L("Characters")); TCharFormat format1,format2; TPtrC chars1,chars2; len1=1; @@ -454,7 +471,7 @@ ii+=len1; } - test.End(); + } @@ -467,20 +484,20 @@ CRichText *document=CRichText::NewL(pLayer,cLayer); TInt err; - test.Start(_L("Document with single Paragraph")); - test.Next(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_TRAN-0001 ")); + INFO_PRINTF1(_L("Document with single Paragraph")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-TTEXT-LEGACY-T_TRAN-0001 ")); { TheContainer=CContainer::NewL(_L("z:\\test\\app-framework\\etext\\t_para.pml")); - test.Start(_L("Exporting a file by Para")); + INFO_PRINTF1(_L("Exporting a file by Para")); TFileName exportFile=KExportFileName1(); EnsureFileExists(exportFile); TRAP(err,TheContainer->iText->ExportAsTextL(exportFile,CPlainText::EOrganiseByParagraph,0)); test(err==KErrNone); - test.Next(_L("Importing a file by Para")); + INFO_PRINTF1(_L("Importing a file by Para")); document->Reset(); TInt charsImported=document->ImportTextFileL(0,exportFile,CPlainText::EOrganiseByParagraph); test(charsImported>0); - test.Next(_L("Comparing Result")); + INFO_PRINTF1(_L("Comparing Result")); TRAP(err,CompareRichTextL(TheContainer->iText,document)); test(err==KErrNone); delete TheContainer; @@ -488,13 +505,13 @@ { TheContainer=CContainer::NewL(_L("z:\\test\\app-framework\\etext\\t_para.pml")); - test.Next(_L("Exporting and Importing a file by Line")); - test.Start(_L("Line Lengths 25,30,...,95")); + INFO_PRINTF1(_L("Exporting and Importing a file by Line")); + INFO_PRINTF1(_L("Line Lengths 25,30,...,95")); TFileName exportFile=KExportFileName1(); TInt ii; for(ii=25;ii<100;ii+=5) { - test.Next(_L("With next line length")); + INFO_PRINTF1(_L("With next line length")); EnsureFileExists(exportFile); TRAP(err,TheContainer->iText->ExportAsTextL(exportFile,CPlainText::EOrganiseByLine,ii)); test(err==KErrNone); @@ -505,24 +522,24 @@ test(err==KErrNone); } delete TheContainer; - test.End(); + } - test.End(); - test.Next(_L("Document with two Paragraphs")); + + INFO_PRINTF1(_L("Document with two Paragraphs")); { TheContainer=CContainer::NewL(_L("z:\\test\\app-framework\\etext\\t_para2.pml")); - test.Start(_L("Exporting a file by Para")); + INFO_PRINTF1(_L("Exporting a file by Para")); TFileName exportFile=KExportFileName2(); EnsureFileExists(exportFile); TRAP(err,TheContainer->iText->ExportAsTextL(exportFile,CPlainText::EOrganiseByParagraph,0)); test(err==KErrNone); - test.Next(_L("Importing a file by Para")); + INFO_PRINTF1(_L("Importing a file by Para")); document->Reset(); TInt charsImported=document->ImportTextFileL(0,exportFile,CPlainText::EOrganiseByParagraph); test(charsImported>0); - test.Next(_L("Comparing Result")); + INFO_PRINTF1(_L("Comparing Result")); TRAP(err,CompareRichTextL(TheContainer->iText,document)); test(err==KErrNone); delete TheContainer; @@ -530,13 +547,13 @@ { TheContainer=CContainer::NewL(_L("z:\\test\\app-framework\\etext\\t_para.pml")); - test.Next(_L("Exporting and Importing a file by Line")); - test.Start(_L("Line Lengths 30,40,...,100")); + INFO_PRINTF1(_L("Exporting and Importing a file by Line")); + INFO_PRINTF1(_L("Line Lengths 30,40,...,100")); TFileName exportFile=KExportFileName1(); TInt ii; for(ii=30;ii<105;ii+=10) { - test.Next(_L("With next line length")); + INFO_PRINTF1(_L("With next line length")); EnsureFileExists(exportFile); TRAP(err,TheContainer->iText->ExportAsTextL(exportFile,CPlainText::EOrganiseByLine,ii)); test(err==KErrNone); @@ -547,14 +564,14 @@ test(err==KErrNone); } delete TheContainer; - test.End(); + } delete document; delete cLayer; delete pLayer; - test.End(); + } @@ -603,29 +620,35 @@ RDebug::Print(_L("Error %d connecting file session. File: %S.\n"), err, &aFullName); } } +} -GLDEF_C TInt E32Main() -// -// Test the streaming framework. -// +CT_TRAN::CT_TRAN() { + SetTestStepName(KTestStep_T_TRAN); + pTestStep = this; + } + +TVerdict CT_TRAN::doTestStepL() + { + SetTestStepResult(EFail); - test.Title(); - - __UHEAP_MARK; - setupCleanup(); - TRAPD(r,GoL()); - test(r == KErrNone); + INFO_PRINTF1(_L("Testing Picture Restorer mechanism")); + + __UHEAP_MARK; + T_TRAN::setupCleanup(); + TRAPD(r, T_TRAN::GoL()); - delete TheTrapCleanup; - - __UHEAP_MARKEND; - - ::DeleteDataFile(KExportFileName1); //deletion of data files must be before call to End() - DEF047652 - ::DeleteDataFile(KExportFileName2); - - test.End(); - test.Close(); + delete T_TRAN::TheTrapCleanup; + + __UHEAP_MARKEND; + + T_TRAN::DeleteDataFile(T_TRAN::KExportFileName1); //deletion of data files must be before call to End() - DEF047652 + T_TRAN::DeleteDataFile(T_TRAN::KExportFileName2); + + if (r == KErrNone) + { + SetTestStepResult(EPass); + } - return 0; + return TestStepResult(); } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_TRAN.MMP --- a/textrendering/texthandling/ttext/T_TRAN.MMP Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_TRAN.MMP for test component T_TRAN (released in ETEXT) -// - -target t_tran.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_TRAN.CPP - -library euser.lib efsrv.lib gdi.lib etext.lib -library estor.lib - -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_TRAN.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textrendering/texthandling/ttext/T_TRAN.h Thu Aug 26 11:46:18 2010 +0800 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef __T_TRAN_H__ +#define __T_TRAN_H__ + +#include + +class CT_TRAN : public CTestStep + { +public: + CT_TRAN(); +protected: + TVerdict doTestStepL(); +private: + }; + +_LIT(KTestStep_T_TRAN, "T_TRAN"); + +#endif diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_parse.cpp --- a/textrendering/texthandling/ttext/T_parse.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/T_parse.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1999-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -17,13 +17,32 @@ */ -#include #include #include #include "T_parse.h" +#include "T_PARSE_for_TEF.h" + +LOCAL_D CTestStep *pTestStep = NULL; +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + pTestStep->ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } +#undef INFO_PRINTF1 +#undef INFO_PRINTF2 +#undef INFO_PRINTF3 +// copy from tefexportconst.h +#define INFO_PRINTF1(p1) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1)) +#define INFO_PRINTF2(p1, p2) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2)) +#define INFO_PRINTF3(p1, p2, p3) pTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2), (p3)) + LOCAL_D CTrapCleanup* TrapCleanup; -LOCAL_D RTest test(_L("Testing EText parser system")); LOCAL_D const TInt KTestCleanupStack=0x200; @@ -316,7 +335,7 @@ void Test1() { - test.Next(_L("Install 5, deinstall in reverse order")); + INFO_PRINTF1(_L("Install 5, deinstall in reverse order")); CTestParser* parser1 = CTestParser::NewL(); CTestParser* parser2 = CTestParser::NewL(); CTestParser* parser3 = CTestParser::NewL(); @@ -343,7 +362,7 @@ void Test2() { - test.Next(_L("Install, deinstall in interleaved order")); + INFO_PRINTF1(_L("Install, deinstall in interleaved order")); CTestParser* parser1 = CTestParser::NewL(); CRichText::ActivateParserL(parser1); // List 1 CTestParser* parser2 = CTestParser::NewL(); @@ -374,7 +393,7 @@ void Test3() { - test.Next(_L("Testing memory with OOM")); + INFO_PRINTF1(_L("Testing memory with OOM")); TInt i; TInt ret; @@ -498,7 +517,7 @@ __UHEAP_RESET; } - test.Printf(_L("%d attempted activations, %d successful\n"), 5 * count, success); + INFO_PRINTF3(_L("%d attempted activations, %d successful\n"), 5 * count, success); } @@ -510,7 +529,7 @@ // - Does find complete target in right place // - Once target is removed, can't find it // repeat x 100 - test.Next(_L("Testing EText behaviour with active parsers and single target")); + INFO_PRINTF1(_L("Testing EText behaviour with active parsers and single target")); // Create and activate a parser CTestParser* parser1 = CTestParser::NewL(); CRichText::ActivateParserL(parser1); @@ -532,6 +551,9 @@ TInt lengthTags; for (i = 0; i < 100; i++) { +#if 0 + INFO_PRINTF2(_L("i=%d"), i); +#endif // Get a random in range 0-999 TInt random = Math::Rand(seed) % 1000; // "Randomly" insert target string that is not complete @@ -540,7 +562,13 @@ test(!richText->ParseText(startTags, lengthTags, ETrue)); // Complete target string and check we find single target where we expect richText->InsertL(random + 5, 'T'); +#if 1 test(richText->ParseText(startTags, lengthTags, EFalse)); +#else + TBool b = richText->ParseText(startTags, lengthTags, EFalse); + INFO_PRINTF2(_L(" b=%d"), b); + test(b); +#endif test((startTags == random) && (lengthTags == 6)); test(richText->ParseText(startTags, lengthTags, ETrue)); test((startTags == random) && (lengthTags == 6)); @@ -570,7 +598,7 @@ // - Does find complete targets with exact range covered // - Once targets are removed, can't find it // repeat x 100 - test.Next(_L("Testing EText behaviour with active parsers and double target")); + INFO_PRINTF1(_L("Testing EText behaviour with active parsers and double target")); // Create and activate a parser CTestParser* parser1 = CTestParser::NewL(); CRichText::ActivateParserL(parser1); @@ -592,6 +620,9 @@ TInt lengthTags; for (i = 0; i < 100; i++) { +#if 0 + INFO_PRINTF2(_L("i=%d"), i); +#endif // Get a random in range 0-999 TInt random1 = Math::Rand(seed1) % 1000; TInt random2 = Math::Rand(seed1) % 1000; @@ -612,7 +643,12 @@ // Complete target string and check we find single target where we expect richText->InsertL(rlow + 5, 'T'); richText->InsertL(rhigh + 5, 'T'); +#if 1 test(richText->ParseText(startTags, lengthTags, EFalse)); +#else + TBool bb = richText->ParseText(startTags, lengthTags, EFalse); + test(bb); +#endif test((startTags == rlow) && (lengthTags == rhigh + 6 - rlow)); test(richText->ParseText(startTags, lengthTags, ETrue)); test((startTags == rlow) && (lengthTags == rhigh + 6 - rlow)); @@ -645,7 +681,7 @@ void Test6() { - test.Next(_L(" @SYMTestCaseID:SYSLIB-ETEXT-UT-3405 Calling PositionOfNextTag on an empty document ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-ETEXT-UT-3405 Calling PositionOfNextTag on an empty document ")); // Create and activate a parser CTestParser* parser1 = CTestParser::NewL(); @@ -701,7 +737,7 @@ */ void Test7() { - test.Next(_L(" @SYMTestCaseID:SYSLIB-ETEXT-UT-3406 Testing EText behaviour with active parsers and single target ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-ETEXT-UT-3406 Testing EText behaviour with active parsers and single target ")); // Create and activate a parser CTestParser* parser1 = CTestParser::NewL(); @@ -775,61 +811,63 @@ delete editObserver; } +CT_PARSE::CT_PARSE() + { + SetTestStepName(KTestStep_T_PARSE); + pTestStep = this; + } -TInt E32Main() - { - TrapCleanup = CTrapCleanup::New(); - TRAPD(r,\ - {\ - for (TInt i=KTestCleanupStack;i>0;i--)\ - CleanupStack::PushL((TAny*)1);\ - test(r==KErrNone);\ - CleanupStack::Pop(KTestCleanupStack);\ - }); - test(r == KErrNone); - test.Title(); +TVerdict CT_PARSE::doTestStepL() + { + SetTestStepResult(EFail); - test.Start(_L("Testing memory under normal conditions")); - TInt ret; + TrapCleanup = CTrapCleanup::New(); + TRAPD(r,\ + {\ + for (TInt i=KTestCleanupStack;i>0;i--)\ + CleanupStack::PushL((TAny*)1);\ + test(r==KErrNone);\ + CleanupStack::Pop(KTestCleanupStack);\ + }); - __UHEAP_MARK; - TRAP(ret, Test1()); - test(ret == KErrNone); - __UHEAP_MARKEND; + INFO_PRINTF1(_L("Testing EText parser system")); + + INFO_PRINTF1(_L("Testing memory under normal conditions")); - __UHEAP_MARK; - TRAP(ret, Test2()); - test(ret == KErrNone); - __UHEAP_MARKEND; + __UHEAP_MARK; + TRAPD(ret1, Test1()); + __UHEAP_MARKEND; - __UHEAP_MARK; - TRAP(ret, Test3()); - test(ret == KErrNone); - __UHEAP_MARKEND; + __UHEAP_MARK; + TRAPD(ret2, Test2()); + __UHEAP_MARKEND; + + __UHEAP_MARK; + TRAPD(ret3, Test3()); + __UHEAP_MARKEND; - __UHEAP_MARK; - TRAP(ret, Test4()); - test(ret == KErrNone); - __UHEAP_MARKEND; + __UHEAP_MARK; + TRAPD(ret4, Test4()); + __UHEAP_MARKEND; - __UHEAP_MARK; - TRAP(ret, Test5()); - test(ret == KErrNone); - __UHEAP_MARKEND; + __UHEAP_MARK; + TRAPD(ret5, Test5()); + __UHEAP_MARKEND; - __UHEAP_MARK; - TRAP(ret, Test6()); - test(ret == KErrNone); - __UHEAP_MARKEND; - - __UHEAP_MARK; - TRAP(ret, Test7()); - test(ret == KErrNone); - __UHEAP_MARKEND; - - delete TrapCleanup; + __UHEAP_MARK; + TRAPD(ret6, Test6()); + __UHEAP_MARKEND; + + __UHEAP_MARK; + TRAPD(ret7, Test7()); + __UHEAP_MARKEND; + + delete TrapCleanup; - test.End(); - test.Close(); - return 0; - } + if (r == KErrNone && ret1 == KErrNone && ret2 == KErrNone && ret3 == KErrNone && ret4 == KErrNone && ret5 == KErrNone && ret6 == KErrNone && ret7 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + } diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/T_parse.mmp --- a/textrendering/texthandling/ttext/T_parse.mmp Mon Jul 12 15:26:00 2010 +0800 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -// -// T_PARSE.MMP for test component T_PARSE (released in ETEXT) -// - -target t_parse.exe -targettype EXE - -SOURCEPATH ../group - -SOURCEPATH ../ttext // source files -userinclude ../ttext -userinclude ../inc // your public include directory should be here -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - -source T_parse.cpp - -library euser.lib etext.lib -VENDORID 0x70000001 - -SMPSAFE \ No newline at end of file diff -r 6124ff6478cc -r 11e2bb0d14ba textrendering/texthandling/ttext/t_fmt1.cpp --- a/textrendering/texthandling/ttext/t_fmt1.cpp Mon Jul 12 15:26:00 2010 +0800 +++ b/textrendering/texthandling/ttext/t_fmt1.cpp Thu Aug 26 11:46:18 2010 +0800 @@ -1,5 +1,5 @@ /* -* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 1997-2010 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available * under the terms of "Eclipse Public License v1.0" @@ -17,23 +17,29 @@ */ -#include #include #include #include #include -#include "TXTSTD.H" - +#include "../stext/TXTSTD.H" +#include "T_FMT1.h" -LOCAL_D RTest test(_L("TFormat Test Code for DEF047316")); +#define test(cond) \ + { \ + TBool __bb = (cond); \ + pTestStep->TEST(__bb); \ + if (!__bb) \ + { \ + pTestStep->ERR_PRINTF1(_L("ERROR: Test Failed")); \ + User::Leave(1); \ + } \ + } -LOCAL_C void TestDEF047316L() +void CT_FMT1::TestDEF047316L() // Test CParaFormat stack definition leave protection // { - - - test.Start(_L(" @SYMTestCaseID:SYSLIB-ETEXT-LEGACY-t_fmt1-0001 CParaFormat - DEF047316 - stack definition leave protection ")); + INFO_PRINTF1(_L(" @SYMTestCaseID:SYSLIB-ETEXT-LEGACY-t_fmt1-0001 CParaFormat - DEF047316 - stack definition leave protection ")); CParaFormat paraFormat; // Allocate resources for paraFormat @@ -54,27 +60,30 @@ // Note that test end is when paraFormat's destructor is called when // this function terminates. The destructor should not cause any problems // even though we have already called the cleanup method - - test.End(); } -GLDEF_C TInt E32Main() -// -// Tests TFORMAT. -// - { - CTrapCleanup* cleanup=CTrapCleanup::New(); - test.Title(); - - __UHEAP_MARK; - TRAPD(ret,TestDEF047316L()); - test(ret==KErrNone); +CT_FMT1::CT_FMT1() + { + SetTestStepName(KTestStep_T_FMT1); + } + +TVerdict CT_FMT1::doTestStepL() + { + SetTestStepResult(EFail); - __UHEAP_MARKEND; - - test.Close(); + CTrapCleanup* cleanup=CTrapCleanup::New(); + INFO_PRINTF1(_L("TFormat Test Code for DEF047316")); + + __UHEAP_MARK; + TRAPD(error1, TestDEF047316L()); - delete cleanup; + __UHEAP_MARKEND; + delete cleanup; - return(0); - } + if(error1 == KErrNone) + { + SetTestStepResult(EPass); + } + + return TestStepResult(); + }