phonebookengines_old/contactsmodel/tsrc/t_wrongfieldmatch.cpp
changeset 40 b46a585f6909
equal deleted inserted replaced
37:fd64c38c277d 40:b46a585f6909
       
     1 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // Test for Wrong Field module
       
    15 // 
       
    16 //
       
    17 
       
    18 //#include <e32def.h>
       
    19 #include <e32test.h>
       
    20 #include <cntdef.h>
       
    21 #include <cntfield.h>
       
    22 #include <e32svr.h>
       
    23 #include "T_UTILS.H"
       
    24 
       
    25 _LIT(KTestName, "T_WRONGFIELDMATCH");
       
    26 LOCAL_D RTest test(KTestName);
       
    27 
       
    28 /*
       
    29 class CBenchMarker
       
    30 	{
       
    31 public:
       
    32 	static void StartProfile();
       
    33 	static void EndProfile();
       
    34 	};
       
    35 
       
    36 	//User::LeaveIfError(iFs.Connect());
       
    37 	//iLog=CLog::NewL(iTest,iFs,KLogFileName);
       
    38 
       
    39 void CBenchMarker::StartProfile()
       
    40 	{
       
    41 	CCntTest::ProfileReset(0,1);
       
    42 	CCntTest::ProfileStart(0);
       
    43 	}
       
    44 
       
    45 void CBenchMarker::EndProfile()
       
    46 	{
       
    47 	CCntTest::ProfileEnd(0);
       
    48 	TCntProfile profile[1];
       
    49 	CCntTest::ProfileResult(profile,0,1);
       
    50 	_LIT(KProfileFormat,"Total %d.%03d sec (%d hits)\n");
       
    51 	RDebug::Print(KProfileFormat,profile[0].iTime/1000000, profile[0].iTime%1000000, profile[0].iCount);
       
    52 	//iLog->LogLine(KProfileFormat,profile[0].iTime/1000000, profile[0].iTime%1000000, profile[0].iCount);
       
    53 	}*/
       
    54 
       
    55 
       
    56 //KUidContactFieldPhoneNumber
       
    57 //KUidContactFieldVCardMapTEL
       
    58 //KUidContactFieldVCardMapVOICE
       
    59 
       
    60 LOCAL_C void DoTestVoiceDialIgnoreL()
       
    61 	{
       
    62 	//Create a calypso general phone number content type
       
    63 	CContentType* phoneNumber=CContentType::NewL(KUidContactFieldPhoneNumber,KUidContactFieldVCardMapTEL);
       
    64 	CleanupStack::PushL(phoneNumber);
       
    65 	phoneNumber->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
       
    66 
       
    67 	//Create a calypso general phone number content type
       
    68 	CContentType* voiceDial=CContentType::NewL(KUidContactFieldPhoneNumber,KUidContactFieldVCardMapTEL);
       
    69 	CleanupStack::PushL(voiceDial);
       
    70 	voiceDial->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
       
    71 	voiceDial->AddFieldTypeL(KUidContactsVoiceDialField);
       
    72 	
       
    73 	if (!voiceDial->IsEqualForSyncUpdate(*phoneNumber))
       
    74 		{
       
    75 		User::Leave(KErrGeneral); 
       
    76 		}
       
    77 	
       
    78 	//Behavior due to algorithm optimisation
       
    79 	if (phoneNumber->IsEqualForSyncUpdate(*voiceDial))
       
    80 		{
       
    81 		User::Leave(KErrGeneral); 
       
    82 		}
       
    83 
       
    84 	CleanupStack::PopAndDestroy(2,phoneNumber);
       
    85 	}
       
    86 
       
    87 
       
    88 
       
    89 
       
    90 
       
    91 LOCAL_C void DoTestSpeedDialIgnoreL()
       
    92 	{
       
    93 	//Create a calypso general phone number content type
       
    94 	CContentType* phoneNumber=CContentType::NewL(KUidContactFieldPhoneNumber,KUidContactFieldVCardMapTEL);
       
    95 	CleanupStack::PushL(phoneNumber);
       
    96 	phoneNumber->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
       
    97 
       
    98 	//Create a calypso general phone number content type
       
    99 	CContentType* speedDial=CContentType::NewL(KUidContactFieldPhoneNumber,KUidContactFieldVCardMapTEL);
       
   100 	CleanupStack::PushL(speedDial);
       
   101 	speedDial->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
       
   102 	speedDial->AddFieldTypeL(KUidSpeedDialOne);
       
   103 
       
   104 	///////////////////////////////////////////
       
   105 
       
   106 	if (!speedDial->IsEqualForSyncUpdate(*phoneNumber))
       
   107 		{
       
   108 		User::Leave(KErrGeneral); 
       
   109 		}
       
   110 	//Behavior due to algorithm optimisation
       
   111 	if (phoneNumber->IsEqualForSyncUpdate(*speedDial))
       
   112 		{
       
   113 		User::Leave(KErrGeneral); 
       
   114 		}
       
   115 
       
   116 	speedDial->RemoveFieldType(KUidSpeedDialOne);
       
   117 
       
   118 	////////////////////////////////////////////
       
   119 
       
   120 	speedDial->AddFieldTypeL(KUidSpeedDialTwo);
       
   121 
       
   122 	if (!speedDial->IsEqualForSyncUpdate(*phoneNumber))
       
   123 		{
       
   124 		User::Leave(KErrGeneral); 
       
   125 		}
       
   126 	//Behavior due to algorithm optimisation
       
   127 	if (phoneNumber->IsEqualForSyncUpdate(*speedDial))
       
   128 		{
       
   129 		User::Leave(KErrGeneral); 
       
   130 		}
       
   131 
       
   132 	speedDial->RemoveFieldType(KUidSpeedDialTwo);
       
   133 
       
   134 	////////////////////////////////////////////
       
   135 
       
   136 	speedDial->AddFieldTypeL(KUidSpeedDialThree);
       
   137 
       
   138 	if (!speedDial->IsEqualForSyncUpdate(*phoneNumber))
       
   139 		{
       
   140 		User::Leave(KErrGeneral); 
       
   141 		}
       
   142 	//Behavior due to algorithm optimisation
       
   143 	if (phoneNumber->IsEqualForSyncUpdate(*speedDial))
       
   144 		{
       
   145 		User::Leave(KErrGeneral); 
       
   146 		}
       
   147 
       
   148 	speedDial->RemoveFieldType(KUidSpeedDialThree);
       
   149 
       
   150 	////////////////////////////////////////////
       
   151 
       
   152 	speedDial->AddFieldTypeL(KUidSpeedDialFour);
       
   153 	//Behavior due to algorithm optimisation
       
   154 	if (!speedDial->IsEqualForSyncUpdate(*phoneNumber))
       
   155 		{
       
   156 		User::Leave(KErrGeneral); 
       
   157 		}
       
   158 
       
   159 	if (phoneNumber->IsEqualForSyncUpdate(*speedDial))
       
   160 		{
       
   161 		User::Leave(KErrGeneral); 
       
   162 		}
       
   163 
       
   164 	speedDial->RemoveFieldType(KUidSpeedDialFour);
       
   165 
       
   166 	////////////////////////////////////////////
       
   167 
       
   168 	speedDial->AddFieldTypeL(KUidSpeedDialFive);
       
   169 
       
   170 	if (!speedDial->IsEqualForSyncUpdate(*phoneNumber))
       
   171 		{
       
   172 		User::Leave(KErrGeneral); 
       
   173 		}
       
   174 	//Behavior due to algorithm optimisation
       
   175 	if (phoneNumber->IsEqualForSyncUpdate(*speedDial))
       
   176 		{
       
   177 		User::Leave(KErrGeneral); 
       
   178 		}
       
   179 
       
   180 	speedDial->RemoveFieldType(KUidSpeedDialFive);
       
   181 
       
   182 	////////////////////////////////////////////
       
   183 	
       
   184 	speedDial->AddFieldTypeL(KUidSpeedDialSix);
       
   185 
       
   186 	if (!speedDial->IsEqualForSyncUpdate(*phoneNumber))
       
   187 		{
       
   188 		User::Leave(KErrGeneral); 
       
   189 		}
       
   190 	//Behavior due to algorithm optimisation
       
   191 	if (phoneNumber->IsEqualForSyncUpdate(*speedDial))
       
   192 		{
       
   193 		User::Leave(KErrGeneral); 
       
   194 		}
       
   195 
       
   196 	speedDial->RemoveFieldType(KUidSpeedDialSix);
       
   197 
       
   198 	////////////////////////////////////////////
       
   199 	
       
   200 	speedDial->AddFieldTypeL(KUidSpeedDialSeven);
       
   201 
       
   202 	if (!speedDial->IsEqualForSyncUpdate(*phoneNumber))
       
   203 		{
       
   204 		User::Leave(KErrGeneral); 
       
   205 		}
       
   206 	//Behavior due to algorithm optimisation
       
   207 	if (phoneNumber->IsEqualForSyncUpdate(*speedDial))
       
   208 		{
       
   209 		User::Leave(KErrGeneral); 
       
   210 		}
       
   211 
       
   212 	speedDial->RemoveFieldType(KUidSpeedDialSeven);
       
   213 
       
   214 	////////////////////////////////////////////
       
   215 
       
   216 	speedDial->AddFieldTypeL(KUidSpeedDialEight);
       
   217 
       
   218 	if (!speedDial->IsEqualForSyncUpdate(*phoneNumber))
       
   219 		{
       
   220 		User::Leave(KErrGeneral); 
       
   221 		}
       
   222 	//Behavior due to algorithm optimisation
       
   223 	if (phoneNumber->IsEqualForSyncUpdate(*speedDial))
       
   224 		{
       
   225 		User::Leave(KErrGeneral); 
       
   226 		}
       
   227 
       
   228 	speedDial->RemoveFieldType(KUidSpeedDialEight);
       
   229 
       
   230 	////////////////////////////////////////////
       
   231 
       
   232 	speedDial->AddFieldTypeL(KUidSpeedDialNine);
       
   233 
       
   234 	if (!speedDial->IsEqualForSyncUpdate(*phoneNumber))
       
   235 		{
       
   236 		User::Leave(KErrGeneral); 
       
   237 		}
       
   238 	//Behavior due to algorithm optimisation
       
   239 	if (phoneNumber->IsEqualForSyncUpdate(*speedDial))
       
   240 		{
       
   241 		User::Leave(KErrGeneral); 
       
   242 		}
       
   243 
       
   244 	speedDial->RemoveFieldType(KUidSpeedDialNine);
       
   245 
       
   246 	////////////////////////////////////////////
       
   247 
       
   248 	CleanupStack::PopAndDestroy(2,phoneNumber); //type1, type2
       
   249 	}
       
   250 
       
   251 
       
   252 
       
   253 LOCAL_C void DoTestDifferentPhoneNumberL()
       
   254 	{
       
   255 	//Create a calypso general phone number content type
       
   256 	CContentType* calypsoGeneralPhoneNumber=CContentType::NewL(KUidContactFieldPhoneNumber,KUidContactFieldVCardMapTEL);
       
   257 	CleanupStack::PushL(calypsoGeneralPhoneNumber);
       
   258 	calypsoGeneralPhoneNumber->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
       
   259 	
       
   260 	//Create a calypso general mobile number content type
       
   261 	CContentType* calypsoGeneralMobileNumber=CContentType::NewL(KUidContactFieldPhoneNumber,KUidContactFieldVCardMapTEL);
       
   262 	CleanupStack::PushL(calypsoGeneralMobileNumber);
       
   263 	calypsoGeneralMobileNumber->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
       
   264 	calypsoGeneralMobileNumber->AddFieldTypeL(KUidContactFieldVCardMapCELL);
       
   265 
       
   266 	if (calypsoGeneralPhoneNumber->IsEqualForSyncUpdate(*calypsoGeneralMobileNumber))
       
   267 		{
       
   268 		User::Leave(KErrGeneral); //Leave if equal 
       
   269 		}
       
   270 
       
   271 	if (calypsoGeneralMobileNumber->IsEqualForSyncUpdate(*calypsoGeneralPhoneNumber))
       
   272 		{
       
   273 		User::Leave(KErrGeneral); //Leave if equal	
       
   274 		}
       
   275 
       
   276 	//Must be equal to itself
       
   277 	if (!calypsoGeneralMobileNumber->IsEqualForSyncUpdate(*calypsoGeneralMobileNumber))
       
   278 		{
       
   279 		User::Leave(KErrGeneral); //Leave if not equal	
       
   280 		}
       
   281 
       
   282 	//Must be equal to itself
       
   283 	if (!calypsoGeneralPhoneNumber->IsEqualForSyncUpdate(*calypsoGeneralPhoneNumber))
       
   284 		{
       
   285 		User::Leave(KErrGeneral); //Leave if not equal	
       
   286 		}
       
   287 
       
   288 	/////////Now test if the voice property exception does not create any side effect //////////
       
   289 
       
   290 	calypsoGeneralMobileNumber->RemoveFieldType(KUidContactFieldVCardMapVOICE);
       
   291 
       
   292 	if (calypsoGeneralPhoneNumber->IsEqualForSyncUpdate(*calypsoGeneralMobileNumber))
       
   293 		{
       
   294 		User::Leave(KErrGeneral); //Leave if equal 
       
   295 		}
       
   296 
       
   297 	if (calypsoGeneralMobileNumber->IsEqualForSyncUpdate(*calypsoGeneralPhoneNumber))
       
   298 		{
       
   299 		User::Leave(KErrGeneral); //Leave if equal	
       
   300 		}
       
   301 
       
   302 	//Must be equal to itself
       
   303 	if (!calypsoGeneralMobileNumber->IsEqualForSyncUpdate(*calypsoGeneralMobileNumber))
       
   304 		{
       
   305 		User::Leave(KErrGeneral); //Leave if not equal	
       
   306 		}
       
   307 
       
   308 	////////////////////////////////////////////////////////////////////////////////
       
   309 	
       
   310 	/////////Now test if the pref property exception does not create any side effect //////////
       
   311 
       
   312 	calypsoGeneralMobileNumber->AddFieldTypeL(KUidContactFieldVCardMapPREF);
       
   313 
       
   314 	if (calypsoGeneralPhoneNumber->IsEqualForSyncUpdate(*calypsoGeneralMobileNumber))
       
   315 		{
       
   316 		User::Leave(KErrGeneral); //Leave if equal 
       
   317 		}
       
   318 
       
   319 	if (calypsoGeneralMobileNumber->IsEqualForSyncUpdate(*calypsoGeneralPhoneNumber))
       
   320 		{
       
   321 		User::Leave(KErrGeneral); //Leave if equal	
       
   322 		}
       
   323 
       
   324 	//Must be equal to itself
       
   325 	if (!calypsoGeneralMobileNumber->IsEqualForSyncUpdate(*calypsoGeneralMobileNumber))
       
   326 		{
       
   327 		User::Leave(KErrGeneral); //Leave if not equal	
       
   328 		}
       
   329 
       
   330 	calypsoGeneralPhoneNumber->AddFieldTypeL(KUidContactFieldVCardMapPREF);
       
   331 
       
   332 	if (calypsoGeneralPhoneNumber->IsEqualForSyncUpdate(*calypsoGeneralMobileNumber))
       
   333 		{
       
   334 		User::Leave(KErrGeneral); //Leave if equal 
       
   335 		}
       
   336 
       
   337 	if (calypsoGeneralMobileNumber->IsEqualForSyncUpdate(*calypsoGeneralPhoneNumber))
       
   338 		{
       
   339 		User::Leave(KErrGeneral); //Leave if equal	
       
   340 		}
       
   341 
       
   342 	//Must be equal to itself
       
   343 	if (!calypsoGeneralPhoneNumber->IsEqualForSyncUpdate(*calypsoGeneralPhoneNumber))
       
   344 		{
       
   345 		User::Leave(KErrGeneral); //Leave if not equal	
       
   346 		}
       
   347 
       
   348 	////////////////////////////////////////////////////////////////////////////////
       
   349 	
       
   350 	CleanupStack::PopAndDestroy(2); //type1, type2
       
   351 	}
       
   352 
       
   353 
       
   354 LOCAL_C void DoTestEqualPhoneNumberL()
       
   355 	{
       
   356 	//Create a calypso general phone number content type
       
   357 	CContentType* samePhoneNumber=CContentType::NewL(KUidContactFieldPhoneNumber,KUidContactFieldVCardMapTEL);
       
   358 	CleanupStack::PushL(samePhoneNumber);
       
   359 	samePhoneNumber->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
       
   360 	
       
   361 	//Create a calypso general phone number content type
       
   362 	CContentType* samePhoneNumberBis=CContentType::NewL(KUidContactFieldPhoneNumber,KUidContactFieldVCardMapTEL);
       
   363 	CleanupStack::PushL(samePhoneNumberBis);
       
   364 	samePhoneNumberBis->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
       
   365 	
       
   366 	
       
   367 	if (!samePhoneNumber->IsEqualForSyncUpdate(*samePhoneNumberBis))
       
   368 		{
       
   369 		User::Leave(KErrGeneral); //Leave if not equal	
       
   370 		}
       
   371 
       
   372 
       
   373 	if (!samePhoneNumberBis->IsEqualForSyncUpdate(*samePhoneNumber))
       
   374 		{
       
   375 		User::Leave(KErrGeneral); //Leave if not equal	
       
   376 		}
       
   377 
       
   378 	//////////////////Check voice property exception////////////////////
       
   379 
       
   380 	samePhoneNumber->AddFieldTypeL(KUidContactFieldVCardMapPREF);
       
   381 
       
   382 	if (!samePhoneNumber->IsEqualForSyncUpdate(*samePhoneNumberBis))
       
   383 		{
       
   384 		User::Leave(KErrGeneral); //Leave if not equal	
       
   385 		}
       
   386 
       
   387 
       
   388 	if (!samePhoneNumberBis->IsEqualForSyncUpdate(*samePhoneNumber))
       
   389 		{
       
   390 		User::Leave(KErrGeneral); //Leave if not equal	
       
   391 		}
       
   392 
       
   393 	samePhoneNumber->RemoveFieldType(KUidContactFieldVCardMapPREF);
       
   394 
       
   395 
       
   396 	//////////////////Check pref property exception////////////////////
       
   397 
       
   398 	samePhoneNumber->RemoveFieldType(KUidContactFieldVCardMapVOICE);
       
   399 
       
   400 	if (!samePhoneNumber->IsEqualForSyncUpdate(*samePhoneNumberBis))
       
   401 		{
       
   402 		User::Leave(KErrGeneral); //Leave if not equal	
       
   403 		}
       
   404 
       
   405 	if (!samePhoneNumberBis->IsEqualForSyncUpdate(*samePhoneNumber))
       
   406 		{
       
   407 		User::Leave(KErrGeneral); //Leave if not equal	
       
   408 		}
       
   409 
       
   410 	samePhoneNumber->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
       
   411 
       
   412 	//////////////////Check pref and voice property exception together////////////////////
       
   413 	
       
   414 	samePhoneNumber->AddFieldTypeL(KUidContactFieldVCardMapPREF);
       
   415 	samePhoneNumber->RemoveFieldType(KUidContactFieldVCardMapVOICE);
       
   416 
       
   417 
       
   418 	if (!samePhoneNumber->IsEqualForSyncUpdate(*samePhoneNumberBis))
       
   419 		{
       
   420 		User::Leave(KErrGeneral); //Leave if not equal	
       
   421 		}
       
   422 
       
   423 
       
   424 	if (!samePhoneNumberBis->IsEqualForSyncUpdate(*samePhoneNumber))
       
   425 		{
       
   426 		User::Leave(KErrGeneral); //Leave if not equal	
       
   427 		}
       
   428 
       
   429 	samePhoneNumber->RemoveFieldType(KUidContactFieldVCardMapPREF);
       
   430 	samePhoneNumber->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
       
   431 
       
   432 
       
   433 	//////////////////Check pref and voice property exception together when set in both content type////////////////////
       
   434 	
       
   435 	samePhoneNumber->AddFieldTypeL(KUidContactFieldVCardMapPREF);
       
   436 	samePhoneNumber->RemoveFieldType(KUidContactFieldVCardMapVOICE);
       
   437 	samePhoneNumberBis->AddFieldTypeL(KUidContactFieldVCardMapPREF);
       
   438 	samePhoneNumberBis->RemoveFieldType(KUidContactFieldVCardMapVOICE);
       
   439 
       
   440 	if (!samePhoneNumber->IsEqualForSyncUpdate(*samePhoneNumberBis))
       
   441 		{
       
   442 		User::Leave(KErrGeneral); //Leave if not equal	
       
   443 		}
       
   444 
       
   445 
       
   446 	if (!samePhoneNumberBis->IsEqualForSyncUpdate(*samePhoneNumber))
       
   447 		{
       
   448 		User::Leave(KErrGeneral); //Leave if not equal	
       
   449 		}
       
   450 
       
   451 	/////////////////////////////////////////////////////////////////////////////////////////
       
   452 
       
   453 
       
   454 	CleanupStack::PopAndDestroy(2); //type1, type2
       
   455 	}
       
   456 
       
   457 
       
   458 LOCAL_C void DoTestDifferentEmailL()
       
   459 	{
       
   460 	//Create a calypso email general 
       
   461 	CContentType* emailGeneral=CContentType::NewL(KUidContactFieldEMail,KUidContactFieldVCardMapEMAILINTERNET);
       
   462 	CleanupStack::PushL(emailGeneral);
       
   463 		
       
   464 	//Create a calypso email work
       
   465 	CContentType* emailWork=CContentType::NewL(KUidContactFieldEMail,KUidContactFieldVCardMapEMAILINTERNET);
       
   466 	CleanupStack::PushL(emailWork);
       
   467 	emailWork->AddFieldTypeL(KUidContactFieldVCardMapWORK);
       
   468 	
       
   469 	///////// Check  ///////////
       
   470 
       
   471 	if (emailGeneral->IsEqualForSyncUpdate(*emailWork))
       
   472 		{
       
   473 		User::Leave(KErrGeneral); //Leave if equal	
       
   474 		}
       
   475 
       
   476 	if (emailWork->IsEqualForSyncUpdate(*emailGeneral))
       
   477 		{
       
   478 		User::Leave(KErrGeneral); //Leave if equal	
       
   479 		}
       
   480 
       
   481 	//Check if equal to itself
       
   482 	if (!emailGeneral->IsEqualForSyncUpdate(*emailGeneral))
       
   483 		{
       
   484 		User::Leave(KErrGeneral); //Leave if not equal	
       
   485 		}
       
   486 	
       
   487 	//Check if equal to itself
       
   488 	if (!emailWork->IsEqualForSyncUpdate(*emailWork))
       
   489 		{
       
   490 		User::Leave(KErrGeneral); //Leave if equal	
       
   491 		}
       
   492 
       
   493 	///////// Check pref not create side effect ///////////
       
   494 
       
   495 	emailWork->AddFieldTypeL(KUidContactFieldVCardMapPREF);
       
   496 
       
   497 	if (emailGeneral->IsEqualForSyncUpdate(*emailWork))
       
   498 		{
       
   499 		User::Leave(KErrGeneral); //Leave if equal	
       
   500 		}
       
   501 
       
   502 	if (emailWork->IsEqualForSyncUpdate(*emailGeneral))
       
   503 		{
       
   504 		User::Leave(KErrGeneral); //Leave if equal	
       
   505 		}
       
   506 
       
   507 	//Check if equal to itself
       
   508 	if (!emailWork->IsEqualForSyncUpdate(*emailWork))
       
   509 		{
       
   510 		User::Leave(KErrGeneral); //Leave if equal	
       
   511 		}
       
   512 	
       
   513 	emailWork->RemoveFieldType(KUidContactFieldVCardMapPREF);
       
   514 
       
   515 	CleanupStack::PopAndDestroy(2); //type1, type2
       
   516 	}
       
   517 	
       
   518 LOCAL_C void DoTestEqualEmailL()
       
   519 	{
       
   520 	//Create a calypso email general 
       
   521 	CContentType* sameEmail=CContentType::NewL(KUidContactFieldEMail,KUidContactFieldVCardMapEMAILINTERNET);
       
   522 	CleanupStack::PushL(sameEmail);
       
   523 		
       
   524 	//Create a calypso email work
       
   525 	CContentType* sameEmailBis=CContentType::NewL(KUidContactFieldEMail,KUidContactFieldVCardMapEMAILINTERNET);
       
   526 	CleanupStack::PushL(sameEmailBis);
       
   527 
       
   528 
       
   529 	if (!sameEmailBis->IsEqualForSyncUpdate(*sameEmail))
       
   530 		{
       
   531 		User::Leave(KErrGeneral); //Leave if not equal	
       
   532 		}
       
   533 
       
   534 	if (!sameEmail->IsEqualForSyncUpdate(*sameEmailBis))
       
   535 		{
       
   536 		User::Leave(KErrGeneral); //Leave if not equal	
       
   537 		}
       
   538 
       
   539 
       
   540 	///////// Check pref is ignore ///////////
       
   541 	sameEmail->AddFieldTypeL(KUidContactFieldVCardMapPREF);
       
   542 
       
   543 	if (!sameEmailBis->IsEqualForSyncUpdate(*sameEmail))
       
   544 		{
       
   545 		User::Leave(KErrGeneral); //Leave if not equal	
       
   546 		}
       
   547 
       
   548 	if (!sameEmail->IsEqualForSyncUpdate(*sameEmailBis))
       
   549 		{
       
   550 		User::Leave(KErrGeneral); //Leave if not equal	
       
   551 		}
       
   552 	
       
   553 	sameEmail->RemoveFieldType(KUidContactFieldVCardMapPREF);
       
   554 
       
   555 	CleanupStack::PopAndDestroy(2); //type1, type2
       
   556 	}
       
   557 
       
   558 
       
   559 
       
   560 void DoBenchMarkL()
       
   561 	{
       
   562 	}
       
   563 
       
   564 /**
       
   565 
       
   566 @SYMTestCaseID     PIM-T-WRONGFIELDMATCH-0001
       
   567 
       
   568 */
       
   569 
       
   570 LOCAL_C void DoTestsL()
       
   571     {
       
   572 	DoBenchMarkL();
       
   573 	
       
   574 
       
   575 	test.Start(_L("@SYMTESTCaseID:PIM-T-WRONGFIELDMATCH-0001 T_WRONGFIELDMATCH"));
       
   576 
       
   577 	
       
   578 	DoTestDifferentEmailL();
       
   579 	DoTestEqualEmailL();
       
   580 	DoTestSpeedDialIgnoreL();
       
   581 	DoTestVoiceDialIgnoreL();
       
   582 	DoTestDifferentPhoneNumberL();
       
   583 	DoTestEqualPhoneNumberL();
       
   584 	test.End();
       
   585     }
       
   586 
       
   587 GLDEF_C TInt E32Main()
       
   588 	{
       
   589     // Init
       
   590     CTrapCleanup* cleanupStack = CTrapCleanup::New();
       
   591     if (!cleanupStack)
       
   592         {
       
   593         return KErrNoMemory;
       
   594         }
       
   595     
       
   596 	// Run the tests
       
   597 	__UHEAP_MARK;
       
   598     TRAPD(err, DoTestsL());
       
   599 	test.Close(); //avoid memory leak
       
   600 	__UHEAP_MARKEND;
       
   601     // Cleanup
       
   602 
       
   603 	if (err)
       
   604 		{
       
   605 		User::Panic(_L("T_WrongFieldMatch  Failed"),err);
       
   606 		}
       
   607 
       
   608 
       
   609 
       
   610     delete cleanupStack;
       
   611 	return err;
       
   612     }