installationservices/swi/test/swicaptests/swilaunchercaptest.cpp
changeset 0 ba25891c3a9e
child 25 7333d7932ef7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/installationservices/swi/test/swicaptests/swilaunchercaptest.cpp	Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,221 @@
+/*
+* Copyright (c) 2005-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"
+* 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
+*/
+
+#include "swilaunchercaptest.h"
+#include "sislauncherclient.h"
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#include "swtypereginfo.h"
+#endif
+#include <e32def.h>
+
+_LIT(KSwiLauncherCapTestName, "Swi Launcher capability test");
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+_LIT(KSwiLauncherInstallServerUtilCapTestName, "Swi Launcher Utils for InstallServer capability test");
+_LIT(KSwiLauncherSisRegistryServerUtilCapTestName, "Swi Launcher Utils for SisRegistryServer capability test");
+
+const TUid KInstallServerUid = {0x101F7295};
+const TUid KSisRegistryServerUid = {0x10202DCA};
+#endif
+
+
+
+//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+CSwiLauncherCapTest* CSwiLauncherCapTest::NewL()
+	{
+	CSwiLauncherCapTest* self=new(ELeave) CSwiLauncherCapTest();
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CSwiLauncherCapTest::CSwiLauncherCapTest()
+	{
+	SetCapabilityRequired(ECapabilityTCB);
+	}
+	
+void CSwiLauncherCapTest::ConstructL()
+	{
+	SetNameL(KSwiLauncherCapTestName);
+	}
+
+void CSwiLauncherCapTest::RunTestL()
+	{
+	Swi::RSisLauncherSession launcher;
+	CleanupClosePushL(launcher);
+		
+	if (KErrNone != CheckFailL(launcher.Connect(), _L("Connect")))
+		{
+		// if we get here we didn't connect and expected not to, but cannot carry on with tests
+		CleanupStack::PopAndDestroy(&launcher);
+		return;
+		}
+
+	TInt err=KErrNone;
+	
+	TRAP(err, launcher.RunExecutableL(_L("exe"), ETrue));
+	CheckFailL(err, _L("RunExecutableL"));
+
+
+	RFs fs;
+	User::LeaveIfError(fs.Connect());
+	User::LeaveIfError(fs.ShareProtected());
+	CleanupClosePushL(fs);
+		
+	RFile file;
+	CleanupClosePushL(file);
+	
+	_LIT(KFilePath ,"\\tswi\\swicaptests\\data\\testdoc.txt");
+	TDriveUnit sysDrive (RFs::GetSystemDrive());
+	TBuf<128> testDocFileOnSysDrive = sysDrive.Name();
+	testDocFileOnSysDrive.Append(KFilePath);
+	
+	User::LeaveIfError(file.Open(fs, testDocFileOnSysDrive , EFileShareExclusive|EFileRead));
+	
+	TRAP(err, launcher.StartDocumentL(file, ETrue));
+	CheckFailL(err, _L("StartDocumentL"));
+		
+	TRAP(err, launcher.StartByMimeL(file, _L8("mime"), ETrue));
+	CheckFailL(err, _L("StartByMimeL"));
+	
+	CleanupStack::PopAndDestroy(&file);
+	CleanupStack::PopAndDestroy(&fs);
+
+	RArray<TUid> uidList;
+	TRAP(err, launcher.ShutdownL(uidList, 10));
+	CheckFailL(err, _L("ShutdownL"));
+
+	CleanupStack::PopAndDestroy(&launcher);
+	}
+
+//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+CSwiLauncherInstallServerUtilCapTest* CSwiLauncherInstallServerUtilCapTest::NewL()
+	{
+	CSwiLauncherInstallServerUtilCapTest* self = new (ELeave) CSwiLauncherInstallServerUtilCapTest();
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CSwiLauncherInstallServerUtilCapTest::CSwiLauncherInstallServerUtilCapTest()
+	{
+	SetCapabilityRequired(ECapabilityTCB);
+	SetSidRequired(KInstallServerUid);
+	}
+	
+void CSwiLauncherInstallServerUtilCapTest::ConstructL()
+	{
+	SetNameL(KSwiLauncherInstallServerUtilCapTestName);
+	}
+
+void CSwiLauncherInstallServerUtilCapTest::RunTestL()
+	{
+	Swi::RSisLauncherSession launcher;
+	CleanupClosePushL(launcher);
+
+	if (launcher.Connect() != KErrNone)
+		{
+		CleanupStack::PopAndDestroy(&launcher);
+		return;
+		}
+
+	TInt err=KErrNone;
+
+	RFs fs;
+	User::LeaveIfError(fs.Connect());
+	User::LeaveIfError(fs.ShareProtected());
+	CleanupClosePushL(fs);
+	
+	RFile file;
+	CleanupClosePushL(file);
+	
+	_LIT(KFilePath ,"\\tswi\\swicaptests\\data\\testdoc.txt");
+	TDriveUnit sysDrive (RFs::GetSystemDrive());
+	TBuf<128> testDocFileOnSysDrive = sysDrive.Name();
+	testDocFileOnSysDrive.Append(KFilePath);
+	
+	User::LeaveIfError(file.Open(fs, testDocFileOnSysDrive , EFileShareExclusive|EFileRead));
+	
+	RCPointerArray<Swi::CSoftwareTypeRegInfo> regInfoArray;
+	CleanupClosePushL(regInfoArray);
+	
+	TRAP(err, launcher.ParseSwTypeRegFileL(file, regInfoArray));
+	CheckFailL(err, _L("ParseSwTypeRegFileL"));
+	
+	RCPointerArray<HBufC8> mimeTypes;
+	CleanupClosePushL(mimeTypes);
+	
+	TRAP(err, launcher.RegisterSifLauncherMimeTypesL(mimeTypes));
+	CheckFailL(err, _L("RegisterSifLauncherMimeTypesL"));
+	
+	CleanupStack::PopAndDestroy(5, &launcher); // file, regInfoArray, fs, mimeTypes
+	}
+
+//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
+
+CSwiLauncherSisRegistryServerUtilCapTest* CSwiLauncherSisRegistryServerUtilCapTest::NewL()
+	{
+	CSwiLauncherSisRegistryServerUtilCapTest* self = new (ELeave) CSwiLauncherSisRegistryServerUtilCapTest();
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CSwiLauncherSisRegistryServerUtilCapTest::CSwiLauncherSisRegistryServerUtilCapTest()
+	{
+	SetCapabilityRequired(ECapabilityTCB);
+	SetSidRequired(KSisRegistryServerUid);
+	}
+	
+void CSwiLauncherSisRegistryServerUtilCapTest::ConstructL()
+	{
+	SetNameL(KSwiLauncherSisRegistryServerUtilCapTestName);
+	}
+
+void CSwiLauncherSisRegistryServerUtilCapTest::RunTestL()
+	{
+	Swi::RSisLauncherSession launcher;
+	CleanupClosePushL(launcher);
+	
+	if (launcher.Connect() != KErrNone)
+		{
+		CleanupStack::PopAndDestroy(&launcher);
+		return;
+		}
+
+	TInt err=KErrNone;
+
+	RCPointerArray<HBufC8> mimeTypes;
+	CleanupClosePushL(mimeTypes);
+	
+	TRAP(err, launcher.UnregisterSifLauncherMimeTypesL(mimeTypes));
+	CheckFailL(err, _L("UnregisterSifLauncherMimeTypesL"));
+	
+	CleanupStack::PopAndDestroy(2, &launcher); // mimeTypes
+	}
+#endif