landmarks/locationlandmarks/tsrc/LandmarkTestModule/src/FT_CPosTp47.cpp
branchRCL_3
changeset 44 2b4ea9893b66
equal deleted inserted replaced
42:02ba3f1733c6 44:2b4ea9893b66
       
     1 /*
       
     2 * Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: 
       
    15 *   ?description_line
       
    16 *
       
    17 */
       
    18 
       
    19 //  INCLUDES
       
    20 #include "FT_CPosTp47.h"
       
    21 #include <EPos_CPosLandmarkDatabase.h>
       
    22 #include <EPos_CPosLandmarkParser.h>
       
    23 #include <EPos_CPosLandmarkEncoder.h>
       
    24 #include <LbsPosition.h>
       
    25 #include <e32math.h>
       
    26 #include <bautils.h>
       
    27 #include <utf.h>
       
    28 #include <xml/xmlparsererrors.h>
       
    29 
       
    30 // CONSTANTS
       
    31 _LIT(KFileName, "c:\\documents\\Tp47Data.xml");
       
    32 _LIT(KFileTrace, "c:\\documents\\LandmarksTP47Trace.txt");
       
    33 
       
    34 // See \epoc32\include\xml\XmlParserErrors.h for error codes
       
    35 
       
    36 
       
    37 _LIT(KCorrectFile, "c:\\system\\test\\TestData\\CorrectFileFor_LandmarksTP47Trace.txt");
       
    38 
       
    39 _LIT(KMimeWithNameAndTimeStampFile, "c:\\system\\test\\TestData\\Tp47Data_With_MIME_Name.xml");
       
    40 _LIT(KErronousXMLFile, "c:\\system\\test\\TestData\\Tp47ErrounousXMLData.xml");
       
    41 
       
    42 _LIT(KErronousXMLFileDataMissing1, "c:\\system\\test\\TestData\\Tp47ErrounousXMLDataMissingFields1.xml");
       
    43 _LIT(KErronousXMLFileDataMissing2, "c:\\system\\test\\TestData\\Tp47ErrounousXMLDataMissingFields2.xml");
       
    44 _LIT(KErronousXMLFileDataMissing3, "c:\\system\\test\\TestData\\Tp47ErrounousXMLDataMissingFields3.xml");
       
    45 
       
    46 _LIT(KErronousXMLFileWrongOrder1, "c:\\system\\test\\TestData\\Tp47ErrounousXMLDataWrongOrder1.xml");
       
    47 _LIT(KErronousXMLFileWrongOrder2, "c:\\system\\test\\TestData\\Tp47ErrounousXMLDataWrongOrder2.xml");
       
    48 _LIT(KErronousXMLFileWrongOrder3, "c:\\system\\test\\TestData\\Tp47ErrounousXMLDataWrongOrder3.xml");
       
    49 
       
    50 _LIT(KErronousXMLFileRepeatedTag, "c:\\system\\test\\TestData\\Tp47ErronousXMLDataRepeatedTag.xml");
       
    51 _LIT(KErronousXMLFileUnclosedTag1, "c:\\system\\test\\TestData\\Tp47ErronousXMLDataUnclosedTag1.xml");
       
    52 //_LIT(KErronousXMLFileUnclosedTag2, "c:\\system\\test\\TestData\\Tp47ErronousXMLDataUnclosedTag2.xml");
       
    53 
       
    54 _LIT(KUnknownTags, "c:\\system\\test\\TestData\\Tp47UnknownTags.xml");
       
    55 _LIT(KUnknownTrees, "c:\\system\\test\\TestData\\Tp47UnknownTrees.xml");
       
    56 
       
    57 _LIT(KNoEndTag1, "c:\\system\\test\\TestData\\Tp47ErrounousXMLNoEndTag1.xml");
       
    58 _LIT(KNoEndTag2, "c:\\system\\test\\TestData\\Tp47ErrounousXMLNoEndTag2.xml");
       
    59 
       
    60 _LIT(KNoXMLFile1, "c:\\system\\test\\TestData\\Tp47ErronousFileNoXML1.xml");
       
    61 _LIT(KNoXMLFile2, "c:\\system\\test\\TestData\\Tp47ErronousFileNoXML2.xml");
       
    62 
       
    63 _LIT(KTestXMLInput1, "c:\\system\\test\\TestData\\Tp47XMLDataTestInput1.xml");
       
    64 
       
    65 _LIT(KXMLFileWithLongCategoryName, "c:\\system\\test\\TestData\\Tp47XMLWithLongCategoryName.xml");
       
    66 _LIT(KXMLFileWithLongLandmarkName, "c:\\system\\test\\TestData\\Tp47XMLWithLongName.xml");
       
    67 _LIT(KXMLFileWithLongLatitudeField, "c:\\system\\test\\TestData\\Tp47XMLWithLongLatitudeField.xml");
       
    68 
       
    69 _LIT(KXMLFileWithEmptyCollection, "c:\\system\\test\\TestData\\Tp47ErronousXMLFileEmptyCollection.xml");
       
    70 
       
    71 _LIT(KXMLFileWithXMLTagAsDataField1, "c:\\system\\test\\TestData\\Tp47UsingXMLTagAsDataField1.xml");
       
    72 _LIT(KXMLFileWithXMLTagAsDataField2, "c:\\system\\test\\TestData\\Tp47UsingXMLTagAsDataField2.xml");
       
    73 _LIT(KXMLFileWithXMLTagAsDataField3, "c:\\system\\test\\TestData\\Tp47UsingXMLTagAsDataField3.xml");
       
    74 
       
    75 _LIT(KErronousXMLFileTagInTag, "c:\\system\\test\\TestData\\Tp47ErronousXMLDataTagInTag1.xml");
       
    76 //_LIT(KErronousXMLFileMissingLMPrefix, "c:\\system\\test\\TestData\\Tp47ErronousXMLDataMissingLMPrefix.xml");
       
    77 
       
    78 _LIT(KXMLFileUTF8, "c:\\system\\test\\TestData\\Tp47DataUTF8.xml");
       
    79 _LIT(KXMLFileUTF16, "c:\\system\\test\\TestData\\Tp47DataUTF16.xml");
       
    80 
       
    81 _LIT(KXML_UTF_16_BE, "c:\\system\\test\\TestData\\TP47_UTF-16-bigEndian.xml");
       
    82 _LIT(KXML_UTF_16_LE, "c:\\system\\test\\TestData\\TP47_UTF-16-littleEndian.xml");
       
    83 _LIT(KXML_UTF_8, "c:\\system\\test\\TestData\\TP47_UTF-8.xml");
       
    84 _LIT(KXML_UTF_CHINESE, "c:\\system\\test\\TestData\\TP47_UTF-Chinese.xml");
       
    85 
       
    86 _LIT(KXMLFileWithEmptyMedialink, "c:\\system\\test\\TestData\\Tp47EmptyMediaLink.xml");
       
    87 _LIT(KXMLFileWithEmptyCoordinates, "c:\\system\\test\\TestData\\Tp47EmptyCoordinates.xml");
       
    88 _LIT(KXMLFileWithEmptyAdresseInfo, "c:\\system\\test\\TestData\\Tp47EmptyAdresseInfo.xml");
       
    89 
       
    90 _LIT(KXMLFileWithErronousTextInTag1, "c:\\system\\test\\TestData\\Tp47ErronousTextInTag1.xml");
       
    91 _LIT(KXMLFileWithErronousTextInTag2, "c:\\system\\test\\TestData\\Tp47ErronousTextInTag2.xml");
       
    92 _LIT(KXMLFileWithErronousTextInTag3, "c:\\system\\test\\TestData\\Tp47ErronousTextInTag3.xml");
       
    93 _LIT(KXMLFileWithErronousTextInTag4, "c:\\system\\test\\TestData\\Tp47ErronousTextInTag4.xml");
       
    94 _LIT(KXMLFileWithErronousTextInTag5, "c:\\system\\test\\TestData\\Tp47ErronousTextInTag5.xml");
       
    95 _LIT(KXMLFileWithErronousTextInTag6, "c:\\system\\test\\TestData\\Tp47ErronousTextInTag6.xml");
       
    96 
       
    97 //KML test files
       
    98 _LIT(KKMLFile, "c:\\system\\test\\TestData\\Tp47KML.kml");
       
    99 _LIT(KKMLFile1, "c:\\system\\test\\TestData\\Tp47KMLfile1.kml");
       
   100 _LIT(KKMLFile2, "c:\\system\\test\\TestData\\Tp47KMLfile2.kml");
       
   101 _LIT(KKMLFile3, "c:\\system\\test\\TestData\\Tp47KMLfile3.kml");
       
   102 
       
   103 _LIT(KKMLLongName, "c:\\system\\test\\TestData\\Tp47KMLlongName.kml");
       
   104 _LIT(KKMLNameCaps, "c:\\system\\test\\TestData\\Tp47KMLNameCaps.kml");
       
   105 _LIT(KKMLErroneousNameTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousNameTag.kml");
       
   106 _LIT(KKMLErroneousNameTagPosition1, "c:\\system\\test\\TestData\\Tp47KMLErroneousNameTagPosition1.kml");
       
   107 _LIT(KKMLErroneousNameTagPosition2, "c:\\system\\test\\TestData\\Tp47KMLErroneousNameTagPosition2.kml");
       
   108 _LIT(KKMLEmptyName, "c:\\system\\test\\TestData\\Tp47KMLEmptyName.kml");
       
   109 _LIT(KKMLMissingNameTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingNameTag1.kml");
       
   110 _LIT(KKMLMissingNameTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingNameTag2.kml");
       
   111 _LIT(KKMLNameWithSpecialCharacters1, "c:\\system\\test\\TestData\\Tp47KMLNameWithSpecialCharacters1.kml");
       
   112 _LIT(KKMLNameWithSpecialCharacters2, "c:\\system\\test\\TestData\\Tp47KMLNameWithSpecialCharacters2.kml");
       
   113 
       
   114 _LIT(KKMLEmptyPhoneNumber, "c:\\system\\test\\TestData\\Tp47KMLEmptyPhoneNumber.kml");
       
   115 _LIT(KKMLErroneousPhoneNumberTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousPhoneNumberTag.kml");
       
   116 _LIT(KKMLErroneousPhoneNumberTagPosition, "c:\\system\\test\\TestData\\Tp47KMLErroneousPhoneNumberTagPosition.kml");
       
   117 _LIT(KKMLLongPhoneNumer, "c:\\system\\test\\TestData\\Tp47KMLLongPhoneNumer.kml");
       
   118 _LIT(KKMLMissingPhoneTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingPhoneTag1.kml");
       
   119 _LIT(KKMLMissingPhoneTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingPhoneTag2.kml");
       
   120 _LIT(KKMLPhoneNumberCaps, "c:\\system\\test\\TestData\\Tp47KMLPhoneNumberCaps.kml");
       
   121 _LIT(KKMLPhoneNumberWithText, "c:\\system\\test\\TestData\\Tp47KMLPhoneNumberWithText.kml");
       
   122 _LIT(KKMLPhoneNumberWithSpecialCharacters1, "c:\\system\\test\\TestData\\Tp47KMLPhoneNumberWithSpecialCharacters1.kml");
       
   123 _LIT(KKMLPhoneNumberWithSpecialCharacters2, "c:\\system\\test\\TestData\\Tp47KMLPhoneNumberWithSpecialCharacters2.kml");
       
   124 
       
   125 _LIT(KKMLEmptyPoint, "c:\\system\\test\\TestData\\Tp47KMLEmptyPoint.kml");
       
   126 _LIT(KKMLErroneousPointTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousPointTag.kml");
       
   127 _LIT(KKMLErroneousPointTagPosition, "c:\\system\\test\\TestData\\Tp47KMLErroneousPointTagPosition.kml");
       
   128 _LIT(KKMLMissingPointTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingPointTag1.kml");
       
   129 _LIT(KKMLMissingPointTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingPointTag2.kml");
       
   130 _LIT(KKMLPointCaps, "c:\\system\\test\\TestData\\Tp47KMLPointCaps.kml");
       
   131 _LIT(KKMLPointTag1, "c:\\system\\test\\TestData\\Tp47KMLPointTag1.kml");
       
   132 _LIT(KKMLPointTag2, "c:\\system\\test\\TestData\\Tp47KMLPointTag2.kml");
       
   133 _LIT(KKMLPointTag3, "c:\\system\\test\\TestData\\Tp47KMLPointTag3.kml");
       
   134 
       
   135 _LIT(KKMLEmptyDescription, "c:\\system\\test\\TestData\\Tp47KMLEmptyDescription.kml");
       
   136 _LIT(KKMLDescriptionWithSpecialCharacters1, "c:\\system\\test\\TestData\\Tp47KMLDescriptionWithSpecialCharacters1.kml");
       
   137 _LIT(KKMLDescriptionWithSpecialCharacters2, "c:\\system\\test\\TestData\\Tp47KMLDescriptionWithSpecialCharacters2.kml");
       
   138 _LIT(KKMLDescriptionCaps, "c:\\system\\test\\TestData\\Tp47KMLDescriptionCaps.kml");
       
   139 _LIT(KKMLLongDescription, "c:\\system\\test\\TestData\\Tp47KMLLongDescription.kml");
       
   140 _LIT(KKMLErroneousDescriptionTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousDescriptionTag.kml");
       
   141 _LIT(KKMLErroneousDescriptionTagposition, "c:\\system\\test\\TestData\\Tp47KMLErroneousDescriptionTagposition.kml");
       
   142 _LIT(KKMLMissingDescriptionTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingDescriptionTag1.kml");
       
   143 _LIT(KKMLMissingDescriptionTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingDescriptionTag2.kml");
       
   144 _LIT(KKMLDescriptionWithCDATA, "c:\\system\\test\\TestData\\Tp47KMLDescriptionWithCDATA.kml");
       
   145 
       
   146 _LIT(KKMLErroneousFolderTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousFolderTag.kml");
       
   147 _LIT(KKMLFolderCaps, "c:\\system\\test\\TestData\\Tp47KMLFolderCaps.kml");
       
   148 _LIT(KKMLMissingFolderTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingFolderTag1.kml");
       
   149 _LIT(KKMLMissingFolderTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingFolderTag2.kml");
       
   150 _LIT(KKMLEmptyFolderName, "c:\\system\\test\\TestData\\Tp47KMLEmptyFolderName.kml");
       
   151 _LIT(KKMLLongFolderName, "c:\\system\\test\\TestData\\Tp47KMLLongFolderName.kml");
       
   152 _LIT(KKMLFolderNameWithSpecialCharacters1, "c:\\system\\test\\TestData\\Tp47KMLFolderNameWithSpecialCharacters1.kml");
       
   153 _LIT(KKMLFolderNameWithSpecialCharacters2, "c:\\system\\test\\TestData\\Tp47KMLFolderNameWithSpecialCharacters2.kml");
       
   154 
       
   155 _LIT(KKMLDocumentNameWithSpecialCharacters1, "c:\\system\\test\\TestData\\Tp47KMLDocumentNameWithSpecialCharacters1.kml");
       
   156 _LIT(KKMLDocumentNameWithSpecialCharacters2, "c:\\system\\test\\TestData\\Tp47KMLDocumentNameWithSpecialCharacters2.kml");
       
   157 _LIT(KKMLEmptyDocumentName, "c:\\system\\test\\TestData\\Tp47KMLEmptyDocumentName.kml");
       
   158 _LIT(KKMLLongDocumentName, "c:\\system\\test\\TestData\\Tp47KMLLongDocumentName.kml");
       
   159 _LIT(KKMLDocumentCaps, "c:\\system\\test\\TestData\\Tp47KMLDocumentCaps.kml");
       
   160 _LIT(KKMLErroneousDocumentTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousDocumentTag.kml");
       
   161 _LIT(KKMLMissingDocumentTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingDocumentTag1.kml");
       
   162 _LIT(KKMLMissingDocumentTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingDocumentTag2.kml");
       
   163 
       
   164 _LIT(KKMLAddressCaps, "c:\\system\\test\\TestData\\Tp47KMLAddressCaps.kml");
       
   165 _LIT(KKMLAddressWithSpecialCharacters1, "c:\\system\\test\\TestData\\Tp47KMLAddressWithSpecialCharacters1.kml");
       
   166 _LIT(KKMLAddressWithSpecialCharacters2, "c:\\system\\test\\TestData\\Tp47KMLAddressWithSpecialCharacters2.kml");
       
   167 _LIT(KKMLEmptyAddress1, "c:\\system\\test\\TestData\\Tp47KMLEmptyAddress1.kml");
       
   168 _LIT(KKMLEmptyAddress2, "c:\\system\\test\\TestData\\Tp47KMLEmptyAddress2.kml");
       
   169 _LIT(KKMLLongAddress1, "c:\\system\\test\\TestData\\Tp47KMLLongAddress1.kml");
       
   170 _LIT(KKMLLongAddress2, "c:\\system\\test\\TestData\\Tp47KMLLongAddress2.kml");
       
   171 _LIT(KKMLLongAddress3, "c:\\system\\test\\TestData\\Tp47KMLLongAddress3.kml");
       
   172 _LIT(KKMLErroneousAddressTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousAddressTag.kml");
       
   173 _LIT(KKMLErroneousAddressTagPosition, "c:\\system\\test\\TestData\\Tp47KMLErroneousAddressTagPosition.kml");
       
   174 _LIT(KKMLMissingAddressTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingAddressTag1.kml");
       
   175 _LIT(KKMLMissingAddressTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingAddressTag2.kml");
       
   176 
       
   177 _LIT(KKMLCoordinateCaps, "c:\\system\\test\\TestData\\Tp47KMLCoordinateCaps.kml");
       
   178 _LIT(KKMLMoreCoordinates, "c:\\system\\test\\TestData\\Tp47KMLMoreCoordinates.kml");
       
   179 _LIT(KKMLErroneousCoordinateTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousCoordinateTag.kml");
       
   180 _LIT(KKMLErroneousCoordinateTagPosition, "c:\\system\\test\\TestData\\Tp47KMLErroneousCoordinateTagPosition.kml");
       
   181 _LIT(KKMLCoordinates1, "c:\\system\\test\\TestData\\Tp47KMLCoordinates1.kml");
       
   182 _LIT(KKMLCoordinates2, "c:\\system\\test\\TestData\\Tp47KMLCoordinates2.kml");
       
   183 _LIT(KKMLCoordinates3, "c:\\system\\test\\TestData\\Tp47KMLCoordinates3.kml");
       
   184 _LIT(KKMLCoordinates4, "c:\\system\\test\\TestData\\Tp47KMLCoordinates4.kml");
       
   185 _LIT(KKMLCoordinates5, "c:\\system\\test\\TestData\\Tp47KMLCoordinates5.kml");
       
   186 _LIT(KKMLCoordinates6, "c:\\system\\test\\TestData\\Tp47KMLCoordinates6.kml");
       
   187 _LIT(KKMLLongCoordinates1, "c:\\system\\test\\TestData\\Tp47KMLLongCoordinates1.kml");
       
   188 _LIT(KKMLLongCoordinates2, "c:\\system\\test\\TestData\\Tp47KMLLongCoordinates2.kml");
       
   189 _LIT(KKMLMissingCoordinateTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingCoordinateTag1.kml");
       
   190 _LIT(KKMLMissingCoordinateTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingCoordinateTag2.kml");
       
   191 _LIT(KKMLEmptyCoordinates1, "c:\\system\\test\\TestData\\Tp47KMLEmptyCoordinates1.kml");
       
   192 _LIT(KKMLEmptyCoordinates2, "c:\\system\\test\\TestData\\Tp47KMLEmptyCoordinates2.kml");
       
   193 _LIT(KKMLEmptyCoordinates3, "c:\\system\\test\\TestData\\Tp47KMLEmptyCoordinates3.kml");
       
   194 _LIT(KKMLEmptyCoordinates4, "c:\\system\\test\\TestData\\Tp47KMLEmptyCoordinates4.kml");
       
   195 _LIT(KKMLEmptyCoordinates5, "c:\\system\\test\\TestData\\Tp47KMLEmptyCoordinates5.kml");
       
   196 _LIT(KKMLEmptyCoordinates6, "c:\\system\\test\\TestData\\Tp47KMLEmptyCoordinates6.kml");
       
   197 _LIT(KKMLEmptyCoordinates7, "c:\\system\\test\\TestData\\Tp47KMLEmptyCoordinates7.kml");
       
   198 _LIT(KKMLErroneousCoordinates1, "c:\\system\\test\\TestData\\Tp47KMLErroneousCoordinates1.kml");
       
   199 _LIT(KKMLErroneousCoordinates2, "c:\\system\\test\\TestData\\Tp47KMLErroneousCoordinates2.kml");
       
   200 _LIT(KKMLErroneousCoordinates3, "c:\\system\\test\\TestData\\Tp47KMLErroneousCoordinates3.kml");
       
   201 _LIT(KKMLErroneousCoordinates4, "c:\\system\\test\\TestData\\Tp47KMLErroneousCoordinates4.kml");
       
   202 _LIT(KKMLErroneousCoordinates5, "c:\\system\\test\\TestData\\Tp47KMLErroneousCoordinates5.kml");
       
   203 _LIT(KKMLNegativeCoordinates, "c:\\system\\test\\TestData\\Tp47KMLNegativeCoordinates.kml");
       
   204 
       
   205 _LIT(KKMLErroneousTextWithinPlacemark, "c:\\system\\test\\TestData\\Tp47KMLErroneousTextWithinPlacemark.kml");
       
   206 _LIT(KKMLEmptyfile1, "c:\\system\\test\\TestData\\Tp47KMLEmptyfile1.kml");
       
   207 _LIT(KKMLEmptyfile2, "c:\\system\\test\\TestData\\Tp47KMLEmptyfile2.kml");
       
   208 _LIT(KKMLInvalidfile, "c:\\system\\test\\TestData\\Tp47KMLInvalidfile.kml");
       
   209 
       
   210 _LIT(KKMLPlacemarkCaps, "c:\\system\\test\\TestData\\Tp47KMLPlacemarkCaps.kml");
       
   211 _LIT(KKMLErroneousPlacemarkTag, "c:\\system\\test\\TestData\\Tp47KMLErroneousPlacemarkTag.kml");
       
   212 _LIT(KKMLMissingPlacemarkTag1, "c:\\system\\test\\TestData\\Tp47KMLMissingPlacemarkTag1.kml");
       
   213 _LIT(KKMLMissingPlacemarkTag2, "c:\\system\\test\\TestData\\Tp47KMLMissingPlacemarkTag2.kml");
       
   214 _LIT(KKMLEmptyPlacemarkTag, "c:\\system\\test\\TestData\\Tp47KMLEmptyPlacemarkTag.kml");
       
   215 
       
   216 _LIT(KKMLGandhiMuseum, "c:\\system\\test\\TestData\\Tp47KMLGandhi Museum.kml");
       
   217 _LIT(KKMLIndusHeritageCentreIndia, "c:\\system\\test\\TestData\\Tp47KMLIndus Heritage Centre, India.kml");
       
   218 _LIT(KKMLHiltonHotels, "c:\\system\\test\\TestData\\Tp47KMLhilton hotels near new york (1 - 10).kml");
       
   219 
       
   220 _LIT(KKMLFile4, "c:\\system\\test\\TestData\\Tp47KMLfile4.kml");
       
   221 _LIT(KKMLFile5, "c:\\system\\test\\TestData\\Tp47KMLfile5.kml");
       
   222 _LIT(KKMLFile6, "c:\\system\\test\\TestData\\Tp47KMLfile6.kml");
       
   223 _LIT(KKMLFile7, "c:\\system\\test\\TestData\\Tp47KMLfile7.kml");
       
   224 _LIT(KKMLFile8, "c:\\system\\test\\TestData\\Tp47KMLfile8.kml");
       
   225 _LIT(KKMLFile9, "c:\\system\\test\\TestData\\Tp47KMLfile9.kml");
       
   226 
       
   227 
       
   228 
       
   229 
       
   230 
       
   231 
       
   232 
       
   233 // Maxmimum size for each line in trace file
       
   234 const TInt KBufSize = 5000;
       
   235 
       
   236 // ================= MEMBER FUNCTIONS =======================
       
   237 // ---------------------------------------------------------
       
   238 // CPosTp47::CloseTest
       
   239 //
       
   240 // (other items were commented in a header).
       
   241 // ---------------------------------------------------------
       
   242 //
       
   243 void CPosTp47::CloseTest()
       
   244     {
       
   245     iLog->Log(_L("CloseTest"));
       
   246 
       
   247     delete iEncoderBuffer;
       
   248     iEncoderBuffer = NULL;
       
   249 
       
   250     iLandmarks.ResetAndDestroy();
       
   251     iLandmarks.Close();
       
   252 
       
   253     delete iDatabase;
       
   254     iDatabase=NULL;
       
   255 
       
   256     delete iLandmarkEncoder;
       
   257     iLandmarkEncoder = NULL;
       
   258 
       
   259     delete iLandmarkParser;
       
   260     iLandmarkParser = NULL;
       
   261 
       
   262     delete iOperation;
       
   263     iOperation = NULL;
       
   264 
       
   265     TRAPD(err, RemoveGlobalCategoriesL());
       
   266     if (err != KErrNone && err != KErrNotFound)
       
   267         {
       
   268         HBufC* buf = HBufC::NewLC( 128 );
       
   269         TPtr buffer = buf->Des();
       
   270             
       
   271         buffer.Format(_L("RemoveGlobalCategoriesL leaved with %d"), err);
       
   272         iLog->Log( buffer );
       
   273         
       
   274         CleanupStack::PopAndDestroy( buf );
       
   275         }
       
   276 
       
   277     iLog->Log(_L("CloseTest Done"));
       
   278     }
       
   279 
       
   280 // ---------------------------------------------------------
       
   281 // CPosTp47::StartL
       
   282 //
       
   283 // (other items were commented in a header).
       
   284 // ---------------------------------------------------------
       
   285 //
       
   286 void CPosTp47::StartL()
       
   287     {
       
   288     BaflUtils::EnsurePathExistsL( iFileSession, KFileName );
       
   289 
       
   290     // Use same lm db as in composite search test
       
   291     iDatabase = UseCompositeLandmarksDbFileL();
       
   292     if (iDatabase->IsInitializingNeeded())
       
   293        {
       
   294        ExecuteAndDeleteLD(iDatabase->InitializeL());
       
   295        }
       
   296 
       
   297     // Delete the trace file
       
   298     DeleteFileL(KFileTrace);
       
   299 
       
   300     delete iDatabase;
       
   301     iDatabase = NULL;
       
   302 
       
   303     iDatabase = CPosLandmarkDatabase::OpenL();
       
   304     	
       
   305     if (iDatabase->IsInitializingNeeded())
       
   306        {
       
   307        ExecuteAndDeleteLD(iDatabase->InitializeL());
       
   308        }
       
   309 
       
   310     // Do reset so that global categories are included
       
   311     CPosLmCategoryManager* categoryManager = CPosLmCategoryManager::NewL(*iDatabase);
       
   312     CleanupStack::PushL(categoryManager);
       
   313 
       
   314     ExecuteAndDeleteLD(categoryManager->ResetGlobalCategoriesL());
       
   315     CleanupStack::PopAndDestroy(categoryManager);
       
   316 
       
   317     HBufC8* emptyBuffer=NULL;
       
   318 
       
   319     CreateXMLData(ETrue);
       
   320 
       
   321     PrintParsedDataFromEncoderL(KFileName, *emptyBuffer, KErrNone, KLmxMimeType );
       
   322 
       
   323     CheckXMLData(ETrue);
       
   324 
       
   325     // Use buffer instead of file
       
   326     CreateXMLData(EFalse);
       
   327     CheckXMLData(EFalse);
       
   328 
       
   329     iLandmarks.ResetAndDestroy();
       
   330 
       
   331 
       
   332 	
       
   333     iLog->Log(_L("Mime With Name and Stamp"));
       
   334     PrintParsedDataFromEncoderL(KMimeWithNameAndTimeStampFile, *emptyBuffer, KErrNone, KLmxMimeType );
       
   335     PrintParsedDataFromEncoderL(KMimeWithNameAndTimeStampFile, *emptyBuffer, KErrNone, KGpxMimeType );
       
   336 
       
   337     iLog->Log(_L("Several Landmark File"));
       
   338     // XXX PrintParsedDataFromEncoderL(KSeveralLandmarkFile, *emptyBuffer, KErrPosLmUnknownFormat);
       
   339 
       
   340     iLog->Log(_L("Erronous XML File"));
       
   341     PrintParsedDataFromEncoderL(KErronousXMLFile, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   342     PrintParsedDataFromEncoderL(KErronousXMLFile, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
       
   343 
       
   344     iLog->Log(_L("Several LandmarkCollection File"));
       
   345     // XXX PrintParsedDataFromEncoderL(KSeveralLandmarkCollectionFile, *emptyBuffer, KErrPosLmUnknownFormat);
       
   346 
       
   347     iLog->Log(_L("1) Wrong Order in XML File"));
       
   348     PrintParsedDataFromEncoderL(KErronousXMLFileWrongOrder1, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   349     PrintParsedDataFromEncoderL(KErronousXMLFileWrongOrder1, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
       
   350 
       
   351     iLog->Log(_L("2) Wrong Order in XML File"));
       
   352     PrintParsedDataFromEncoderL(KErronousXMLFileWrongOrder2, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   353     PrintParsedDataFromEncoderL(KErronousXMLFileWrongOrder2, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
       
   354 
       
   355     iLog->Log(_L("3) Wrong Order in XML File"));
       
   356     // AdresseInfo can be sorted randomly without any error
       
   357     PrintParsedDataFromEncoderL(KErronousXMLFileWrongOrder3, *emptyBuffer, KErrNone, KLmxMimeType );
       
   358     // N/A for GPX
       
   359 
       
   360     iLog->Log(_L("1) Data missing in XML File"));
       
   361     PrintParsedDataFromEncoderL(KErronousXMLFileDataMissing1, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   362     PrintParsedDataFromEncoderL(KErronousXMLFileDataMissing1, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
       
   363 
       
   364     iLog->Log(_L("2) Data missing in XML File"));
       
   365     PrintParsedDataFromEncoderL(KErronousXMLFileDataMissing2, *emptyBuffer, KErrNone, KLmxMimeType );
       
   366     PrintParsedDataFromEncoderL(KErronousXMLFileDataMissing2, *emptyBuffer, KErrNone, KGpxMimeType );
       
   367 
       
   368     iLog->Log(_L("3) Data missing in XML File"));
       
   369     PrintParsedDataFromEncoderL(KErronousXMLFileDataMissing3, *emptyBuffer, KErrNone, KLmxMimeType );
       
   370     PrintParsedDataFromEncoderL(KErronousXMLFileDataMissing3, *emptyBuffer, KErrNone, KGpxMimeType );
       
   371 
       
   372     iLog->Log(_L("Unknown tags in XML File"));
       
   373     PrintParsedDataFromEncoderL(KUnknownTags, *emptyBuffer, KErrNone, KLmxMimeType );
       
   374     PrintParsedDataFromEncoderL(KUnknownTags, *emptyBuffer, KErrNone, KGpxMimeType );
       
   375 
       
   376     iLog->Log(_L("Unknown trees in XML File"));
       
   377     PrintParsedDataFromEncoderL(KUnknownTrees, *emptyBuffer, KErrNone, KLmxMimeType );
       
   378     PrintParsedDataFromEncoderL(KUnknownTrees, *emptyBuffer, KErrNone, KGpxMimeType );
       
   379 
       
   380     iLog->Log(_L("No End landmarkCollection tag in XML File"));
       
   381     PrintParsedDataFromEncoderL(KNoEndTag1, *emptyBuffer, -993, KLmxMimeType );
       
   382     PrintParsedDataFromEncoderL(KNoEndTag1, *emptyBuffer, -993, KGpxMimeType );
       
   383 
       
   384     iLog->Log(_L("No End landmark tag in XML File"));
       
   385     PrintParsedDataFromEncoderL(KNoEndTag2, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   386     PrintParsedDataFromEncoderL(KNoEndTag2, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
       
   387 
       
   388     iLog->Log(_L("Test with different input formats in XML File"));
       
   389     PrintParsedDataFromEncoderL(KTestXMLInput1, *emptyBuffer, KErrNone, KLmxMimeType );
       
   390     PrintParsedDataFromEncoderL(KTestXMLInput1, *emptyBuffer, KErrNone, KGpxMimeType );
       
   391 
       
   392     iLog->Log(_L("Test with repeated tag XML File"));
       
   393     PrintParsedDataFromEncoderL(KErronousXMLFileRepeatedTag, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   394     PrintParsedDataFromEncoderL(KErronousXMLFileRepeatedTag, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
       
   395 
       
   396     iLog->Log(_L("Test with unclosed tag XML File"));
       
   397     PrintParsedDataFromEncoderL(KErronousXMLFileUnclosedTag1, *emptyBuffer, -993, KLmxMimeType );
       
   398     PrintParsedDataFromEncoderL(KErronousXMLFileUnclosedTag1, *emptyBuffer, -993, KGpxMimeType );
       
   399 
       
   400 //    Incorrect test
       
   401 //    iLog->Log(_L("Test with unclosed tag XML File"));
       
   402 //    PrintParsedDataFromEncoderL(KErronousXMLFileUnclosedTag2, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   403 //    PrintParsedDataFromEncoderL(KErronousXMLFileUnclosedTag2, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
       
   404 
       
   405     iLog->Log(_L("Test with a non XML File 1"));
       
   406     PrintParsedDataFromEncoderL(KNoXMLFile1, *emptyBuffer, -982, KLmxMimeType );
       
   407     PrintParsedDataFromEncoderL(KNoXMLFile1, *emptyBuffer, -982, KGpxMimeType );
       
   408 
       
   409     iLog->Log(_L("Test with a non XML File 2"));
       
   410     PrintParsedDataFromEncoderL(KNoXMLFile2, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType ); //temporarily changed KErrPosLmUnknownFormat to KErrNone
       
   411     PrintParsedDataFromEncoderL(KNoXMLFile2, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType ); //temporarily KErrPosLmUnknownFormat to KErrNone
       
   412 
       
   413     iLog->Log(_L("Test with a XML UTFW8 File"));
       
   414     PrintParsedDataFromEncoderL(KXMLFileUTF8, *emptyBuffer, KErrNone, KLmxMimeType );
       
   415     PrintParsedDataFromEncoderL(KXMLFileUTF8, *emptyBuffer, KErrNone, KGpxMimeType );
       
   416 
       
   417     iLog->Log(_L("Test with a XML UTFW16 File"));
       
   418     PrintParsedDataFromEncoderL(KXMLFileUTF16, *emptyBuffer, KErrNone, KLmxMimeType );
       
   419     PrintParsedDataFromEncoderL(KXMLFileUTF16, *emptyBuffer, KErrNone, KGpxMimeType );
       
   420 
       
   421     iLog->Log(_L("Test with a XML File with long category names"));
       
   422     PrintParsedDataFromEncoderL(KXMLFileWithLongCategoryName, *emptyBuffer, KErrNone, KLmxMimeType );
       
   423     PrintParsedDataFromEncoderL(KXMLFileWithLongCategoryName, *emptyBuffer, KErrNone, KGpxMimeType );
       
   424 
       
   425     iLog->Log(_L("Test with a XML File with long landmark name"));
       
   426     PrintParsedDataFromEncoderL(KXMLFileWithLongLandmarkName, *emptyBuffer, KErrNone, KLmxMimeType );
       
   427     PrintParsedDataFromEncoderL(KXMLFileWithLongLandmarkName, *emptyBuffer, KErrNone, KGpxMimeType );
       
   428 
       
   429     iLog->Log(_L("Test with a XML File with long latitude field"));
       
   430     PrintParsedDataFromEncoderL(KXMLFileWithLongLatitudeField, *emptyBuffer, KErrNone, KLmxMimeType );
       
   431     PrintParsedDataFromEncoderL(KXMLFileWithLongLatitudeField, *emptyBuffer, KErrNone, KGpxMimeType );
       
   432 
       
   433     iLog->Log(_L("Test with a XML File with empty collection"));
       
   434     PrintParsedDataFromEncoderL(KXMLFileWithEmptyCollection, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   435     // N/A for GPX
       
   436 
       
   437     iLog->Log(_L("Test with a XML File with Landmark Tag in Landmark Tag"));
       
   438     PrintParsedDataFromEncoderL(KErronousXMLFileTagInTag, *emptyBuffer, EXmlRecursiveEntity, KLmxMimeType );
       
   439     PrintParsedDataFromEncoderL(KErronousXMLFileTagInTag, *emptyBuffer, EXmlRecursiveEntity, KGpxMimeType );
       
   440 
       
   441     iLog->Log(_L("Test with a XML File with XML Tag as data field 1"));
       
   442     PrintParsedDataFromEncoderL(KXMLFileWithXMLTagAsDataField1, *emptyBuffer, -993, KLmxMimeType );
       
   443     PrintParsedDataFromEncoderL(KXMLFileWithXMLTagAsDataField1, *emptyBuffer, -993, KGpxMimeType );
       
   444 
       
   445     iLog->Log(_L("Test with a XML File with XML Tag as data field 2"));
       
   446     PrintParsedDataFromEncoderL(KXMLFileWithXMLTagAsDataField2, *emptyBuffer, -993, KLmxMimeType );
       
   447     PrintParsedDataFromEncoderL(KXMLFileWithXMLTagAsDataField2, *emptyBuffer, -993, KGpxMimeType );
       
   448 
       
   449     iLog->Log(_L("Test with a XML File with XML Tag as data field 3"));
       
   450     PrintParsedDataFromEncoderL(KXMLFileWithXMLTagAsDataField3, *emptyBuffer, -993, KLmxMimeType );
       
   451     PrintParsedDataFromEncoderL(KXMLFileWithXMLTagAsDataField3, *emptyBuffer, -993, KGpxMimeType );
       
   452 
       
   453 //    Incorrect test
       
   454 //    iLog->Log(_L("Test with a XML File with missing LM prefix"));
       
   455 //    PrintParsedDataFromEncoderL(KErronousXMLFileMissingLMPrefix, *emptyBuffer, EXmlRecursiveEntity, KLmxMimeType );
       
   456 //    PrintParsedDataFromEncoderL(KErronousXMLFileMissingLMPrefix, *emptyBuffer, EXmlRecursiveEntity, KGpxMimeType );
       
   457 //
       
   458     iLog->Log(_L("Test with UTF-16-bigEndian.xml"));
       
   459     PrintParsedDataFromEncoderL(KXML_UTF_16_BE, *emptyBuffer, KErrNone, KLmxMimeType );
       
   460     PrintParsedDataFromEncoderL(KXML_UTF_16_BE, *emptyBuffer, KErrNone, KGpxMimeType );
       
   461 
       
   462     iLog->Log(_L("Test with UTF-16-littleEndian.xml"));
       
   463     PrintParsedDataFromEncoderL(KXML_UTF_16_LE, *emptyBuffer, KErrNone, KLmxMimeType );
       
   464     PrintParsedDataFromEncoderL(KXML_UTF_16_LE, *emptyBuffer, KErrNone, KGpxMimeType );
       
   465 
       
   466     iLog->Log(_L("Test with UTF-8.xml"));
       
   467     PrintParsedDataFromEncoderL(KXML_UTF_8, *emptyBuffer, KErrNone, KLmxMimeType );
       
   468     PrintParsedDataFromEncoderL(KXML_UTF_8, *emptyBuffer, KErrNone, KGpxMimeType );
       
   469 
       
   470     iLog->Log(_L("Test with UTF-Chinese.xml"));
       
   471     PrintParsedDataFromEncoderL(KXML_UTF_CHINESE, *emptyBuffer, -982, KLmxMimeType );
       
   472     PrintParsedDataFromEncoderL(KXML_UTF_CHINESE, *emptyBuffer, -982, KGpxMimeType );
       
   473     
       
   474     
       
   475     
       
   476     //testing kml files
       
   477     iLog->Log(_L("Test with Tp47KML.kml"));
       
   478 	PrintParsedDataFromEncoderL(KKMLFile, *emptyBuffer, KErrNone, KKmlMimeType );
       
   479 	
       
   480 	iLog->Log(_L("Test with Tp47KMLfile1.kml"));
       
   481 	PrintParsedDataFromEncoderL(KKMLFile1, *emptyBuffer, KErrNone, KKmlMimeType );
       
   482 	
       
   483 	iLog->Log(_L("Test with Tp47KMLfile2.kml"));
       
   484 	PrintParsedDataFromEncoderL(KKMLFile2, *emptyBuffer, KErrNone, KKmlMimeType );
       
   485 	
       
   486 	iLog->Log(_L("Test with Tp47KMLfile3.kml"));
       
   487 	PrintParsedDataFromEncoderL(KKMLFile3, *emptyBuffer, KErrNone, KKmlMimeType );
       
   488 	
       
   489 	//testing the name tag related cases
       
   490 	iLog->Log(_L("Test with Tp47KMLlongName.kml"));
       
   491 	PrintParsedDataFromEncoderL(KKMLLongName, *emptyBuffer, KErrNone, KKmlMimeType );
       
   492 	
       
   493 	iLog->Log(_L("Test with Tp47KMLNameCaps.kml"));
       
   494 	PrintParsedDataFromEncoderL(KKMLNameCaps, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   495 
       
   496 	iLog->Log(_L("Test with Tp47KMLErroneousNameTag.kml"));
       
   497 	PrintParsedDataFromEncoderL(KKMLErroneousNameTag, *emptyBuffer, -993, KKmlMimeType );			//EXmlTagMismatch = -993
       
   498 
       
   499 	iLog->Log(_L("Test with Tp47KMLErroneousNameTagPosition1.kml"));
       
   500 	PrintParsedDataFromEncoderL(KKMLErroneousNameTagPosition1, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   501 
       
   502 	iLog->Log(_L("Test with Tp47KMLErroneousNameTagPosition2.kml"));
       
   503 	PrintParsedDataFromEncoderL(KKMLErroneousNameTagPosition2, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   504 
       
   505 	iLog->Log(_L("Test with Tp47KMLEmptyName.kml"));
       
   506 	PrintParsedDataFromEncoderL(KKMLEmptyName, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   507 
       
   508 	iLog->Log(_L("Test with Tp47KMLMissingNameTag1.kml"));
       
   509 	PrintParsedDataFromEncoderL(KKMLMissingNameTag1, *emptyBuffer, -993, KKmlMimeType );			//EXmlTagMismatch = -993
       
   510 
       
   511 	iLog->Log(_L("Test with Tp47KMLMissingNameTag2.kml"));
       
   512 	PrintParsedDataFromEncoderL(KKMLMissingNameTag2, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   513 
       
   514 	iLog->Log(_L("Test with Tp47KMLNameWithSpecialCharacters1.kml"));
       
   515 	PrintParsedDataFromEncoderL(KKMLNameWithSpecialCharacters1, *emptyBuffer, -996, KKmlMimeType ); // EXmlInvalidToken = -996
       
   516 
       
   517 	iLog->Log(_L("Test with Tp47KMLNameWithSpecialCharacters2.kml"));
       
   518 	PrintParsedDataFromEncoderL(KKMLNameWithSpecialCharacters2, *emptyBuffer, KErrNone, KKmlMimeType );
       
   519 	
       
   520 	//testing the PhoneNumber tag related cases
       
   521 	iLog->Log(_L("Test with Tp47KMLEmptyPhoneNumber.kml"));
       
   522 	PrintParsedDataFromEncoderL(KKMLEmptyPhoneNumber, *emptyBuffer, KErrNone, KKmlMimeType );
       
   523 
       
   524 	iLog->Log(_L("Test with Tp47KMLErroneousPhoneNumberTag.kml"));
       
   525 	PrintParsedDataFromEncoderL(KKMLErroneousPhoneNumberTag, *emptyBuffer, -993, KKmlMimeType ); 
       
   526 
       
   527 	iLog->Log(_L("Test with Tp47KMLErroneousPhoneNumberTagPosition.kml"));
       
   528 	PrintParsedDataFromEncoderL(KKMLErroneousPhoneNumberTagPosition, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   529 
       
   530 	iLog->Log(_L("Test with Tp47KMLLongPhoneNumer.kml"));
       
   531 	PrintParsedDataFromEncoderL(KKMLLongPhoneNumer, *emptyBuffer, KErrNone, KKmlMimeType );
       
   532 
       
   533 	iLog->Log(_L("Test with Tp47KMLMissingPhoneTag1.kml"));
       
   534 	PrintParsedDataFromEncoderL(KKMLMissingPhoneTag1, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   535 
       
   536 	iLog->Log(_L("Test with Tp47KMLMissingPhoneTag2.kml"));
       
   537 	PrintParsedDataFromEncoderL(KKMLMissingPhoneTag2, *emptyBuffer, -993, KKmlMimeType );
       
   538 
       
   539 	iLog->Log(_L("Test with Tp47KMLPhoneNumberCaps.kml"));
       
   540 	PrintParsedDataFromEncoderL(KKMLPhoneNumberCaps, *emptyBuffer, KErrNone, KKmlMimeType );
       
   541 
       
   542 	iLog->Log(_L("Test with Tp47KMLPhoneNumberWithText.kml"));
       
   543 	PrintParsedDataFromEncoderL(KKMLPhoneNumberWithText, *emptyBuffer, KErrNone, KKmlMimeType );
       
   544 
       
   545 	iLog->Log(_L("Test with Tp47KMLPhoneNumberWithSpecialCharacters1.kml"));
       
   546 	PrintParsedDataFromEncoderL(KKMLPhoneNumberWithSpecialCharacters1, *emptyBuffer, -996, KKmlMimeType );
       
   547 
       
   548 	iLog->Log(_L("Test with Tp47KMLPhoneNumberWithSpecialCharacters2.kml"));
       
   549 	PrintParsedDataFromEncoderL(KKMLPhoneNumberWithSpecialCharacters2, *emptyBuffer, KErrNone, KKmlMimeType );
       
   550 	
       
   551 	//testing the point tag related test cases
       
   552 	iLog->Log(_L("Test with Tp47KMLEmptyPoint.kml"));
       
   553 	PrintParsedDataFromEncoderL(KKMLEmptyPoint, *emptyBuffer, KErrNone, KKmlMimeType );
       
   554 
       
   555 	iLog->Log(_L("Test with Tp47KMLErroneousPointTag.kml"));
       
   556 	PrintParsedDataFromEncoderL(KKMLErroneousPointTag, *emptyBuffer, -993, KKmlMimeType );
       
   557 
       
   558 	iLog->Log(_L("Test with Tp47KMLErroneousPointTagPosition.kml"));
       
   559 	PrintParsedDataFromEncoderL(KKMLErroneousPointTagPosition, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   560 
       
   561 	iLog->Log(_L("Test with Tp47KMLMissingPointTag1.kml"));
       
   562 	PrintParsedDataFromEncoderL(KKMLMissingPointTag1, *emptyBuffer, -993, KKmlMimeType );
       
   563 
       
   564 	iLog->Log(_L("Test with Tp47KMLMissingPointTag2.kml"));
       
   565 	PrintParsedDataFromEncoderL(KKMLMissingPointTag2, *emptyBuffer, -993, KKmlMimeType );
       
   566 
       
   567 	iLog->Log(_L("Test with Tp47KMLPointCaps.kml"));
       
   568 	PrintParsedDataFromEncoderL(KKMLPointCaps, *emptyBuffer, KErrNone, KKmlMimeType );
       
   569 
       
   570 	iLog->Log(_L("Test with Tp47KMLPointTag1.kml"));
       
   571 	PrintParsedDataFromEncoderL(KKMLPointTag1, *emptyBuffer, KErrNone, KKmlMimeType );
       
   572 
       
   573 	iLog->Log(_L("Test with Tp47KMLPointTag2.kml"));
       
   574 	PrintParsedDataFromEncoderL(KKMLPointTag2, *emptyBuffer, KErrNone, KKmlMimeType );
       
   575 
       
   576 	iLog->Log(_L("Test with Tp47KMLPointTag3.kml"));
       
   577 	PrintParsedDataFromEncoderL(KKMLPointTag3, *emptyBuffer, KErrNone, KKmlMimeType );
       
   578 
       
   579 	
       
   580 	//testing the description tag related cases
       
   581 	iLog->Log(_L("Test with Tp47KMLEmptyDescription.kml"));
       
   582 	PrintParsedDataFromEncoderL(KKMLEmptyDescription, *emptyBuffer, KErrNone, KKmlMimeType );
       
   583 
       
   584 	iLog->Log(_L("Test with Tp47KMLDescriptionWithSpecialCharacters1.kml"));
       
   585 	PrintParsedDataFromEncoderL(KKMLDescriptionWithSpecialCharacters1, *emptyBuffer, KErrNone, KKmlMimeType );
       
   586 
       
   587 	iLog->Log(_L("Test with Tp47KMLDescriptionWithSpecialCharacters2.kml"));
       
   588 	PrintParsedDataFromEncoderL(KKMLDescriptionWithSpecialCharacters2, *emptyBuffer, -996, KKmlMimeType );
       
   589 
       
   590 	iLog->Log(_L("Test with Tp47KMLDescriptionCaps.kml"));
       
   591 	PrintParsedDataFromEncoderL(KKMLDescriptionCaps, *emptyBuffer, KErrNone, KKmlMimeType );
       
   592 
       
   593 	iLog->Log(_L("Test with Tp47KMLLongDescription.kml"));
       
   594 	PrintParsedDataFromEncoderL(KKMLLongDescription, *emptyBuffer, KErrNone, KKmlMimeType );
       
   595 
       
   596 	iLog->Log(_L("Test with Tp47KMLErroneousDescriptionTag.kml"));
       
   597 	PrintParsedDataFromEncoderL(KKMLErroneousDescriptionTag, *emptyBuffer, -993, KKmlMimeType );
       
   598 
       
   599 	iLog->Log(_L("Test with Tp47KMLErroneousDescriptionTagposition.kml"));
       
   600 	PrintParsedDataFromEncoderL(KKMLErroneousDescriptionTagposition, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   601 
       
   602 	iLog->Log(_L("Test with Tp47KMLMissingDescriptionTag1.kml"));
       
   603 	PrintParsedDataFromEncoderL(KKMLMissingDescriptionTag1, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   604 
       
   605 	iLog->Log(_L("Test with Tp47KMLMissingDescriptionTag2.kml"));
       
   606 	PrintParsedDataFromEncoderL(KKMLMissingDescriptionTag2, *emptyBuffer, -993, KKmlMimeType );
       
   607 
       
   608 	iLog->Log(_L("Test with Tp47KMLDescriptionWithCDATA.kml"));
       
   609 	PrintParsedDataFromEncoderL(KKMLDescriptionWithCDATA, *emptyBuffer, KErrNone, KKmlMimeType );
       
   610 	
       
   611 	//testing the folder tag related cases
       
   612 	iLog->Log(_L("Test with Tp47KMLErroneousFolderTag.kml"));
       
   613 	PrintParsedDataFromEncoderL(KKMLErroneousFolderTag, *emptyBuffer, -993, KKmlMimeType );
       
   614 
       
   615 	iLog->Log(_L("Test with Tp47KMLFolderCaps.kml"));
       
   616 	PrintParsedDataFromEncoderL(KKMLFolderCaps, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   617 
       
   618 	iLog->Log(_L("Test with Tp47KMLMissingFolderTag1.kml"));
       
   619 	PrintParsedDataFromEncoderL(KKMLMissingFolderTag1, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   620 
       
   621 	iLog->Log(_L("Test with Tp47KMLMissingFolderTag2.kml"));
       
   622 	PrintParsedDataFromEncoderL(KKMLMissingFolderTag2, *emptyBuffer, -993, KKmlMimeType );
       
   623 
       
   624 	iLog->Log(_L("Test with Tp47KMLEmptyFolderName.kml"));
       
   625 	PrintParsedDataFromEncoderL(KKMLEmptyFolderName, *emptyBuffer, KErrNone, KKmlMimeType );
       
   626 
       
   627 	iLog->Log(_L("Test with Tp47KMLLongFolderName.kml"));
       
   628 	PrintParsedDataFromEncoderL(KKMLLongFolderName, *emptyBuffer, KErrNone, KKmlMimeType );
       
   629 
       
   630 	iLog->Log(_L("Test with Tp47KMLFolderNameWithSpecialCharacters1.kml"));
       
   631 	PrintParsedDataFromEncoderL(KKMLFolderNameWithSpecialCharacters1, *emptyBuffer, -996, KKmlMimeType );
       
   632 
       
   633 	iLog->Log(_L("Test with Tp47KMLFolderNameWithSpecialCharacters2.kml"));
       
   634 	PrintParsedDataFromEncoderL(KKMLFolderNameWithSpecialCharacters2, *emptyBuffer, KErrNone, KKmlMimeType );
       
   635 
       
   636 
       
   637 	//testing the document tag related cases
       
   638 	iLog->Log(_L("Test with Tp47KMLDocumentNameWithSpecialCharacters1.kml"));
       
   639 	PrintParsedDataFromEncoderL(KKMLDocumentNameWithSpecialCharacters1, *emptyBuffer, -996, KKmlMimeType );
       
   640 
       
   641 	iLog->Log(_L("Test with Tp47KMLDocumentNameWithSpecialCharacters2.kml"));
       
   642 	PrintParsedDataFromEncoderL(KKMLDocumentNameWithSpecialCharacters2, *emptyBuffer, KErrNone, KKmlMimeType );
       
   643 
       
   644 	iLog->Log(_L("Test with Tp47KMLEmptyDocumentName.kml"));
       
   645 	PrintParsedDataFromEncoderL(KKMLEmptyDocumentName, *emptyBuffer, KErrNone, KKmlMimeType );
       
   646 
       
   647 	iLog->Log(_L("Test with Tp47KMLLongDocumentName.kml"));
       
   648 	PrintParsedDataFromEncoderL(KKMLLongDocumentName, *emptyBuffer, KErrNone, KKmlMimeType );
       
   649 
       
   650 	iLog->Log(_L("Test with Tp47KMLDocumentCaps.kml"));
       
   651 	PrintParsedDataFromEncoderL(KKMLDocumentCaps, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   652 
       
   653 	iLog->Log(_L("Test with Tp47KMLErroneousDocumentTag.kml"));
       
   654 	PrintParsedDataFromEncoderL(KKMLErroneousDocumentTag, *emptyBuffer, -993, KKmlMimeType );
       
   655 
       
   656 	iLog->Log(_L("Test with Tp47KMLMissingDocumentTag1.kml"));
       
   657 	PrintParsedDataFromEncoderL(KKMLMissingDocumentTag1, *emptyBuffer, -993, KKmlMimeType );
       
   658 
       
   659 	iLog->Log(_L("Test with Tp47KMLMissingDocumentTag2.kml"));
       
   660 	PrintParsedDataFromEncoderL(KKMLMissingDocumentTag2, *emptyBuffer, -993, KKmlMimeType );
       
   661 	
       
   662 	
       
   663 	//testing the address tag related cases
       
   664 	iLog->Log(_L("Test with Tp47KMLAddressCaps.kml"));
       
   665 	PrintParsedDataFromEncoderL(KKMLAddressCaps, *emptyBuffer, KErrNone, KKmlMimeType );
       
   666 
       
   667 	iLog->Log(_L("Test with Tp47KMLAddressWithSpecialCharacters1.kml"));
       
   668 	PrintParsedDataFromEncoderL(KKMLAddressWithSpecialCharacters1, *emptyBuffer, -996, KKmlMimeType );
       
   669 
       
   670 	iLog->Log(_L("Test with Tp47KMLAddressWithSpecialCharacters2.kml"));
       
   671 	PrintParsedDataFromEncoderL(KKMLAddressWithSpecialCharacters2, *emptyBuffer, KErrNone, KKmlMimeType );
       
   672 
       
   673 	iLog->Log(_L("Test with Tp47KMLEmptyAddress1.kml"));
       
   674 	PrintParsedDataFromEncoderL(KKMLEmptyAddress1, *emptyBuffer, KErrNone, KKmlMimeType );
       
   675 
       
   676 	iLog->Log(_L("Test with Tp47KMLEmptyAddress2.kml"));
       
   677 	PrintParsedDataFromEncoderL(KKMLEmptyAddress2, *emptyBuffer, KErrNone, KKmlMimeType );
       
   678 
       
   679 	iLog->Log(_L("Test with Tp47KMLLongAddress1.kml"));
       
   680 	PrintParsedDataFromEncoderL(KKMLLongAddress1, *emptyBuffer, KErrNone, KKmlMimeType );
       
   681 
       
   682 	iLog->Log(_L("Test with Tp47KMLLongAddress2.kml"));
       
   683 	PrintParsedDataFromEncoderL(KKMLLongAddress2, *emptyBuffer, KErrNone, KKmlMimeType );
       
   684 
       
   685 	iLog->Log(_L("Test with Tp47KMLLongAddress3.kml"));
       
   686 	PrintParsedDataFromEncoderL(KKMLLongAddress3, *emptyBuffer, KErrNone, KKmlMimeType );
       
   687 
       
   688 	iLog->Log(_L("Test with Tp47KMLErroneousAddressTag.kml"));
       
   689 	PrintParsedDataFromEncoderL(KKMLErroneousAddressTag, *emptyBuffer, -993, KKmlMimeType );
       
   690 
       
   691 	iLog->Log(_L("Test with Tp47KMLErroneousAddressTagPosition.kml"));
       
   692 	PrintParsedDataFromEncoderL(KKMLErroneousAddressTagPosition, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   693 
       
   694 	iLog->Log(_L("Test with Tp47KMLMissingAddressTag1.kml"));
       
   695 	PrintParsedDataFromEncoderL(KKMLMissingAddressTag1, *emptyBuffer, -993, KKmlMimeType );
       
   696 
       
   697 	iLog->Log(_L("Test with Tp47KMLMissingAddressTag2.kml"));
       
   698 	PrintParsedDataFromEncoderL(KKMLMissingAddressTag2, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   699 
       
   700 	//testing the coordinate tag related cases
       
   701 	iLog->Log(_L("Test with Tp47KMLCoordinateCaps.kml"));
       
   702 	PrintParsedDataFromEncoderL(KKMLCoordinateCaps, *emptyBuffer, KErrNone, KKmlMimeType );
       
   703 
       
   704 	iLog->Log(_L("Test with Tp47KMLMoreCoordinates.kml"));
       
   705 	PrintParsedDataFromEncoderL(KKMLMoreCoordinates, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   706 
       
   707 	iLog->Log(_L("Test with Tp47KMLErroneousCoordinateTag.kml"));
       
   708 	PrintParsedDataFromEncoderL(KKMLErroneousCoordinateTag, *emptyBuffer, -993, KKmlMimeType );
       
   709 
       
   710 	iLog->Log(_L("Test with Tp47KMLErroneousCoordinateTagPosition.kml"));
       
   711 	PrintParsedDataFromEncoderL(KKMLErroneousCoordinateTagPosition, *emptyBuffer, KErrNone, KKmlMimeType );
       
   712 
       
   713 	iLog->Log(_L("Test with Tp47KMLCoordinates1.kml"));
       
   714 	PrintParsedDataFromEncoderL(KKMLCoordinates1, *emptyBuffer, KErrNone, KKmlMimeType );
       
   715 
       
   716 	iLog->Log(_L("Test with Tp47KMLCoordinates2.kml"));
       
   717 	PrintParsedDataFromEncoderL(KKMLCoordinates2, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   718 
       
   719 	iLog->Log(_L("Test with Tp47KMLCoordinates3.kml"));
       
   720 	PrintParsedDataFromEncoderL(KKMLCoordinates3, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   721 
       
   722 	iLog->Log(_L("Test with Tp47KMLCoordinates4.kml"));
       
   723 	PrintParsedDataFromEncoderL(KKMLCoordinates4, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   724 
       
   725 	iLog->Log(_L("Test with Tp47KMLCoordinates5.kml"));
       
   726 	PrintParsedDataFromEncoderL(KKMLCoordinates5, *emptyBuffer, KErrNone, KKmlMimeType );
       
   727 
       
   728 	iLog->Log(_L("Test with Tp47KMLCoordinates6.kml"));
       
   729 	PrintParsedDataFromEncoderL(KKMLCoordinates6, *emptyBuffer, KErrNone, KKmlMimeType );
       
   730 
       
   731 	iLog->Log(_L("Test with Tp47KMLLongCoordinates1.kml"));
       
   732 	PrintParsedDataFromEncoderL(KKMLLongCoordinates1, *emptyBuffer, KErrNone, KKmlMimeType );
       
   733 
       
   734 	iLog->Log(_L("Test with Tp47KMLLongCoordinates2.kml"));
       
   735 	PrintParsedDataFromEncoderL(KKMLLongCoordinates2, *emptyBuffer, KErrNone, KKmlMimeType );
       
   736 
       
   737 	iLog->Log(_L("Test with Tp47KMLMissingCoordinateTag1.kml"));
       
   738 	PrintParsedDataFromEncoderL(KKMLMissingCoordinateTag1, *emptyBuffer, -993, KKmlMimeType );
       
   739 
       
   740 	iLog->Log(_L("Test with Tp47KMLMissingCoordinateTag2.kml"));
       
   741 	PrintParsedDataFromEncoderL(KKMLMissingCoordinateTag2, *emptyBuffer, -993, KKmlMimeType );
       
   742 
       
   743 	iLog->Log(_L("Test with Tp47KMLEmptyCoordinates1.kml"));
       
   744 	PrintParsedDataFromEncoderL(KKMLEmptyCoordinates1, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   745 
       
   746 	iLog->Log(_L("Test with Tp47KMLEmptyCoordinates2.kml"));
       
   747 	PrintParsedDataFromEncoderL(KKMLEmptyCoordinates2, *emptyBuffer, KErrNone, KKmlMimeType );
       
   748 
       
   749 	iLog->Log(_L("Test with Tp47KMLEmptyCoordinates3.kml"));
       
   750 	PrintParsedDataFromEncoderL(KKMLEmptyCoordinates3, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   751 
       
   752 	iLog->Log(_L("Test with Tp47KMLEmptyCoordinates4.kml"));
       
   753 	PrintParsedDataFromEncoderL(KKMLEmptyCoordinates4, *emptyBuffer, KErrNone, KKmlMimeType );
       
   754 
       
   755 	iLog->Log(_L("Test with Tp47KMLEmptyCoordinates5.kml"));
       
   756 	PrintParsedDataFromEncoderL(KKMLEmptyCoordinates5, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   757 
       
   758 	iLog->Log(_L("Test with Tp47KMLEmptyCoordinates6.kml"));
       
   759 	PrintParsedDataFromEncoderL(KKMLEmptyCoordinates6, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   760 
       
   761 	iLog->Log(_L("Test with Tp47KMLEmptyCoordinates7.kml"));
       
   762 	PrintParsedDataFromEncoderL(KKMLEmptyCoordinates7, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   763 
       
   764 	iLog->Log(_L("Test with Tp47KMLErroneousCoordinates1.kml"));
       
   765 	PrintParsedDataFromEncoderL(KKMLErroneousCoordinates1, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   766 
       
   767 	iLog->Log(_L("Test with Tp47KMLErroneousCoordinates2.kml"));
       
   768 	PrintParsedDataFromEncoderL(KKMLErroneousCoordinates2, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   769 
       
   770 	iLog->Log(_L("Test with Tp47KMLErroneousCoordinates3.kml"));
       
   771 	PrintParsedDataFromEncoderL(KKMLErroneousCoordinates3, *emptyBuffer, KErrOverflow, KKmlMimeType );
       
   772 
       
   773 	iLog->Log(_L("Test with Tp47KMLErroneousCoordinates4.kml"));
       
   774 	PrintParsedDataFromEncoderL(KKMLErroneousCoordinates4, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   775 
       
   776 	iLog->Log(_L("Test with Tp47KMLErroneousCoordinates5.kml"));
       
   777 	PrintParsedDataFromEncoderL(KKMLErroneousCoordinates5, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   778 
       
   779 	iLog->Log(_L("Test with Tp47KMLNegativeCoordinates.kml"));
       
   780 	PrintParsedDataFromEncoderL(KKMLNegativeCoordinates, *emptyBuffer, KErrNone, KKmlMimeType );
       
   781 	
       
   782 	//testing some invalid cases
       
   783 	iLog->Log(_L("Test with Tp47KMLErroneousTextWithinPlacemark.kml"));
       
   784 	PrintParsedDataFromEncoderL(KKMLErroneousTextWithinPlacemark, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   785 
       
   786 	iLog->Log(_L("Test with Tp47KMLEmptyfile1.kml"));
       
   787 	PrintParsedDataFromEncoderL(KKMLEmptyfile1, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   788 
       
   789 	iLog->Log(_L("Test with Tp47KMLEmptyfile2.kml"));
       
   790 	PrintParsedDataFromEncoderL(KKMLEmptyfile2, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   791 
       
   792 	iLog->Log(_L("Test with Tp47KMLInvalidfile.kml"));
       
   793 	PrintParsedDataFromEncoderL(KKMLInvalidfile, *emptyBuffer, -983, KKmlMimeType ); //EXmlMisplacedPi =  -983
       
   794 	
       
   795 	//testing the Placemark tag related cases
       
   796 	iLog->Log(_L("Test with Tp47KMLPlacemarkCaps.kml"));
       
   797 	PrintParsedDataFromEncoderL(KKMLPlacemarkCaps, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   798 
       
   799 	iLog->Log(_L("Test with Tp47KMLErroneousPlacemarkTag.kml"));
       
   800 	PrintParsedDataFromEncoderL(KKMLErroneousPlacemarkTag, *emptyBuffer, -993, KKmlMimeType );
       
   801 
       
   802 	iLog->Log(_L("Test with Tp47KMLMissingPlacemarkTag1.kml"));
       
   803 	PrintParsedDataFromEncoderL(KKMLMissingPlacemarkTag1, *emptyBuffer, -993, KKmlMimeType );
       
   804 
       
   805 	iLog->Log(_L("Test with Tp47KMLMissingPlacemarkTag2.kml"));
       
   806 	PrintParsedDataFromEncoderL(KKMLMissingPlacemarkTag2, *emptyBuffer, -993, KKmlMimeType );
       
   807 
       
   808 	iLog->Log(_L("Test with Tp47KMLEmptyPlacemarkTag.kml"));
       
   809 	PrintParsedDataFromEncoderL(KKMLEmptyPlacemarkTag, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   810 	
       
   811 	//testing with kml files downloaded from google earth
       
   812 	iLog->Log(_L("Test with Tp47KMLGandhi Museum.kml"));
       
   813 	PrintParsedDataFromEncoderL(KKMLGandhiMuseum, *emptyBuffer, KErrNone, KKmlMimeType );
       
   814 
       
   815 	iLog->Log(_L("Test with Tp47KMLIndus Heritage Centre, India.kml"));
       
   816 	PrintParsedDataFromEncoderL(KKMLIndusHeritageCentreIndia, *emptyBuffer, KErrNone, KKmlMimeType );
       
   817 
       
   818 	iLog->Log(_L("Test with Tp47KMLhilton hotels near new york (1 - 10).kml"));
       
   819 	PrintParsedDataFromEncoderL(KKMLHiltonHotels, *emptyBuffer, KErrNone, KKmlMimeType );
       
   820 	
       
   821 	iLog->Log(_L("Test with Tp47KMLFile4.kml"));
       
   822 	PrintParsedDataFromEncoderL(KKMLFile4, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   823 
       
   824 	iLog->Log(_L("Test with Tp47KMLFile5.kml"));
       
   825 	PrintParsedDataFromEncoderL(KKMLFile5, *emptyBuffer, KErrNone, KKmlMimeType );
       
   826 
       
   827 	iLog->Log(_L("Test with Tp47KMLFile6.kml"));
       
   828 	PrintParsedDataFromEncoderL(KKMLFile6, *emptyBuffer, KErrNone, KKmlMimeType );
       
   829 
       
   830 	iLog->Log(_L("Test with Tp47KMLFile7.kml"));
       
   831 	PrintParsedDataFromEncoderL(KKMLFile7, *emptyBuffer, KErrNone, KKmlMimeType );
       
   832 
       
   833 	iLog->Log(_L("Test with Tp47KMLFile8.kml"));
       
   834 	PrintParsedDataFromEncoderL(KKMLFile8, *emptyBuffer, KErrPosLmUnknownFormat, KKmlMimeType );
       
   835 
       
   836 	iLog->Log(_L("Test with Tp47KMLFile9.kml"));
       
   837 	PrintParsedDataFromEncoderL(KKMLFile9, *emptyBuffer, -993, KKmlMimeType );
       
   838 
       
   839     // Now compare tha trace file against the correct one
       
   840     RFile correctFile;
       
   841     RFile file;
       
   842 
       
   843     iLog->Log(_L(">>>>>>>Comparing files<<<<<"));
       
   844     
       
   845     TFileName filename;
       
   846     CreateCorrectXmlFileL( KCorrectFile, filename );
       
   847     
       
   848     User::LeaveIfError(correctFile.Open(iFileSession, filename,  EFileRead));
       
   849     CleanupClosePushL(correctFile);
       
   850     User::LeaveIfError(file.Open(iFileSession, KFileTrace,  EFileRead));
       
   851     CleanupClosePushL(file);
       
   852 
       
   853     HBufC* correctLinebuffer = HBufC::NewLC( KBufSize );
       
   854             TPtr correctLine = correctLinebuffer->Des();    
       
   855             HBufC* linebuffer = HBufC::NewLC( KBufSize );
       
   856             TPtr line = linebuffer->Des();    
       
   857    	
       
   858     TInt err = KErrNone;
       
   859     TBool done = EFalse;
       
   860     TInt lineNr = 0;
       
   861 
       
   862     while (ReadLn(correctFile, correctLine) != KErrEof && !done)
       
   863         {
       
   864         lineNr++;
       
   865         err = ReadLn(file, line);
       
   866         if ( err == KErrEof ) 
       
   867             {
       
   868             done = ETrue;    
       
   869             }
       
   870         correctLine.Trim();
       
   871         line.Trim();
       
   872         if (correctLine.Compare(line) != KErrNone)
       
   873             {
       
   874             HBufC* buf = HBufC::NewLC( 128 );
       
   875             TPtr buffer = buf->Des();
       
   876             
       
   877             buffer.Format(_L("ERROR in TraceFile on line %d: "), lineNr);
       
   878             
       
   879             iLog->Log( buffer );
       
   880             iLog->Log( correctLine );
       
   881             iLog->Log( line );
       
   882             iErrorsFound++;
       
   883             CleanupStack::PopAndDestroy( buf );
       
   884             }
       
   885         }
       
   886 		CleanupStack::PopAndDestroy(linebuffer);
       
   887     CleanupStack::PopAndDestroy(correctLinebuffer);
       
   888     CleanupStack::PopAndDestroy(&file);
       
   889     CleanupStack::PopAndDestroy(&correctFile);
       
   890 
       
   891     // EOF for trace file was reach before EOF in the correct file
       
   892     if (done)
       
   893         {
       
   894         iLog->Log(_L("ERROR: EOF for Trace file was reached to early"));
       
   895         iErrorsFound++;
       
   896         }
       
   897 
       
   898     iLog->Log(_L("Test with Empty MediaLink"));
       
   899     PrintParsedDataFromEncoderL(KXMLFileWithEmptyMedialink, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   900     PrintParsedDataFromEncoderL(KXMLFileWithEmptyMedialink, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
       
   901 
       
   902     iLog->Log(_L("Test with Empty Coordinates"));
       
   903     PrintParsedDataFromEncoderL(KXMLFileWithEmptyCoordinates, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   904     PrintParsedDataFromEncoderL(KXMLFileWithEmptyCoordinates, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
       
   905 
       
   906     iLog->Log(_L("Test with Empty AdresseInfo"));
       
   907     PrintParsedDataFromEncoderL(KXMLFileWithEmptyAdresseInfo, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   908     // N/A for GPX
       
   909 
       
   910     iLog->Log(_L("Test with Erronous Text in Tag1"));
       
   911     PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag1, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   912     PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag1, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
       
   913 
       
   914     iLog->Log(_L("Test with Erronous Text in Tag2"));
       
   915     PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag2, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   916     PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag2, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
       
   917 
       
   918     iLog->Log(_L("Test with Erronous Text in Tag3"));
       
   919     PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag3, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   920     PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag3, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
       
   921 
       
   922     iLog->Log(_L("Test with Erronous Text in Tag4"));
       
   923     PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag4, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   924     PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag4, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
       
   925 
       
   926     iLog->Log(_L("Test with Erronous Text in Tag5"));
       
   927     PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag5, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   928     PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag5, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
       
   929 
       
   930     iLog->Log(_L("Test with Erronous Text in Tag6"));
       
   931     PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag6, *emptyBuffer, KErrPosLmUnknownFormat, KLmxMimeType );
       
   932     PrintParsedDataFromEncoderL(KXMLFileWithErronousTextInTag6, *emptyBuffer, KErrPosLmUnknownFormat, KGpxMimeType );
       
   933 
       
   934     CheckIndexNotSupportedL();
       
   935 
       
   936     DoCancelTestL();
       
   937 
       
   938     if (iErrorsFound != KErrNone)// LogErrorAndLeave(_L("Errors found in TP47"));
       
   939         {
       
   940     	iLog->Log(_L("Errors found in TP47"));
       
   941     	User::Leave(-1);
       
   942         }
       
   943 	}
       
   944 
       
   945 // ---------------------------------------------------------
       
   946 // CPosTp47::CheckIndexNotSupportedL
       
   947 //
       
   948 // (other items were commented in a header).
       
   949 // ---------------------------------------------------------
       
   950 //
       
   951 void CPosTp47::CheckIndexNotSupportedL()
       
   952     {
       
   953     iLog->Log(_L("CheckIndexNotSupportedL"));
       
   954 
       
   955     iLandmarkParser = CPosLandmarkParser::NewL(KLmxMimeType);
       
   956     iLandmarkParser->SetInputFileL(KFileName);
       
   957 
       
   958     // This function should leave with KErrNotSupported
       
   959     TRAPD(err, iOperation = iLandmarkParser->ParseContentL(ETrue));
       
   960 
       
   961     delete iOperation;
       
   962     iOperation = NULL;
       
   963 
       
   964     delete iLandmarkParser;
       
   965     iLandmarkParser = NULL;
       
   966 
       
   967     if (err != KErrNotSupported)
       
   968     {
       
   969     	iLog->Log(_L("ParseContentL(ETrue) did not leave with KErrNotSupported"));
       
   970     	User::Leave(err);
       
   971     }
       
   972 
       
   973     iLandmarkParser = CPosLandmarkParser::NewL(KGpxMimeType);
       
   974     iLandmarkParser->SetInputFileL(KFileName);
       
   975 
       
   976     // This function should leave with KErrNotSupported
       
   977     TRAP(err, iOperation = iLandmarkParser->ParseContentL(ETrue));
       
   978 
       
   979     delete iOperation;
       
   980     iOperation = NULL;
       
   981 
       
   982     delete iLandmarkParser;
       
   983     iLandmarkParser = NULL;
       
   984 
       
   985     if (err != KErrNotSupported)
       
   986     {
       
   987         iLog->Log(_L("ParseContentL(ETrue) (GPX) did not leave with KErrNotSupported"));
       
   988         User::Leave(err);
       
   989     }
       
   990 
       
   991     iLog->Log(_L("CheckIndexNotSupportedL Done"));
       
   992     }
       
   993 
       
   994 // ---------------------------------------------------------
       
   995 // CPosTp47::DoCancelTestL
       
   996 //
       
   997 // (other items were commented in a header).
       
   998 // ---------------------------------------------------------
       
   999 //
       
  1000 void CPosTp47::DoCancelTestL()
       
  1001     {
       
  1002     iLog->Log(_L("DoCancelTestL"));
       
  1003     iLandmarkParser = CPosLandmarkParser::NewL(KLmxMimeType);
       
  1004     iLandmarkParser->SetInputFileL(KFileName);
       
  1005 
       
  1006     iOperation = iLandmarkParser->ParseContentL();
       
  1007 
       
  1008     TRequestStatus status = KPosLmOperationNotComplete;
       
  1009     TReal32 progress;
       
  1010 
       
  1011     // 1 ) Cancel parse function by deleting iOperation
       
  1012     delete iOperation;
       
  1013     iOperation = NULL;
       
  1014 
       
  1015     TUint32 nr = iLandmarkParser->NumOfParsedLandmarks();
       
  1016     if ((TInt)nr != 0)
       
  1017     {
       
  1018     	iLog->Log(_L("No landmarks should be found"));
       
  1019     	User::Leave(KErrNone);
       
  1020     }
       
  1021 
       
  1022     // No landmark should be found
       
  1023     TRAPD(err, iLandmarkParser->LandmarkLC());
       
  1024     if (err != KErrNotFound)
       
  1025         {
       
  1026         iLog->Log(_L("ERROR: No Landmark should be found"));
       
  1027         iErrorsFound++;
       
  1028         }
       
  1029 
       
  1030     // 1 ) Cancel parse function by changing input
       
  1031     iOperation = iLandmarkParser->ParseContentL();
       
  1032 
       
  1033     // Get the first landmark
       
  1034     iOperation->NextStep(status, progress);
       
  1035     // Wait for NextStep to complete
       
  1036     User::WaitForRequest(status);
       
  1037     nr = iLandmarkParser->NumOfParsedLandmarks();
       
  1038     if ((TInt)nr != 1)
       
  1039     {
       
  1040     	iLog->Log(_L("One landmark should be found"));
       
  1041     	User::Leave(KErrNone);
       
  1042     }
       
  1043 
       
  1044     // Change input
       
  1045     iLandmarkParser->SetInputFileL(KFileName);
       
  1046 
       
  1047     nr = iLandmarkParser->NumOfParsedLandmarks();
       
  1048     if ((TInt)nr != 0)
       
  1049     {
       
  1050     	iLog->Log(_L("No landmarks should be found"));
       
  1051     	User::Leave(KErrNone);
       
  1052     }
       
  1053 
       
  1054     // No landmark should be found
       
  1055     TRAP(err, iLandmarkParser->LandmarkLC());
       
  1056     if (err != KErrNotFound)
       
  1057         {
       
  1058         iLog->Log(_L("ERROR: No Landmark should be found"));
       
  1059         iErrorsFound++;
       
  1060         }
       
  1061 
       
  1062     delete iOperation;
       
  1063     iOperation = NULL;
       
  1064     delete iLandmarkParser;
       
  1065     iLandmarkParser = NULL;
       
  1066     iLog->Log(_L("DoCancelTestL Done"));
       
  1067     }
       
  1068 
       
  1069 // ---------------------------------------------------------
       
  1070 // CPosTp47::CreateXMLData
       
  1071 //
       
  1072 // (other items were commented in a header).
       
  1073 // ---------------------------------------------------------
       
  1074 //
       
  1075 void CPosTp47::CreateXMLData(TBool aUseFile)
       
  1076     {
       
  1077     iLog->Log(_L("CreateXMLData"));
       
  1078     // 1) Create an encoder object
       
  1079     iLandmarkEncoder = CPosLandmarkEncoder::NewL(KLmxMimeType);
       
  1080 
       
  1081     CPosLmCategoryManager* categoryManager = CPosLmCategoryManager::NewL(*iDatabase);
       
  1082     CleanupStack::PushL(categoryManager);
       
  1083 
       
  1084     if (aUseFile)
       
  1085         {
       
  1086         DeleteFileL(KFileName);
       
  1087         // 2) Use file for encoding, set output file
       
  1088         iLandmarkEncoder->SetOutputFileL(KFileName);
       
  1089         }
       
  1090     else
       
  1091         {
       
  1092         // 2) Use buffer for encoding
       
  1093         iEncoderBuffer = iLandmarkEncoder->SetUseOutputBufferL();
       
  1094         }
       
  1095 
       
  1096     // 300 characters
       
  1097     _LIT(KLongFieldName, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890");
       
  1098     _LIT(KLongFieldDescription, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890");
       
  1099     _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");
       
  1100     _LIT(KLongFieldDescriptionExtra2, "Extra Extra Extra Extra Extra Extra Extra Extra Extra Extra Extra Extra");
       
  1101 
       
  1102     iLandmarkEncoder->AddCollectionDataL(EPosLmCollDataCollectionName, KLongFieldName);
       
  1103     iLandmarkEncoder->AddCollectionDataL(EPosLmCollDataCollectionDescription, KLongFieldDescription);
       
  1104     iLandmarkEncoder->AddCollectionDataL((TPosLmCollectionDataId)(EPosLmCollDataContentSpecificDataBegin), KLongFieldDescriptionExtra);
       
  1105     iLandmarkEncoder->AddCollectionDataL((TPosLmCollectionDataId)(EPosLmCollDataContentSpecificDataBegin + 1), KLongFieldDescriptionExtra2);
       
  1106 
       
  1107     iLog->Log(_L("Create Data..."));
       
  1108 
       
  1109     // 3) Add one landmark with all fields set to be encoded
       
  1110     CPosLandmark* lm1 = CreateXMLLandmarkLC(_L("TP47Landmark1"));
       
  1111     AddAllXMLFieldsL(lm1);
       
  1112 
       
  1113     iLandmarkEncoder->AddLandmarkL(*lm1);
       
  1114     iLandmarks.Append(lm1);
       
  1115     CleanupStack::Pop(lm1);
       
  1116 
       
  1117     // 4) Add one more landmark to be encoded (id27 "LOG9" in categories 11-17)
       
  1118     CPosLandmark* lm2 = iDatabase->ReadLandmarkLC(27);
       
  1119     iLandmarkEncoder->AddLandmarkL(*lm2);
       
  1120     // Remove field 408 which is not exported
       
  1121     lm2->RemovePositionField(408);
       
  1122     iLandmarks.Append(lm2);
       
  1123     CleanupStack::Pop(lm2);
       
  1124 
       
  1125     // 5) Add one category (pizzeria) to the latest added landmark
       
  1126     CPosLandmarkCategory* landmarkCategory = categoryManager->ReadCategoryLC(1);
       
  1127 
       
  1128     iLandmarkEncoder->AddCategoryForLatestLandmarkL(*landmarkCategory);
       
  1129     CleanupStack::PopAndDestroy(landmarkCategory);
       
  1130 
       
  1131     // 6) Add one landmark to be encoded (id=18 "enat?r" in category 18)
       
  1132     lm1 = iDatabase->ReadLandmarkLC(18);
       
  1133     iLandmarkEncoder->AddLandmarkL(*lm1);
       
  1134     // Remove field 408 which is not exported
       
  1135     lm1->RemovePositionField(408);
       
  1136     iLandmarks.Append(lm1);
       
  1137     CleanupStack::Pop(lm1);
       
  1138 
       
  1139     // 7) Add one category (Frisör) to the latest added landmark
       
  1140     landmarkCategory = categoryManager->ReadCategoryLC(18);
       
  1141 
       
  1142     iLandmarkEncoder->AddCategoryForLatestLandmarkL(*landmarkCategory);
       
  1143     CleanupStack::PopAndDestroy(landmarkCategory);
       
  1144 
       
  1145     // 8 ) Add one global category  (Entertainment) to the latest added landmark
       
  1146 
       
  1147     TPosLmItemId globalCategoryId = categoryManager->GetGlobalCategoryL(15000);
       
  1148     if (globalCategoryId != KPosLmNullItemId)
       
  1149         {
       
  1150         landmarkCategory = categoryManager->ReadCategoryLC(globalCategoryId);
       
  1151         iLandmarkEncoder->AddCategoryForLatestLandmarkL(*landmarkCategory);
       
  1152         CleanupStack::PopAndDestroy(landmarkCategory);
       
  1153     }
       
  1154     else
       
  1155     {
       
  1156     	iLog->Log(_L("Global category was not found1"));
       
  1157     	User::Leave(-1);
       
  1158     }
       
  1159 
       
  1160     // 9 ) Add one global category  (People) to the latest added landmark
       
  1161 
       
  1162     globalCategoryId = categoryManager->GetGlobalCategoryL(27000);
       
  1163     if (globalCategoryId != KPosLmNullItemId)
       
  1164         {
       
  1165         landmarkCategory = categoryManager->ReadCategoryLC(globalCategoryId);
       
  1166         iLandmarkEncoder->AddCategoryForLatestLandmarkL(*landmarkCategory);
       
  1167         CleanupStack::PopAndDestroy(landmarkCategory);
       
  1168         }
       
  1169     else
       
  1170     {
       
  1171     	iLog->Log(_L("Global category was not found2"));
       
  1172     	User::Leave(-1);
       
  1173     }
       
  1174     // 11) Add one landmark with all fields set to empty (_L(""))
       
  1175     lm1 = CreateXMLLandmarkLC(_L("TP47LandmarkEmpty"));
       
  1176     AddAllEmptyXMLFieldsL(lm1);
       
  1177     iLandmarkEncoder->AddLandmarkL(*lm1);
       
  1178     // Remove field 402 (EPositionFieldCountryCode) which is not exported when empty
       
  1179     lm1->RemovePositionField(402);
       
  1180     iLandmarks.Append(lm1);
       
  1181     CleanupStack::Pop(lm1);
       
  1182 
       
  1183     // 12) Add one landmark with all fields set to be encoded
       
  1184     lm1 = CreateXMLLandmarkLC(_L("TP47Landmark2"));
       
  1185     AddAllXMLFieldsL(lm1);
       
  1186     iLandmarkEncoder->AddLandmarkL(*lm1);
       
  1187 
       
  1188     iLandmarks.Append(lm1);
       
  1189     CleanupStack::Pop(lm1);
       
  1190 
       
  1191     // 13) Add one global category  (Shopping) to the latest added landmark
       
  1192     globalCategoryId = categoryManager->GetGlobalCategoryL(36000);
       
  1193     if (globalCategoryId != KPosLmNullItemId)
       
  1194         {
       
  1195         landmarkCategory = categoryManager->ReadCategoryLC(globalCategoryId);
       
  1196         iLandmarkEncoder->AddCategoryForLatestLandmarkL(*landmarkCategory);
       
  1197         CleanupStack::PopAndDestroy(landmarkCategory);
       
  1198     }
       
  1199     else
       
  1200     {
       
  1201     	iLog->Log(_L("Global category was not found3"));
       
  1202     	User::Leave(-1);
       
  1203     }
       
  1204 
       
  1205     // 14) Add one global category  (Sports) to the latest added landmark
       
  1206       globalCategoryId = categoryManager->GetGlobalCategoryL(42000);
       
  1207     if (globalCategoryId != KPosLmNullItemId)
       
  1208         {
       
  1209         landmarkCategory = categoryManager->ReadCategoryLC(globalCategoryId);
       
  1210         iLandmarkEncoder->AddCategoryForLatestLandmarkL(*landmarkCategory);
       
  1211         CleanupStack::PopAndDestroy(landmarkCategory);
       
  1212         }
       
  1213     else
       
  1214     	{
       
  1215     	iLog->Log(_L("Global category was not found4"));
       
  1216     	User::Leave(-1);
       
  1217     	}
       
  1218 
       
  1219       // ) Finalize encoding
       
  1220     iLog->Log(_L("FinalizeEncodingL"));
       
  1221     ExecuteAndDeleteLD(iLandmarkEncoder->FinalizeEncodingL());
       
  1222     iLog->Log(_L("FinalizeEncodingL Done"));
       
  1223 
       
  1224     delete iLandmarkEncoder;
       
  1225     iLandmarkEncoder = NULL;
       
  1226     CleanupStack::PopAndDestroy(categoryManager);
       
  1227     }
       
  1228 
       
  1229 // ---------------------------------------------------------
       
  1230 // CPosTp47::CheckXMLData
       
  1231 //
       
  1232 // (other items were commented in a header).
       
  1233 // ---------------------------------------------------------
       
  1234 //
       
  1235 void CPosTp47::CheckXMLData(TBool aUseFile)
       
  1236     {
       
  1237     iLog->Log(_L("CheckXMLData"));
       
  1238 
       
  1239     // This number must be updated if any more landmarks are added
       
  1240     const TInt KNrOfAddedLandmarks = 5;
       
  1241 
       
  1242     iLandmarkParser = CPosLandmarkParser::NewL(KLmxMimeType);
       
  1243 
       
  1244     CPosLmCategoryManager* categoryManager = CPosLmCategoryManager::NewL(*iDatabase);
       
  1245     CleanupStack::PushL(categoryManager);
       
  1246 
       
  1247     RArray<TPosLmItemId> array;
       
  1248     CleanupClosePushL(array);
       
  1249 
       
  1250     HBufC8* bufferContent = NULL;
       
  1251 
       
  1252     if (aUseFile)
       
  1253         {
       
  1254         iLog->Log(_L("----->Using FILE<-------"));
       
  1255         iLandmarkParser->SetInputFileL(KFileName);
       
  1256         }
       
  1257     else
       
  1258         {
       
  1259         iLog->Log(_L("----->Using BUFFER<-------"));
       
  1260         bufferContent = HBufC8::NewLC(iEncoderBuffer->Size());
       
  1261         TPtr8 ptr = bufferContent->Des();
       
  1262         iEncoderBuffer->Read(0, ptr, iEncoderBuffer->Size());
       
  1263         iLandmarkParser->SetInputBuffer(*bufferContent);
       
  1264         }
       
  1265 
       
  1266     iOperation = iLandmarkParser->ParseContentL();
       
  1267     TRequestStatus status = KPosLmOperationNotComplete;
       
  1268     TReal32 progress;
       
  1269     TInt number = 0;
       
  1270 
       
  1271     // 1) Get the first landmark, "TP47Landmark1", no categories
       
  1272     iOperation->NextStep(status, progress);
       
  1273     // Wait for NextStep to complete
       
  1274     User::WaitForRequest(status);
       
  1275     // Get last parsed landmark
       
  1276     CPosLandmark* lm = iLandmarkParser->LandmarkLC();
       
  1277     lm->GetCategoriesL(array);
       
  1278     AssertTrueSecL(array.Count() == 0, _L("1) Wrong number of landmark categories"));
       
  1279     iErrorsFound += CompareXMLLandmarksL(*iLandmarks[number++], *lm);
       
  1280     CleanupStack::PopAndDestroy(lm);
       
  1281 
       
  1282     TUint32 nr = iLandmarkParser->NumOfParsedLandmarks();
       
  1283     if ((TInt)nr != number)
       
  1284     {
       
  1285     	iLog->Log(_L("Wrong number of landmarks parsed"));
       
  1286     	User::Leave(-1);
       
  1287     }
       
  1288 
       
  1289     // 2) Get landmark, "LOG9", local category Pizzeria
       
  1290     iOperation->NextStep(status, progress);
       
  1291     // Wait for NextStep to complete
       
  1292     User::WaitForRequest(status);
       
  1293     // Get last parsed landmark
       
  1294     lm = iLandmarkParser->LandmarkLC();
       
  1295     lm->GetCategoriesL(array);
       
  1296     AssertTrueSecL(array.Count() == 1, _L("2) Wrong number of landmark categories"));
       
  1297     iErrorsFound += CompareXMLLandmarksL(*iLandmarks[number++], *lm);
       
  1298     CPosLandmarkCategory* category = iLandmarkParser->LandmarkCategoryLC(array[0]);
       
  1299     CPosLandmarkCategory* cat = categoryManager->ReadCategoryLC(1);
       
  1300     iErrorsFound += CompareXMLCategoriesL(*cat, *category);
       
  1301     CleanupStack::PopAndDestroy(cat);
       
  1302     CleanupStack::PopAndDestroy(category);
       
  1303     CleanupStack::PopAndDestroy(lm);
       
  1304 
       
  1305     nr = iLandmarkParser->NumOfParsedLandmarks();
       
  1306     if ((TInt)nr != number)
       
  1307     {
       
  1308     	iLog->Log(_L("Wrong number of landmarks parsed"));
       
  1309     	User::Leave(-1);
       
  1310     }
       
  1311 
       
  1312     // 3) Get landmark, "enato?r", local categories Frisör, Hunddagis and global categories Sports Ground, Gas Station
       
  1313     iOperation->NextStep(status, progress);
       
  1314     // Wait for NextStep to complete
       
  1315     User::WaitForRequest(status);
       
  1316     // Get last parsed landmark
       
  1317     lm = iLandmarkParser->LandmarkLC();
       
  1318     lm->GetCategoriesL(array);
       
  1319     AssertTrueSecL(array.Count() == 3, _L("3) Wrong number of landmark categories"));
       
  1320     iErrorsFound += CompareXMLLandmarksL(*iLandmarks[number++], *lm);
       
  1321 
       
  1322     // check local category Frisör here
       
  1323     category = iLandmarkParser->LandmarkCategoryLC(array[0]);
       
  1324     cat = categoryManager->ReadCategoryLC(18);
       
  1325     iErrorsFound += CompareXMLCategoriesL(*cat, *category);
       
  1326     CleanupStack::PopAndDestroy(cat);
       
  1327     CleanupStack::PopAndDestroy(category);
       
  1328 
       
  1329     // check global category Sports Ground globalid=7 (id=33) here
       
  1330     category = iLandmarkParser->LandmarkCategoryLC(array[1]);
       
  1331    // cat = categoryManager->ReadCategoryLC(33);
       
  1332     cat = categoryManager->ReadCategoryLC(31);
       
  1333     iErrorsFound += CompareXMLCategoriesL(*cat, *category);
       
  1334     CleanupStack::PopAndDestroy(cat);
       
  1335     CleanupStack::PopAndDestroy(category);
       
  1336 
       
  1337     //Check global category "id=3 Gas station" here
       
  1338     category = iLandmarkParser->LandmarkCategoryLC(array[2]);
       
  1339     //cat = categoryManager->ReadCategoryLC(29);
       
  1340     cat = categoryManager->ReadCategoryLC(35);
       
  1341     iErrorsFound += CompareXMLCategoriesL(*cat, *category);
       
  1342     CleanupStack::PopAndDestroy(cat);
       
  1343     CleanupStack::PopAndDestroy(category);
       
  1344 
       
  1345     CleanupStack::PopAndDestroy(lm);
       
  1346     nr = iLandmarkParser->NumOfParsedLandmarks();
       
  1347     if ((TInt)nr != number)// LogErrorAndLeave(_L("Wrong number of landmarks parsed"));
       
  1348     {
       
  1349     	iLog->Log(_L("Wrong number of landmarks parsed"));
       
  1350     	User::Leave(-1);
       
  1351     }
       
  1352 
       
  1353     // 4) Get landmark, TP47LandmarkEmpty, no categories
       
  1354     iOperation->NextStep(status, progress);
       
  1355     // Wait for NextStep to complete
       
  1356     User::WaitForRequest(status);
       
  1357     // Get last parsed landmark
       
  1358     lm = iLandmarkParser->LandmarkLC();
       
  1359     lm->GetCategoriesL(array);
       
  1360     AssertTrueSecL(array.Count() == 0, _L("4) Wrong number of landmark categories"));
       
  1361     iErrorsFound += CompareXMLLandmarksL(*iLandmarks[number++], *lm);
       
  1362     CleanupStack::PopAndDestroy(lm);
       
  1363 
       
  1364     nr = iLandmarkParser->NumOfParsedLandmarks();
       
  1365     if ((TInt)nr != number)
       
  1366     {
       
  1367     	iLog->Log(_L("Wrong number of landmarks parsed"));
       
  1368     	User::Leave(-1);
       
  1369     }
       
  1370 
       
  1371     // 5) Get landmark, TP47Landmark2, local categories Burger King and global categories Garage, Bus Stop
       
  1372     iOperation->NextStep(status, progress);
       
  1373     // Wait for NextStep to complete
       
  1374     User::WaitForRequest(status);
       
  1375     // Get last parsed landmark
       
  1376     lm = iLandmarkParser->LandmarkLC();
       
  1377     lm->GetCategoriesL(array);
       
  1378     AssertTrueSecL(array.Count() == 2, _L("5) Wrong number of landmark categories"));
       
  1379     iErrorsFound += CompareXMLLandmarksL(*iLandmarks[number++], *lm);
       
  1380 
       
  1381     // check global category Garage globalid=8 (id=34) here
       
  1382     category = iLandmarkParser->LandmarkCategoryLC(array[0]);
       
  1383     //cat = categoryManager->ReadCategoryLC(34);
       
  1384     cat = categoryManager->ReadCategoryLC(38);
       
  1385     iErrorsFound += CompareXMLCategoriesL(*cat, *category);
       
  1386     CleanupStack::PopAndDestroy(cat);
       
  1387     CleanupStack::PopAndDestroy(category);
       
  1388 
       
  1389     //Check global category "id=10 Bus Stop" here
       
  1390     category = iLandmarkParser->LandmarkCategoryLC(array[1]);
       
  1391    // cat = categoryManager->ReadCategoryLC(36);
       
  1392     cat = categoryManager->ReadCategoryLC(40);
       
  1393     iErrorsFound += CompareXMLCategoriesL(*cat, *category);
       
  1394     CleanupStack::PopAndDestroy(cat);
       
  1395     CleanupStack::PopAndDestroy(category);
       
  1396     CleanupStack::PopAndDestroy(lm);
       
  1397 
       
  1398     // Check that correct number of landmarks has been parsed
       
  1399     if (number != KNrOfAddedLandmarks)
       
  1400     {
       
  1401     	iLog->Log(_L("Wrong number of landmarks parsed"));
       
  1402     	User::Leave(-1);
       
  1403     }
       
  1404     nr = iLandmarkParser->NumOfParsedLandmarks();
       
  1405     if ((TInt)nr != KNrOfAddedLandmarks)
       
  1406     {
       
  1407     	iLog->Log(_L("Wrong number of landmarks parsed"));
       
  1408     	User::Leave(-1);
       
  1409     }
       
  1410 
       
  1411     if (!aUseFile) CleanupStack::PopAndDestroy(bufferContent);
       
  1412 
       
  1413     CleanupStack::PopAndDestroy(&array);
       
  1414     CleanupStack::PopAndDestroy(categoryManager);
       
  1415 
       
  1416     delete iLandmarkParser;
       
  1417     iLandmarkParser = NULL;
       
  1418 
       
  1419     delete iOperation;
       
  1420     iOperation = NULL;
       
  1421 
       
  1422     // iEncoderBuffer was allocated in CreateXMLData
       
  1423     delete iEncoderBuffer;
       
  1424     iEncoderBuffer = NULL;
       
  1425 
       
  1426     iLog->Log(_L("CheckXMLData Done"));
       
  1427     }
       
  1428 
       
  1429 // ---------------------------------------------------------
       
  1430 // CPosTp47::PrintParsedDataFromEncoderL
       
  1431 //
       
  1432 // (other items were commented in a header).
       
  1433 // ---------------------------------------------------------
       
  1434 //
       
  1435 void CPosTp47::PrintParsedDataFromEncoderL(
       
  1436     const TDesC& aFile, 
       
  1437     const TDesC8&  aBuffer, 
       
  1438     TInt aExpectedStatusCode,
       
  1439     const TDesC8& aMimeType)
       
  1440     {
       
  1441     iLog->Log(_L("===== PrintParsedDataFromEncoderL ======="));
       
  1442    
       
  1443    
       
  1444     iLandmarkParser = CPosLandmarkParser::NewL(aMimeType);
       
  1445 
       
  1446     if (aFile != KNullDesC)
       
  1447         {
       
  1448         TFileName file( aFile );
       
  1449         if ( aMimeType == KGpxMimeType )
       
  1450             {
       
  1451             TInt pos = file.Find( KXmlFileExt );
       
  1452             file.Replace( pos, KXmlFileExt().Length(), KGpxFileExt );
       
  1453             }
       
  1454         iLog->Log(_L("FILE (%S)"), &file );
       
  1455         TraceL(_L("----->Using FILE<-------"));
       
  1456         iLog->Log(_L("Calling TraceL"));
       
  1457         TraceL(file);
       
  1458         iLog->Log(_L("Input file to be set"));
       
  1459         iLandmarkParser->SetInputFileL(file);
       
  1460         iLog->Log(_L("Input file set"));
       
  1461         }
       
  1462     else
       
  1463         {
       
  1464         iLog->Log(_L("BUFFER (size %d)"), aBuffer.Size() );
       
  1465         TraceL(_L("----->Using BUFFER<-------"));
       
  1466         iLandmarkParser->SetInputBuffer(aBuffer);
       
  1467         }
       
  1468 
       
  1469     iOperation = iLandmarkParser->ParseContentL();
       
  1470     TRequestStatus status = KPosLmOperationNotComplete;
       
  1471     TReal32 progress;
       
  1472     TInt number = 0;
       
  1473 
       
  1474     RArray<TPosLmItemId> array;
       
  1475     CleanupClosePushL(array);
       
  1476 	iLog->Log(_L("Parse begin"));
       
  1477     while (status == KPosLmOperationNotComplete)
       
  1478         {
       
  1479         iLog->Log(_L("--- Parsing ---------------------------"));
       
  1480         TraceL(_L("------------------------------"));
       
  1481         iOperation->NextStep(status, progress);
       
  1482 
       
  1483         // Wait for NextStep to complete
       
  1484         User::WaitForRequest(status);
       
  1485         if (status != KPosLmOperationNotComplete && status != KErrNone)
       
  1486             {
       
  1487             HBufC* buffer = HBufC::NewLC( 128);
       
  1488             TPtr buf = buffer->Des();
       
  1489                        
       
  1490             buf.Format(_L("\tStatus %d"), status.Int());
       
  1491             iLog->Log(buf);
       
  1492             TraceL(buf);
       
  1493             
       
  1494             CleanupStack::PopAndDestroy( buffer );
       
  1495             buffer = NULL;              
       
  1496             }
       
  1497         else
       
  1498             {
       
  1499             if ( iLandmarkParser->NumOfParsedLandmarks() )
       
  1500                 {
       
  1501                 // Get last parsed landmark
       
  1502                 CPosLandmark* lm = iLandmarkParser->LandmarkLC();
       
  1503                 TPtrC lmName;
       
  1504                 TPtrC catName;
       
  1505                 lm->GetLandmarkName(lmName);
       
  1506                 lm->GetCategoriesL(array);
       
  1507                 //iLog->Log(lmName);
       
  1508                 for (TInt i=0;i<array.Count();i++)
       
  1509                     {
       
  1510                     CPosLandmarkCategory* category = iLandmarkParser->LandmarkCategoryLC(array[i]);
       
  1511                     category->GetCategoryName( catName );
       
  1512                      
       
  1513                     HBufC* buffer = HBufC::NewLC( 128 + catName.Length());
       
  1514                     TPtr buf = buffer->Des();
       
  1515                                             
       
  1516                     if ( category->GlobalCategory()) 
       
  1517                         {
       
  1518                         buf.Append(_L("\tGlobal category: "));    
       
  1519                         }
       
  1520                     else 
       
  1521                         {
       
  1522                         buf.Append(_L("\tLocal category: "));    
       
  1523                         }                        
       
  1524                     buf.Append(catName);
       
  1525                     iLog->Log(buf);
       
  1526                     TraceL(buf);
       
  1527                     CleanupStack::PopAndDestroy(buffer);
       
  1528                     buffer = NULL;
       
  1529                     CleanupStack::PopAndDestroy(category);
       
  1530                     }
       
  1531                     
       
  1532                 if ( aMimeType == KKmlMimeType )
       
  1533                 {
       
  1534                 	PrintLandmarkFieldsWithDescriptionL(*lm, ETrue);	
       
  1535                 }
       
  1536                 else
       
  1537                 {
       
  1538                 	PrintLandmarkFieldsL(*lm, ETrue);	
       
  1539                 }
       
  1540                 
       
  1541                 number++;
       
  1542                 CleanupStack::PopAndDestroy(lm);
       
  1543                 }
       
  1544             }
       
  1545         }
       
  1546 
       
  1547     iLog->Log(_L("--- Parsing end ---------------------------"));
       
  1548     TraceL(_L("------------------------------"));
       
  1549     CleanupStack::PopAndDestroy(&array);
       
  1550 
       
  1551     if (status.Int() != aExpectedStatusCode)
       
  1552         {
       
  1553         HBufC* buffer = HBufC::NewLC( 128 );
       
  1554         TPtr buf = buffer->Des();
       
  1555                     
       
  1556         buf.Format(_L("\tERROR: Wrong status returned, was %d, should be %d"), status.Int(), aExpectedStatusCode);
       
  1557         iLog->Log( buf );
       
  1558         iErrorsFound++;
       
  1559         
       
  1560         CleanupStack::PopAndDestroy( buffer );
       
  1561         buffer = NULL;        
       
  1562         }
       
  1563 
       
  1564     TUint32 nr = iLandmarkParser->NumOfParsedLandmarks();
       
  1565     HBufC* buffer = HBufC::NewLC( 256 );
       
  1566     TPtr buf = buffer->Des();
       
  1567     buf.Format(_L("\tNr of Parsed landmarks %d, should be %d"), nr, number);
       
  1568     iLog->Log(buf);
       
  1569     TraceL(buf);
       
  1570 
       
  1571     CleanupStack::PopAndDestroy( buffer );
       
  1572     buffer = NULL;
       
  1573     if (nr != (TUint32)number)
       
  1574         {
       
  1575         iLog->Log(_L("\tERROR: Wrong number of landmarks parsed returned!"));
       
  1576         iErrorsFound++;
       
  1577         }
       
  1578 
       
  1579     TPosLmCollectionDataId lmId = iLandmarkParser->FirstCollectionDataId();
       
  1580 
       
  1581     iLog->Log(_L("--- CollectionData ---"));
       
  1582     TraceL(_L("--- CollectionData ---"));
       
  1583 
       
  1584     if (lmId != EPosLmCollDataNone)
       
  1585         {
       
  1586         TPtrC first = iLandmarkParser->CollectionData(lmId);
       
  1587         HBufC* buffer = HBufC::NewLC( first.Length() + 256 );
       
  1588         TPtr buf = buffer->Des();
       
  1589         buf.Zero();
       
  1590         buf.Format(_L("\t(1)Collection Id: %d CollectionData: "), lmId);
       
  1591         buf.Append(first);
       
  1592         iLog->Log(buf);
       
  1593         TraceL(buf);
       
  1594         CleanupStack::PopAndDestroy( buffer );
       
  1595         buffer = NULL;      
       
  1596         }
       
  1597     else 
       
  1598         {
       
  1599         iLog->Log(_L("\tNo collection data found 1"));    
       
  1600         }
       
  1601 
       
  1602     while (lmId != EPosLmCollDataNone)
       
  1603         {
       
  1604         lmId = iLandmarkParser->NextCollectionDataId(lmId);
       
  1605         if (lmId != EPosLmCollDataNone)
       
  1606         {
       
  1607             TPtrC first = iLandmarkParser->CollectionData(lmId);
       
  1608             
       
  1609             HBufC* buffer = HBufC::NewLC( first.Length() + 256 );
       
  1610             TPtr buf = buffer->Des();         
       
  1611             buf.Zero();
       
  1612             buf.Format(_L("\t(2)Collection Id: %d CollectionData: "), lmId);
       
  1613             buf.Append(first);
       
  1614             iLog->Log(buf);
       
  1615             TraceL(buf);
       
  1616             
       
  1617             CleanupStack::PopAndDestroy( buffer );
       
  1618             buffer = NULL;              
       
  1619         }
       
  1620         else 
       
  1621             {
       
  1622             iLog->Log(_L("\tNo collection data found 2"));   
       
  1623             }
       
  1624         }
       
  1625 
       
  1626     iLog->Log(_L("--- CollectionData ---"));
       
  1627     TraceL(_L("--- CollectionData ---"));
       
  1628     
       
  1629 	
       
  1630     delete iOperation;
       
  1631     iOperation = NULL;
       
  1632     delete iLandmarkParser;
       
  1633     iLandmarkParser = NULL;
       
  1634     iLog->Log(_L("====== PrintParsedDataFromEncoderL Done ========\n"));
       
  1635     }
       
  1636 
       
  1637 // ---------------------------------------------------------
       
  1638 // CPosTp47::PrintLandmarkFieldsL
       
  1639 //
       
  1640 // (other items were commented in a header).
       
  1641 // ---------------------------------------------------------
       
  1642 //
       
  1643 void CPosTp47::PrintLandmarkFieldsL(const CPosLandmark& aLandmark, TBool aTraceFlag)
       
  1644     {
       
  1645     TPositionFieldId sourceFieldId = aLandmark.FirstPositionFieldId();
       
  1646     TLocality loc;
       
  1647 
       
  1648     TInt err;
       
  1649     TPtrC landmarkName;
       
  1650     err = aLandmark.GetLandmarkName(landmarkName);
       
  1651     if (err == KErrNone)
       
  1652         {
       
  1653         HBufC* buffer = HBufC::NewLC( landmarkName.Length() + 256 );
       
  1654         TPtr buf = buffer->Des();
       
  1655                     
       
  1656         buf.Append( _L(" \tLandmark Name: "));
       
  1657         buf.Append( landmarkName );
       
  1658         iLog->Log( buf );
       
  1659         if( aTraceFlag ) 
       
  1660             {
       
  1661             TraceL( buf );   
       
  1662             }
       
  1663             
       
  1664         CleanupStack::PopAndDestroy( buffer );
       
  1665         buffer = NULL;  
       
  1666         }
       
  1667 
       
  1668     err = aLandmark.GetPosition(loc);
       
  1669     if (err == KErrNone)
       
  1670         {
       
  1671         HBufC* buffer = HBufC::NewLC( 1024 );
       
  1672         TPtr buf = buffer->Des();        
       
  1673         TRealFormat format( 12, KRealFormatFixed );
       
  1674         format.iPoint = TChar('.');
       
  1675         format.iTriLen = KDoNotUseTriads;
       
  1676         format.iPlaces = 6;
       
  1677         
       
  1678         TBuf<20> sLon, sLat, sVacc, sHacc, sAlt, sRad;
       
  1679         sLon.Num( loc.Longitude(), format );
       
  1680         sLat.Num( loc.Latitude(), format );
       
  1681         sAlt.Num( loc.Altitude(), format );
       
  1682         sVacc.Num( loc.VerticalAccuracy(), format );
       
  1683         sHacc.Num( loc.HorizontalAccuracy(), format );
       
  1684         buf.Format(
       
  1685             _L("\tLM: Long %S Lat %S vertAcc %S horAcc %S alt %S "), 
       
  1686             &sLon, &sLat, &sVacc, &sHacc, &sAlt);
       
  1687         
       
  1688         TReal32 sourceR;
       
  1689         err = aLandmark.GetCoverageRadius(sourceR);
       
  1690         if (err == KErrNone )
       
  1691             {
       
  1692             sRad.Num( sourceR, format );
       
  1693             buf.AppendFormat(_L("srcRadius %S"), &sRad);
       
  1694             }
       
  1695         iLog->Log(buf);
       
  1696         if (aTraceFlag) TraceL(buf);
       
  1697         CleanupStack::PopAndDestroy(buffer);
       
  1698         }
       
  1699 
       
  1700     while (sourceFieldId != EPositionFieldNone)
       
  1701         {
       
  1702         TPtrC sourceValue;
       
  1703         aLandmark.GetPositionField(sourceFieldId, sourceValue);
       
  1704         HBufC* buffer = HBufC::NewLC( sourceValue.Length() + 256 );
       
  1705         TPtr buf = buffer->Des();  
       
  1706         buf.Format(_L("\tIdField Id: %d Value:"), sourceFieldId);
       
  1707         buf.Append(sourceValue);
       
  1708         iLog->Log(buf);
       
  1709         if ( aTraceFlag ) 
       
  1710             {
       
  1711             TraceL( buf );
       
  1712             }
       
  1713         sourceFieldId = aLandmark.NextPositionFieldId(sourceFieldId);
       
  1714         
       
  1715         CleanupStack::PopAndDestroy( buffer );
       
  1716         }
       
  1717     }
       
  1718     
       
  1719     
       
  1720  // ---------------------------------------------------------
       
  1721 // CPosTp47::PrintLandmarkFieldsWithDescriptionL
       
  1722 //
       
  1723 // (other items were commented in a header).
       
  1724 // ---------------------------------------------------------
       
  1725 //
       
  1726 void CPosTp47::PrintLandmarkFieldsWithDescriptionL(const CPosLandmark& aLandmark, TBool aTraceFlag)
       
  1727     {
       
  1728     TPositionFieldId sourceFieldId = aLandmark.FirstPositionFieldId();
       
  1729     TLocality loc;
       
  1730        
       
  1731 
       
  1732     TInt err;
       
  1733     TPtrC landmarkName;
       
  1734     TPtrC landmarkDescription;
       
  1735     err = aLandmark.GetLandmarkName(landmarkName);
       
  1736     if (err == KErrNone)
       
  1737         {
       
  1738         HBufC* buffer = HBufC::NewLC( landmarkName.Length() + 256 );
       
  1739         TPtr buf = buffer->Des();
       
  1740         buf.Append(_L("\tLandmark Name: "));
       
  1741         buf.Append(landmarkName);
       
  1742         iLog->Log(buf);
       
  1743         if( aTraceFlag ) 
       
  1744             {
       
  1745             TraceL( buf );   
       
  1746             }
       
  1747             
       
  1748         CleanupStack::PopAndDestroy( buffer );
       
  1749         buffer = NULL;  
       
  1750         }
       
  1751 
       
  1752     err = aLandmark.GetPosition(loc);
       
  1753     if (err == KErrNone)
       
  1754         {
       
  1755         HBufC* buffer = HBufC::NewLC( 1024 );
       
  1756         TPtr buf = buffer->Des(); 
       
  1757         TRealFormat format( 12, KRealFormatFixed );
       
  1758         format.iPoint = TChar('.');
       
  1759         format.iTriLen = KDoNotUseTriads;
       
  1760         format.iPlaces = 6;
       
  1761         
       
  1762         TBuf<20> sLon, sLat, sVacc, sHacc, sAlt, sRad;
       
  1763         sLon.Num( loc.Longitude(), format );
       
  1764         sLat.Num( loc.Latitude(), format );
       
  1765         sAlt.Num( loc.Altitude(), format );
       
  1766         sVacc.Num( loc.VerticalAccuracy(), format );
       
  1767         sHacc.Num( loc.HorizontalAccuracy(), format );
       
  1768         buf.Format(
       
  1769             _L("\tLM: Long %S Lat %S vertAcc %S horAcc %S alt %S "), 
       
  1770             &sLon, &sLat, &sVacc, &sHacc, &sAlt);
       
  1771         
       
  1772         TReal32 sourceR;
       
  1773         err = aLandmark.GetCoverageRadius(sourceR);
       
  1774         if (err == KErrNone )
       
  1775             {
       
  1776             sRad.Num( sourceR, format );
       
  1777             buf.AppendFormat(_L("srcRadius %S"), &sRad);
       
  1778             }
       
  1779         iLog->Log(buf);
       
  1780         if (aTraceFlag) TraceL(buf);
       
  1781         CleanupStack::PopAndDestroy( buffer );
       
  1782         buffer = NULL;  
       
  1783         }
       
  1784         
       
  1785       //Get landmark description  
       
  1786       err = aLandmark.GetLandmarkDescription(landmarkDescription);
       
  1787       if (err == KErrNone)
       
  1788         {
       
  1789         HBufC* buffer = HBufC::NewLC( landmarkDescription.Length() + 256 );
       
  1790         TPtr buf = buffer->Des();         
       
  1791         buf.Format(_L("\tLandmark Description: "));
       
  1792         buf.Append(landmarkDescription);
       
  1793         iLog->Log(buf);
       
  1794         if ( aTraceFlag ) 
       
  1795             {
       
  1796             TraceL( buf );    
       
  1797             }
       
  1798         
       
  1799         CleanupStack::PopAndDestroy( buffer );
       
  1800         buffer = NULL;         
       
  1801         }  
       
  1802     
       
  1803 
       
  1804     while (sourceFieldId != EPositionFieldNone)
       
  1805         {
       
  1806         TPtrC sourceValue;
       
  1807         aLandmark.GetPositionField(sourceFieldId, sourceValue);
       
  1808         
       
  1809         HBufC* buffer = HBufC::NewLC( sourceValue.Length() + 256 );
       
  1810         TPtr buf = buffer->Des();  
       
  1811         buf.Format(_L("\tIdField Id: %d Value:"), sourceFieldId);
       
  1812         buf.Append(sourceValue);
       
  1813         iLog->Log(buf);
       
  1814         if ( aTraceFlag ) 
       
  1815             {
       
  1816             TraceL( buf );
       
  1817             }
       
  1818         sourceFieldId = aLandmark.NextPositionFieldId(sourceFieldId);
       
  1819         
       
  1820 		    CleanupStack::PopAndDestroy(buffer);    
       
  1821 		    }
       
  1822 }
       
  1823 // ---------------------------------------------------------
       
  1824 // CPosTp47::TraceL
       
  1825 //
       
  1826 // (other items were commented in a header).
       
  1827 // ---------------------------------------------------------
       
  1828 //
       
  1829 void CPosTp47::TraceL(const TDesC& msg)
       
  1830     {
       
  1831     _LIT8( KEnd, "\r\n" );
       
  1832 
       
  1833     RFile file;
       
  1834     TInt err = file.Open(iFileSession, KFileTrace, EFileWrite);
       
  1835     if (err == KErrNotFound)
       
  1836         {
       
  1837         file.Create(iFileSession, KFileTrace, EFileWrite);
       
  1838         }
       
  1839 
       
  1840     HBufC8* line8 = CnvUtfConverter::ConvertFromUnicodeToUtf8L( msg );
       
  1841     
       
  1842     TInt pos( 0 );
       
  1843     file.Seek( ESeekEnd, pos );
       
  1844     file.Write( *line8 );
       
  1845     file.Write( KEnd );
       
  1846     file.Close();
       
  1847 
       
  1848     delete line8;
       
  1849     }
       
  1850 
       
  1851 void CPosTp47::MakeEmptyLmDatabaseL( CPosLandmarkDatabase& aLdb,
       
  1852                                      CPosLmCategoryManager& aCatMgr )
       
  1853     {
       
  1854 
       
  1855     CPosLmOperation* operation1 = aLdb.RemoveAllLandmarksL();
       
  1856     //Remove all landmarks from default db : Sync call
       
  1857     ExecuteAndDeleteLD( operation1 );
       
  1858 
       
  1859     RArray<TPosLmItemId> catArray;
       
  1860     CleanupClosePushL( catArray );
       
  1861 
       
  1862     // Get all the categories from the database and delete them if necessary
       
  1863     CPosLmItemIterator* iter = aCatMgr.CategoryIteratorL();
       
  1864     CleanupStack::PushL( iter );
       
  1865 
       
  1866     TUint count = iter->NumOfItemsL();
       
  1867     if ( count > 0 )
       
  1868         { // can only be called if there are some items
       
  1869         iter->GetItemIdsL( catArray, 0, count );
       
  1870         }
       
  1871 
       
  1872     // Remove all the categories here Sync call
       
  1873     ExecuteAndDeleteLD(aCatMgr.RemoveCategoriesL( catArray ));
       
  1874     CleanupStack::PopAndDestroy( 2 ); // catArray, iter
       
  1875     }
       
  1876 //  End of File