diff -r f902e87c146f -r 748ec5531811 textrendering/texthandling/ttext/T_CPLAIN.CPP --- a/textrendering/texthandling/ttext/T_CPLAIN.CPP Wed Jun 09 11:40:52 2010 +0300 +++ b/textrendering/texthandling/ttext/T_CPLAIN.CPP Tue Aug 31 17:01:26 2010 +0300 @@ -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(); }