--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/landmarks/locationlandmarks/tsrc/LandmarkTestModule/src/FT_CPosTp47.cpp Tue Aug 31 15:37:04 2010 +0300
@@ -0,0 +1,1876 @@
+/*
+* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* ?description_line
+*
+*/
+
+// INCLUDES
+#include "FT_CPosTp47.h"
+#include <EPos_CPosLandmarkDatabase.h>
+#include <EPos_CPosLandmarkParser.h>
+#include <EPos_CPosLandmarkEncoder.h>
+#include <LbsPosition.h>
+#include <e32math.h>
+#include <bautils.h>
+#include <utf.h>
+#include <xml/xmlparsererrors.h>
+
+// CONSTANTS
+_LIT(KFileName, "c:\\documents\\Tp47Data.xml");
+_LIT(KFileTrace, "c:\\documents\\LandmarksTP47Trace.txt");
+
+// See \epoc32\include\xml\XmlParserErrors.h for error codes
+
+
+_LIT(KCorrectFile, "c:\\system\\test\\TestData\\CorrectFileFor_LandmarksTP47Trace.txt");
+
+_LIT(KMimeWithNameAndTimeStampFile, "c:\\system\\test\\TestData\\Tp47Data_With_MIME_Name.xml");
+_LIT(KErronousXMLFile, "c:\\system\\test\\TestData\\Tp47ErrounousXMLData.xml");
+
+_LIT(KErronousXMLFileDataMissing1, "c:\\system\\test\\TestData\\Tp47ErrounousXMLDataMissingFields1.xml");
+_LIT(KErronousXMLFileDataMissing2, "c:\\system\\test\\TestData\\Tp47ErrounousXMLDataMissingFields2.xml");
+_LIT(KErronousXMLFileDataMissing3, "c:\\system\\test\\TestData\\Tp47ErrounousXMLDataMissingFields3.xml");
+
+_LIT(KErronousXMLFileWrongOrder1, "c:\\system\\test\\TestData\\Tp47ErrounousXMLDataWrongOrder1.xml");
+_LIT(KErronousXMLFileWrongOrder2, "c:\\system\\test\\TestData\\Tp47ErrounousXMLDataWrongOrder2.xml");
+_LIT(KErronousXMLFileWrongOrder3, "c:\\system\\test\\TestData\\Tp47ErrounousXMLDataWrongOrder3.xml");
+
+_LIT(KErronousXMLFileRepeatedTag, "c:\\system\\test\\TestData\\Tp47ErronousXMLDataRepeatedTag.xml");
+_LIT(KErronousXMLFileUnclosedTag1, "c:\\system\\test\\TestData\\Tp47ErronousXMLDataUnclosedTag1.xml");
+//_LIT(KErronousXMLFileUnclosedTag2, "c:\\system\\test\\TestData\\Tp47ErronousXMLDataUnclosedTag2.xml");
+
+_LIT(KUnknownTags, "c:\\system\\test\\TestData\\Tp47UnknownTags.xml");
+_LIT(KUnknownTrees, "c:\\system\\test\\TestData\\Tp47UnknownTrees.xml");
+
+_LIT(KNoEndTag1, "c:\\system\\test\\TestData\\Tp47ErrounousXMLNoEndTag1.xml");
+_LIT(KNoEndTag2, "c:\\system\\test\\TestData\\Tp47ErrounousXMLNoEndTag2.xml");
+
+_LIT(KNoXMLFile1, "c:\\system\\test\\TestData\\Tp47ErronousFileNoXML1.xml");
+_LIT(KNoXMLFile2, "c:\\system\\test\\TestData\\Tp47ErronousFileNoXML2.xml");
+
+_LIT(KTestXMLInput1, "c:\\system\\test\\TestData\\Tp47XMLDataTestInput1.xml");
+
+_LIT(KXMLFileWithLongCategoryName, "c:\\system\\test\\TestData\\Tp47XMLWithLongCategoryName.xml");
+_LIT(KXMLFileWithLongLandmarkName, "c:\\system\\test\\TestData\\Tp47XMLWithLongName.xml");
+_LIT(KXMLFileWithLongLatitudeField, "c:\\system\\test\\TestData\\Tp47XMLWithLongLatitudeField.xml");
+
+_LIT(KXMLFileWithEmptyCollection, "c:\\system\\test\\TestData\\Tp47ErronousXMLFileEmptyCollection.xml");
+
+_LIT(KXMLFileWithXMLTagAsDataField1, "c:\\system\\test\\TestData\\Tp47UsingXMLTagAsDataField1.xml");
+_LIT(KXMLFileWithXMLTagAsDataField2, "c:\\system\\test\\TestData\\Tp47UsingXMLTagAsDataField2.xml");
+_LIT(KXMLFileWithXMLTagAsDataField3, "c:\\system\\test\\TestData\\Tp47UsingXMLTagAsDataField3.xml");
+
+_LIT(KErronousXMLFileTagInTag, "c:\\system\\test\\TestData\\Tp47ErronousXMLDataTagInTag1.xml");
+//_LIT(KErronousXMLFileMissingLMPrefix, "c:\\system\\test\\TestData\\Tp47ErronousXMLDataMissingLMPrefix.xml");
+
+_LIT(KXMLFileUTF8, "c:\\system\\test\\TestData\\Tp47DataUTF8.xml");
+_LIT(KXMLFileUTF16, "c:\\system\\test\\TestData\\Tp47DataUTF16.xml");
+
+_LIT(KXML_UTF_16_BE, "c:\\system\\test\\TestData\\TP47_UTF-16-bigEndian.xml");
+_LIT(KXML_UTF_16_LE, "c:\\system\\test\\TestData\\TP47_UTF-16-littleEndian.xml");
+_LIT(KXML_UTF_8, "c:\\system\\test\\TestData\\TP47_UTF-8.xml");
+_LIT(KXML_UTF_CHINESE, "c:\\system\\test\\TestData\\TP47_UTF-Chinese.xml");
+
+_LIT(KXMLFileWithEmptyMedialink, "c:\\system\\test\\TestData\\Tp47EmptyMediaLink.xml");
+_LIT(KXMLFileWithEmptyCoordinates, "c:\\system\\test\\TestData\\Tp47EmptyCoordinates.xml");
+_LIT(KXMLFileWithEmptyAdresseInfo, "c:\\system\\test\\TestData\\Tp47EmptyAdresseInfo.xml");
+
+_LIT(KXMLFileWithErronousTextInTag1, "c:\\system\\test\\TestData\\Tp47ErronousTextInTag1.xml");
+_LIT(KXMLFileWithErronousTextInTag2, "c:\\system\\test\\TestData\\Tp47ErronousTextInTag2.xml");
+_LIT(KXMLFileWithErronousTextInTag3, "c:\\system\\test\\TestData\\Tp47ErronousTextInTag3.xml");
+_LIT(KXMLFileWithErronousTextInTag4, "c:\\system\\test\\TestData\\Tp47ErronousTextInTag4.xml");
+_LIT(KXMLFileWithErronousTextInTag5, "c:\\system\\test\\TestData\\Tp47ErronousTextInTag5.xml");
+_LIT(KXMLFileWithErronousTextInTag6, "c:\\system\\test\\TestData\\Tp47ErronousTextInTag6.xml");
+
+//KML test files
+_LIT(KKMLFile, "c:\\system\\test\\TestData\\Tp47KML.kml");
+_LIT(KKMLFile1, "c:\\system\\test\\TestData\\Tp47KMLfile1.kml");
+_LIT(KKMLFile2, "c:\\system\\test\\TestData\\Tp47KMLfile2.kml");
+_LIT(KKMLFile3, "c:\\system\\test\\TestData\\Tp47KMLfile3.kml");
+
+_LIT(KKMLLongName, "c:\\system\\test\\TestData\\Tp47KMLlongName.kml");
+_LIT(KKMLNameCaps, "c:\\system\\test\\TestData\\Tp47KMLNameCaps.kml");
+_LIT(KKMLErroneousNameTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousNameTag.kml");
+_LIT(KKMLErroneousNameTagPosition1, "c:\\system\\test\\TestData\\Tp47KMLErroneousNameTagPosition1.kml");
+_LIT(KKMLErroneousNameTagPosition2, "c:\\system\\test\\TestData\\Tp47KMLErroneousNameTagPosition2.kml");
+_LIT(KKMLEmptyName, "c:\\system\\test\\TestData\\Tp47KMLEmptyName.kml");
+_LIT(KKMLMissingNameTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingNameTag1.kml");
+_LIT(KKMLMissingNameTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingNameTag2.kml");
+_LIT(KKMLNameWithSpecialCharacters1, "c:\\system\\test\\TestData\\Tp47KMLNameWithSpecialCharacters1.kml");
+_LIT(KKMLNameWithSpecialCharacters2, "c:\\system\\test\\TestData\\Tp47KMLNameWithSpecialCharacters2.kml");
+
+_LIT(KKMLEmptyPhoneNumber, "c:\\system\\test\\TestData\\Tp47KMLEmptyPhoneNumber.kml");
+_LIT(KKMLErroneousPhoneNumberTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousPhoneNumberTag.kml");
+_LIT(KKMLErroneousPhoneNumberTagPosition, "c:\\system\\test\\TestData\\Tp47KMLErroneousPhoneNumberTagPosition.kml");
+_LIT(KKMLLongPhoneNumer, "c:\\system\\test\\TestData\\Tp47KMLLongPhoneNumer.kml");
+_LIT(KKMLMissingPhoneTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingPhoneTag1.kml");
+_LIT(KKMLMissingPhoneTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingPhoneTag2.kml");
+_LIT(KKMLPhoneNumberCaps, "c:\\system\\test\\TestData\\Tp47KMLPhoneNumberCaps.kml");
+_LIT(KKMLPhoneNumberWithText, "c:\\system\\test\\TestData\\Tp47KMLPhoneNumberWithText.kml");
+_LIT(KKMLPhoneNumberWithSpecialCharacters1, "c:\\system\\test\\TestData\\Tp47KMLPhoneNumberWithSpecialCharacters1.kml");
+_LIT(KKMLPhoneNumberWithSpecialCharacters2, "c:\\system\\test\\TestData\\Tp47KMLPhoneNumberWithSpecialCharacters2.kml");
+
+_LIT(KKMLEmptyPoint, "c:\\system\\test\\TestData\\Tp47KMLEmptyPoint.kml");
+_LIT(KKMLErroneousPointTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousPointTag.kml");
+_LIT(KKMLErroneousPointTagPosition, "c:\\system\\test\\TestData\\Tp47KMLErroneousPointTagPosition.kml");
+_LIT(KKMLMissingPointTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingPointTag1.kml");
+_LIT(KKMLMissingPointTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingPointTag2.kml");
+_LIT(KKMLPointCaps, "c:\\system\\test\\TestData\\Tp47KMLPointCaps.kml");
+_LIT(KKMLPointTag1, "c:\\system\\test\\TestData\\Tp47KMLPointTag1.kml");
+_LIT(KKMLPointTag2, "c:\\system\\test\\TestData\\Tp47KMLPointTag2.kml");
+_LIT(KKMLPointTag3, "c:\\system\\test\\TestData\\Tp47KMLPointTag3.kml");
+
+_LIT(KKMLEmptyDescription, "c:\\system\\test\\TestData\\Tp47KMLEmptyDescription.kml");
+_LIT(KKMLDescriptionWithSpecialCharacters1, "c:\\system\\test\\TestData\\Tp47KMLDescriptionWithSpecialCharacters1.kml");
+_LIT(KKMLDescriptionWithSpecialCharacters2, "c:\\system\\test\\TestData\\Tp47KMLDescriptionWithSpecialCharacters2.kml");
+_LIT(KKMLDescriptionCaps, "c:\\system\\test\\TestData\\Tp47KMLDescriptionCaps.kml");
+_LIT(KKMLLongDescription, "c:\\system\\test\\TestData\\Tp47KMLLongDescription.kml");
+_LIT(KKMLErroneousDescriptionTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousDescriptionTag.kml");
+_LIT(KKMLErroneousDescriptionTagposition, "c:\\system\\test\\TestData\\Tp47KMLErroneousDescriptionTagposition.kml");
+_LIT(KKMLMissingDescriptionTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingDescriptionTag1.kml");
+_LIT(KKMLMissingDescriptionTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingDescriptionTag2.kml");
+_LIT(KKMLDescriptionWithCDATA, "c:\\system\\test\\TestData\\Tp47KMLDescriptionWithCDATA.kml");
+
+_LIT(KKMLErroneousFolderTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousFolderTag.kml");
+_LIT(KKMLFolderCaps, "c:\\system\\test\\TestData\\Tp47KMLFolderCaps.kml");
+_LIT(KKMLMissingFolderTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingFolderTag1.kml");
+_LIT(KKMLMissingFolderTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingFolderTag2.kml");
+_LIT(KKMLEmptyFolderName, "c:\\system\\test\\TestData\\Tp47KMLEmptyFolderName.kml");
+_LIT(KKMLLongFolderName, "c:\\system\\test\\TestData\\Tp47KMLLongFolderName.kml");
+_LIT(KKMLFolderNameWithSpecialCharacters1, "c:\\system\\test\\TestData\\Tp47KMLFolderNameWithSpecialCharacters1.kml");
+_LIT(KKMLFolderNameWithSpecialCharacters2, "c:\\system\\test\\TestData\\Tp47KMLFolderNameWithSpecialCharacters2.kml");
+
+_LIT(KKMLDocumentNameWithSpecialCharacters1, "c:\\system\\test\\TestData\\Tp47KMLDocumentNameWithSpecialCharacters1.kml");
+_LIT(KKMLDocumentNameWithSpecialCharacters2, "c:\\system\\test\\TestData\\Tp47KMLDocumentNameWithSpecialCharacters2.kml");
+_LIT(KKMLEmptyDocumentName, "c:\\system\\test\\TestData\\Tp47KMLEmptyDocumentName.kml");
+_LIT(KKMLLongDocumentName, "c:\\system\\test\\TestData\\Tp47KMLLongDocumentName.kml");
+_LIT(KKMLDocumentCaps, "c:\\system\\test\\TestData\\Tp47KMLDocumentCaps.kml");
+_LIT(KKMLErroneousDocumentTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousDocumentTag.kml");
+_LIT(KKMLMissingDocumentTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingDocumentTag1.kml");
+_LIT(KKMLMissingDocumentTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingDocumentTag2.kml");
+
+_LIT(KKMLAddressCaps, "c:\\system\\test\\TestData\\Tp47KMLAddressCaps.kml");
+_LIT(KKMLAddressWithSpecialCharacters1, "c:\\system\\test\\TestData\\Tp47KMLAddressWithSpecialCharacters1.kml");
+_LIT(KKMLAddressWithSpecialCharacters2, "c:\\system\\test\\TestData\\Tp47KMLAddressWithSpecialCharacters2.kml");
+_LIT(KKMLEmptyAddress1, "c:\\system\\test\\TestData\\Tp47KMLEmptyAddress1.kml");
+_LIT(KKMLEmptyAddress2, "c:\\system\\test\\TestData\\Tp47KMLEmptyAddress2.kml");
+_LIT(KKMLLongAddress1, "c:\\system\\test\\TestData\\Tp47KMLLongAddress1.kml");
+_LIT(KKMLLongAddress2, "c:\\system\\test\\TestData\\Tp47KMLLongAddress2.kml");
+_LIT(KKMLLongAddress3, "c:\\system\\test\\TestData\\Tp47KMLLongAddress3.kml");
+_LIT(KKMLErroneousAddressTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousAddressTag.kml");
+_LIT(KKMLErroneousAddressTagPosition, "c:\\system\\test\\TestData\\Tp47KMLErroneousAddressTagPosition.kml");
+_LIT(KKMLMissingAddressTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingAddressTag1.kml");
+_LIT(KKMLMissingAddressTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingAddressTag2.kml");
+
+_LIT(KKMLCoordinateCaps, "c:\\system\\test\\TestData\\Tp47KMLCoordinateCaps.kml");
+_LIT(KKMLMoreCoordinates, "c:\\system\\test\\TestData\\Tp47KMLMoreCoordinates.kml");
+_LIT(KKMLErroneousCoordinateTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousCoordinateTag.kml");
+_LIT(KKMLErroneousCoordinateTagPosition, "c:\\system\\test\\TestData\\Tp47KMLErroneousCoordinateTagPosition.kml");
+_LIT(KKMLCoordinates1, "c:\\system\\test\\TestData\\Tp47KMLCoordinates1.kml");
+_LIT(KKMLCoordinates2, "c:\\system\\test\\TestData\\Tp47KMLCoordinates2.kml");
+_LIT(KKMLCoordinates3, "c:\\system\\test\\TestData\\Tp47KMLCoordinates3.kml");
+_LIT(KKMLCoordinates4, "c:\\system\\test\\TestData\\Tp47KMLCoordinates4.kml");
+_LIT(KKMLCoordinates5, "c:\\system\\test\\TestData\\Tp47KMLCoordinates5.kml");
+_LIT(KKMLCoordinates6, "c:\\system\\test\\TestData\\Tp47KMLCoordinates6.kml");
+_LIT(KKMLLongCoordinates1, "c:\\system\\test\\TestData\\Tp47KMLLongCoordinates1.kml");
+_LIT(KKMLLongCoordinates2, "c:\\system\\test\\TestData\\Tp47KMLLongCoordinates2.kml");
+_LIT(KKMLMissingCoordinateTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingCoordinateTag1.kml");
+_LIT(KKMLMissingCoordinateTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingCoordinateTag2.kml");
+_LIT(KKMLEmptyCoordinates1, "c:\\system\\test\\TestData\\Tp47KMLEmptyCoordinates1.kml");
+_LIT(KKMLEmptyCoordinates2, "c:\\system\\test\\TestData\\Tp47KMLEmptyCoordinates2.kml");
+_LIT(KKMLEmptyCoordinates3, "c:\\system\\test\\TestData\\Tp47KMLEmptyCoordinates3.kml");
+_LIT(KKMLEmptyCoordinates4, "c:\\system\\test\\TestData\\Tp47KMLEmptyCoordinates4.kml");
+_LIT(KKMLEmptyCoordinates5, "c:\\system\\test\\TestData\\Tp47KMLEmptyCoordinates5.kml");
+_LIT(KKMLEmptyCoordinates6, "c:\\system\\test\\TestData\\Tp47KMLEmptyCoordinates6.kml");
+_LIT(KKMLEmptyCoordinates7, "c:\\system\\test\\TestData\\Tp47KMLEmptyCoordinates7.kml");
+_LIT(KKMLErroneousCoordinates1, "c:\\system\\test\\TestData\\Tp47KMLErroneousCoordinates1.kml");
+_LIT(KKMLErroneousCoordinates2, "c:\\system\\test\\TestData\\Tp47KMLErroneousCoordinates2.kml");
+_LIT(KKMLErroneousCoordinates3, "c:\\system\\test\\TestData\\Tp47KMLErroneousCoordinates3.kml");
+_LIT(KKMLErroneousCoordinates4, "c:\\system\\test\\TestData\\Tp47KMLErroneousCoordinates4.kml");
+_LIT(KKMLErroneousCoordinates5, "c:\\system\\test\\TestData\\Tp47KMLErroneousCoordinates5.kml");
+_LIT(KKMLNegativeCoordinates, "c:\\system\\test\\TestData\\Tp47KMLNegativeCoordinates.kml");
+
+_LIT(KKMLErroneousTextWithinPlacemark, "c:\\system\\test\\TestData\\Tp47KMLErroneousTextWithinPlacemark.kml");
+_LIT(KKMLEmptyfile1, "c:\\system\\test\\TestData\\Tp47KMLEmptyfile1.kml");
+_LIT(KKMLEmptyfile2, "c:\\system\\test\\TestData\\Tp47KMLEmptyfile2.kml");
+_LIT(KKMLInvalidfile, "c:\\system\\test\\TestData\\Tp47KMLInvalidfile.kml");
+
+_LIT(KKMLPlacemarkCaps, "c:\\system\\test\\TestData\\Tp47KMLPlacemarkCaps.kml");
+_LIT(KKMLErroneousPlacemarkTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousPlacemarkTag.kml");
+_LIT(KKMLMissingPlacemarkTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingPlacemarkTag1.kml");
+_LIT(KKMLMissingPlacemarkTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingPlacemarkTag2.kml");
+_LIT(KKMLEmptyPlacemarkTag, "c:\\system\\test\\TestData\\Tp47KMLEmptyPlacemarkTag.kml");
+
+_LIT(KKMLGandhiMuseum, "c:\\system\\test\\TestData\\Tp47KMLGandhi Museum.kml");
+_LIT(KKMLIndusHeritageCentreIndia, "c:\\system\\test\\TestData\\Tp47KMLIndus Heritage Centre, India.kml");
+_LIT(KKMLHiltonHotels, "c:\\system\\test\\TestData\\Tp47KMLhilton hotels near new york (1 - 10).kml");
+
+_LIT(KKMLFile4, "c:\\system\\test\\TestData\\Tp47KMLfile4.kml");
+_LIT(KKMLFile5, "c:\\system\\test\\TestData\\Tp47KMLfile5.kml");
+_LIT(KKMLFile6, "c:\\system\\test\\TestData\\Tp47KMLfile6.kml");
+_LIT(KKMLFile7, "c:\\system\\test\\TestData\\Tp47KMLfile7.kml");
+_LIT(KKMLFile8, "c:\\system\\test\\TestData\\Tp47KMLfile8.kml");
+_LIT(KKMLFile9, "c:\\system\\test\\TestData\\Tp47KMLfile9.kml");
+
+
+
+
+
+
+
+// Maxmimum size for each line in trace file
+const TInt KBufSize = 5000;
+
+// ================= MEMBER FUNCTIONS =======================
+// ---------------------------------------------------------
+// CPosTp47::CloseTest
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosTp47::CloseTest()
+ {
+ iLog->Log(_L("CloseTest"));
+
+ delete iEncoderBuffer;
+ iEncoderBuffer = NULL;
+
+ iLandmarks.ResetAndDestroy();
+ iLandmarks.Close();
+
+ delete iDatabase;
+ iDatabase=NULL;
+
+ delete iLandmarkEncoder;
+ iLandmarkEncoder = NULL;
+
+ delete iLandmarkParser;
+ iLandmarkParser = NULL;
+
+ delete iOperation;
+ iOperation = NULL;
+
+ TRAPD(err, RemoveGlobalCategoriesL());
+ if (err != KErrNone && err != KErrNotFound)
+ {
+ HBufC* buf = HBufC::NewLC( 128 );
+ TPtr buffer = buf->Des();
+
+ buffer.Format(_L("RemoveGlobalCategoriesL leaved with %d"), err);
+ iLog->Log( buffer );
+
+ CleanupStack::PopAndDestroy( buf );
+ }
+
+ iLog->Log(_L("CloseTest Done"));
+ }
+
+// ---------------------------------------------------------
+// CPosTp47::StartL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosTp47::StartL()
+ {
+ BaflUtils::EnsurePathExistsL( iFileSession, KFileName );
+
+ // Use same lm db as in composite search test
+ iDatabase = UseCompositeLandmarksDbFileL();
+ if (iDatabase->IsInitializingNeeded())
+ {
+ ExecuteAndDeleteLD(iDatabase->InitializeL());
+ }
+
+ // Delete the trace file
+ DeleteFileL(KFileTrace);
+
+ delete iDatabase;
+ iDatabase = NULL;
+
+ iDatabase = CPosLandmarkDatabase::OpenL();
+
+ if (iDatabase->IsInitializingNeeded())
+ {
+ ExecuteAndDeleteLD(iDatabase->InitializeL());
+ }
+
+ // Do reset so that global categories are included
+ CPosLmCategoryManager* categoryManager = CPosLmCategoryManager::NewL(*iDatabase);
+ CleanupStack::PushL(categoryManager);
+
+ ExecuteAndDeleteLD(categoryManager->ResetGlobalCategoriesL());
+ CleanupStack::PopAndDestroy(categoryManager);
+
+ HBufC8* emptyBuffer=NULL;
+
+ CreateXMLData(ETrue);
+
+ PrintParsedDataFromEncoderL(KFileName, *emptyBuffer, KErrNone, KLmxMimeType );
+
+ CheckXMLData(ETrue);
+
+ // Use buffer instead of file
+ CreateXMLData(EFalse);
+ CheckXMLData(EFalse);
+
+ iLandmarks.ResetAndDestroy();
+
+
+
+ iLog->Log(_L("Mime With Name and Stamp"));
+ PrintParsedDataFromEncoderL(KMimeWithNameAndTimeStampFile, *emptyBuffer, KErrNone, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KMimeWithNameAndTimeStampFile, *emptyBuffer, KErrNone, KGpxMimeType );
+
+ iLog->Log(_L("Several Landmark File"));
+ // XXX PrintParsedDataFromEncoderL(KSeveralLandmarkFile, *emptyBuffer, KErrPosLmUnknownFormat);
+
+ iLog->Log(_L("Erronous XML File"));
+ PrintParsedDataFromEncoderL(KErronousXMLFile, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KErronousXMLFile, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
+
+ iLog->Log(_L("Several LandmarkCollection File"));
+ // XXX PrintParsedDataFromEncoderL(KSeveralLandmarkCollectionFile, *emptyBuffer, KErrPosLmUnknownFormat);
+
+ iLog->Log(_L("1) Wrong Order in XML File"));
+ PrintParsedDataFromEncoderL(KErronousXMLFileWrongOrder1, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KErronousXMLFileWrongOrder1, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
+
+ iLog->Log(_L("2) Wrong Order in XML File"));
+ PrintParsedDataFromEncoderL(KErronousXMLFileWrongOrder2, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KErronousXMLFileWrongOrder2, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
+
+ iLog->Log(_L("3) Wrong Order in XML File"));
+ // AdresseInfo can be sorted randomly without any error
+ PrintParsedDataFromEncoderL(KErronousXMLFileWrongOrder3, *emptyBuffer, KErrNone, KLmxMimeType );
+ // N/A for GPX
+
+ iLog->Log(_L("1) Data missing in XML File"));
+ PrintParsedDataFromEncoderL(KErronousXMLFileDataMissing1, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KErronousXMLFileDataMissing1, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
+
+ iLog->Log(_L("2) Data missing in XML File"));
+ PrintParsedDataFromEncoderL(KErronousXMLFileDataMissing2, *emptyBuffer, KErrNone, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KErronousXMLFileDataMissing2, *emptyBuffer, KErrNone, KGpxMimeType );
+
+ iLog->Log(_L("3) Data missing in XML File"));
+ PrintParsedDataFromEncoderL(KErronousXMLFileDataMissing3, *emptyBuffer, KErrNone, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KErronousXMLFileDataMissing3, *emptyBuffer, KErrNone, KGpxMimeType );
+
+ iLog->Log(_L("Unknown tags in XML File"));
+ PrintParsedDataFromEncoderL(KUnknownTags, *emptyBuffer, KErrNone, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KUnknownTags, *emptyBuffer, KErrNone, KGpxMimeType );
+
+ iLog->Log(_L("Unknown trees in XML File"));
+ PrintParsedDataFromEncoderL(KUnknownTrees, *emptyBuffer, KErrNone, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KUnknownTrees, *emptyBuffer, KErrNone, KGpxMimeType );
+
+ iLog->Log(_L("No End landmarkCollection tag in XML File"));
+ PrintParsedDataFromEncoderL(KNoEndTag1, *emptyBuffer, -993, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KNoEndTag1, *emptyBuffer, -993, KGpxMimeType );
+
+ iLog->Log(_L("No End landmark tag in XML File"));
+ PrintParsedDataFromEncoderL(KNoEndTag2, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KNoEndTag2, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
+
+ iLog->Log(_L("Test with different input formats in XML File"));
+ PrintParsedDataFromEncoderL(KTestXMLInput1, *emptyBuffer, KErrNone, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KTestXMLInput1, *emptyBuffer, KErrNone, KGpxMimeType );
+
+ iLog->Log(_L("Test with repeated tag XML File"));
+ PrintParsedDataFromEncoderL(KErronousXMLFileRepeatedTag, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KErronousXMLFileRepeatedTag, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
+
+ iLog->Log(_L("Test with unclosed tag XML File"));
+ PrintParsedDataFromEncoderL(KErronousXMLFileUnclosedTag1, *emptyBuffer, -993, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KErronousXMLFileUnclosedTag1, *emptyBuffer, -993, KGpxMimeType );
+
+// Incorrect test
+// iLog->Log(_L("Test with unclosed tag XML File"));
+// PrintParsedDataFromEncoderL(KErronousXMLFileUnclosedTag2, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+// PrintParsedDataFromEncoderL(KErronousXMLFileUnclosedTag2, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
+
+ iLog->Log(_L("Test with a non XML File 1"));
+ PrintParsedDataFromEncoderL(KNoXMLFile1, *emptyBuffer, -982, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KNoXMLFile1, *emptyBuffer, -982, KGpxMimeType );
+
+ iLog->Log(_L("Test with a non XML File 2"));
+ PrintParsedDataFromEncoderL(KNoXMLFile2, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType ); //temporarily changed KErrPosLmUnknownFormat to KErrNone
+ PrintParsedDataFromEncoderL(KNoXMLFile2, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType ); //temporarily KErrPosLmUnknownFormat to KErrNone
+
+ iLog->Log(_L("Test with a XML UTFW8 File"));
+ PrintParsedDataFromEncoderL(KXMLFileUTF8, *emptyBuffer, KErrNone, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileUTF8, *emptyBuffer, KErrNone, KGpxMimeType );
+
+ iLog->Log(_L("Test with a XML UTFW16 File"));
+ PrintParsedDataFromEncoderL(KXMLFileUTF16, *emptyBuffer, KErrNone, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileUTF16, *emptyBuffer, KErrNone, KGpxMimeType );
+
+ iLog->Log(_L("Test with a XML File with long category names"));
+ PrintParsedDataFromEncoderL(KXMLFileWithLongCategoryName, *emptyBuffer, KErrNone, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileWithLongCategoryName, *emptyBuffer, KErrNone, KGpxMimeType );
+
+ iLog->Log(_L("Test with a XML File with long landmark name"));
+ PrintParsedDataFromEncoderL(KXMLFileWithLongLandmarkName, *emptyBuffer, KErrNone, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileWithLongLandmarkName, *emptyBuffer, KErrNone, KGpxMimeType );
+
+ iLog->Log(_L("Test with a XML File with long latitude field"));
+ PrintParsedDataFromEncoderL(KXMLFileWithLongLatitudeField, *emptyBuffer, KErrNone, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileWithLongLatitudeField, *emptyBuffer, KErrNone, KGpxMimeType );
+
+ iLog->Log(_L("Test with a XML File with empty collection"));
+ PrintParsedDataFromEncoderL(KXMLFileWithEmptyCollection, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ // N/A for GPX
+
+ iLog->Log(_L("Test with a XML File with Landmark Tag in Landmark Tag"));
+ PrintParsedDataFromEncoderL(KErronousXMLFileTagInTag, *emptyBuffer, EXmlRecursiveEntity, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KErronousXMLFileTagInTag, *emptyBuffer, EXmlRecursiveEntity, KGpxMimeType );
+
+ iLog->Log(_L("Test with a XML File with XML Tag as data field 1"));
+ PrintParsedDataFromEncoderL(KXMLFileWithXMLTagAsDataField1, *emptyBuffer, -993, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileWithXMLTagAsDataField1, *emptyBuffer, -993, KGpxMimeType );
+
+ iLog->Log(_L("Test with a XML File with XML Tag as data field 2"));
+ PrintParsedDataFromEncoderL(KXMLFileWithXMLTagAsDataField2, *emptyBuffer, -993, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileWithXMLTagAsDataField2, *emptyBuffer, -993, KGpxMimeType );
+
+ iLog->Log(_L("Test with a XML File with XML Tag as data field 3"));
+ PrintParsedDataFromEncoderL(KXMLFileWithXMLTagAsDataField3, *emptyBuffer, -993, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileWithXMLTagAsDataField3, *emptyBuffer, -993, KGpxMimeType );
+
+// Incorrect test
+// iLog->Log(_L("Test with a XML File with missing LM prefix"));
+// PrintParsedDataFromEncoderL(KErronousXMLFileMissingLMPrefix, *emptyBuffer, EXmlRecursiveEntity, KLmxMimeType );
+// PrintParsedDataFromEncoderL(KErronousXMLFileMissingLMPrefix, *emptyBuffer, EXmlRecursiveEntity, KGpxMimeType );
+//
+ iLog->Log(_L("Test with UTF-16-bigEndian.xml"));
+ PrintParsedDataFromEncoderL(KXML_UTF_16_BE, *emptyBuffer, KErrNone, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXML_UTF_16_BE, *emptyBuffer, KErrNone, KGpxMimeType );
+
+ iLog->Log(_L("Test with UTF-16-littleEndian.xml"));
+ PrintParsedDataFromEncoderL(KXML_UTF_16_LE, *emptyBuffer, KErrNone, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXML_UTF_16_LE, *emptyBuffer, KErrNone, KGpxMimeType );
+
+ iLog->Log(_L("Test with UTF-8.xml"));
+ PrintParsedDataFromEncoderL(KXML_UTF_8, *emptyBuffer, KErrNone, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXML_UTF_8, *emptyBuffer, KErrNone, KGpxMimeType );
+
+ iLog->Log(_L("Test with UTF-Chinese.xml"));
+ PrintParsedDataFromEncoderL(KXML_UTF_CHINESE, *emptyBuffer, -982, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXML_UTF_CHINESE, *emptyBuffer, -982, KGpxMimeType );
+
+
+
+ //testing kml files
+ iLog->Log(_L("Test with Tp47KML.kml"));
+ PrintParsedDataFromEncoderL(KKMLFile, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLfile1.kml"));
+ PrintParsedDataFromEncoderL(KKMLFile1, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLfile2.kml"));
+ PrintParsedDataFromEncoderL(KKMLFile2, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLfile3.kml"));
+ PrintParsedDataFromEncoderL(KKMLFile3, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ //testing the name tag related cases
+ iLog->Log(_L("Test with Tp47KMLlongName.kml"));
+ PrintParsedDataFromEncoderL(KKMLLongName, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLNameCaps.kml"));
+ PrintParsedDataFromEncoderL(KKMLNameCaps, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousNameTag.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousNameTag, *emptyBuffer, -993, KKmlMimeType ); //EXmlTagMismatch = -993
+
+ iLog->Log(_L("Test with Tp47KMLErroneousNameTagPosition1.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousNameTagPosition1, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousNameTagPosition2.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousNameTagPosition2, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLEmptyName.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyName, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingNameTag1.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingNameTag1, *emptyBuffer, -993, KKmlMimeType ); //EXmlTagMismatch = -993
+
+ iLog->Log(_L("Test with Tp47KMLMissingNameTag2.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingNameTag2, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLNameWithSpecialCharacters1.kml"));
+ PrintParsedDataFromEncoderL(KKMLNameWithSpecialCharacters1, *emptyBuffer, -996, KKmlMimeType ); // EXmlInvalidToken = -996
+
+ iLog->Log(_L("Test with Tp47KMLNameWithSpecialCharacters2.kml"));
+ PrintParsedDataFromEncoderL(KKMLNameWithSpecialCharacters2, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ //testing the PhoneNumber tag related cases
+ iLog->Log(_L("Test with Tp47KMLEmptyPhoneNumber.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyPhoneNumber, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousPhoneNumberTag.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousPhoneNumberTag, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousPhoneNumberTagPosition.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousPhoneNumberTagPosition, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLLongPhoneNumer.kml"));
+ PrintParsedDataFromEncoderL(KKMLLongPhoneNumer, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingPhoneTag1.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingPhoneTag1, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingPhoneTag2.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingPhoneTag2, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLPhoneNumberCaps.kml"));
+ PrintParsedDataFromEncoderL(KKMLPhoneNumberCaps, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLPhoneNumberWithText.kml"));
+ PrintParsedDataFromEncoderL(KKMLPhoneNumberWithText, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLPhoneNumberWithSpecialCharacters1.kml"));
+ PrintParsedDataFromEncoderL(KKMLPhoneNumberWithSpecialCharacters1, *emptyBuffer, -996, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLPhoneNumberWithSpecialCharacters2.kml"));
+ PrintParsedDataFromEncoderL(KKMLPhoneNumberWithSpecialCharacters2, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ //testing the point tag related test cases
+ iLog->Log(_L("Test with Tp47KMLEmptyPoint.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyPoint, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousPointTag.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousPointTag, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousPointTagPosition.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousPointTagPosition, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingPointTag1.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingPointTag1, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingPointTag2.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingPointTag2, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLPointCaps.kml"));
+ PrintParsedDataFromEncoderL(KKMLPointCaps, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLPointTag1.kml"));
+ PrintParsedDataFromEncoderL(KKMLPointTag1, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLPointTag2.kml"));
+ PrintParsedDataFromEncoderL(KKMLPointTag2, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLPointTag3.kml"));
+ PrintParsedDataFromEncoderL(KKMLPointTag3, *emptyBuffer, KErrNone, KKmlMimeType );
+
+
+ //testing the description tag related cases
+ iLog->Log(_L("Test with Tp47KMLEmptyDescription.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyDescription, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLDescriptionWithSpecialCharacters1.kml"));
+ PrintParsedDataFromEncoderL(KKMLDescriptionWithSpecialCharacters1, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLDescriptionWithSpecialCharacters2.kml"));
+ PrintParsedDataFromEncoderL(KKMLDescriptionWithSpecialCharacters2, *emptyBuffer, -996, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLDescriptionCaps.kml"));
+ PrintParsedDataFromEncoderL(KKMLDescriptionCaps, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLLongDescription.kml"));
+ PrintParsedDataFromEncoderL(KKMLLongDescription, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousDescriptionTag.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousDescriptionTag, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousDescriptionTagposition.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousDescriptionTagposition, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingDescriptionTag1.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingDescriptionTag1, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingDescriptionTag2.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingDescriptionTag2, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLDescriptionWithCDATA.kml"));
+ PrintParsedDataFromEncoderL(KKMLDescriptionWithCDATA, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ //testing the folder tag related cases
+ iLog->Log(_L("Test with Tp47KMLErroneousFolderTag.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousFolderTag, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLFolderCaps.kml"));
+ PrintParsedDataFromEncoderL(KKMLFolderCaps, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingFolderTag1.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingFolderTag1, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingFolderTag2.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingFolderTag2, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLEmptyFolderName.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyFolderName, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLLongFolderName.kml"));
+ PrintParsedDataFromEncoderL(KKMLLongFolderName, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLFolderNameWithSpecialCharacters1.kml"));
+ PrintParsedDataFromEncoderL(KKMLFolderNameWithSpecialCharacters1, *emptyBuffer, -996, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLFolderNameWithSpecialCharacters2.kml"));
+ PrintParsedDataFromEncoderL(KKMLFolderNameWithSpecialCharacters2, *emptyBuffer, KErrNone, KKmlMimeType );
+
+
+ //testing the document tag related cases
+ iLog->Log(_L("Test with Tp47KMLDocumentNameWithSpecialCharacters1.kml"));
+ PrintParsedDataFromEncoderL(KKMLDocumentNameWithSpecialCharacters1, *emptyBuffer, -996, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLDocumentNameWithSpecialCharacters2.kml"));
+ PrintParsedDataFromEncoderL(KKMLDocumentNameWithSpecialCharacters2, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLEmptyDocumentName.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyDocumentName, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLLongDocumentName.kml"));
+ PrintParsedDataFromEncoderL(KKMLLongDocumentName, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLDocumentCaps.kml"));
+ PrintParsedDataFromEncoderL(KKMLDocumentCaps, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousDocumentTag.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousDocumentTag, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingDocumentTag1.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingDocumentTag1, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingDocumentTag2.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingDocumentTag2, *emptyBuffer, -993, KKmlMimeType );
+
+
+ //testing the address tag related cases
+ iLog->Log(_L("Test with Tp47KMLAddressCaps.kml"));
+ PrintParsedDataFromEncoderL(KKMLAddressCaps, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLAddressWithSpecialCharacters1.kml"));
+ PrintParsedDataFromEncoderL(KKMLAddressWithSpecialCharacters1, *emptyBuffer, -996, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLAddressWithSpecialCharacters2.kml"));
+ PrintParsedDataFromEncoderL(KKMLAddressWithSpecialCharacters2, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLEmptyAddress1.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyAddress1, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLEmptyAddress2.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyAddress2, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLLongAddress1.kml"));
+ PrintParsedDataFromEncoderL(KKMLLongAddress1, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLLongAddress2.kml"));
+ PrintParsedDataFromEncoderL(KKMLLongAddress2, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLLongAddress3.kml"));
+ PrintParsedDataFromEncoderL(KKMLLongAddress3, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousAddressTag.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousAddressTag, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousAddressTagPosition.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousAddressTagPosition, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingAddressTag1.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingAddressTag1, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingAddressTag2.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingAddressTag2, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ //testing the coordinate tag related cases
+ iLog->Log(_L("Test with Tp47KMLCoordinateCaps.kml"));
+ PrintParsedDataFromEncoderL(KKMLCoordinateCaps, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMoreCoordinates.kml"));
+ PrintParsedDataFromEncoderL(KKMLMoreCoordinates, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousCoordinateTag.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousCoordinateTag, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousCoordinateTagPosition.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousCoordinateTagPosition, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLCoordinates1.kml"));
+ PrintParsedDataFromEncoderL(KKMLCoordinates1, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLCoordinates2.kml"));
+ PrintParsedDataFromEncoderL(KKMLCoordinates2, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLCoordinates3.kml"));
+ PrintParsedDataFromEncoderL(KKMLCoordinates3, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLCoordinates4.kml"));
+ PrintParsedDataFromEncoderL(KKMLCoordinates4, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLCoordinates5.kml"));
+ PrintParsedDataFromEncoderL(KKMLCoordinates5, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLCoordinates6.kml"));
+ PrintParsedDataFromEncoderL(KKMLCoordinates6, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLLongCoordinates1.kml"));
+ PrintParsedDataFromEncoderL(KKMLLongCoordinates1, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLLongCoordinates2.kml"));
+ PrintParsedDataFromEncoderL(KKMLLongCoordinates2, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingCoordinateTag1.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingCoordinateTag1, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingCoordinateTag2.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingCoordinateTag2, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLEmptyCoordinates1.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyCoordinates1, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLEmptyCoordinates2.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyCoordinates2, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLEmptyCoordinates3.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyCoordinates3, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLEmptyCoordinates4.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyCoordinates4, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLEmptyCoordinates5.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyCoordinates5, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLEmptyCoordinates6.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyCoordinates6, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLEmptyCoordinates7.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyCoordinates7, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousCoordinates1.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousCoordinates1, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousCoordinates2.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousCoordinates2, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousCoordinates3.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousCoordinates3, *emptyBuffer, KErrOverflow, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousCoordinates4.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousCoordinates4, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousCoordinates5.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousCoordinates5, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLNegativeCoordinates.kml"));
+ PrintParsedDataFromEncoderL(KKMLNegativeCoordinates, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ //testing some invalid cases
+ iLog->Log(_L("Test with Tp47KMLErroneousTextWithinPlacemark.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousTextWithinPlacemark, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLEmptyfile1.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyfile1, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLEmptyfile2.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyfile2, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLInvalidfile.kml"));
+ PrintParsedDataFromEncoderL(KKMLInvalidfile, *emptyBuffer, -983, KKmlMimeType ); //EXmlMisplacedPi = -983
+
+ //testing the Placemark tag related cases
+ iLog->Log(_L("Test with Tp47KMLPlacemarkCaps.kml"));
+ PrintParsedDataFromEncoderL(KKMLPlacemarkCaps, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLErroneousPlacemarkTag.kml"));
+ PrintParsedDataFromEncoderL(KKMLErroneousPlacemarkTag, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingPlacemarkTag1.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingPlacemarkTag1, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLMissingPlacemarkTag2.kml"));
+ PrintParsedDataFromEncoderL(KKMLMissingPlacemarkTag2, *emptyBuffer, -993, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLEmptyPlacemarkTag.kml"));
+ PrintParsedDataFromEncoderL(KKMLEmptyPlacemarkTag, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ //testing with kml files downloaded from google earth
+ iLog->Log(_L("Test with Tp47KMLGandhi Museum.kml"));
+ PrintParsedDataFromEncoderL(KKMLGandhiMuseum, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLIndus Heritage Centre, India.kml"));
+ PrintParsedDataFromEncoderL(KKMLIndusHeritageCentreIndia, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLhilton hotels near new york (1 - 10).kml"));
+ PrintParsedDataFromEncoderL(KKMLHiltonHotels, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLFile4.kml"));
+ PrintParsedDataFromEncoderL(KKMLFile4, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLFile5.kml"));
+ PrintParsedDataFromEncoderL(KKMLFile5, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLFile6.kml"));
+ PrintParsedDataFromEncoderL(KKMLFile6, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLFile7.kml"));
+ PrintParsedDataFromEncoderL(KKMLFile7, *emptyBuffer, KErrNone, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLFile8.kml"));
+ PrintParsedDataFromEncoderL(KKMLFile8, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
+
+ iLog->Log(_L("Test with Tp47KMLFile9.kml"));
+ PrintParsedDataFromEncoderL(KKMLFile9, *emptyBuffer, -993, KKmlMimeType );
+
+ // Now compare tha trace file against the correct one
+ RFile correctFile;
+ RFile file;
+
+ iLog->Log(_L(">>>>>>>Comparing files<<<<<"));
+
+ TFileName filename;
+ CreateCorrectXmlFileL( KCorrectFile, filename );
+
+ User::LeaveIfError(correctFile.Open(iFileSession, filename, EFileRead));
+ CleanupClosePushL(correctFile);
+ User::LeaveIfError(file.Open(iFileSession, KFileTrace, EFileRead));
+ CleanupClosePushL(file);
+
+ HBufC* correctLinebuffer = HBufC::NewLC( KBufSize );
+ TPtr correctLine = correctLinebuffer->Des();
+ HBufC* linebuffer = HBufC::NewLC( KBufSize );
+ TPtr line = linebuffer->Des();
+
+ TInt err = KErrNone;
+ TBool done = EFalse;
+ TInt lineNr = 0;
+
+ while (ReadLn(correctFile, correctLine) != KErrEof && !done)
+ {
+ lineNr++;
+ err = ReadLn(file, line);
+ if ( err == KErrEof )
+ {
+ done = ETrue;
+ }
+ correctLine.Trim();
+ line.Trim();
+ if (correctLine.Compare(line) != KErrNone)
+ {
+ HBufC* buf = HBufC::NewLC( 128 );
+ TPtr buffer = buf->Des();
+
+ buffer.Format(_L("ERROR in TraceFile on line %d: "), lineNr);
+
+ iLog->Log( buffer );
+ iLog->Log( correctLine );
+ iLog->Log( line );
+ iErrorsFound++;
+ CleanupStack::PopAndDestroy( buf );
+ }
+ }
+ CleanupStack::PopAndDestroy(linebuffer);
+ CleanupStack::PopAndDestroy(correctLinebuffer);
+ CleanupStack::PopAndDestroy(&file);
+ CleanupStack::PopAndDestroy(&correctFile);
+
+ // EOF for trace file was reach before EOF in the correct file
+ if (done)
+ {
+ iLog->Log(_L("ERROR: EOF for Trace file was reached to early"));
+ iErrorsFound++;
+ }
+
+ iLog->Log(_L("Test with Empty MediaLink"));
+ PrintParsedDataFromEncoderL(KXMLFileWithEmptyMedialink, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileWithEmptyMedialink, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
+
+ iLog->Log(_L("Test with Empty Coordinates"));
+ PrintParsedDataFromEncoderL(KXMLFileWithEmptyCoordinates, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileWithEmptyCoordinates, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
+
+ iLog->Log(_L("Test with Empty AdresseInfo"));
+ PrintParsedDataFromEncoderL(KXMLFileWithEmptyAdresseInfo, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ // N/A for GPX
+
+ iLog->Log(_L("Test with Erronous Text in Tag1"));
+ PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag1, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag1, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
+
+ iLog->Log(_L("Test with Erronous Text in Tag2"));
+ PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag2, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag2, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
+
+ iLog->Log(_L("Test with Erronous Text in Tag3"));
+ PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag3, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag3, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
+
+ iLog->Log(_L("Test with Erronous Text in Tag4"));
+ PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag4, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag4, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
+
+ iLog->Log(_L("Test with Erronous Text in Tag5"));
+ PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag5, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag5, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
+
+ iLog->Log(_L("Test with Erronous Text in Tag6"));
+ PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag6, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
+ PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag6, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
+
+ CheckIndexNotSupportedL();
+
+ DoCancelTestL();
+
+ if (iErrorsFound != KErrNone)// LogErrorAndLeave(_L("Errors found in TP47"));
+ {
+ iLog->Log(_L("Errors found in TP47"));
+ User::Leave(-1);
+ }
+ }
+
+// ---------------------------------------------------------
+// CPosTp47::CheckIndexNotSupportedL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosTp47::CheckIndexNotSupportedL()
+ {
+ iLog->Log(_L("CheckIndexNotSupportedL"));
+
+ iLandmarkParser = CPosLandmarkParser::NewL(KLmxMimeType);
+ iLandmarkParser->SetInputFileL(KFileName);
+
+ // This function should leave with KErrNotSupported
+ TRAPD(err, iOperation = iLandmarkParser->ParseContentL(ETrue));
+
+ delete iOperation;
+ iOperation = NULL;
+
+ delete iLandmarkParser;
+ iLandmarkParser = NULL;
+
+ if (err != KErrNotSupported)
+ {
+ iLog->Log(_L("ParseContentL(ETrue) did not leave with KErrNotSupported"));
+ User::Leave(err);
+ }
+
+ iLandmarkParser = CPosLandmarkParser::NewL(KGpxMimeType);
+ iLandmarkParser->SetInputFileL(KFileName);
+
+ // This function should leave with KErrNotSupported
+ TRAP(err, iOperation = iLandmarkParser->ParseContentL(ETrue));
+
+ delete iOperation;
+ iOperation = NULL;
+
+ delete iLandmarkParser;
+ iLandmarkParser = NULL;
+
+ if (err != KErrNotSupported)
+ {
+ iLog->Log(_L("ParseContentL(ETrue) (GPX) did not leave with KErrNotSupported"));
+ User::Leave(err);
+ }
+
+ iLog->Log(_L("CheckIndexNotSupportedL Done"));
+ }
+
+// ---------------------------------------------------------
+// CPosTp47::DoCancelTestL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosTp47::DoCancelTestL()
+ {
+ iLog->Log(_L("DoCancelTestL"));
+ iLandmarkParser = CPosLandmarkParser::NewL(KLmxMimeType);
+ iLandmarkParser->SetInputFileL(KFileName);
+
+ iOperation = iLandmarkParser->ParseContentL();
+
+ TRequestStatus status = KPosLmOperationNotComplete;
+ TReal32 progress;
+
+ // 1 ) Cancel parse function by deleting iOperation
+ delete iOperation;
+ iOperation = NULL;
+
+ TUint32 nr = iLandmarkParser->NumOfParsedLandmarks();
+ if ((TInt)nr != 0)
+ {
+ iLog->Log(_L("No landmarks should be found"));
+ User::Leave(KErrNone);
+ }
+
+ // No landmark should be found
+ TRAPD(err, iLandmarkParser->LandmarkLC());
+ if (err != KErrNotFound)
+ {
+ iLog->Log(_L("ERROR: No Landmark should be found"));
+ iErrorsFound++;
+ }
+
+ // 1 ) Cancel parse function by changing input
+ iOperation = iLandmarkParser->ParseContentL();
+
+ // Get the first landmark
+ iOperation->NextStep(status, progress);
+ // Wait for NextStep to complete
+ User::WaitForRequest(status);
+ nr = iLandmarkParser->NumOfParsedLandmarks();
+ if ((TInt)nr != 1)
+ {
+ iLog->Log(_L("One landmark should be found"));
+ User::Leave(KErrNone);
+ }
+
+ // Change input
+ iLandmarkParser->SetInputFileL(KFileName);
+
+ nr = iLandmarkParser->NumOfParsedLandmarks();
+ if ((TInt)nr != 0)
+ {
+ iLog->Log(_L("No landmarks should be found"));
+ User::Leave(KErrNone);
+ }
+
+ // No landmark should be found
+ TRAP(err, iLandmarkParser->LandmarkLC());
+ if (err != KErrNotFound)
+ {
+ iLog->Log(_L("ERROR: No Landmark should be found"));
+ iErrorsFound++;
+ }
+
+ delete iOperation;
+ iOperation = NULL;
+ delete iLandmarkParser;
+ iLandmarkParser = NULL;
+ iLog->Log(_L("DoCancelTestL Done"));
+ }
+
+// ---------------------------------------------------------
+// CPosTp47::CreateXMLData
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosTp47::CreateXMLData(TBool aUseFile)
+ {
+ iLog->Log(_L("CreateXMLData"));
+ // 1) Create an encoder object
+ iLandmarkEncoder = CPosLandmarkEncoder::NewL(KLmxMimeType);
+
+ CPosLmCategoryManager* categoryManager = CPosLmCategoryManager::NewL(*iDatabase);
+ CleanupStack::PushL(categoryManager);
+
+ if (aUseFile)
+ {
+ DeleteFileL(KFileName);
+ // 2) Use file for encoding, set output file
+ iLandmarkEncoder->SetOutputFileL(KFileName);
+ }
+ else
+ {
+ // 2) Use buffer for encoding
+ iEncoderBuffer = iLandmarkEncoder->SetUseOutputBufferL();
+ }
+
+ // 300 characters
+ _LIT(KLongFieldName, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890");
+ _LIT(KLongFieldDescription, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890");
+ _LIT(KLongFieldDescriptionExtra, "A________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________BA________B");
+ _LIT(KLongFieldDescriptionExtra2, "Extra Extra Extra Extra Extra Extra Extra Extra Extra Extra Extra Extra");
+
+ iLandmarkEncoder->AddCollectionDataL(EPosLmCollDataCollectionName, KLongFieldName);
+ iLandmarkEncoder->AddCollectionDataL(EPosLmCollDataCollectionDescription, KLongFieldDescription);
+ iLandmarkEncoder->AddCollectionDataL((TPosLmCollectionDataId)(EPosLmCollDataContentSpecificDataBegin), KLongFieldDescriptionExtra);
+ iLandmarkEncoder->AddCollectionDataL((TPosLmCollectionDataId)(EPosLmCollDataContentSpecificDataBegin + 1), KLongFieldDescriptionExtra2);
+
+ iLog->Log(_L("Create Data..."));
+
+ // 3) Add one landmark with all fields set to be encoded
+ CPosLandmark* lm1 = CreateXMLLandmarkLC(_L("TP47Landmark1"));
+ AddAllXMLFieldsL(lm1);
+
+ iLandmarkEncoder->AddLandmarkL(*lm1);
+ iLandmarks.Append(lm1);
+ CleanupStack::Pop(lm1);
+
+ // 4) Add one more landmark to be encoded (id27 "LOG9" in categories 11-17)
+ CPosLandmark* lm2 = iDatabase->ReadLandmarkLC(27);
+ iLandmarkEncoder->AddLandmarkL(*lm2);
+ // Remove field 408 which is not exported
+ lm2->RemovePositionField(408);
+ iLandmarks.Append(lm2);
+ CleanupStack::Pop(lm2);
+
+ // 5) Add one category (pizzeria) to the latest added landmark
+ CPosLandmarkCategory* landmarkCategory = categoryManager->ReadCategoryLC(1);
+
+ iLandmarkEncoder->AddCategoryForLatestLandmarkL(*landmarkCategory);
+ CleanupStack::PopAndDestroy(landmarkCategory);
+
+ // 6) Add one landmark to be encoded (id=18 "enat?r" in category 18)
+ lm1 = iDatabase->ReadLandmarkLC(18);
+ iLandmarkEncoder->AddLandmarkL(*lm1);
+ // Remove field 408 which is not exported
+ lm1->RemovePositionField(408);
+ iLandmarks.Append(lm1);
+ CleanupStack::Pop(lm1);
+
+ // 7) Add one category (Frisör) to the latest added landmark
+ landmarkCategory = categoryManager->ReadCategoryLC(18);
+
+ iLandmarkEncoder->AddCategoryForLatestLandmarkL(*landmarkCategory);
+ CleanupStack::PopAndDestroy(landmarkCategory);
+
+ // 8 ) Add one global category (Entertainment) to the latest added landmark
+
+ TPosLmItemId globalCategoryId = categoryManager->GetGlobalCategoryL(15000);
+ if (globalCategoryId != KPosLmNullItemId)
+ {
+ landmarkCategory = categoryManager->ReadCategoryLC(globalCategoryId);
+ iLandmarkEncoder->AddCategoryForLatestLandmarkL(*landmarkCategory);
+ CleanupStack::PopAndDestroy(landmarkCategory);
+ }
+ else
+ {
+ iLog->Log(_L("Global category was not found1"));
+ User::Leave(-1);
+ }
+
+ // 9 ) Add one global category (People) to the latest added landmark
+
+ globalCategoryId = categoryManager->GetGlobalCategoryL(27000);
+ if (globalCategoryId != KPosLmNullItemId)
+ {
+ landmarkCategory = categoryManager->ReadCategoryLC(globalCategoryId);
+ iLandmarkEncoder->AddCategoryForLatestLandmarkL(*landmarkCategory);
+ CleanupStack::PopAndDestroy(landmarkCategory);
+ }
+ else
+ {
+ iLog->Log(_L("Global category was not found2"));
+ User::Leave(-1);
+ }
+ // 11) Add one landmark with all fields set to empty (_L(""))
+ lm1 = CreateXMLLandmarkLC(_L("TP47LandmarkEmpty"));
+ AddAllEmptyXMLFieldsL(lm1);
+ iLandmarkEncoder->AddLandmarkL(*lm1);
+ // Remove field 402 (EPositionFieldCountryCode) which is not exported when empty
+ lm1->RemovePositionField(402);
+ iLandmarks.Append(lm1);
+ CleanupStack::Pop(lm1);
+
+ // 12) Add one landmark with all fields set to be encoded
+ lm1 = CreateXMLLandmarkLC(_L("TP47Landmark2"));
+ AddAllXMLFieldsL(lm1);
+ iLandmarkEncoder->AddLandmarkL(*lm1);
+
+ iLandmarks.Append(lm1);
+ CleanupStack::Pop(lm1);
+
+ // 13) Add one global category (Shopping) to the latest added landmark
+ globalCategoryId = categoryManager->GetGlobalCategoryL(36000);
+ if (globalCategoryId != KPosLmNullItemId)
+ {
+ landmarkCategory = categoryManager->ReadCategoryLC(globalCategoryId);
+ iLandmarkEncoder->AddCategoryForLatestLandmarkL(*landmarkCategory);
+ CleanupStack::PopAndDestroy(landmarkCategory);
+ }
+ else
+ {
+ iLog->Log(_L("Global category was not found3"));
+ User::Leave(-1);
+ }
+
+ // 14) Add one global category (Sports) to the latest added landmark
+ globalCategoryId = categoryManager->GetGlobalCategoryL(42000);
+ if (globalCategoryId != KPosLmNullItemId)
+ {
+ landmarkCategory = categoryManager->ReadCategoryLC(globalCategoryId);
+ iLandmarkEncoder->AddCategoryForLatestLandmarkL(*landmarkCategory);
+ CleanupStack::PopAndDestroy(landmarkCategory);
+ }
+ else
+ {
+ iLog->Log(_L("Global category was not found4"));
+ User::Leave(-1);
+ }
+
+ // ) Finalize encoding
+ iLog->Log(_L("FinalizeEncodingL"));
+ ExecuteAndDeleteLD(iLandmarkEncoder->FinalizeEncodingL());
+ iLog->Log(_L("FinalizeEncodingL Done"));
+
+ delete iLandmarkEncoder;
+ iLandmarkEncoder = NULL;
+ CleanupStack::PopAndDestroy(categoryManager);
+ }
+
+// ---------------------------------------------------------
+// CPosTp47::CheckXMLData
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosTp47::CheckXMLData(TBool aUseFile)
+ {
+ iLog->Log(_L("CheckXMLData"));
+
+ // This number must be updated if any more landmarks are added
+ const TInt KNrOfAddedLandmarks = 5;
+
+ iLandmarkParser = CPosLandmarkParser::NewL(KLmxMimeType);
+
+ CPosLmCategoryManager* categoryManager = CPosLmCategoryManager::NewL(*iDatabase);
+ CleanupStack::PushL(categoryManager);
+
+ RArray<TPosLmItemId> array;
+ CleanupClosePushL(array);
+
+ HBufC8* bufferContent = NULL;
+
+ if (aUseFile)
+ {
+ iLog->Log(_L("----->Using FILE<-------"));
+ iLandmarkParser->SetInputFileL(KFileName);
+ }
+ else
+ {
+ iLog->Log(_L("----->Using BUFFER<-------"));
+ bufferContent = HBufC8::NewLC(iEncoderBuffer->Size());
+ TPtr8 ptr = bufferContent->Des();
+ iEncoderBuffer->Read(0, ptr, iEncoderBuffer->Size());
+ iLandmarkParser->SetInputBuffer(*bufferContent);
+ }
+
+ iOperation = iLandmarkParser->ParseContentL();
+ TRequestStatus status = KPosLmOperationNotComplete;
+ TReal32 progress;
+ TInt number = 0;
+
+ // 1) Get the first landmark, "TP47Landmark1", no categories
+ iOperation->NextStep(status, progress);
+ // Wait for NextStep to complete
+ User::WaitForRequest(status);
+ // Get last parsed landmark
+ CPosLandmark* lm = iLandmarkParser->LandmarkLC();
+ lm->GetCategoriesL(array);
+ AssertTrueSecL(array.Count() == 0, _L("1) Wrong number of landmark categories"));
+ iErrorsFound += CompareXMLLandmarksL(*iLandmarks[number++], *lm);
+ CleanupStack::PopAndDestroy(lm);
+
+ TUint32 nr = iLandmarkParser->NumOfParsedLandmarks();
+ if ((TInt)nr != number)
+ {
+ iLog->Log(_L("Wrong number of landmarks parsed"));
+ User::Leave(-1);
+ }
+
+ // 2) Get landmark, "LOG9", local category Pizzeria
+ iOperation->NextStep(status, progress);
+ // Wait for NextStep to complete
+ User::WaitForRequest(status);
+ // Get last parsed landmark
+ lm = iLandmarkParser->LandmarkLC();
+ lm->GetCategoriesL(array);
+ AssertTrueSecL(array.Count() == 1, _L("2) Wrong number of landmark categories"));
+ iErrorsFound += CompareXMLLandmarksL(*iLandmarks[number++], *lm);
+ CPosLandmarkCategory* category = iLandmarkParser->LandmarkCategoryLC(array[0]);
+ CPosLandmarkCategory* cat = categoryManager->ReadCategoryLC(1);
+ iErrorsFound += CompareXMLCategoriesL(*cat, *category);
+ CleanupStack::PopAndDestroy(cat);
+ CleanupStack::PopAndDestroy(category);
+ CleanupStack::PopAndDestroy(lm);
+
+ nr = iLandmarkParser->NumOfParsedLandmarks();
+ if ((TInt)nr != number)
+ {
+ iLog->Log(_L("Wrong number of landmarks parsed"));
+ User::Leave(-1);
+ }
+
+ // 3) Get landmark, "enato?r", local categories Frisör, Hunddagis and global categories Sports Ground, Gas Station
+ iOperation->NextStep(status, progress);
+ // Wait for NextStep to complete
+ User::WaitForRequest(status);
+ // Get last parsed landmark
+ lm = iLandmarkParser->LandmarkLC();
+ lm->GetCategoriesL(array);
+ AssertTrueSecL(array.Count() == 3, _L("3) Wrong number of landmark categories"));
+ iErrorsFound += CompareXMLLandmarksL(*iLandmarks[number++], *lm);
+
+ // check local category Frisör here
+ category = iLandmarkParser->LandmarkCategoryLC(array[0]);
+ cat = categoryManager->ReadCategoryLC(18);
+ iErrorsFound += CompareXMLCategoriesL(*cat, *category);
+ CleanupStack::PopAndDestroy(cat);
+ CleanupStack::PopAndDestroy(category);
+
+ // check global category Sports Ground globalid=7 (id=33) here
+ category = iLandmarkParser->LandmarkCategoryLC(array[1]);
+ // cat = categoryManager->ReadCategoryLC(33);
+ cat = categoryManager->ReadCategoryLC(31);
+ iErrorsFound += CompareXMLCategoriesL(*cat, *category);
+ CleanupStack::PopAndDestroy(cat);
+ CleanupStack::PopAndDestroy(category);
+
+ //Check global category "id=3 Gas station" here
+ category = iLandmarkParser->LandmarkCategoryLC(array[2]);
+ //cat = categoryManager->ReadCategoryLC(29);
+ cat = categoryManager->ReadCategoryLC(35);
+ iErrorsFound += CompareXMLCategoriesL(*cat, *category);
+ CleanupStack::PopAndDestroy(cat);
+ CleanupStack::PopAndDestroy(category);
+
+ CleanupStack::PopAndDestroy(lm);
+ nr = iLandmarkParser->NumOfParsedLandmarks();
+ if ((TInt)nr != number)// LogErrorAndLeave(_L("Wrong number of landmarks parsed"));
+ {
+ iLog->Log(_L("Wrong number of landmarks parsed"));
+ User::Leave(-1);
+ }
+
+ // 4) Get landmark, TP47LandmarkEmpty, no categories
+ iOperation->NextStep(status, progress);
+ // Wait for NextStep to complete
+ User::WaitForRequest(status);
+ // Get last parsed landmark
+ lm = iLandmarkParser->LandmarkLC();
+ lm->GetCategoriesL(array);
+ AssertTrueSecL(array.Count() == 0, _L("4) Wrong number of landmark categories"));
+ iErrorsFound += CompareXMLLandmarksL(*iLandmarks[number++], *lm);
+ CleanupStack::PopAndDestroy(lm);
+
+ nr = iLandmarkParser->NumOfParsedLandmarks();
+ if ((TInt)nr != number)
+ {
+ iLog->Log(_L("Wrong number of landmarks parsed"));
+ User::Leave(-1);
+ }
+
+ // 5) Get landmark, TP47Landmark2, local categories Burger King and global categories Garage, Bus Stop
+ iOperation->NextStep(status, progress);
+ // Wait for NextStep to complete
+ User::WaitForRequest(status);
+ // Get last parsed landmark
+ lm = iLandmarkParser->LandmarkLC();
+ lm->GetCategoriesL(array);
+ AssertTrueSecL(array.Count() == 2, _L("5) Wrong number of landmark categories"));
+ iErrorsFound += CompareXMLLandmarksL(*iLandmarks[number++], *lm);
+
+ // check global category Garage globalid=8 (id=34) here
+ category = iLandmarkParser->LandmarkCategoryLC(array[0]);
+ //cat = categoryManager->ReadCategoryLC(34);
+ cat = categoryManager->ReadCategoryLC(38);
+ iErrorsFound += CompareXMLCategoriesL(*cat, *category);
+ CleanupStack::PopAndDestroy(cat);
+ CleanupStack::PopAndDestroy(category);
+
+ //Check global category "id=10 Bus Stop" here
+ category = iLandmarkParser->LandmarkCategoryLC(array[1]);
+ // cat = categoryManager->ReadCategoryLC(36);
+ cat = categoryManager->ReadCategoryLC(40);
+ iErrorsFound += CompareXMLCategoriesL(*cat, *category);
+ CleanupStack::PopAndDestroy(cat);
+ CleanupStack::PopAndDestroy(category);
+ CleanupStack::PopAndDestroy(lm);
+
+ // Check that correct number of landmarks has been parsed
+ if (number != KNrOfAddedLandmarks)
+ {
+ iLog->Log(_L("Wrong number of landmarks parsed"));
+ User::Leave(-1);
+ }
+ nr = iLandmarkParser->NumOfParsedLandmarks();
+ if ((TInt)nr != KNrOfAddedLandmarks)
+ {
+ iLog->Log(_L("Wrong number of landmarks parsed"));
+ User::Leave(-1);
+ }
+
+ if (!aUseFile) CleanupStack::PopAndDestroy(bufferContent);
+
+ CleanupStack::PopAndDestroy(&array);
+ CleanupStack::PopAndDestroy(categoryManager);
+
+ delete iLandmarkParser;
+ iLandmarkParser = NULL;
+
+ delete iOperation;
+ iOperation = NULL;
+
+ // iEncoderBuffer was allocated in CreateXMLData
+ delete iEncoderBuffer;
+ iEncoderBuffer = NULL;
+
+ iLog->Log(_L("CheckXMLData Done"));
+ }
+
+// ---------------------------------------------------------
+// CPosTp47::PrintParsedDataFromEncoderL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosTp47::PrintParsedDataFromEncoderL(
+ const TDesC& aFile,
+ const TDesC8& aBuffer,
+ TInt aExpectedStatusCode,
+ const TDesC8& aMimeType)
+ {
+ iLog->Log(_L("===== PrintParsedDataFromEncoderL ======="));
+
+
+ iLandmarkParser = CPosLandmarkParser::NewL(aMimeType);
+
+ if (aFile != KNullDesC)
+ {
+ TFileName file( aFile );
+ if ( aMimeType == KGpxMimeType )
+ {
+ TInt pos = file.Find( KXmlFileExt );
+ file.Replace( pos, KXmlFileExt().Length(), KGpxFileExt );
+ }
+ iLog->Log(_L("FILE (%S)"), &file );
+ TraceL(_L("----->Using FILE<-------"));
+ iLog->Log(_L("Calling TraceL"));
+ TraceL(file);
+ iLog->Log(_L("Input file to be set"));
+ iLandmarkParser->SetInputFileL(file);
+ iLog->Log(_L("Input file set"));
+ }
+ else
+ {
+ iLog->Log(_L("BUFFER (size %d)"), aBuffer.Size() );
+ TraceL(_L("----->Using BUFFER<-------"));
+ iLandmarkParser->SetInputBuffer(aBuffer);
+ }
+
+ iOperation = iLandmarkParser->ParseContentL();
+ TRequestStatus status = KPosLmOperationNotComplete;
+ TReal32 progress;
+ TInt number = 0;
+
+ RArray<TPosLmItemId> array;
+ CleanupClosePushL(array);
+ iLog->Log(_L("Parse begin"));
+ while (status == KPosLmOperationNotComplete)
+ {
+ iLog->Log(_L("--- Parsing ---------------------------"));
+ TraceL(_L("------------------------------"));
+ iOperation->NextStep(status, progress);
+
+ // Wait for NextStep to complete
+ User::WaitForRequest(status);
+ if (status != KPosLmOperationNotComplete && status != KErrNone)
+ {
+ HBufC* buffer = HBufC::NewLC( 128);
+ TPtr buf = buffer->Des();
+
+ buf.Format(_L("\tStatus %d"), status.Int());
+ iLog->Log(buf);
+ TraceL(buf);
+
+ CleanupStack::PopAndDestroy( buffer );
+ buffer = NULL;
+ }
+ else
+ {
+ if ( iLandmarkParser->NumOfParsedLandmarks() )
+ {
+ // Get last parsed landmark
+ CPosLandmark* lm = iLandmarkParser->LandmarkLC();
+ TPtrC lmName;
+ TPtrC catName;
+ lm->GetLandmarkName(lmName);
+ lm->GetCategoriesL(array);
+ //iLog->Log(lmName);
+ for (TInt i=0;i<array.Count();i++)
+ {
+ CPosLandmarkCategory* category = iLandmarkParser->LandmarkCategoryLC(array[i]);
+ category->GetCategoryName( catName );
+
+ HBufC* buffer = HBufC::NewLC( 128 + catName.Length());
+ TPtr buf = buffer->Des();
+
+ if ( category->GlobalCategory())
+ {
+ buf.Append(_L("\tGlobal category: "));
+ }
+ else
+ {
+ buf.Append(_L("\tLocal category: "));
+ }
+ buf.Append(catName);
+ iLog->Log(buf);
+ TraceL(buf);
+ CleanupStack::PopAndDestroy(buffer);
+ buffer = NULL;
+ CleanupStack::PopAndDestroy(category);
+ }
+
+ if ( aMimeType == KKmlMimeType )
+ {
+ PrintLandmarkFieldsWithDescriptionL(*lm, ETrue);
+ }
+ else
+ {
+ PrintLandmarkFieldsL(*lm, ETrue);
+ }
+
+ number++;
+ CleanupStack::PopAndDestroy(lm);
+ }
+ }
+ }
+
+ iLog->Log(_L("--- Parsing end ---------------------------"));
+ TraceL(_L("------------------------------"));
+ CleanupStack::PopAndDestroy(&array);
+
+ if (status.Int() != aExpectedStatusCode)
+ {
+ HBufC* buffer = HBufC::NewLC( 128 );
+ TPtr buf = buffer->Des();
+
+ buf.Format(_L("\tERROR: Wrong status returned, was %d, should be %d"), status.Int(), aExpectedStatusCode);
+ iLog->Log( buf );
+ iErrorsFound++;
+
+ CleanupStack::PopAndDestroy( buffer );
+ buffer = NULL;
+ }
+
+ TUint32 nr = iLandmarkParser->NumOfParsedLandmarks();
+ HBufC* buffer = HBufC::NewLC( 256 );
+ TPtr buf = buffer->Des();
+ buf.Format(_L("\tNr of Parsed landmarks %d, should be %d"), nr, number);
+ iLog->Log(buf);
+ TraceL(buf);
+
+ CleanupStack::PopAndDestroy( buffer );
+ buffer = NULL;
+ if (nr != (TUint32)number)
+ {
+ iLog->Log(_L("\tERROR: Wrong number of landmarks parsed returned!"));
+ iErrorsFound++;
+ }
+
+ TPosLmCollectionDataId lmId = iLandmarkParser->FirstCollectionDataId();
+
+ iLog->Log(_L("--- CollectionData ---"));
+ TraceL(_L("--- CollectionData ---"));
+
+ if (lmId != EPosLmCollDataNone)
+ {
+ TPtrC first = iLandmarkParser->CollectionData(lmId);
+ HBufC* buffer = HBufC::NewLC( first.Length() + 256 );
+ TPtr buf = buffer->Des();
+ buf.Zero();
+ buf.Format(_L("\t(1)Collection Id: %d CollectionData: "), lmId);
+ buf.Append(first);
+ iLog->Log(buf);
+ TraceL(buf);
+ CleanupStack::PopAndDestroy( buffer );
+ buffer = NULL;
+ }
+ else
+ {
+ iLog->Log(_L("\tNo collection data found 1"));
+ }
+
+ while (lmId != EPosLmCollDataNone)
+ {
+ lmId = iLandmarkParser->NextCollectionDataId(lmId);
+ if (lmId != EPosLmCollDataNone)
+ {
+ TPtrC first = iLandmarkParser->CollectionData(lmId);
+
+ HBufC* buffer = HBufC::NewLC( first.Length() + 256 );
+ TPtr buf = buffer->Des();
+ buf.Zero();
+ buf.Format(_L("\t(2)Collection Id: %d CollectionData: "), lmId);
+ buf.Append(first);
+ iLog->Log(buf);
+ TraceL(buf);
+
+ CleanupStack::PopAndDestroy( buffer );
+ buffer = NULL;
+ }
+ else
+ {
+ iLog->Log(_L("\tNo collection data found 2"));
+ }
+ }
+
+ iLog->Log(_L("--- CollectionData ---"));
+ TraceL(_L("--- CollectionData ---"));
+
+
+ delete iOperation;
+ iOperation = NULL;
+ delete iLandmarkParser;
+ iLandmarkParser = NULL;
+ iLog->Log(_L("====== PrintParsedDataFromEncoderL Done ========\n"));
+ }
+
+// ---------------------------------------------------------
+// CPosTp47::PrintLandmarkFieldsL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosTp47::PrintLandmarkFieldsL(const CPosLandmark& aLandmark, TBool aTraceFlag)
+ {
+ TPositionFieldId sourceFieldId = aLandmark.FirstPositionFieldId();
+ TLocality loc;
+
+ TInt err;
+ TPtrC landmarkName;
+ err = aLandmark.GetLandmarkName(landmarkName);
+ if (err == KErrNone)
+ {
+ HBufC* buffer = HBufC::NewLC( landmarkName.Length() + 256 );
+ TPtr buf = buffer->Des();
+
+ buf.Append( _L(" \tLandmark Name: "));
+ buf.Append( landmarkName );
+ iLog->Log( buf );
+ if( aTraceFlag )
+ {
+ TraceL( buf );
+ }
+
+ CleanupStack::PopAndDestroy( buffer );
+ buffer = NULL;
+ }
+
+ err = aLandmark.GetPosition(loc);
+ if (err == KErrNone)
+ {
+ HBufC* buffer = HBufC::NewLC( 1024 );
+ TPtr buf = buffer->Des();
+ TRealFormat format( 12, KRealFormatFixed );
+ format.iPoint = TChar('.');
+ format.iTriLen = KDoNotUseTriads;
+ format.iPlaces = 6;
+
+ TBuf<20> sLon, sLat, sVacc, sHacc, sAlt, sRad;
+ sLon.Num( loc.Longitude(), format );
+ sLat.Num( loc.Latitude(), format );
+ sAlt.Num( loc.Altitude(), format );
+ sVacc.Num( loc.VerticalAccuracy(), format );
+ sHacc.Num( loc.HorizontalAccuracy(), format );
+ buf.Format(
+ _L("\tLM: Long %S Lat %S vertAcc %S horAcc %S alt %S "),
+ &sLon, &sLat, &sVacc, &sHacc, &sAlt);
+
+ TReal32 sourceR;
+ err = aLandmark.GetCoverageRadius(sourceR);
+ if (err == KErrNone )
+ {
+ sRad.Num( sourceR, format );
+ buf.AppendFormat(_L("srcRadius %S"), &sRad);
+ }
+ iLog->Log(buf);
+ if (aTraceFlag) TraceL(buf);
+ CleanupStack::PopAndDestroy(buffer);
+ }
+
+ while (sourceFieldId != EPositionFieldNone)
+ {
+ TPtrC sourceValue;
+ aLandmark.GetPositionField(sourceFieldId, sourceValue);
+ HBufC* buffer = HBufC::NewLC( sourceValue.Length() + 256 );
+ TPtr buf = buffer->Des();
+ buf.Format(_L("\tIdField Id: %d Value:"), sourceFieldId);
+ buf.Append(sourceValue);
+ iLog->Log(buf);
+ if ( aTraceFlag )
+ {
+ TraceL( buf );
+ }
+ sourceFieldId = aLandmark.NextPositionFieldId(sourceFieldId);
+
+ CleanupStack::PopAndDestroy( buffer );
+ }
+ }
+
+
+ // ---------------------------------------------------------
+// CPosTp47::PrintLandmarkFieldsWithDescriptionL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosTp47::PrintLandmarkFieldsWithDescriptionL(const CPosLandmark& aLandmark, TBool aTraceFlag)
+ {
+ TPositionFieldId sourceFieldId = aLandmark.FirstPositionFieldId();
+ TLocality loc;
+
+
+ TInt err;
+ TPtrC landmarkName;
+ TPtrC landmarkDescription;
+ err = aLandmark.GetLandmarkName(landmarkName);
+ if (err == KErrNone)
+ {
+ HBufC* buffer = HBufC::NewLC( landmarkName.Length() + 256 );
+ TPtr buf = buffer->Des();
+ buf.Append(_L("\tLandmark Name: "));
+ buf.Append(landmarkName);
+ iLog->Log(buf);
+ if( aTraceFlag )
+ {
+ TraceL( buf );
+ }
+
+ CleanupStack::PopAndDestroy( buffer );
+ buffer = NULL;
+ }
+
+ err = aLandmark.GetPosition(loc);
+ if (err == KErrNone)
+ {
+ HBufC* buffer = HBufC::NewLC( 1024 );
+ TPtr buf = buffer->Des();
+ TRealFormat format( 12, KRealFormatFixed );
+ format.iPoint = TChar('.');
+ format.iTriLen = KDoNotUseTriads;
+ format.iPlaces = 6;
+
+ TBuf<20> sLon, sLat, sVacc, sHacc, sAlt, sRad;
+ sLon.Num( loc.Longitude(), format );
+ sLat.Num( loc.Latitude(), format );
+ sAlt.Num( loc.Altitude(), format );
+ sVacc.Num( loc.VerticalAccuracy(), format );
+ sHacc.Num( loc.HorizontalAccuracy(), format );
+ buf.Format(
+ _L("\tLM: Long %S Lat %S vertAcc %S horAcc %S alt %S "),
+ &sLon, &sLat, &sVacc, &sHacc, &sAlt);
+
+ TReal32 sourceR;
+ err = aLandmark.GetCoverageRadius(sourceR);
+ if (err == KErrNone )
+ {
+ sRad.Num( sourceR, format );
+ buf.AppendFormat(_L("srcRadius %S"), &sRad);
+ }
+ iLog->Log(buf);
+ if (aTraceFlag) TraceL(buf);
+ CleanupStack::PopAndDestroy( buffer );
+ buffer = NULL;
+ }
+
+ //Get landmark description
+ err = aLandmark.GetLandmarkDescription(landmarkDescription);
+ if (err == KErrNone)
+ {
+ HBufC* buffer = HBufC::NewLC( landmarkDescription.Length() + 256 );
+ TPtr buf = buffer->Des();
+ buf.Format(_L("\tLandmark Description: "));
+ buf.Append(landmarkDescription);
+ iLog->Log(buf);
+ if ( aTraceFlag )
+ {
+ TraceL( buf );
+ }
+
+ CleanupStack::PopAndDestroy( buffer );
+ buffer = NULL;
+ }
+
+
+ while (sourceFieldId != EPositionFieldNone)
+ {
+ TPtrC sourceValue;
+ aLandmark.GetPositionField(sourceFieldId, sourceValue);
+
+ HBufC* buffer = HBufC::NewLC( sourceValue.Length() + 256 );
+ TPtr buf = buffer->Des();
+ buf.Format(_L("\tIdField Id: %d Value:"), sourceFieldId);
+ buf.Append(sourceValue);
+ iLog->Log(buf);
+ if ( aTraceFlag )
+ {
+ TraceL( buf );
+ }
+ sourceFieldId = aLandmark.NextPositionFieldId(sourceFieldId);
+
+ CleanupStack::PopAndDestroy(buffer);
+ }
+}
+// ---------------------------------------------------------
+// CPosTp47::TraceL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosTp47::TraceL(const TDesC& msg)
+ {
+ _LIT8( KEnd, "\r\n" );
+
+ RFile file;
+ TInt err = file.Open(iFileSession, KFileTrace, EFileWrite);
+ if (err == KErrNotFound)
+ {
+ file.Create(iFileSession, KFileTrace, EFileWrite);
+ }
+
+ HBufC8* line8 = CnvUtfConverter::ConvertFromUnicodeToUtf8L( msg );
+
+ TInt pos( 0 );
+ file.Seek( ESeekEnd, pos );
+ file.Write( *line8 );
+ file.Write( KEnd );
+ file.Close();
+
+ delete line8;
+ }
+
+void CPosTp47::MakeEmptyLmDatabaseL( CPosLandmarkDatabase& aLdb,
+ CPosLmCategoryManager& aCatMgr )
+ {
+
+ CPosLmOperation* operation1 = aLdb.RemoveAllLandmarksL();
+ //Remove all landmarks from default db : Sync call
+ ExecuteAndDeleteLD( operation1 );
+
+ RArray<TPosLmItemId> catArray;
+ CleanupClosePushL( catArray );
+
+ // Get all the categories from the database and delete them if necessary
+ CPosLmItemIterator* iter = aCatMgr.CategoryIteratorL();
+ CleanupStack::PushL( iter );
+
+ TUint count = iter->NumOfItemsL();
+ if ( count > 0 )
+ { // can only be called if there are some items
+ iter->GetItemIdsL( catArray, 0, count );
+ }
+
+ // Remove all the categories here Sync call
+ ExecuteAndDeleteLD(aCatMgr.RemoveCategoriesL( catArray ));
+ CleanupStack::PopAndDestroy( 2 ); // catArray, iter
+ }
+// End of File