85 static TStifFunctionInfo const KFunctions[] = |
87 static TStifFunctionInfo const KFunctions[] = |
86 { |
88 { |
87 // Copy this line for every implemented function. |
89 // Copy this line for every implemented function. |
88 // First string is the function name used in TestScripter script file. |
90 // First string is the function name used in TestScripter script file. |
89 // Second is the actual implementation member function. |
91 // Second is the actual implementation member function. |
90 ENTRY( "TestStartHarvester", CHarvesterPluginTester::TestStartHarvesterL ), |
92 ENTRY( "TestStartHarvester", CHarvesterPluginTester::TestStartHarvesterL ), |
91 ENTRY( "TestFolderRename", CHarvesterPluginTester::TestFolderRenamingL ), |
|
92 ENTRY( "TestFormBaseAppClass", CHarvesterPluginTester::TestFormBaseAppClass ), |
93 ENTRY( "TestFormBaseAppClass", CHarvesterPluginTester::TestFormBaseAppClass ), |
93 ENTRY( "TestDatabasePath", CHarvesterPluginTester::TestDatabasePathL ), |
94 ENTRY( "TestDatabasePath", CHarvesterPluginTester::TestDatabasePathL ), |
94 ENTRY( "TestCreateIndexItemL_Add", CHarvesterPluginTester::TestCreateIndexItemL ), |
95 ENTRY( "TestCreateIndexItemL_Add", CHarvesterPluginTester::TestCreateIndexItemL ), |
95 ENTRY( "TestCreateIndexItemL_Update", CHarvesterPluginTester::TestCreateIndexItemL ), |
96 ENTRY( "TestCreateIndexItemL_Update", CHarvesterPluginTester::TestCreateIndexItemL ), |
96 ENTRY( "TestCreateIndexItemL_Delete", CHarvesterPluginTester::TestCreateIndexItemL ), |
97 ENTRY( "TestCreateIndexItemL_Delete", CHarvesterPluginTester::TestCreateIndexItemL ), |
|
98 ENTRY( "TestFolderCreate", CHarvesterPluginTester::TestFolderCreateL ), |
|
99 ENTRY( "TestFolderRename", CHarvesterPluginTester::TestFolderRenameL ), |
97 ENTRY( "TestMessaging", CHarvesterPluginTester::TestMessageHarvesterL ), |
100 ENTRY( "TestMessaging", CHarvesterPluginTester::TestMessageHarvesterL ), |
98 ENTRY( "TestMessageHarvesting", CHarvesterPluginTester::TestMessageHarvesterWithMessageL ), |
101 ENTRY( "TestMessageHarvesting", CHarvesterPluginTester::TestMessageHarvesterWithMessageL ), |
99 ENTRY( "TestMessageDriveChange", CHarvesterPluginTester::TestMessageHarvesterChangeDriveL ), |
102 ENTRY( "TestMessageDriveChange", CHarvesterPluginTester::TestMessageHarvesterChangeDriveL ), |
100 ENTRY( "TestStartBookmarksHarvesterL", CHarvesterPluginTester::TestStartBookmarksHarvesterL ), |
103 ENTRY( "TestStartBookmarksHarvesterL", CHarvesterPluginTester::TestStartBookmarksHarvesterL ), |
101 ENTRY( "TestAddBookmarkL", CHarvesterPluginTester::TestAddBookmarkL ), |
104 ENTRY( "TestAddBookmarkL", CHarvesterPluginTester::TestAddBookmarkL ), |
170 delete iPluginTester; |
173 delete iPluginTester; |
171 doLog( iLog, KErrNone, KNoErrorString ); |
174 doLog( iLog, KErrNone, KNoErrorString ); |
172 return KErrNone; |
175 return KErrNone; |
173 } |
176 } |
174 |
177 |
175 //Same as before, except we rename a directory before calling wait->Start() |
|
176 TInt CHarvesterPluginTester::TestFolderRenamingL( CStifItemParser& /*aItem*/ ) |
|
177 { |
|
178 CFilePlugin* filePlugin = CFilePlugin::NewL(); |
|
179 CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( filePlugin ); |
|
180 filePlugin->StartPluginL(); //Calls Add |
|
181 filePlugin->StartHarvestingL( KAppBasePath ); |
|
182 |
|
183 _LIT( KDirectoryToRenameFrom, "C:\\data\\FileToTestRename" ); |
|
184 _LIT( KDirectoryToRenameTo, "C:\\data\\FileToTestRenamed" ); |
|
185 RFs fs; |
|
186 fs.Connect(); |
|
187 TInt error = fs.Rename( KDirectoryToRenameFrom, KDirectoryToRenameTo ); |
|
188 iPluginTester->iWaitForHarvester->Start();//Wait here till Harvesting is complete. |
|
189 //rename it back to what it was. |
|
190 error = fs.Rename( KDirectoryToRenameTo, KDirectoryToRenameFrom ); |
|
191 |
|
192 delete filePlugin; |
|
193 delete iPluginTester; |
|
194 doLog( iLog, error, _L("Error: TestFolderRename.") ); |
|
195 |
|
196 return error; |
|
197 } |
|
198 |
|
199 TInt CHarvesterPluginTester::TestFormBaseAppClass( CStifItemParser& aItem ) |
178 TInt CHarvesterPluginTester::TestFormBaseAppClass( CStifItemParser& aItem ) |
200 { |
179 { |
201 // Print to UI |
180 // Print to UI |
202 _LIT( KFilePluginBaseAppClass, "FormBaseAppClass" ); |
181 _LIT( KFilePluginBaseAppClass, "FormBaseAppClass" ); |
203 _LIT( KExample, "In TestFormBaseAppClass" ); |
182 _LIT( KExample, "In TestFormBaseAppClass" ); |
|
183 |
204 TestModuleIf().Printf( 0, KFilePluginBaseAppClass, KExample ); |
184 TestModuleIf().Printf( 0, KFilePluginBaseAppClass, KExample ); |
205 |
185 |
206 TInt driveNumber; |
186 TInt driveNumber; |
207 TBuf<100> formedBaseAppClass; |
187 TBuf<100> formedBaseAppClass; |
208 TBuf<100> expectedBaseAppClass; |
188 TBuf<100> expectedBaseAppClass; |
211 CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( filePlugin ); |
191 CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( filePlugin ); |
212 filePlugin->StartPluginL(); |
192 filePlugin->StartPluginL(); |
213 |
193 |
214 TInt error = KErrNone; |
194 TInt error = KErrNone; |
215 TInt errorNumber = 0; |
195 TInt errorNumber = 0; |
216 _LIT( KBaseAppClassFormatString, "@%c:root file"); |
196 _LIT( KFileBaseAppClassFolder, "root file folder"); |
|
197 _LIT( KBaseAppClassFormatString, "@%c:root file folder"); |
217 _LIT( KTestFormBaseAppClassNoError, "TestFormBaseAppClass: No Error" ); |
198 _LIT( KTestFormBaseAppClassNoError, "TestFormBaseAppClass: No Error" ); |
218 |
199 |
219 if( aItem.GetNextInt ( driveNumber ) == KErrNone && error == KErrNone ) |
200 if( aItem.GetNextInt ( driveNumber ) == KErrNone && error == KErrNone ) |
220 { |
201 { |
221 filePlugin->FormBaseAppClass( static_cast<TDriveNumber>( driveNumber ), formedBaseAppClass ); |
202 filePlugin->FormBaseAppClass( static_cast<TDriveNumber>( driveNumber ),KFileBaseAppClassFolder, formedBaseAppClass ); |
222 if( aItem.GetNextChar ( driveChar ) == KErrNone ) |
203 if( aItem.GetNextChar ( driveChar ) == KErrNone ) |
223 { |
204 { |
224 expectedBaseAppClass.Format( KBaseAppClassFormatString, driveChar ); |
205 expectedBaseAppClass.Format( KBaseAppClassFormatString, driveChar ); |
225 error = expectedBaseAppClass.Compare( formedBaseAppClass ); |
206 error = expectedBaseAppClass.Compare( formedBaseAppClass ); |
226 if( aItem.GetNextInt ( errorNumber ) == KErrNone ) |
207 if( aItem.GetNextInt ( errorNumber ) == KErrNone ) |
246 TBuf<KMaxFileName> expectedDbPath; |
227 TBuf<KMaxFileName> expectedDbPath; |
247 TInt error = KErrNone; |
228 TInt error = KErrNone; |
248 TInt errorNumber; |
229 TInt errorNumber; |
249 TChar driveChar; |
230 TChar driveChar; |
250 _LIT( KTestDatabasePathNoError, "TestDatabasePathL: No Error" ); |
231 _LIT( KTestDatabasePathNoError, "TestDatabasePathL: No Error" ); |
251 |
232 _LIT(KPathFileContent, "\\root\\file\\content"); |
252 _LIT( KDbFormatString, "%c:\\Private\\2001f6f7\\indexing\\indexdb\\root\\file" ); |
233 _LIT( KDbFormatString, "%c:\\Private\\2001f6f7\\indexing\\indexdb\\root\\file\\content" ); |
253 if( aItem.GetNextInt ( driveNumber ) == KErrNone && error == KErrNone ) |
234 if( aItem.GetNextInt ( driveNumber ) == KErrNone && error == KErrNone ) |
254 { |
235 { |
255 buffer = filePlugin->DatabasePathLC( static_cast<TDriveNumber>( driveNumber ) ); |
236 buffer = filePlugin->DatabasePathLC( static_cast<TDriveNumber>( driveNumber ), KPathFileContent ); |
256 returnedDbPath.Copy( *buffer ); |
237 returnedDbPath.Copy( *buffer ); |
257 if( aItem.GetNextChar ( driveChar ) == KErrNone ) |
238 if( aItem.GetNextChar ( driveChar ) == KErrNone ) |
258 { |
239 { |
259 expectedDbPath.Format( KDbFormatString, driveChar ); |
240 expectedDbPath.Format( KDbFormatString, driveChar ); |
260 error = expectedDbPath.Compare( returnedDbPath ); |
241 error = expectedDbPath.Compare( returnedDbPath ); |
319 if( createIndexAction.Compare( KActionAdd ) == 0 ) |
300 if( createIndexAction.Compare( KActionAdd ) == 0 ) |
320 { |
301 { |
321 if( aItem.GetNextString ( fileName ) == KErrNone && error == KErrNone ) |
302 if( aItem.GetNextString ( fileName ) == KErrNone && error == KErrNone ) |
322 { |
303 { |
323 filePathName.Append( fileName ); |
304 filePathName.Append( fileName ); |
324 filePlugin->CreateFileIndexItemL( filePathName, ECPixAddAction ); |
305 filePlugin->CreateContentIndexItemL( filePathName, ECPixAddAction ); |
|
306 User::After( (TTimeIntervalMicroSeconds32)35000000 ); |
325 TPtrC searchString; |
307 TPtrC searchString; |
326 while( aItem.GetNextString ( searchString ) == KErrNone && error == KErrNone ) |
308 while( aItem.GetNextString ( searchString ) == KErrNone && error == KErrNone ) |
327 { |
309 { |
328 error = doSearch( searchString, _L(FILE_QBASEAPPCLASS), ESearchTypeResultsExpected ); |
310 error = doSearch( searchString, KAppBasePath, ESearchTypeResultsExpected ); |
329 } |
311 } |
330 filePlugin->CreateFileIndexItemL( filePathName, ECPixRemoveAction ); |
312 filePlugin->CreateContentIndexItemL( filePathName, ECPixRemoveAction ); |
331 } |
313 } |
332 } |
314 } |
333 if( createIndexAction.Compare( KActionDelete ) == 0 ) |
315 if( createIndexAction.Compare( KActionDelete ) == 0 ) |
334 { |
316 { |
335 if( aItem.GetNextString ( fileName ) == KErrNone && error == KErrNone ) |
317 if( aItem.GetNextString ( fileName ) == KErrNone && error == KErrNone ) |
336 { |
318 { |
337 filePathName.Append( fileName ); |
319 filePathName.Append( fileName ); |
338 filePlugin->CreateFileIndexItemL( filePathName, ECPixRemoveAction ); |
320 filePlugin->CreateContentIndexItemL( filePathName, ECPixRemoveAction ); |
339 TPtrC searchString; |
321 TPtrC searchString; |
340 while( aItem.GetNextString ( searchString ) == KErrNone && error == KErrNone ) |
322 while( aItem.GetNextString ( searchString ) == KErrNone && error == KErrNone ) |
341 { |
323 { |
342 error = doSearch( searchString, _L(FILE_QBASEAPPCLASS), ESearchTypeNoResultsExpected ); |
324 error = doSearch( searchString, KAppBasePath, ESearchTypeNoResultsExpected ); |
343 } |
325 } |
344 } |
326 } |
345 } |
327 } |
346 if( createIndexAction.Compare( KActionUpdate ) == 0 ) |
328 if( createIndexAction.Compare( KActionUpdate ) == 0 ) |
347 { |
329 { |
348 if( aItem.GetNextString ( fileName ) == KErrNone && error == KErrNone ) |
330 if( aItem.GetNextString ( fileName ) == KErrNone && error == KErrNone ) |
349 { |
331 { |
350 filePathName.Append( fileName ); |
332 filePathName.Append( fileName ); |
351 filePlugin->CreateFileIndexItemL( filePathName, ECPixUpdateAction ); |
333 filePlugin->CreateContentIndexItemL( filePathName, ECPixUpdateAction ); |
|
334 User::After( (TTimeIntervalMicroSeconds32)35000000 ); |
352 TPtrC searchString; |
335 TPtrC searchString; |
353 while( aItem.GetNextString ( searchString ) == KErrNone && error == KErrNone ) |
336 while( aItem.GetNextString ( searchString ) == KErrNone && error == KErrNone ) |
354 { |
337 { |
355 error = doSearch( searchString, _L(FILE_QBASEAPPCLASS), ESearchTypeResultsExpected ); |
338 error = doSearch( searchString, KAppBasePath, ESearchTypeResultsExpected ); |
356 } |
339 } |
357 } |
340 } |
358 } |
341 } |
359 } |
342 } |
360 delete filePlugin; |
343 delete filePlugin; |
361 delete observer; |
344 delete observer; |
362 doLog( iLog, error, KCreateIndexItemNoError ); |
345 doLog( iLog, error, KCreateIndexItemNoError ); |
363 return error; |
346 return error; |
364 } |
347 } |
365 |
348 |
|
349 TInt CHarvesterPluginTester::TestFolderCreateL( CStifItemParser& /*aItem*/ ) |
|
350 { |
|
351 TInt error = KErrNone; |
|
352 CFilePlugin* filePlugin = CFilePlugin::NewL(); |
|
353 CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( filePlugin ); |
|
354 filePlugin->StartPluginL(); |
|
355 filePlugin->StartHarvestingL( KAppBasePath ); |
|
356 |
|
357 _LIT( KDirectoryToCreate, "C:\\data\\TestFolder\\" ); |
|
358 RFs fs; |
|
359 fs.Connect(); |
|
360 TBool folderExists = BaflUtils::FolderExists(fs, KDirectoryToCreate); |
|
361 if(!folderExists) |
|
362 { |
|
363 error = fs.MkDir(KDirectoryToCreate); |
|
364 } |
|
365 iPluginTester->iWaitForHarvester->Start();//Wait here till Harvesting is complete. |
|
366 |
|
367 if(error == KErrNone) |
|
368 { |
|
369 error = doSearch( _L("TestFolder"), KAppBaseFolderFilePath, ESearchTypeResultsExpected ); |
|
370 fs.RmDir(KDirectoryToCreate); |
|
371 } |
|
372 fs.Close(); |
|
373 delete filePlugin; |
|
374 delete iPluginTester; |
|
375 doLog( iLog, error, _L("Error: TestFolderCreateL") ); |
|
376 |
|
377 return error; |
|
378 } |
|
379 |
|
380 TInt CHarvesterPluginTester::TestFolderRenameL( CStifItemParser& /*aItem*/ ) |
|
381 { |
|
382 TInt error = KErrNone; |
|
383 RFs fs; |
|
384 fs.Connect(); |
|
385 |
|
386 CFilePlugin* filePlugin = CFilePlugin::NewL(); |
|
387 CFolderRenamedHarvester* iFolderRenameHarvester = CFolderRenamedHarvester::NewL( *filePlugin, fs); |
|
388 CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( filePlugin ); |
|
389 filePlugin->StartPluginL(); |
|
390 filePlugin->StartHarvestingL( KAppBasePath ); |
|
391 |
|
392 _LIT( KDirectoryToCreate, "C:\\data\\TestRenameFolder\\" ); |
|
393 _LIT( KDirectoryRenamed, "C:\\data\\TestFolderRenamed\\" ); |
|
394 |
|
395 TFileName oldFolderName(KDirectoryToCreate); |
|
396 TFileName newFolderName(KDirectoryRenamed); |
|
397 |
|
398 if(!BaflUtils::FolderExists(fs, KDirectoryToCreate)) |
|
399 { |
|
400 User::LeaveIfError(fs.MkDir(KDirectoryToCreate)); |
|
401 } |
|
402 if(BaflUtils::FolderExists(fs, KDirectoryRenamed)) |
|
403 { |
|
404 User::LeaveIfError(fs.RmDir(KDirectoryRenamed)); |
|
405 } |
|
406 iPluginTester->iWaitForHarvester->Start();//Wait here till Harvesting is complete. |
|
407 |
|
408 error = doSearch( _L("TestRenameFolder"), KAppBaseFolderFilePath, ESearchTypeResultsExpected ); |
|
409 |
|
410 if(error == KErrNone) |
|
411 { |
|
412 fs.Rename(KDirectoryToCreate, KDirectoryRenamed); |
|
413 iFolderRenameHarvester->StartL( oldFolderName, newFolderName ); |
|
414 } |
|
415 |
|
416 User::After( (TTimeIntervalMicroSeconds32)35000000 ); |
|
417 |
|
418 //Search for the renamed directory |
|
419 error = doSearch( _L("TestFolderRenamed"), KAppBaseFolderFilePath, ESearchTypeNoResultsExpected ); |
|
420 |
|
421 fs.RmDir(KDirectoryRenamed); |
|
422 |
|
423 delete filePlugin; |
|
424 delete iFolderRenameHarvester; |
|
425 delete iPluginTester; |
|
426 fs.Close(); |
|
427 doLog( iLog, error, _L("Error: TestFolderRenameL") ); |
|
428 |
|
429 return error; |
|
430 } |
366 /** |
431 /** |
367 * Message harvester test method. |
432 * Message harvester test method. |
368 * @since ?Series60_version |
433 * @since ?Series60_version |
369 * @param aItem Script line containing parameters. |
434 * @param aItem Script line containing parameters. |
370 * @return Symbian OS error code. |
435 * @return Symbian OS error code. |
707 } |
772 } |
708 |
773 |
709 TInt CHarvesterPluginTester::TestDeleteNoteL( CStifItemParser& aItem ) |
774 TInt CHarvesterPluginTester::TestDeleteNoteL( CStifItemParser& aItem ) |
710 { |
775 { |
711 TInt error = KErrNone; |
776 TInt error = KErrNone; |
712 _LIT( KSearchError, "Search Failed" ); |
777 _LIT( KSearchError, "Search Failed" ); |
713 |
|
714 CNotesPlugin* plugin = CNotesPlugin::NewL(); |
778 CNotesPlugin* plugin = CNotesPlugin::NewL(); |
715 CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); |
779 CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin ); |
716 plugin->StartPluginL(); |
780 plugin->StartPluginL(); |
717 |
781 |
718 CCalendarObserver* session = CCalendarObserver::NewL(); |
782 CCalendarObserver* session = CCalendarObserver::NewL(); |
719 plugin->StartHarvestingL( _L(NOTES_QBASEAPPCLASS) ); |
783 plugin->StartHarvestingL( _L(NOTES_QBASEAPPCLASS) ); |
|
784 iPluginTester->iWaitForHarvester->Start(); |
720 // Add a Note entry |
785 // Add a Note entry |
721 TPtrC searchstring; |
786 TPtrC searchstring; |
722 error = aItem.GetNextString( searchstring ); |
787 error = aItem.GetNextString( searchstring ); |
723 HBufC8* buf8 = HBufC8::NewL(2*searchstring.Length()); |
788 HBufC8* buf8 = HBufC8::NewL(2*searchstring.Length()); |
724 buf8->Des().Copy(searchstring); |
789 buf8->Des().Copy(searchstring); |
725 session->AddNoteL( buf8->Des()); |
790 session->AddNoteL( buf8->Des()); |
726 delete buf8; |
791 User::After( (TTimeIntervalMicroSeconds32)35000000 ); |
727 iPluginTester->iWaitForHarvester->Start(); |
792 delete buf8; |
728 error = doSearch( _L("TestNote"), _L( NOTES_QBASEAPPCLASS ), ESearchTypeResultsExpected ); |
793 error = doSearch( _L("TestNote"), _L( NOTES_QBASEAPPCLASS ), ESearchTypeResultsExpected ); |
729 doLog( iLog, error, KSearchError ); |
794 doLog( iLog, error, KSearchError ); |
730 if( error == KErrNone) |
795 if( error == KErrNone) |
731 { |
796 { |
732 session->DeleteNoteEntryL(); |
797 session->DeleteNoteEntryL(); |
733 plugin->StartHarvestingL( _L(NOTES_QBASEAPPCLASS) ); |
798 User::After( (TTimeIntervalMicroSeconds32)35000000 ); |
734 iPluginTester->iWaitForHarvester->Start(); |
|
735 //Delete the Note entry added previously and search for result |
799 //Delete the Note entry added previously and search for result |
736 error = doSearch( _L("TestNote"), _L( NOTES_QBASEAPPCLASS ), ESearchTypeResultsExpected ); |
800 error = doSearch( _L("TestNote"), _L( NOTES_QBASEAPPCLASS ), ESearchTypeResultsExpected ); |
737 //If the entery is succesfully deleted, make error to KErrNone.To show testcase success |
801 //If the entery is succesfully deleted, make error to KErrNone.To show testcase success |
738 if(error == KErrNotFound) |
802 if(error == KErrNotFound) |
739 error = KErrNone; |
803 error = KErrNone; |