localisation/apparchitecture/tef/T_RApaLsSessionStep.cpp
branchSymbian3
changeset 57 b8d18c84f71c
parent 6 c108117318cb
--- a/localisation/apparchitecture/tef/T_RApaLsSessionStep.cpp	Wed Jul 28 16:03:37 2010 +0100
+++ b/localisation/apparchitecture/tef/T_RApaLsSessionStep.cpp	Tue Aug 03 10:20:34 2010 +0100
@@ -1,7 +1,7 @@
 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
@@ -11,12 +11,11 @@
 // Contributors:
 //
 // Description:
+// t_rapalssessionstep.cpp
 //
 
-
-
 /**
- @file
+ @file t_rapalssessionstep.cpp
  @test
  @internalComponent - Internal Symbian test code 
 */
@@ -31,14 +30,14 @@
 #include <coeccntx.h>
 #include <coemain.h>
 #include <coeview.h>
-#include <eikdialg.h>
+#include <mw/eikdialg.h>
 #include <eikdoc.h>
 #include <eikapp.h>
 #include <eiksrvc.h>
-#include <eikconso.h>
+#include <mw/eikconso.h>
 
 #include <apaid.h>
-#include "..\apparc\apadll.h"
+#include "../apparc/apadll.h"
 #include <apgaplst.h>
 #include <apgicnfl.h>
 #include <apgdoor.h>
@@ -49,13 +48,13 @@
 #include <apaflrec.h>
 #include <apgcli.h>
 #include <apacmdln.h>
-#include <apsserv.h>
 #include <barsread.h>
 #include "tstapp.h"
-#include <appfwk_test.h>
+#include "appfwk_test.h"
+#include <apgnotif.h>
 
 #include "T_RApaLsSessionStep.h"
-#include "appfwk_test_AppUi.h"
+#include "appfwk_test_appui.h"
 #include "TRApaLsSessionStartAppTest.h"
 #include "TIconLoaderAndIconArrayForLeaks.h"  
 
@@ -87,9 +86,9 @@
 	}
 
 
-////////////////////////////
+//
 // Might actually be tests......
-/////////////////////////////
+//
 
 void CT_RApaLsSessionTestStep::TestAppListInfoDataInterrogationSetupL()
 	{
@@ -505,7 +504,7 @@
 	CleanupStack::PushL(iAppListInvalidTestFileMan);
 	
 	INFO_PRINTF1(_L("Copy tstapp files to C: drive......."));
-	TInt rtn=iFs.MkDir(KTempAppDir);
+	TInt rtn=iFs.MkDirAll(KTempAppDir);
 	TEST(rtn==KErrNone||rtn==KErrAlreadyExists); 
 	TEST(iAppListInvalidTestFileMan->Copy(regPath, KTempRegPath)==KErrNone);	//Just to start the idle update.
 
@@ -670,7 +669,60 @@
    
   	INFO_PRINTF1(KCompleted);
 	}
-   	
+ 
+/**
+   @SYMTestCaseID APPFWK-APPARC-00105
+  
+   @SYMDEF DEF139507 :API for recognizing data from memory buffer
+  
+   @SYMTestCaseDesc Test data recognition functions of RApaLsSession passing data only by buffer.
+   
+   @SYMTestPriority High 
+  
+   @SYMTestStatus Implemented
+   
+   @SYMTestActions Test RApaLsSession::RecognizeData() to recognize the data type of the data passed only by buffer.
+   
+   @SYMTestExpectedResults Test ensures that the data recognition functions identify the data type of
+   data passed by buffer.
+ */
+void CT_RApaLsSessionTestStep::TestAppListRecognizeDataPassedByBufferL()
+	{
+	INFO_PRINTF1(_L("Testing data recognition functions of RApaLsSession passing data only by buffer"));
+
+	//tbufferonlyrec.dll recognizes KTestBuffer with confidence as ECertain 
+	TDataRecognitionResult rr;
+    _LIT8(KTestBuffer, "Text_TestRecognizer");
+    rr.Reset();
+    TInt error = iLs.RecognizeData(KTestBuffer, rr);
+    if (rr.iConfidence != CApaDataRecognizerType::ECertain)
+        {
+        INFO_PRINTF1(_L("Error: confidence should be ECertain"));
+        TEST(EFalse);
+        }
+    
+	//tbufferonlyrec.dll recognizes KAnotherBuffer with confidence as EProbable
+    _LIT8(KAnotherBuffer, "AnotherText");
+    rr.Reset();
+    error = iLs.RecognizeData(KAnotherBuffer, rr);
+    if (rr.iConfidence != CApaDataRecognizerType::EProbable)
+        {
+        INFO_PRINTF1(_L("Error: confidence should be EProbable"));        
+        TEST(EFalse);
+        }  
+
+	//tbufferonlyrec.dll recognizes KSampleBuffer with confidence as ENotRecognized 
+   _LIT8(KSampleBuffer, "Sample Application");
+    rr.Reset();
+    error = iLs.RecognizeData(KSampleBuffer, rr);
+    if (rr.iConfidence != CApaDataRecognizerType::ENotRecognized)
+        {
+        INFO_PRINTF1(_L("Error: confidence should be ENotRecognized"));        
+        TEST(EFalse);
+        }  
+  	INFO_PRINTF1(KCompleted);
+	}
+
 /**
    @SYMTestCaseID T-Serv2Step-DoEnquiryTestsL
   
@@ -1697,7 +1749,7 @@
 	TEST(ret == KErrNone);
 	TEST(fullIconFileName != NULL);
 	INFO_PRINTF2(_L("The View icon's UID is - %X"), viewInfo.iUid);
-	TEST(!fullIconFileName->Compare(_L("file:///c/resource/apps/tcheckiconapp.xyz")));
+	TEST(!fullIconFileName->Compare(_L("file://c/resource/apps/tcheckiconapp.xyz")));
 	INFO_PRINTF2(_L("View's icon file name is - %S"), fullIconFileName);
 	
 	delete fullIconFileName;		
@@ -1988,6 +2040,104 @@
  	INFO_PRINTF1(_L("Test TestAppListInstallation1L completed"));
  	} 	
 
+	/**
+   @SYMTestCaseID APPFWK-APPARC-0107
+   
+   @SYMDEF DEF141484 
+   
+   @SYMTestCaseDesc     Tests whether Phone booting is failed or not with pesense of 
+                        an .mbm file of size zero in the path resource\apps
+   
+   @SYMTestPriority 
+  
+   @SYMTestStatus       Implemented
+   
+   @SYMTestActions          Place an .mbm file of size zero in the path resource\apps
+   
+   @SYMTestExpectedResults  Phone booting should not fail with pesense of 
+                            an .mbm file of size zero in the path resource\apps
+    
+ */
+void CT_RApaLsSessionTestStep::TestZeroSizedIconFileL()
+    {
+    
+    INFO_PRINTF1(_L("Test TestZeroSizedIconFileL Started.........."));
+    
+    _LIT(KTestAppDestDir, "C:\\private\\10003a3f\\import\\apps\\" );
+    _LIT(KTestAppResourceDir, "C:\\resource\\apps\\" );
+    
+    _LIT(KTestAppSource, "Z:\\apparctest\\zerosizedicon_reg.rsc" );
+    _LIT(KTestAppDest, "C:\\private\\10003a3f\\import\\apps\\zerosizedicon_reg.rsc" );
+    
+    _LIT(KTestMbmSource, "Z:\\resource\\apps\\zerosizedicon.mbm");
+    _LIT(KTestMbmDest, "C:\\resource\\apps\\zerosizedicon.mbm");
+    
+    _LIT(KTestLocSource, "Z:\\apparctest\\zerosizedicon_loc.rsc");
+    _LIT(KTestLocDest, "C:\\resource\\apps\\zerosizedicon_loc.rsc");
+   
+    TRequestStatus appScanCompleted=KRequestPending; 
+    iLs.SetNotify(EFalse,appScanCompleted); 
+    
+    RSmlTestUtils utils;
+    CleanupClosePushL(utils);
+    TEST(KErrNone == utils.Connect());
+  
+    INFO_PRINTF1(_L("Creating directory C:\\private\\10003a3f\\import\\apps\\ folder"));
+    TInt err=utils.CreateDirectoryL(KTestAppDestDir);
+    TESTEL((err==KErrNone) ||  (err==KErrAlreadyExists),err);
+
+    INFO_PRINTF1(_L("Creating directory C:\\resource\\apps\\ folder"));
+    err=utils.CreateDirectoryL(KTestAppResourceDir);
+    TESTEL((err==KErrNone) ||  (err==KErrAlreadyExists),err);
+
+    INFO_PRINTF1(_L("Copying _reg.rsc to C:\\private\\10003a3f\\import\\apps\\ folder"));    
+    User::LeaveIfError(utils.CopyFileL(KTestAppSource,KTestAppDest));
+    INFO_PRINTF1(_L("Copying the mbm and _loc.rsc to C:\\resource\\apps\\ folder"));
+    User::LeaveIfError(utils.CopyFileL(KTestMbmSource,KTestMbmDest));
+    User::LeaveIfError(utils.CopyFileL(KTestLocSource,KTestLocDest));
+
+    User::WaitForRequest(appScanCompleted);
+    TEST(appScanCompleted.Int()==MApaAppListServObserver::EAppListChanged);
+
+	appScanCompleted=KRequestPending;
+	iLs.SetNotify(EFalse,appScanCompleted);
+    INFO_PRINTF1(_L("Removing _reg.rsc from C:\\private\\10003a3f\\import\\apps\\ folder"));
+    TEST(KErrNone == DeleteFileL(utils, KTestAppDest));
+    INFO_PRINTF1(_L("Removing the mbm and _loc.rsc from C:\\resource\\apps\\ folder"));
+    TEST(KErrNone == DeleteFileL(utils, KTestMbmDest));
+    TEST(KErrNone == DeleteFileL(utils, KTestLocDest));
+    INFO_PRINTF1(_L("Removing the C:\\private\\10003a3f\\import\\apps\\ dir "));
+    TEST(KErrNone == utils.DeleteDirectoryL(KTestAppDestDir));
+  
+	User::WaitForRequest(appScanCompleted);
+    CleanupStack::PopAndDestroy(&utils);//utils
+    INFO_PRINTF1(_L("Test TestZeroSizedIconFileL completed"));
+    } 
+
+//Deletes the file if it exists.
+TInt CT_RApaLsSessionTestStep::DeleteFileL(RSmlTestUtils &aFs, const TDesC &aFileName)
+    {
+    TInt fileExists = EFalse;
+    TInt err;
+    aFs.IsFilePresent(aFileName, fileExists);
+    if (fileExists)
+        {
+        aFs.ChangeFilePermissionL(aFileName);
+        err=aFs.DeleteFileL(aFileName);
+        if(err==KErrNone)
+            INFO_PRINTF2(_L("Removed file %S"), &aFileName);
+        else
+            INFO_PRINTF2(_L("Failed to remove file %S"), &aFileName);
+        }
+    else
+        {
+        err=KErrNotFound;
+        }
+
+    return(err);
+}
+
+	
 /**
    @SYMTestCaseID T-RApaLsSessionTestStep-TestAppFolderNonRomDrivesL
   
@@ -2359,6 +2509,7 @@
    @SYMTestExpectedResults There should be no memory leak checked by __UHEAP_MARK 
    and __UHEAP_MARKEND.
  */
+ 
 void CT_RApaLsSessionTestStep::TestIconLoaderAndIconArrayMemoryLeaksL()
 	{
 	INFO_PRINTF1(_L("Test TestIconLoaderAndIconArrayMemoryLeaksL"));
@@ -2382,7 +2533,8 @@
 	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestAppListInstallationL(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestAppListInstallation1L(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestAppFolderNonRomDrivesL(), NO_CLEANUP);
-	HEAP_TEST_LS_SESSION(iLs, 0, 0, IconLoadingTestCasesL(), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestZeroSizedIconFileL(), NO_CLEANUP);
+    HEAP_TEST_LS_SESSION(iLs, 0, 0, IconLoadingTestCasesL(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, AppInfoTestCasesL(), iLs.ClearAppInfoArray(); NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, EmbeddedAppsTestCases(), iLs.ClearAppInfoArray() );
 	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, DoNumDefIconsTestL(), NO_CLEANUP);
@@ -2390,6 +2542,7 @@
 	//DONT_CHECK since there's a new typestore
 	HEAP_TEST_LS_SESSION(iLs, 0, DONT_CHECK, TestNotifyOnDataMappingChangeL(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestAppListRecognizeDataBufferOnlyL(), iLs.FlushRecognitionCache() );
+	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestAppListRecognizeDataPassedByBufferL(), iLs.FlushRecognitionCache() );
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestAppListRecognizeDataL(), iLs.FlushRecognitionCache() );
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestDataPriorityForUnTrustedApps(), NO_CLEANUP);
 	HEAP_TEST_LS_SESSION(iLs, 0, 0, TestDataPriorityForUnTrustedAppsRegFile(), NO_CLEANUP);
@@ -2459,3 +2612,4 @@
 	return TestStepResult();
 	}
 	
+