messagingfw/msgsrvnstore/server/test/Unittef/src/t_msv_dbadapter_step.cpp
changeset 40 320ec5cd0227
parent 0 8e480a14352b
child 46 d51193d814ea
equal deleted inserted replaced
33:61f466445ae5 40:320ec5cd0227
     1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
   784 	visibleFolder = KMsvGlobalInBoxIndexEntryId;
   784 	visibleFolder = KMsvGlobalInBoxIndexEntryId;
   785 	TRAP(err, iMsvDbAdaptor->UpdateEntryL(cacheEntry->Entry(), visibleFolder));
   785 	TRAP(err, iMsvDbAdaptor->UpdateEntryL(cacheEntry->Entry(), visibleFolder));
   786 	MY_ASSERT_EQUALS(err, KErrNone);
   786 	MY_ASSERT_EQUALS(err, KErrNone);
   787 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
   787 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
   788 
   788 
   789 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
   789 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
   790 	visibleFolder = NULL;
   790 	visibleFolder = NULL;
   791 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
   791 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
   792 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId, cacheEntry, visibleFolder));
   792 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId, cacheEntry, visibleFolder));
   793 	MY_ASSERT_EQUALS(err, KErrNone);
   793 	MY_ASSERT_EQUALS(err, KErrNone);
   794 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
   794 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
   834 	
   834 	
   835 	visibleFolder = KMsvGlobalInBoxIndexEntryId;
   835 	visibleFolder = KMsvGlobalInBoxIndexEntryId;
   836 	TRAP(err, iMsvDbAdaptor->UpdateEntryL(cacheEntry->Entry(), visibleFolder)); //parent not changed
   836 	TRAP(err, iMsvDbAdaptor->UpdateEntryL(cacheEntry->Entry(), visibleFolder)); //parent not changed
   837 	MY_ASSERT_EQUALS(err, KErrNone);
   837 	MY_ASSERT_EQUALS(err, KErrNone);
   838 	
   838 	
   839 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
   839 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
   840 	visibleFolder = NULL;
   840 	visibleFolder = NULL;
   841 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
   841 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
   842 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId, cacheEntry, visibleFolder));
   842 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId, cacheEntry, visibleFolder));
   843 	MY_ASSERT_EQUALS(err, KErrNone);
   843 	MY_ASSERT_EQUALS(err, KErrNone);
   844 	MY_ASSERT_EQUALS(entry->iId, (driveId<<28)|KFirstFreeEntryId);
   844 	MY_ASSERT_EQUALS(entry->iId, (driveId<<28)|KFirstFreeEntryId);
   862 	MY_ASSERT_EQUALS(entry->iBioType, (long) 120);
   862 	MY_ASSERT_EQUALS(entry->iBioType, (long) 120);
   863 	MY_ASSERT_EQUALS(entry->iMtmData1, (long) 120);
   863 	MY_ASSERT_EQUALS(entry->iMtmData1, (long) 120);
   864 	MY_ASSERT_EQUALS(entry->iMtmData2, (long) 120);
   864 	MY_ASSERT_EQUALS(entry->iMtmData2, (long) 120);
   865 	MY_ASSERT_EQUALS(entry->iMtmData3, (long) 120);
   865 	MY_ASSERT_EQUALS(entry->iMtmData3, (long) 120);
   866 	
   866 	
   867 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
   867 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
   868 	
   868 	
   869 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
   869 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
   870 	// 3. Test update on an entry in an attached database.
   870 	// 3. Test update on an entry in an attached database.
   871 	// 3.0 Cleanup: deleting the DB if it was created in an earlier test.
   871 	// 3.0 Cleanup: deleting the DB if it was created in an earlier test.
   872 	TParse parse;
   872 	TParse parse;
   919 	visibleFolder = KMsvGlobalInBoxIndexEntryId;
   919 	visibleFolder = KMsvGlobalInBoxIndexEntryId;
   920 	TRAP(err, iMsvDbAdaptor->UpdateEntryL(cacheEntry->Entry(), visibleFolder));
   920 	TRAP(err, iMsvDbAdaptor->UpdateEntryL(cacheEntry->Entry(), visibleFolder));
   921 	MY_ASSERT_EQUALS(err, KErrNone);
   921 	MY_ASSERT_EQUALS(err, KErrNone);
   922 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
   922 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
   923 
   923 
   924 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
   924 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
   925 	visibleFolder = NULL;
   925 	visibleFolder = NULL;
   926 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId, cacheEntry, visibleFolder));
   926 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId, cacheEntry, visibleFolder));
   927 	MY_ASSERT_EQUALS(err, KErrNone);
   927 	MY_ASSERT_EQUALS(err, KErrNone);
   928 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
   928 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
   929 	MY_ASSERT_EQUALS(entry->iId, (driveId<<28)|KFirstFreeEntryId);
   929 	MY_ASSERT_EQUALS(entry->iId, (driveId<<28)|KFirstFreeEntryId);
   960 	
   960 	
   961 	visibleFolder = KMsvGlobalInBoxIndexEntryId;
   961 	visibleFolder = KMsvGlobalInBoxIndexEntryId;
   962 	TRAP(err, iMsvDbAdaptor->UpdateEntryL(cacheEntry->Entry(), visibleFolder)); //parent not changed
   962 	TRAP(err, iMsvDbAdaptor->UpdateEntryL(cacheEntry->Entry(), visibleFolder)); //parent not changed
   963 	MY_ASSERT_EQUALS(err, KErrNone);
   963 	MY_ASSERT_EQUALS(err, KErrNone);
   964 	
   964 	
   965 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
   965 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
   966 	visibleFolder = NULL;
   966 	visibleFolder = NULL;
   967 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId, cacheEntry, visibleFolder));
   967 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId, cacheEntry, visibleFolder));
   968 	MY_ASSERT_EQUALS(err, KErrNone);
   968 	MY_ASSERT_EQUALS(err, KErrNone);
   969 	MY_ASSERT_EQUALS(entry->iId, (driveId<<28)|KFirstFreeEntryId);
   969 	MY_ASSERT_EQUALS(entry->iId, (driveId<<28)|KFirstFreeEntryId);
   970 	MY_ASSERT_EQUALS(entry->iParentId, KMsvGlobalInBoxIndexEntryId);
   970 	MY_ASSERT_EQUALS(entry->iParentId, KMsvGlobalInBoxIndexEntryId);
   980 	MY_ASSERT_EQUALS(entry->iBioType, (long) 120);
   980 	MY_ASSERT_EQUALS(entry->iBioType, (long) 120);
   981 	MY_ASSERT_EQUALS(entry->iMtmData1, (long) 120);
   981 	MY_ASSERT_EQUALS(entry->iMtmData1, (long) 120);
   982 	MY_ASSERT_EQUALS(entry->iMtmData2, (long) 120);
   982 	MY_ASSERT_EQUALS(entry->iMtmData2, (long) 120);
   983 	MY_ASSERT_EQUALS(entry->iMtmData3, (long) 120);
   983 	MY_ASSERT_EQUALS(entry->iMtmData3, (long) 120);
   984 	
   984 	
   985 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
   985 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
   986 #endif	
   986 #endif	
   987 	}
   987 	}
   988 
   988 
   989 
   989 
   990 
   990 
  1065 	*data = KName;
  1065 	*data = KName;
  1066 	//MY_ASSERT_TRUE(entry->iDescription==data->Des());
  1066 	//MY_ASSERT_TRUE(entry->iDescription==data->Des());
  1067 
  1067 
  1068 	delete data;
  1068 	delete data;
  1069 	data = NULL;
  1069 	data = NULL;
  1070 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1070 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1071 	
  1071 	
  1072 	//TRAP(err, iMsvDbAdaptor->GetEntryL(KMsvLocalServiceIndexEntryId, entry, visibleFolder));
  1072 	//TRAP(err, iMsvDbAdaptor->GetEntryL(KMsvLocalServiceIndexEntryId, entry, visibleFolder));
  1073 	TRAP(err, iMsvDbAdaptor->GetEntryL(KMsvLocalServiceIndexEntryId, cacheEntry, visibleFolder));
  1073 	TRAP(err, iMsvDbAdaptor->GetEntryL(KMsvLocalServiceIndexEntryId, cacheEntry, visibleFolder));
  1074 	MY_ASSERT_EQUALS(err, KErrNone);
  1074 	MY_ASSERT_EQUALS(err, KErrNone);
  1075 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1075 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1076 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvServiceEntry);
  1076 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvServiceEntry);
  1077 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1077 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1078 	
  1078 	
  1079 	TRAP(err, iMsvDbAdaptor->GetEntryL(KMsvGlobalInBoxIndexEntryId, cacheEntry, visibleFolder));
  1079 	TRAP(err, iMsvDbAdaptor->GetEntryL(KMsvGlobalInBoxIndexEntryId, cacheEntry, visibleFolder));
  1080 	MY_ASSERT_EQUALS(err, KErrNone);
  1080 	MY_ASSERT_EQUALS(err, KErrNone);
  1081 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1081 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1082 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvFolderEntry);
  1082 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvFolderEntry);
  1083 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1083 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1084 	
  1084 	
  1085 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+1, cacheEntry, visibleFolder));
  1085 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+1, cacheEntry, visibleFolder));
  1086 	MY_ASSERT_EQUALS(err, KErrNone);
  1086 	MY_ASSERT_EQUALS(err, KErrNone);
  1087 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1087 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1088 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1088 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1089 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1089 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1090 	
  1090 	
  1091 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+2, cacheEntry, visibleFolder));
  1091 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+2, cacheEntry, visibleFolder));
  1092 	MY_ASSERT_EQUALS(err, KErrNone);
  1092 	MY_ASSERT_EQUALS(err, KErrNone);
  1093 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1093 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1094 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvAttachmentEntry);
  1094 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvAttachmentEntry);
  1095 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1095 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1096 	
  1096 	
  1097 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
  1097 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
  1098 	TInt driveId = (1<<28);
  1098 	TInt driveId = (1<<28);
  1099 #else
  1099 #else
  1100 	TInt driveId = 0x0;
  1100 	TInt driveId = 0x0;
  1101 #endif
  1101 #endif
  1102 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+5, cacheEntry, visibleFolder));
  1102 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+5, cacheEntry, visibleFolder));
  1103 	MY_ASSERT_EQUALS(err, KErrNone);
  1103 	MY_ASSERT_EQUALS(err, KErrNone);
  1104 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
  1104 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
  1105 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1105 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1106 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1106 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1107 	
  1107 	
  1108 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+100, cacheEntry, visibleFolder));
  1108 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+100, cacheEntry, visibleFolder));
  1109 	MY_ASSERT_EQUALS(err, KErrNone);
  1109 	MY_ASSERT_EQUALS(err, KErrNone);
  1110 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
  1110 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
  1111 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1111 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1112 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1112 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1113 	
  1113 	
  1114 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+102, cacheEntry, visibleFolder));
  1114 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+102, cacheEntry, visibleFolder));
  1115 	MY_ASSERT_EQUALS(err, KErrNone);
  1115 	MY_ASSERT_EQUALS(err, KErrNone);
  1116 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
  1116 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
  1117 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1117 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1118 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1118 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1119 	
  1119 	
  1120 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+103, cacheEntry, visibleFolder));
  1120 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+103, cacheEntry, visibleFolder));
  1121 	MY_ASSERT_EQUALS(err, KErrNone);
  1121 	MY_ASSERT_EQUALS(err, KErrNone);
  1122 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1122 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1123 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1123 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1124 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1124 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1125 	
  1125 	
  1126 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+201, cacheEntry, visibleFolder));
  1126 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+201, cacheEntry, visibleFolder));
  1127 	MY_ASSERT_EQUALS(err, KErrNone);
  1127 	MY_ASSERT_EQUALS(err, KErrNone);
  1128 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1128 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1129 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1129 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1130 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1130 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1131 	
  1131 	
  1132 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+202, cacheEntry, visibleFolder));
  1132 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+202, cacheEntry, visibleFolder));
  1133 	MY_ASSERT_EQUALS(err, KErrNone);
  1133 	MY_ASSERT_EQUALS(err, KErrNone);
  1134 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1134 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1135 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1135 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1136 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1136 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1137 	
  1137 	
  1138 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+203, cacheEntry, visibleFolder));
  1138 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+203, cacheEntry, visibleFolder));
  1139 	MY_ASSERT_EQUALS(err, KErrNotFound);
  1139 	MY_ASSERT_EQUALS(err, KErrNotFound);
  1140 	
  1140 	
  1141 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
  1141 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
  1176 	//Test GetEntry on the children.
  1176 	//Test GetEntry on the children.
  1177 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId+3, cacheEntry, visibleFolder));
  1177 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId+3, cacheEntry, visibleFolder));
  1178 	MY_ASSERT_EQUALS(err, KErrNone);
  1178 	MY_ASSERT_EQUALS(err, KErrNone);
  1179 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
  1179 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
  1180 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1180 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1181 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1181 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1182 	
  1182 	
  1183 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId+50, cacheEntry, visibleFolder));
  1183 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId+50, cacheEntry, visibleFolder));
  1184 	MY_ASSERT_EQUALS(err, KErrNone);
  1184 	MY_ASSERT_EQUALS(err, KErrNone);
  1185 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
  1185 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
  1186 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1186 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1187 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1187 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1188 	
  1188 	
  1189 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId+102, cacheEntry, visibleFolder));
  1189 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId+102, cacheEntry, visibleFolder));
  1190 	MY_ASSERT_EQUALS(err, KErrNone);
  1190 	MY_ASSERT_EQUALS(err, KErrNone);
  1191 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
  1191 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
  1192 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1192 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1193 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1193 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1194 	
  1194 	
  1195 	//A negative test on a non-existent entry.
  1195 	//A negative test on a non-existent entry.
  1196 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId+103, cacheEntry, visibleFolder));
  1196 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId+103, cacheEntry, visibleFolder));
  1197 	MY_ASSERT_EQUALS(err, KErrNotFound);
  1197 	MY_ASSERT_EQUALS(err, KErrNotFound);
  1198 	
  1198 	
  1200 	driveId = 1;
  1200 	driveId = 1;
  1201 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+102, cacheEntry, visibleFolder));
  1201 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+102, cacheEntry, visibleFolder));
  1202 	MY_ASSERT_EQUALS(err, KErrNone);
  1202 	MY_ASSERT_EQUALS(err, KErrNone);
  1203 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
  1203 	MY_ASSERT_EQUALS(visibleFolder, KMsvGlobalInBoxIndexEntryId);
  1204 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1204 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1205 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1205 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1206 	
  1206 	
  1207 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+200, cacheEntry, visibleFolder));
  1207 	TRAP(err, iMsvDbAdaptor->GetEntryL(KFirstFreeEntryId+200, cacheEntry, visibleFolder));
  1208 	MY_ASSERT_EQUALS(err, KErrNone);
  1208 	MY_ASSERT_EQUALS(err, KErrNone);
  1209 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1209 	MY_ASSERT_EQUALS(visibleFolder, KMsvRootIndexEntryId);
  1210 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1210 	MY_ASSERT_EQUALS(cacheEntry->Entry().iType, KUidMsvMessageEntry);
  1211 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  1211 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  1212 #endif	
  1212 #endif	
  1213 	}
  1213 	}
  1214 
  1214 
  1215 
  1215 
  1216 
  1216 
  1217 void CTestDbAdapter::ResetAndDestroy(RPointerArray<CMsvCacheEntry>& childArray)
  1217 void CTestDbAdapter::ResetAndDestroy(RPointerArray<CMsvCacheEntry>& childArray)
  1218 	{
  1218 	{
  1219 	for(int index=0; index<childArray.Count(); index++)
  1219 	for(int index=0; index<childArray.Count(); index++)
  1220 		{
  1220 		{
  1221 		CMsvEntryFreePool::Instance()->ReleaseEntry(childArray[index]);
  1221 		CMsvEntryFreePool::Instance()->ReleaseEntryL(childArray[index]);
  1222 		}
  1222 		}
  1223 	childArray.Reset();
  1223 	childArray.Reset();
  1224 	}
  1224 	}
  1225 
  1225 
  1226 
  1226 
  1683 	TRAP(err, CreateEntryL(id+1, KMsvGlobalInBoxIndexEntryId, KUidMsvMessageEntry, visibleFolderId));
  1683 	TRAP(err, CreateEntryL(id+1, KMsvGlobalInBoxIndexEntryId, KUidMsvMessageEntry, visibleFolderId));
  1684 	MY_ASSERT_EQUALS(err, KErrNone);
  1684 	MY_ASSERT_EQUALS(err, KErrNone);
  1685 	CMsvCacheEntry* parentEntry = NULL;
  1685 	CMsvCacheEntry* parentEntry = NULL;
  1686 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL(KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1686 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL(KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1687 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL(KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), ETrue));
  1687 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL(KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), ETrue));
  1688 	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
  1688 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
  1689 	TRAP(err, iMsvDbAdaptor->GetEntryL(KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1689 	TRAP(err, iMsvDbAdaptor->GetEntryL(KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1690 	MY_ASSERT_EQUALS(err, KErrNone);
  1690 	MY_ASSERT_EQUALS(err, KErrNone);
  1691 	MY_ASSERT_TRUE(parentEntry->Entry().Owner());
  1691 	MY_ASSERT_TRUE(parentEntry->Entry().Owner());
  1692 	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
  1692 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
  1693 	
  1693 	
  1694 	//3. Test resetting of the flag
  1694 	//3. Test resetting of the flag
  1695 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL(KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1695 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL(KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1696 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL(KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), EFalse));
  1696 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL(KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), EFalse));
  1697 	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
  1697 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
  1698 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL(KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1698 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL(KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1699 	MY_ASSERT_FALSE(parentEntry->Entry().Owner());
  1699 	MY_ASSERT_FALSE(parentEntry->Entry().Owner());
  1700 	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
  1700 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
  1701 	
  1701 	
  1702 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
  1702 #if (defined SYMBIAN_MSGS_ENHANCED_REMOVABLE_MEDIA_SUPPORT)
  1703 	// 4. Create and attach a second database. Create entries in it and test.
  1703 	// 4. Create and attach a second database. Create entries in it and test.
  1704 	// 4.0 Cleanup: deleting the DB if it was created in an earlier test.
  1704 	// 4.0 Cleanup: deleting the DB if it was created in an earlier test.
  1705 	TParse parse;
  1705 	TParse parse;
  1723 	MY_ASSERT_EQUALS(KMsvRootIndexEntryId, visibleFolderId);
  1723 	MY_ASSERT_EQUALS(KMsvRootIndexEntryId, visibleFolderId);
  1724 	//Setting the flag.
  1724 	//Setting the flag.
  1725 	parentEntry = NULL;
  1725 	parentEntry = NULL;
  1726 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1726 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1727 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), ETrue));
  1727 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), ETrue));
  1728 	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
  1728 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
  1729 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1729 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1730 	MY_ASSERT_TRUE(parentEntry->Entry().Owner());
  1730 	MY_ASSERT_TRUE(parentEntry->Entry().Owner());
  1731 	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
  1731 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
  1732 	//Flag already set, attempt to set again.
  1732 	//Flag already set, attempt to set again.
  1733 	parentEntry = NULL;
  1733 	parentEntry = NULL;
  1734 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1734 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1735 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), ETrue));
  1735 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), ETrue));
  1736 	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
  1736 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
  1737 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1737 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1738 	MY_ASSERT_TRUE(parentEntry->Entry().Owner());
  1738 	MY_ASSERT_TRUE(parentEntry->Entry().Owner());
  1739 	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
  1739 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
  1740 	//Resetting of the flag.
  1740 	//Resetting of the flag.
  1741 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1741 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1742 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), EFalse));
  1742 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), EFalse));
  1743 	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
  1743 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
  1744 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1744 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1745 	MY_ASSERT_FALSE(parentEntry->Entry().Owner());
  1745 	MY_ASSERT_FALSE(parentEntry->Entry().Owner());
  1746 	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
  1746 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
  1747 	//Flag already reset, attempt to reset again.
  1747 	//Flag already reset, attempt to reset again.
  1748 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1748 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1749 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), EFalse));
  1749 	TRAP_IGNORE(iMsvDbAdaptor->UpdateOwnerStatusL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry->Entry(), EFalse));
  1750 	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
  1750 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
  1751 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1751 	TRAP_IGNORE(iMsvDbAdaptor->GetEntryL((driveId<<28)|KMsvGlobalInBoxIndexEntryId, parentEntry, visibleFolderId));
  1752 	MY_ASSERT_FALSE(parentEntry->Entry().Owner());
  1752 	MY_ASSERT_FALSE(parentEntry->Entry().Owner());
  1753 	CMsvEntryFreePool::Instance()->ReleaseEntry(parentEntry);
  1753 	CMsvEntryFreePool::Instance()->ReleaseEntryL(parentEntry);
  1754 #endif	
  1754 #endif	
  1755 	}
  1755 	}
  1756 
  1756 
  1757 
  1757 
  1758 
  1758 
  2364 	TRAP(err, iMsvDbAdaptor->UpdateEntryL(cacheEntry->Entry(), visibleFolder));
  2364 	TRAP(err, iMsvDbAdaptor->UpdateEntryL(cacheEntry->Entry(), visibleFolder));
  2365 	MY_ASSERT_EQUALS(err, KErrNone);
  2365 	MY_ASSERT_EQUALS(err, KErrNone);
  2366 	// (j) Close the database without performing rollback/commit.
  2366 	// (j) Close the database without performing rollback/commit.
  2367 	delete iMsvDbAdaptor;
  2367 	delete iMsvDbAdaptor;
  2368 	iMsvDbAdaptor = NULL;
  2368 	iMsvDbAdaptor = NULL;
  2369 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  2369 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  2370 	// (k) Create the DBAdapter again.
  2370 	// (k) Create the DBAdapter again.
  2371 	TRAP_IGNORE(iMsvDbAdaptor = CMsvDBAdapter::NewL());
  2371 	TRAP_IGNORE(iMsvDbAdaptor = CMsvDBAdapter::NewL());
  2372 	TInt sysDrive = (TInt)RFs::GetSystemDrive();
  2372 	TInt sysDrive = (TInt)RFs::GetSystemDrive();
  2373 	TRAPD(error, iMsvDbAdaptor->AttachDBL(TDriveUnit(sysDrive), 1, maxId));
  2373 	TRAPD(error, iMsvDbAdaptor->AttachDBL(TDriveUnit(sysDrive), 1, maxId));
  2374 	ASSERT_EQUALS(error, KErrNone);
  2374 	ASSERT_EQUALS(error, KErrNone);
  2376 	MY_ASSERT_EQUALS(err, KErrNone);
  2376 	MY_ASSERT_EQUALS(err, KErrNone);
  2377 	// (h) Entry should not be updated in the attached drive.
  2377 	// (h) Entry should not be updated in the attached drive.
  2378 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId, cacheEntry, visibleFolder));
  2378 	TRAP(err, iMsvDbAdaptor->GetEntryL((driveId<<28)|KFirstFreeEntryId, cacheEntry, visibleFolder));
  2379 	MY_ASSERT_EQUALS(err, KErrNone);
  2379 	MY_ASSERT_EQUALS(err, KErrNone);
  2380 	MY_ASSERT_EQUALS(cacheEntry->Entry().Parent(), KMsvRootIndexEntryId); //old parent
  2380 	MY_ASSERT_EQUALS(cacheEntry->Entry().Parent(), KMsvRootIndexEntryId); //old parent
  2381 	CMsvEntryFreePool::Instance()->ReleaseEntry(cacheEntry);
  2381 	CMsvEntryFreePool::Instance()->ReleaseEntryL(cacheEntry);
  2382 	
  2382 	
  2383 	
  2383 	
  2384 	// 2. Create an entry and rollback.
  2384 	// 2. Create an entry and rollback.
  2385 	// (a) Open the transaction.
  2385 	// (a) Open the transaction.
  2386 	TRAP(err, iMsvDbAdaptor->BeginTransactionL());	
  2386 	TRAP(err, iMsvDbAdaptor->BeginTransactionL());