diff -r 924385140d98 -r c2c61fdca848 appfw/apparchitecture/tef/t_nonnativetest.cpp --- a/appfw/apparchitecture/tef/t_nonnativetest.cpp Tue Aug 31 15:24:25 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,307 +0,0 @@ -// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// 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". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// - -/** - @file - @internalComponent - Internal Symbian test code -*/ - -#include "t_nonnativetest.h" -#include -#include -#include "T_SisFileInstaller.h" -#include -#include -#include -#include -#include "testableapalssession.h" -#include "appfwk_test_utils.h" -#include "apacmdln.h" -#include "apgicnflpartner.h" - -_LIT(KTNonNativeRuntimeSisFile, "z:\\apparctest\\apparctestsisfiles\\tnonnativeruntime.sis"); -_LIT(KTNonNativeRuntimeComponent, "TNonNativeRunTime"); - -_LIT(KTestScrDBSource, "z:\\apparctest\\scr_test.db"); -_LIT(KScrDBSource, "z:\\apparctest\\scr.db"); -_LIT(KScrDBTarget, "c:\\sys\\install\\scr\\scr.db"); -_LIT(KScrDBTempTarget, "c:\\sys\\install\\scr\\scr_temp.db"); - - -_LIT(KNonNotiveAppName, "\\268454131.fakeapp"); - -const TUid KMidletUid={0x10210E26}; -const TUid KWidgetUid={0x10282821}; -const TUid KTestNonNativeUid={0xFF51233}; - -const TUid KUidNonNativeRuntime={0xA0001002}; - -const TUid KPropertyCategory = {0x101F289C}; -const TUint KNonNativeTestPropertyKey = 2; - -CT_NonNativeTestStep::~CT_NonNativeTestStep() -/** - Destructor - */ - { - } - -CT_NonNativeTestStep::CT_NonNativeTestStep() -/** - Constructor - */ - { - // Call base class method to set up the human readable name for logging - SetTestStepName(KT_NonNativeTestStep); - } - -TVerdict CT_NonNativeTestStep::doTestStepPreambleL() -/** - @return - TVerdict code - Override of base class virtual - */ - { - - //Create property which is used for communication between test and non-native runtime. - TInt error; - error=RProperty::Define(KPropertyCategory, KNonNativeTestPropertyKey, RProperty::EInt); - if((error != KErrNone) && (error != KErrAlreadyExists)) - User::Leave(error); - - SetTestStepResult(EPass); - return TestStepResult(); - } - -TVerdict CT_NonNativeTestStep::doTestStepPostambleL() -/** - @return - TVerdict code - Override of base class virtual - */ - { - RProperty::Delete(KPropertyCategory, KNonNativeTestPropertyKey); - - return TestStepResult(); - } - - -TVerdict CT_NonNativeTestStep::doTestStepL() -{ - RunTestCases(); - return TestStepResult(); -} - - -void CT_NonNativeTestStep::RunTestCases() - { - RTestableApaLsSession ls; - User::LeaveIfError(ls.Connect()); - - //Wait if apparc updating the applist - TRequestStatus applistChangeStatus; - ls.SetNotify(ETrue, applistChangeStatus); - User::WaitForRequest(applistChangeStatus); - - //DONT_CHECK is used because when an application is installed the updated application - //information is added in the session objects. This causes increase of memory at server side. - //As there can be multiple applications registered with apparc for applist change notifications, - //its not possible to clear the information in all the session objects. - HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestNonNativeAppLaunchWithUnavailableMappingL(ls), NO_CLEANUP); - HEAP_TEST_LS_SESSION(ls, 0, 0, TestNonNativeUnsupportedAPIs(ls), NO_CLEANUP); - HEAP_TEST_LS_SESSION(ls, 0, DONT_CHECK, TestGetAppTypeL(ls), NO_CLEANUP); - ls.Close(); - } - - -/** - @SYMTestCaseID APPFWK-APPARC-0106 - - - @SYMTestCaseDesc Tests whether apparc able to launch a non-native application for which the mapping is - not avaialable in apparc mapping table but its available in SCR. - - @SYMTestPriority High - - @SYMTestStatus Implemented - - - @SYMTestExpectedResults Apparc will launch the non-native applciation. - */ - -void CT_NonNativeTestStep::TestNonNativeAppLaunchWithUnavailableMappingL(RTestableApaLsSession &aLs) - { - INFO_PRINTF1(_L("TestNonNativeAppLaunchWithUnavailableMapping test started...........")); - - RProperty property; - User::LeaveIfError(property.Attach(KPropertyCategory, KNonNativeTestPropertyKey, EOwnerThread)); - CleanupClosePushL(property); - User::After(2000000); //Wait for 2 secconds till SCR server closed. - - RSmlTestUtils fs; - User::LeaveIfError(fs.Connect()); - CleanupClosePushL(fs); - - INFO_PRINTF1(_L("Delete existing scr.db")); - //Copy the existing SCR db to temp file and delete it - fs.CopyFileL(KScrDBTarget, KScrDBTempTarget); - fs.DeleteFileL(KScrDBTarget); - - INFO_PRINTF1(_L("Copying scr_test.db")); - //Copy the scr_test.db which has non-native application information and - //non-native type to its runtime. - fs.CopyFileL(KTestScrDBSource, KScrDBTarget); - fs.ChangeFilePermissionL(KScrDBTarget); - - INFO_PRINTF1(_L("Updating applist with a non-native application exists in scr_test.db")); - TApaAppUpdateInfo appUpdateInfo; - RArray updateAppArray; - CleanupClosePushL(updateAppArray); - - appUpdateInfo.iAppUid=TUid::Uid(0x100048F3); //Test non-native app - appUpdateInfo.iAction= TApaAppUpdateInfo::EAppPresent; - updateAppArray.AppendL(appUpdateInfo); - - TRequestStatus status; - aLs.SetNotify(EFalse, status); - aLs.UpdateAppListL(updateAppArray); - CleanupStack::PopAndDestroy(&updateAppArray); - User::WaitForRequest(status); - - INFO_PRINTF1(_L("Starting non-native application")); - CApaCommandLine* cmd=CApaCommandLine::NewLC(); - cmd->SetExecutableNameL(KNonNotiveAppName); - aLs.StartApp(*cmd); - CleanupStack::PopAndDestroy(cmd); - User::After(2000000); - - //Once the non-native runtime executes, the property value is set to 1. - TInt value; - property.Get(value); - INFO_PRINTF2(_L("Property value: %d"), value); - TEST(value == 1); - - INFO_PRINTF1(_L("Restoring the scr.db")); - User::After(2000000); - fs.DeleteFileL(KScrDBTarget); - fs.CopyFileL(KScrDBTempTarget, KScrDBTarget); - fs.DeleteFileL(KScrDBTempTarget); - - CleanupStack::PopAndDestroy(2, &property); - INFO_PRINTF1(_L("TestNonNativeAppLaunchWithUnavailableMapping test ended...........")); - } - - - -void CT_NonNativeTestStep::TestNonNativeUnsupportedAPIs(RTestableApaLsSession &aLs) -{ - INFO_PRINTF1(_L("TestNonNativeUnsupportedAPIs test started...........")); - TUid uid=KNullUid; - TDriveUnit drive; - CApaRegistrationResourceFileWriter* regFileWriter=NULL; - CApaLocalisableResourceFileWriter* locFileWriter=NULL; - RFile *file=NULL; - TPtrC fileName; - - TRAPD(err, aLs.RegisterNonNativeApplicationTypeL(uid, fileName)); - TEST(err == KErrNotSupported); - - TRAP(err, aLs.DeregisterNonNativeApplicationTypeL(uid)); - TEST(err == KErrNotSupported); - - TRAP(err, aLs.PrepareNonNativeApplicationsUpdatesL()); - TEST(err == KErrNotSupported); - - TRAP(err, aLs.RegisterNonNativeApplicationL(uid, drive, *regFileWriter, locFileWriter, file)); - TEST(err == KErrNotSupported); - - TRAP(err, aLs.DeregisterNonNativeApplicationL(uid)); - TEST(err == KErrNotSupported); - - TRAP(err, aLs.CommitNonNativeApplicationsUpdatesL()); - TEST(err == KErrNotSupported); - - TRAP(err, aLs.ForceCommitNonNativeApplicationsUpdatesL()); - TEST(err == KErrNotSupported); - - TEST(aLs.RollbackNonNativeApplicationsUpdates() == KErrNotSupported); - - INFO_PRINTF1(_L("TestNonNativeUnsupportedAPIs test ended...........")); -} - - -void CT_NonNativeTestStep::TestGetAppTypeL(RTestableApaLsSession &aLs) - { - INFO_PRINTF1(_L("TestGetAppTypeL test started...........")); - - RSmlTestUtils fs; - User::LeaveIfError(fs.Connect()); - CleanupClosePushL(fs); - User::After(2000000); //Wait for 2 secconds till SCR server closed. - - INFO_PRINTF1(_L("Delete existing scr.db")); - //Copy the existing SCR db to temp file and delete it - fs.CopyFileL(KScrDBTarget, KScrDBTempTarget); - fs.DeleteFileL(KScrDBTarget); - - INFO_PRINTF1(_L("Copying scr_test.db")); - //Copy the scr_test.db which has non-native application information and - //non-native type to its runtime. - fs.CopyFileL(KTestScrDBSource, KScrDBTarget); - fs.ChangeFilePermissionL(KScrDBTarget); - - INFO_PRINTF1(_L("Updating applist with a non-native application exists in scr_test.db")); - TApaAppUpdateInfo appUpdateInfo; - RArray updateAppArray; - CleanupClosePushL(updateAppArray); - - appUpdateInfo.iAppUid=TUid::Uid(0x100048F3); //Test non-native app - appUpdateInfo.iAction= TApaAppUpdateInfo::EAppPresent; - updateAppArray.AppendL(appUpdateInfo); - - appUpdateInfo.iAppUid=TUid::Uid(0x10201D0E); //Test java app - appUpdateInfo.iAction= TApaAppUpdateInfo::EAppPresent; - updateAppArray.AppendL(appUpdateInfo); - - appUpdateInfo.iAppUid=TUid::Uid(0x10286B0D); //Test widget app - appUpdateInfo.iAction= TApaAppUpdateInfo::EAppPresent; - updateAppArray.AppendL(appUpdateInfo); - - TRequestStatus status; - aLs.SetNotify(EFalse, status); - aLs.UpdateAppListL(updateAppArray); - CleanupStack::PopAndDestroy(&updateAppArray); - User::WaitForRequest(status); - - INFO_PRINTF1(_L("Test GetAppType returns valid uids")); - TUid appTypeID; - User::LeaveIfError(aLs.GetAppType(appTypeID, TUid::Uid(0x10201D0E))); //Java app - TEST(appTypeID == KMidletUid); - - User::LeaveIfError(aLs.GetAppType(appTypeID, TUid::Uid(0x100048F3))); //Test non-native app - TEST(appTypeID == KTestNonNativeUid); - - User::LeaveIfError(aLs.GetAppType(appTypeID, TUid::Uid(0x10286B0D))); //widget app - TEST(appTypeID == KWidgetUid); - - - INFO_PRINTF1(_L("Restoring the scr.db")); - User::After(2000000); - fs.DeleteFileL(KScrDBTarget); - fs.CopyFileL(KScrDBTempTarget, KScrDBTarget); - fs.DeleteFileL(KScrDBTempTarget); - - CleanupStack::PopAndDestroy(&fs); - INFO_PRINTF1(_L("TestGetAppTypeL test ended...........")); - } -