diff -r 000000000000 -r e35f40988205 xml/xmlfw/test/rtest/tsrc/t_componenttests.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/xml/xmlfw/test/rtest/tsrc/t_componenttests.cpp Thu Dec 17 09:29:21 2009 +0200 @@ -0,0 +1,1374 @@ +// 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: +// + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "t_componenttests.h" +#include "t_testconstants.h" +#include "t_stringdictionary00.h" +#include "t_stringdictionary00tagtable.h" + +using namespace Xml; + + +_LIT(KTest,"t_ComponentTests"); + +static RTest test(KTest); + +_LIT8 (KTestString1, "This is a test string1."); +_LIT8 (KTestString2, "This is a test string2."); +_LIT8 (KTestString3, "This is a test string3."); +_LIT8 (KTestString4, "This is a test string4."); +_LIT8 (KTestString5, "This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text."); + +_LIT8 (KCharSetName, "Test Charset name."); +_LIT8 (KDictionaryUri, "-//TestStringDictionary//DTD TestStringDictionary 1.1//EN~0"); +_LIT8 (KAddElement, "Add"); + +TBuf16<600> largebuf16 = _L16("This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text."); +TBuf8<600> largebuf8 = _L8("This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text. This is a very large test string containing lots and lots and lots and lots of text."); + +_LIT8 (KEncoding, "UTF-8"); +const TInt KMibEnum = 106; + +const TInt KUnloadedCodePage = 999; +const TInt KUnknownToken = 999; + + + +CComponentTests* CComponentTests::NewL() + { + CComponentTests* self = new(ELeave) CComponentTests(); + return self; + } + + +CComponentTests::CComponentTests() + { + // do nothing; + } + + +CComponentTests::~CComponentTests() + { + // do nothing; + } + + +//---------------------------------------------------------------------------- + + +/** +@SYMTestCaseID SYSLIB-XML-CT-1271 +@SYMTestCaseDesc Tests for RTagInfo::Uri(),RTagInfo::Prefix(),RTagInfo::LocalName() functions +@SYMTestPriority High +@SYMTestActions Tests for heap leak,and open handles +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CComponentTests::Test1L() + { + test.Next(_L(" @SYMTestCaseID:SYSLIB-XML-CT-1271 Test1L ")); + + // RTagInfo Test + // + // =========================================== + + // Set up for heap leak checking + __UHEAP_MARK; + + // and leaking thread handles + TInt startProcessHandleCount; + TInt startThreadHandleCount; + TInt endProcessHandleCount; + TInt endThreadHandleCount; + + RThread thisThread; + thisThread.HandleCount(startProcessHandleCount, startThreadHandleCount); + + // Test Starts... + + iStringPool.OpenL(); + CleanupClosePushL(iStringPool); + + RString string1 = iStringPool.OpenStringL(KTestString1); + CleanupClosePushL(string1); + + RString string2 = iStringPool.OpenStringL(KTestString2); + CleanupClosePushL(string2); + + RString string3 = iStringPool.OpenStringL(KTestString3); + + CleanupStack::Pop(&string2); + CleanupStack::Pop(&string1); + CleanupStack::Pop(&iStringPool); + + RTagInfo tagInfo; + tagInfo.Open(string1, string2, string3); + + const RString& uri = tagInfo.Uri(); + const RString& prefix = tagInfo.Prefix(); + const RString& localName = tagInfo.LocalName(); + + test (KTestString1() == uri.DesC()); + test (KTestString2() == prefix.DesC()); + test (KTestString3() == localName.DesC()); + + tagInfo.Close(); + iStringPool.Close(); + + //-------------- + // Check for open handles + thisThread.HandleCount(endProcessHandleCount, endThreadHandleCount); + + test(startThreadHandleCount == endThreadHandleCount); + + // Test Ends... + + __UHEAP_MARKEND; + } + + +//---------------------------------------------------------------------------- + + +/** +@SYMTestCaseID SYSLIB-XML-CT-1272 +@SYMTestCaseDesc Test for RTagInfo copy constructor,assignment operator,Copy functions +@SYMTestPriority High +@SYMTestActions Create three RTagInfo objects using assignment operator,copy constructor,and Copy function with the same information that describes an element. + Tests for the integrity of the data of all the three objects. + Tests for heap leak and for open handles at the end of the test +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CComponentTests::Test2L() + { + test.Next(_L(" @SYMTestCaseID:SYSLIB-XML-CT-1272 Test2L ")); + + // RTagInfo Test + // + // =========================================== + + // Set up for heap leak checking + __UHEAP_MARK; + + // and leaking thread handles + TInt startProcessHandleCount; + TInt startThreadHandleCount; + TInt endProcessHandleCount; + TInt endThreadHandleCount; + + RThread thisThread; + thisThread.HandleCount(startProcessHandleCount, startThreadHandleCount); + + // Test Starts... + + iStringPool.OpenL(); + CleanupClosePushL(iStringPool); + + RString string1 = iStringPool.OpenStringL(KTestString1); + CleanupClosePushL(string1); + + RString string2 = iStringPool.OpenStringL(KTestString2); + CleanupClosePushL(string2); + + RString string3 = iStringPool.OpenStringL(KTestString3); + + CleanupStack::Pop(&string2); + CleanupStack::Pop(&string1); + CleanupStack::Pop(&iStringPool); + + RTagInfo tagInfo; + tagInfo.Open(string1, string2, string3); + RTagInfo tagInfo2 = tagInfo; + RTagInfo tagInfo3 (tagInfo); + RTagInfo tagInfo4 = tagInfo.Copy(); + + const RString& uri = tagInfo.Uri(); + const RString& prefix = tagInfo.Prefix(); + const RString& localName = tagInfo.LocalName(); + + test (KTestString1() == uri.DesC()); + test (KTestString2() == prefix.DesC()); + test (KTestString3() == localName.DesC()); + + test (KTestString1() == tagInfo2.Uri().DesC()); + test (KTestString2() == tagInfo2.Prefix().DesC()); + test (KTestString3() == tagInfo2.LocalName().DesC()); + + test (KTestString1() == tagInfo3.Uri().DesC()); + test (KTestString2() == tagInfo3.Prefix().DesC()); + test (KTestString3() == tagInfo3.LocalName().DesC()); + + test (KTestString1() == tagInfo4.Uri().DesC()); + test (KTestString2() == tagInfo4.Prefix().DesC()); + test (KTestString3() == tagInfo4.LocalName().DesC()); + + tagInfo.Close(); + tagInfo4.Close(); + iStringPool.Close(); + + //-------------- + // Check for open handles + thisThread.HandleCount(endProcessHandleCount, endThreadHandleCount); + + test(startThreadHandleCount == endThreadHandleCount); + + // Test Ends... + + __UHEAP_MARKEND; + } + + +//---------------------------------------------------------------------------- + + +/** +@SYMTestCaseID SYSLIB-XML-CT-1273 +@SYMTestCaseDesc Tests for RTagInfo created from RAttribute class +@SYMTestPriority High +@SYMTestActions Tests for the information of RTagInfo objects. + Tests for heap leak and for open handles at the end of the test +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CComponentTests::Test3L() + { + test.Next(_L(" @SYMTestCaseID:SYSLIB-XML-CT-1273 Test3L ")); + + // RAttribute Test + // + // =========================================== + + // Set up for heap leak checking + __UHEAP_MARK; + + // and leaking thread handles + TInt startProcessHandleCount; + TInt startThreadHandleCount; + TInt endProcessHandleCount; + TInt endThreadHandleCount; + + RThread thisThread; + thisThread.HandleCount(startProcessHandleCount, startThreadHandleCount); + + // Test Starts... + + iStringPool.OpenL(); + CleanupClosePushL(iStringPool); + + RString string1 = iStringPool.OpenStringL(KTestString1); + CleanupClosePushL(string1); + + RString string2 = iStringPool.OpenStringL(KTestString2); + CleanupClosePushL(string2); + + RString string3 = iStringPool.OpenStringL(KTestString3); + CleanupClosePushL(string3); + + RString string4 = iStringPool.OpenStringL(KTestString4); + + CleanupStack::Pop(&string3); + CleanupStack::Pop(&string2); + CleanupStack::Pop(&string1); + CleanupStack::Pop(&iStringPool); + + RAttribute attribute; + attribute.Open(string1, string2, string3); + attribute.SetValue(string4); + + const RTagInfo& tagInfo = attribute.Attribute(); + const RString& value = attribute.Value(); + TAttributeType type = attribute.Type(); + + test (KTestString1() == tagInfo.Uri().DesC()); + test (KTestString2() == tagInfo.Prefix().DesC()); + test (KTestString3() == tagInfo.LocalName().DesC()); + test (KTestString4() == value.DesC()); + test (EAttributeType_NONE == type); + + attribute.Close(); + iStringPool.Close(); + + //-------------- + // Check for open handles + thisThread.HandleCount(endProcessHandleCount, endThreadHandleCount); + + test(startThreadHandleCount == endThreadHandleCount); + + // Test Ends... + + __UHEAP_MARKEND; + } + + +//---------------------------------------------------------------------------- + + +/** +@SYMTestCaseID SYSLIB-XML-CT-1274 +@SYMTestCaseDesc Tests for RTagInfo created from RAttribute::Uri,Prefix,LocalName functions +@SYMTestPriority High +@SYMTestActions Create three RAttribute objects using copy constructor,assignment operator and Copy function.Test for information of RAttribute objects + Tests for heap leak and for open handles at the end of the test +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CComponentTests::Test4L() + { + test.Next(_L(" @SYMTestCaseID:SYSLIB-XML-CT-1274 Test4L ")); + + // RAttribute Test + // + // =========================================== + + // Set up for heap leak checking + __UHEAP_MARK; + + // and leaking thread handles + TInt startProcessHandleCount; + TInt startThreadHandleCount; + TInt endProcessHandleCount; + TInt endThreadHandleCount; + + RThread thisThread; + thisThread.HandleCount(startProcessHandleCount, startThreadHandleCount); + + // Test Starts... + + iStringPool.OpenL(); + CleanupClosePushL(iStringPool); + + RString string1 = iStringPool.OpenStringL(KTestString1); + CleanupClosePushL(string1); + + RString string2 = iStringPool.OpenStringL(KTestString2); + CleanupClosePushL(string2); + + RString string3 = iStringPool.OpenStringL(KTestString3); + CleanupClosePushL(string3); + + RString string4 = iStringPool.OpenStringL(KTestString4); + + CleanupStack::Pop(&string3); + CleanupStack::Pop(&string2); + CleanupStack::Pop(&string1); + CleanupStack::Pop(&iStringPool); + + RAttribute attribute; + attribute.Open(string1, string2, string3, string4); + RAttribute attribute2 = attribute; + RAttribute attribute3 (attribute); + RAttribute attribute4 = attribute.Copy(); + + const RTagInfo& tagInfo = attribute.Attribute(); + const RString& value = attribute.Value(); + TAttributeType type = attribute.Type(); + + test (KTestString1() == tagInfo.Uri().DesC()); + test (KTestString2() == tagInfo.Prefix().DesC()); + test (KTestString3() == tagInfo.LocalName().DesC()); + test (KTestString4() == value.DesC()); + test (EAttributeType_NONE == type); + + test (KTestString1() == attribute2.Attribute().Uri().DesC()); + test (KTestString2() == attribute2.Attribute().Prefix().DesC()); + test (KTestString3() == attribute2.Attribute().LocalName().DesC()); + test (KTestString4() == attribute2.Value().DesC()); + test (EAttributeType_NONE == attribute2.Type()); + + test (KTestString1() == attribute3.Attribute().Uri().DesC()); + test (KTestString2() == attribute3.Attribute().Prefix().DesC()); + test (KTestString3() == attribute3.Attribute().LocalName().DesC()); + test (KTestString4() == attribute3.Value().DesC()); + test (EAttributeType_NONE == attribute3.Type()); + + test (KTestString1() == attribute4.Attribute().Uri().DesC()); + test (KTestString2() == attribute4.Attribute().Prefix().DesC()); + test (KTestString3() == attribute4.Attribute().LocalName().DesC()); + test (KTestString4() == attribute4.Value().DesC()); + test (EAttributeType_NONE == attribute4.Type()); + + attribute.Close(); + attribute4.Close(); + iStringPool.Close(); + + //-------------- + // Check for open handles + thisThread.HandleCount(endProcessHandleCount, endThreadHandleCount); + + test(startThreadHandleCount == endThreadHandleCount); + + // Test Ends... + + __UHEAP_MARKEND; + } + + +//---------------------------------------------------------------------------- + + +/** +@SYMTestCaseID SYSLIB-XML-CT-1275 +@SYMTestCaseDesc Tests for RTagInfo created from RAttribute::Uri,Prefix,LocalName functions +@SYMTestPriority High +@SYMTestActions Create RAttribute Test for information of RAttribute objects + Tests for heap leak and for open handles at the end of the test +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CComponentTests::Test5L() + { + test.Next(_L(" @SYMTestCaseID:SYSLIB-XML-CT-1275 Test5L ")); + + // RAttribute Test + // + // =========================================== + + // Set up for heap leak checking + __UHEAP_MARK; + + // and leaking thread handles + TInt startProcessHandleCount; + TInt startThreadHandleCount; + TInt endProcessHandleCount; + TInt endThreadHandleCount; + + RThread thisThread; + thisThread.HandleCount(startProcessHandleCount, startThreadHandleCount); + + // Test Starts... + + iStringPool.OpenL(); + CleanupClosePushL(iStringPool); + + RString string1 = iStringPool.OpenStringL(KTestString1); + CleanupClosePushL(string1); + + RString string2 = iStringPool.OpenStringL(KTestString2); + CleanupClosePushL(string2); + + RString string3 = iStringPool.OpenStringL(KTestString3); + CleanupClosePushL(string3); + + RString string4 = iStringPool.OpenStringL(KTestString4); + + CleanupStack::Pop(&string3); + CleanupStack::Pop(&string2); + CleanupStack::Pop(&string1); + CleanupStack::Pop(&iStringPool); + + RAttribute attribute; + attribute.Open(string1, string2, string3, string4); + + const RTagInfo& tagInfo = attribute.Attribute(); + const RString& value = attribute.Value(); + TAttributeType type = attribute.Type(); + + test (KTestString1() == tagInfo.Uri().DesC()); + test (KTestString2() == tagInfo.Prefix().DesC()); + test (KTestString3() == tagInfo.LocalName().DesC()); + test (KTestString4() == value.DesC()); + test (EAttributeType_NONE == type); + + attribute.Close(); + iStringPool.Close(); + + //-------------- + // Check for open handles + thisThread.HandleCount(endProcessHandleCount, endThreadHandleCount); + + test(startThreadHandleCount == endThreadHandleCount); + + // Test Ends... + + __UHEAP_MARKEND; + } + + +//---------------------------------------------------------------------------- + + +/** +@SYMTestCaseID SYSLIB-XML-CT-1276 +@SYMTestCaseDesc Tests for information of the document to be passed to client RDocumentParameters::CharacterSetName() functions +@SYMTestPriority High +@SYMTestActions Tests for the character set name of document. + Tests for heap leak and for open handles at the end of the test +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CComponentTests::Test6L() + { + test.Next(_L(" @SYMTestCaseID:SYSLIB-XML-CT-1276 Test6L ")); + + // RDocumentParameters Test + // + // =========================================== + + // Set up for heap leak checking + __UHEAP_MARK; + + // and leaking thread handles + TInt startProcessHandleCount; + TInt startThreadHandleCount; + TInt endProcessHandleCount; + TInt endThreadHandleCount; + + RThread thisThread; + thisThread.HandleCount(startProcessHandleCount, startThreadHandleCount); + + // Test Starts... + + iStringPool.OpenL(); + CleanupClosePushL(iStringPool); + + RString characterSetName = iStringPool.OpenStringL(KCharSetName); + + CleanupStack::Pop(&iStringPool); + + RDocumentParameters docParam; + docParam.Open(characterSetName); + + test (KCharSetName() == docParam.CharacterSetName().DesC()); + + docParam.Close(); + iStringPool.Close(); + + + //-------------- + // Check for open handles + thisThread.HandleCount(endProcessHandleCount, endThreadHandleCount); + + test(startThreadHandleCount == endThreadHandleCount); + + // Test Ends... + + __UHEAP_MARKEND; + } + + +//---------------------------------------------------------------------------- + + +/** +@SYMTestCaseID SYSLIB-XML-CT-1277 +@SYMTestCaseDesc Tests for information of the document to be passed to client RDocumentParameters::CharacterSetName functions +@SYMTestPriority High +@SYMTestActions Tests for the character set name of document + Tests for heap leak and for open handles at the end of the test +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CComponentTests::Test7L() + { + test.Next(_L(" @SYMTestCaseID:SYSLIB-XML-CT-1277 Test7L ")); + + // RDocumentParameters Test + // + // =========================================== + + // Set up for heap leak checking + __UHEAP_MARK; + + // and leaking thread handles + TInt startProcessHandleCount; + TInt startThreadHandleCount; + TInt endProcessHandleCount; + TInt endThreadHandleCount; + + RThread thisThread; + thisThread.HandleCount(startProcessHandleCount, startThreadHandleCount); + + // Test Starts... + + iStringPool.OpenL(); + CleanupClosePushL(iStringPool); + + RString characterSetName = iStringPool.OpenStringL(KCharSetName); + CleanupStack::Pop(&iStringPool); + + RDocumentParameters docParam; + docParam.Open(characterSetName); + + test (KCharSetName() == docParam.CharacterSetName().DesC()); + + docParam.Close(); + iStringPool.Close(); + + //-------------- + // Check for open handles + thisThread.HandleCount(endProcessHandleCount, endThreadHandleCount); + + test(startThreadHandleCount == endThreadHandleCount); + + // Test Ends... + + __UHEAP_MARKEND; + } + + +//---------------------------------------------------------------------------- + + +/** +@SYMTestCaseID SYSLIB-XML-CT-1278 +@SYMTestCaseDesc Tests for RStringDictionaryCollection::CompareThisDictionary(),SwitchCodePage, + ElementL,AttributeL,AttributeValuePairL,AttributeValueL functions +@SYMTestPriority High +@SYMTestActions Tests for no error,unsupported XML value,XML unsupported Element, + XML unsupported Attribute,XML unsupported AttributeValue + Tests for heap leak and for open handles at the end of the test +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CComponentTests::Test8L() + { + test.Next(_L(" @SYMTestCaseID:SYSLIB-XML-CT-1278 Test8L ")); + + // RStringDictionaryCollection Test + // + // =========================================== + + // Set up for heap leak checking + __UHEAP_MARK; + + // and leaking thread handles + TInt startProcessHandleCount; + TInt startThreadHandleCount; + TInt endProcessHandleCount; + TInt endThreadHandleCount; + + RThread thisThread; + thisThread.HandleCount(startProcessHandleCount, startThreadHandleCount); + + // Test Starts... + + RStringDictionaryCollection nsCollection; + CleanupClosePushL(nsCollection); + + nsCollection.OpenL(); + + nsCollection.OpenDictionaryL (KDictionaryUri); + + RString nsUri = nsCollection.StringPool().OpenStringL(KDictionaryUri); + CleanupClosePushL(nsUri); + + RString element; + RString attribute; + RString value; + + CleanupClosePushL(element); + CleanupClosePushL(attribute); + CleanupClosePushL(value); + + + test (nsCollection.CurrentDictionaryL().CompareThisDictionary(nsUri) == (TInt) ETrue); + + test (nsCollection.CurrentDictionaryL().SwitchCodePage(KUnloadedCodePage) == KErrXmlMissingStringDictionary); + + TRAPD(err, nsCollection.CurrentDictionaryL().ElementL(CTestStringDictionary00::ETokenValueAdd, element)); + test (err == KErrNone); + test (element.DesC() == KAddElement); + element.Close(); // as we are reassigning + + TRAP (err, nsCollection.CurrentDictionaryL().ElementL(KUnknownToken, element)); + test (err == KErrXmlUnsupportedElement); + + TRAP (err, nsCollection.CurrentDictionaryL().AttributeL(KUnknownToken, attribute)); + test (err == KErrXmlUnsupportedAttribute); + attribute.Close(); // as we are reassigning + + TRAP (err, nsCollection.CurrentDictionaryL().AttributeValuePairL(KUnknownToken, attribute, value)); + test (err == KErrXmlUnsupportedAttribute); + attribute.Close(); // as we are reassigning + value.Close(); // as we are reassigning + + TRAP (err, nsCollection.CurrentDictionaryL().AttributeValueL(KUnknownToken, value)); + test (err == KErrXmlUnsupportedAttributeValue); + value.Close(); // as we are reassigning + + CleanupStack::PopAndDestroy(&value); + CleanupStack::PopAndDestroy(&attribute); + CleanupStack::PopAndDestroy(&element); + CleanupStack::PopAndDestroy(&nsUri); // on the stringpool + + nsCollection.Close(); + + CleanupStack::Pop(&nsCollection); + + + //-------------- + // Check for open handles + thisThread.HandleCount(endProcessHandleCount, endThreadHandleCount); + + test(startThreadHandleCount == endThreadHandleCount); + + // Test Ends... + + __UHEAP_MARKEND; + } + + +//---------------------------------------------------------------------------- + + +/** +@SYMTestCaseID SYSLIB-XML-CT-1279 +@SYMTestCaseDesc Tests for CCharSetConverter functions +@SYMTestPriority High +@SYMTestActions Tests for UTF-8 to Unicode and Unicode to UTF-8 character set conversions. + Tests for no error , no memory error + Tests for heap leak and for open handles at the end of the test +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +void CComponentTests::Test9L() + { + test.Next(_L(" @SYMTestCaseID:SYSLIB-XML-CT-1279 Test9L ")); + + // CCharSetConverter Test + // + // =========================================== + + // Set up for heap leak checking + __UHEAP_MARK; + + // and leaking thread handles + TInt startProcessHandleCount; + TInt startThreadHandleCount; + TInt endProcessHandleCount; + TInt endThreadHandleCount; + + RThread thisThread; + thisThread.HandleCount(startProcessHandleCount, startThreadHandleCount); + + // Test Starts... + + CCharSetConverter* charSet = CCharSetConverter::NewL(); + CleanupStack::PushL(charSet); + + TInt err = KErrNone; + TUint charSetUid = 0; + + TRAP (err, charSet->PrepareCharConvL(charSetUid, KEncoding)); + // extra clause for OOM tests + test (err == KErrNone || err == KErrNoMemory); + + TRAP (err, charSet->PrepareCharConvL(charSetUid, KMibEnum)); + // extra clause for OOM tests + test (err == KErrNone || err == KErrNoMemory); + + // convert to unicode from utf-8 + HBufC16* unicodeConversion = NULL; + err = charSet->ConvertToUnicodeL(charSetUid, KTestString1, unicodeConversion); + CleanupStack::PushL(unicodeConversion); + test (err == KErrNone); + TBuf16<100> compare; + compare.Copy(KTestString1); + test (*unicodeConversion == compare); + + // convert to utf-8 from unicode + HBufC8* utf8Conversion = NULL; + err = charSet->ConvertFromUnicodeL(*unicodeConversion, charSetUid, utf8Conversion); + CleanupStack::PushL(utf8Conversion); + test (err == KErrNone); + test (*utf8Conversion == KTestString1()); + + CleanupStack::PopAndDestroy(utf8Conversion); + CleanupStack::PopAndDestroy(unicodeConversion); + + // really a test of CharConv as we call it directly. + TRAP (err, charSet->PrepareToConvertToOrFromL(charSetUid)); + // extra clause for OOM tests + test (err == KErrNone || err == KErrNoMemory); + + + const TInt KUcs4Count = 23; + TUint32 ucs4 [KUcs4Count] = {0}; + ucs4 [0] = 'T'; + ucs4 [1] = 'h'; + ucs4 [2] = 'i'; + ucs4 [3] = 's'; + ucs4 [4] = ' '; + ucs4 [5] = 'i'; + ucs4 [6] = 's'; + ucs4 [7] = ' '; + ucs4 [8] = 'a'; + ucs4 [9] = ' '; + ucs4 [10] = 't'; + ucs4 [11] = 'e'; + ucs4 [12] = 's'; + ucs4 [13] = 't'; + ucs4 [14] = ' '; + ucs4 [15] = 's'; + ucs4 [16] = 't'; + ucs4 [17] = 'r'; + ucs4 [18] = 'i'; + ucs4 [19] = 'n'; + ucs4 [20] = 'g'; + ucs4 [21] = '1'; + ucs4 [22] = '.'; + + utf8Conversion = NULL; + err = charSet->ConvertUcs4CharactersToEncodingL(ucs4, KUcs4Count, KCharacterSetIdentifierUtf8, utf8Conversion); + CleanupStack::PushL(utf8Conversion); + test (err == KErrNone); + test (*utf8Conversion == KTestString1()); + CleanupStack::PopAndDestroy(utf8Conversion); + + HBufC8* Output8 = NULL; + err = charSet->ConvertFromUnicodeL(largebuf16, charSetUid, Output8); + CleanupStack::PushL(Output8); + test (err == KErrNone); + test(largebuf8 == *Output8); + + HBufC16* Output16 = NULL; + err = charSet->ConvertToUnicodeL(charSetUid, largebuf8, Output16); + CleanupStack::PushL(Output16); + test (err == KErrNone); + test(largebuf16 == *Output16); + + CleanupStack::PopAndDestroy(Output16); + CleanupStack::PopAndDestroy(Output8); + CleanupStack::PopAndDestroy(charSet); + + //-------------- + // Check for open handles + thisThread.HandleCount(endProcessHandleCount, endThreadHandleCount); + + test(startThreadHandleCount == endThreadHandleCount); + + // Test Ends... + + __UHEAP_MARKEND; + } + + +//---------------------------------------------------------------------------- + + +/** +@SYMTestCaseID SYSLIB-XML-UT-3718 +@SYMTestCaseDesc CDictionaryCodePage tests +@SYMTestPriority Medium +@SYMTestActions Creating a link between indicies and tokens. Checking a token returns an index from the string pool and then + checking if an index return a token. +@SYMTestExpectedResults Indicies and tokens are returns (and not returned) when expected. +@SYMDEF DEF071977 +*/ +void CComponentTests::Test10L() + { + test.Next(_L(" @SYMTestCaseID:SYSLIB-XML-UT-3718 Test10L ")); + + // Set up for heap leak checking + __UHEAP_MARK; + + // and leaking thread handles + TInt startProcessHandleCount; + TInt startThreadHandleCount; + TInt endProcessHandleCount; + TInt endThreadHandleCount; + TInt index; + TInt token; + + RThread thisThread; + thisThread.HandleCount(startProcessHandleCount, startThreadHandleCount); + + + + iStringPool.OpenL(t_StringDictionary00TagTable::Table); + CleanupClosePushL(iStringPool); + + CDictionaryCodePage* codepage = CDictionaryCodePage::NewL(&t_StringDictionary00TagTable::Table, &t_StringDictionary00TagTable::Table, &t_StringDictionary00TagTable::Table, 0); + CleanupStack::PushL(codepage); + + // Construct the correlation mapping + codepage->ConstructIndexMappingL(iCodePage00, CDictionaryCodePage::EStringTypeElement); + codepage->ConstructIndexMappingL(iCodePage00, CDictionaryCodePage::EStringTypeAttribute); + codepage->ConstructIndexMappingL(iCodePage00, CDictionaryCodePage::EStringTypeAttributeValue); + + index = codepage->StringPoolIndexFromToken(CTestStringDictionary00::ETokenValueAdd, CDictionaryCodePage::EStringTypeElement); + test(index!=KErrXmlStringPoolTableNotFound); + + index = codepage->StringPoolIndexFromToken(KUnknownToken, CDictionaryCodePage::EStringTypeElement); + test(index==KErrXmlStringPoolTableNotFound); + + index = codepage->StringPoolIndexFromToken(CTestStringDictionary00::ETokenValueAdd,CDictionaryCodePage::EStringTypeAttribute); + test(index!=KErrXmlStringPoolTableNotFound); + + index = codepage->StringPoolIndexFromToken(KUnknownToken, CDictionaryCodePage::EStringTypeAttribute); + test(index==KErrXmlStringPoolTableNotFound); + + index = codepage->StringPoolIndexFromToken(CTestStringDictionary00::ETokenValueAdd,CDictionaryCodePage::EStringTypeAttributeValue); + test(index!=KErrXmlStringPoolTableNotFound); + + index = codepage->StringPoolIndexFromToken(KUnknownToken, CDictionaryCodePage::EStringTypeAttributeValue); + test(index==KErrXmlStringPoolTableNotFound); + + token = codepage->TokenFromStringPoolIndex(0,CDictionaryCodePage::EStringTypeElement); + test(token==CTestStringDictionary00::ETokenValueAdd); + + token = codepage->TokenFromStringPoolIndex(0,CDictionaryCodePage::EStringTypeAttribute); + test(token==CTestStringDictionary00::ETokenValueAdd); + + token = codepage->TokenFromStringPoolIndex(0,CDictionaryCodePage::EStringTypeAttributeValue); + test(token==CTestStringDictionary00::ETokenValueAdd); + + test(codepage->CodePage()==0); + + + const RString& aPubId = iStringPool.String(t_StringDictionary00TagTable::EFormalPublicId, + *(codepage->StringTable(CDictionaryCodePage::EStringTypeElement))); + + TPtrC8 ades = aPubId.DesC(); + test(ades.Compare(KDictionaryUri)==0); + + const RString& aPubId1 = iStringPool.String(t_StringDictionary00TagTable::EFormalPublicId, + *(codepage->StringTable(CDictionaryCodePage::EStringTypeAttribute))); + TPtrC8 ades1 = aPubId1.DesC(); + test(ades1.Compare(KDictionaryUri)==0); + + const RString& aPubId2 = iStringPool.String(t_StringDictionary00TagTable::EFormalPublicId, + *(codepage->StringTable(CDictionaryCodePage::EStringTypeAttributeValue))); + TPtrC8 ades2 = aPubId2.DesC(); + test(ades1.Compare(KDictionaryUri)==0); + + + CleanupStack::PopAndDestroy(codepage); + + CleanupStack::PopAndDestroy(&iStringPool); + + + + //-------------- + // Check for open handles + thisThread.HandleCount(endProcessHandleCount, endThreadHandleCount); + + test(startThreadHandleCount == endThreadHandleCount); + + // Test Ends... + __UHEAP_MARKEND; + + } + + +//---------------------------------------------------------------------------- + + +/** +@SYMTestCaseID SYSLIB-XML-UT-1577 +@SYMTestCaseDesc Tests the TPtr Overloaded CCharSetConverter functions, making sure they + function correctly. +@SYMTestPriority High +@SYMTestActions Tests for UTF-8 to Unicode and Unicode to UTF-8 character set conversions. + Tests for heap leak and for open handles at the end of the test. +@SYMTestExpectedResults Test must not fail +@SYMDEF DEF075739 +*/ +void CComponentTests::Test11L() + { + test.Next(_L(" @SYMTestCaseID:SYSLIB-XML-UT-1577 Test11L ")); + + // CCharSetConverter Test + // + // =========================================== + + // Set up for heap leak checking + __UHEAP_MARK; + + TPtr8 conversionOutput8(0,0); + TPtr16 conversionOutput16(0,0); + + // and leaking thread handles + TInt startProcessHandleCount; + TInt startThreadHandleCount; + TInt endProcessHandleCount; + TInt endThreadHandleCount; + + RThread thisThread; + thisThread.HandleCount(startProcessHandleCount, startThreadHandleCount); + + // Test Starts... + + CCharSetConverter* charSet = CCharSetConverter::NewL(); + CleanupStack::PushL(charSet); + + TInt err = KErrNone; + TUint charSetUid = 0; + + TRAP (err, charSet->PrepareCharConvL(charSetUid, KEncoding)); + // extra clause for OOM tests + test (err == KErrNone || err == KErrNoMemory); + + TRAP (err, charSet->PrepareCharConvL(charSetUid, KMibEnum)); + // extra clause for OOM tests + test (err == KErrNone || err == KErrNoMemory); + + // convert to unicode from utf-8 + err = charSet->ConvertToUnicodeL(charSetUid, KTestString1, conversionOutput16); + test (err == KErrNone); + TBuf16<100> compare; + compare.Copy(KTestString1); + test (conversionOutput16 == compare); + + // convert to utf-8 from unicode + err = charSet->ConvertFromUnicodeL(conversionOutput16, charSetUid, conversionOutput8); + test (err == KErrNone); + test (conversionOutput8 == KTestString1()); + + // really a test of CharConv as we call it directly. + TRAP (err, charSet->PrepareToConvertToOrFromL(charSetUid)); + // extra clause for OOM tests + test (err == KErrNone || err == KErrNoMemory); + + //Try converting a large amount of data, will require the output buffer to increase in size + //Using the TPtr overload + err = charSet->ConvertFromUnicodeL(largebuf16, charSetUid, conversionOutput8); + test (err == KErrNone); + test(largebuf8 == conversionOutput8); + + //Try converting a large amount of data, will require the output buffer to increase in size + //Using the TPtr overload + err = charSet->ConvertToUnicodeL(charSetUid, largebuf8, conversionOutput16); + test (err == KErrNone); + test(largebuf16 == conversionOutput16); + + CleanupStack::PopAndDestroy(charSet); + + //-------------- + // Check for open handles + thisThread.HandleCount(endProcessHandleCount, endThreadHandleCount); + + test(startThreadHandleCount == endThreadHandleCount); + + // Test Ends... + + __UHEAP_MARKEND; + } + + +//---------------------------------------------------------------------------- + + +/** +@SYMTestCaseID SYSLIB-XML-UT-1662 +@SYMTestCaseDesc Tests the CCharSetConverter::ConvertToUnicodeL function to ensure that an inputBuffer which is + larger than 32kB doesn't cause the CCharSetConverter::iConversionBufferSize to overflow. +@SYMTestPriority High +@SYMTestActions Tests CCharSetConverter::ConvertToUnicodeL(TUint32 aSrcCharset, const TDesC8& aInput, TPtr16& aOutput) with aInput > 32kB. + Tests for heap leak and for open handles at the end of the test +@SYMTestExpectedResults Test must not fail +@SYMDEF DEF081549 +*/ +void CComponentTests::Test12L() + { + test.Next(_L(" @SYMTestCaseID:SYSLIB-XML-UT-1662 Test12L ")); + + // Testing CCharSetConverter::ConvertToUnicodeL(TUint32 aSrcCharset, const TDesC8& aInput, TPtr16& aOutput) + // with aInput > 32kB. + // + // =========================================== + + // Set up for heap leak checking + __UHEAP_MARK; + + // and leaking thread handles + TInt startProcessHandleCount; + TInt startThreadHandleCount; + TInt endProcessHandleCount; + TInt endThreadHandleCount; + + RThread thisThread; + thisThread.HandleCount(startProcessHandleCount, startThreadHandleCount); + + // Test Starts... + + CCharSetConverter* charSet = CCharSetConverter::NewL(); + CleanupStack::PushL(charSet); + + TInt err = KErrNone; + TUint charSetUid = 0; + + TRAP (err, charSet->PrepareCharConvL(charSetUid, KEncoding)); + // extra clause for OOM tests + test (err == KErrNone || err == KErrNoMemory); + + TRAP (err, charSet->PrepareCharConvL(charSetUid, KMibEnum)); + // extra clause for OOM tests + test (err == KErrNone || err == KErrNoMemory); + + // convert large string (>32kB) to unicode + TPtr16 largeUnicodeConversion(0,0); + err = charSet->ConvertToUnicodeL(charSetUid, KTestString5, largeUnicodeConversion); + test (err == KErrNone); + + CleanupStack::PopAndDestroy(charSet); + + //-------------- + // Check for open handles + thisThread.HandleCount(endProcessHandleCount, endThreadHandleCount); + + test(startThreadHandleCount == endThreadHandleCount); + + // Test Ends... + + __UHEAP_MARKEND; + } + + +//---------------------------------------------------------------------------- + + +class CTest : public CBase + { + public: + void MainL(); + }; + + +typedef void (CComponentTests::*ClassFuncPtrL) (void); + + +//---------------------------------------------------------------------------- + + +/** +@SYMTestCaseID SYSLIB-XML-CT-1280 +@SYMTestCaseDesc Tests for out of memory conditions +@SYMTestPriority High +@SYMTestActions Tests all basic components for memory errors +@SYMTestExpectedResults Test must not fail +@SYMREQ REQ0000 +*/ +static void DoOomTestL(CComponentTests* aObjectPtr, ClassFuncPtrL testFuncL) + { + test.Start(_L(" @SYMTestCaseID:SYSLIB-XML-CT-1280 OOM test ")); + TInt err, tryCount = 0; + do + { + User::__DbgSetAllocFail(RHeap::EUser, RHeap::EFailNext, ++tryCount); + User::__DbgMarkStart(RHeap::EUser); + TRAP(err, (aObjectPtr->*testFuncL)()); + User::__DbgMarkEnd(RHeap::EUser, 0); + } while(err==KErrNoMemory); + + if(err==KErrNone) + { + // Reset + User::__DbgSetAllocFail(RHeap::EUser,RHeap::ENone,1); + } + else + { + User::Panic(_L("Unexpected leave reason"),err); + } + + test.Printf(_L("- server succeeded at heap failure rate of %i\n"), tryCount); + test.End(); + } + + +//---------------------------------------------------------------------------- + + +static void BasicComponentTestsL() + { + test.Next(_L("BasicComponentTests...")); + + __UHEAP_MARK; + + CComponentTests* client1 = CComponentTests::NewL(); + CleanupStack::PushL(client1); + client1->Test1L(); + CleanupStack::PopAndDestroy(client1); + + CComponentTests* client2 = CComponentTests::NewL(); + CleanupStack::PushL(client2); + client2->Test2L(); + CleanupStack::PopAndDestroy(client2); + + CComponentTests* client3 = CComponentTests::NewL(); + CleanupStack::PushL(client3); + client3->Test3L(); + CleanupStack::PopAndDestroy(client3); + + CComponentTests* client4 = CComponentTests::NewL(); + CleanupStack::PushL(client4); + client4->Test4L(); + CleanupStack::PopAndDestroy(client4); + + CComponentTests* client5 = CComponentTests::NewL(); + CleanupStack::PushL(client5); + client5->Test5L(); + CleanupStack::PopAndDestroy(client5); + + CComponentTests* client6 = CComponentTests::NewL(); + CleanupStack::PushL(client6); + client6->Test6L(); + CleanupStack::PopAndDestroy(client6); + + CComponentTests* client7 = CComponentTests::NewL(); + CleanupStack::PushL(client7); + client7->Test7L(); + CleanupStack::PopAndDestroy(client7); + + CComponentTests* client8 = CComponentTests::NewL(); + CleanupStack::PushL(client8); + client8->Test8L(); + CleanupStack::PopAndDestroy(client8); + + CComponentTests* client9 = CComponentTests::NewL(); + CleanupStack::PushL(client9); + client9->Test9L(); + CleanupStack::PopAndDestroy(client9); + + CComponentTests* client10 = CComponentTests::NewL(); + CleanupStack::PushL(client10); + client10->Test10L(); + CleanupStack::PopAndDestroy(client10); + + CComponentTests* client11 = CComponentTests::NewL(); + CleanupStack::PushL(client11); + client11->Test11L(); + CleanupStack::PopAndDestroy(client11); + + CComponentTests* client12 = CComponentTests::NewL(); + CleanupStack::PushL(client12); + client12->Test12L(); + CleanupStack::PopAndDestroy(client12); + + __UHEAP_MARKEND; + } + + +//---------------------------------------------------------------------------- + + +static void OomTestsL() + { + test.Next(_L("OOM Tests ...")); + + __UHEAP_MARK; + + CComponentTests* client1 = CComponentTests::NewL(); + CleanupStack::PushL(client1); + DoOomTestL(client1, &CComponentTests::Test1L); + CleanupStack::PopAndDestroy(client1); + + CComponentTests* client2 = CComponentTests::NewL(); + CleanupStack::PushL(client2); + DoOomTestL(client2, &CComponentTests::Test2L); + CleanupStack::PopAndDestroy(client2); + + CComponentTests* client3 = CComponentTests::NewL(); + CleanupStack::PushL(client3); + DoOomTestL(client3, &CComponentTests::Test3L); + CleanupStack::PopAndDestroy(client3); + + CComponentTests* client4 = CComponentTests::NewL(); + CleanupStack::PushL(client4); + DoOomTestL(client4, &CComponentTests::Test4L); + CleanupStack::PopAndDestroy(client4); + + CComponentTests* client5 = CComponentTests::NewL(); + CleanupStack::PushL(client5); + DoOomTestL(client5, &CComponentTests::Test5L); + CleanupStack::PopAndDestroy(client5); + + CComponentTests* client6 = CComponentTests::NewL(); + CleanupStack::PushL(client6); + DoOomTestL(client6, &CComponentTests::Test6L); + CleanupStack::PopAndDestroy(client6); + + CComponentTests* client7 = CComponentTests::NewL(); + CleanupStack::PushL(client7); + DoOomTestL(client7, &CComponentTests::Test7L); + CleanupStack::PopAndDestroy(client7); + + CComponentTests* client8 = CComponentTests::NewL(); + CleanupStack::PushL(client8); + DoOomTestL(client8, &CComponentTests::Test8L); + CleanupStack::PopAndDestroy(client8); + + CComponentTests* client9 = CComponentTests::NewL(); + CleanupStack::PushL(client9); + DoOomTestL(client9, &CComponentTests::Test9L); + CleanupStack::PopAndDestroy(client9); + + CComponentTests* client10 = CComponentTests::NewL(); + CleanupStack::PushL(client10); + DoOomTestL(client10, &CComponentTests::Test10L); + CleanupStack::PopAndDestroy(client10); + + CComponentTests* client11 = CComponentTests::NewL(); + CleanupStack::PushL(client11); + DoOomTestL(client11, &CComponentTests::Test11L); + CleanupStack::PopAndDestroy(client11); + + CComponentTests* client12 = CComponentTests::NewL(); + CleanupStack::PushL(client12); + DoOomTestL(client12, &CComponentTests::Test12L); + CleanupStack::PopAndDestroy(client12); + + __UHEAP_MARKEND; + } + + +//---------------------------------------------------------------------------- + + +static void MainL() + { + BasicComponentTestsL(); + OomTestsL(); + } + + +//---------------------------------------------------------------------------- + + +TInt E32Main() + { + __UHEAP_MARK; + test.Title(); + test.Start(_L("initialising")); + + CTrapCleanup* c=CTrapCleanup::New(); + + // start the loader + RFs fs; + test (fs.Connect()==KErrNone); + fs.Close(); + + test (c!=0); + TRAPD(r,MainL()); + test.End(); + test (r==KErrNone); + delete c; + test.Close(); + __UHEAP_MARKEND; + return KErrNone; + }