installationservices/swinstallationfw/test/tusif/source/tsifcommonunitteststep.cpp
changeset 60 245df5276b97
parent 42 d17dc5398051
child 76 f36d4ce8961e
--- a/installationservices/swinstallationfw/test/tusif/source/tsifcommonunitteststep.cpp	Tue Jul 06 14:23:31 2010 +0300
+++ b/installationservices/swinstallationfw/test/tusif/source/tsifcommonunitteststep.cpp	Wed Aug 18 09:55:45 2010 +0300
@@ -26,6 +26,7 @@
 #include <usif/sif/sifcommon.h>
 #include <ct/rcpointerarray.h>
 #include <scs/cleanuputils.h>
+#include <s32mem.h> 
 
 using namespace Usif;
 
@@ -71,8 +72,8 @@
 	INFO_PRINTF1(_L("I am in CSifCommonUnitTestStep::doTestStep()."));
 
 	SetTestStepResult(EFail);
+	TestComponentInfoL();
 
-	TestComponentInfoL();
 	TestOpaqueNamedParamsL();
 
 	SetTestStepResult(EPass);
@@ -544,4 +545,94 @@
 	    }
 
 	CleanupStack::PopAndDestroy(3, &stringArray);
+	
+	//Externalize, internalize tests.
+	COpaqueNamedParams* params5 = COpaqueNamedParams::NewLC();
+	HBufC* testString = _L("TestString").AllocLC();
+	
+	params5->AddStringL(_L("key1"), *testString);
+	params5->AddIntL(_L("key2"), 23);
+	
+	RArray<TInt> intArray2;
+	CleanupClosePushL(intArray2);
+	intArray2.AppendL(100);
+	intArray2.AppendL(200);
+	
+	RPointerArray<HBufC> stringArray2;
+	CleanupResetAndDestroyPushL(stringArray2);
+	const HBufC16* testString1 = _L("TestString1").AllocLC();
+	
+	
+	TInt err1 = stringArray2.Append(testString1);
+	if (err1 != KErrNone)
+	    {
+	    CleanupStack::PopAndDestroy();
+	    }
+	else
+	    {
+	    CleanupStack::Pop();
+	    }
+	
+	const HBufC16* testString2 = _L("TestString2").AllocLC();
+	TInt err2 = stringArray2.Append(testString2);
+	if (err2 != KErrNone)
+	    {
+	    CleanupStack::PopAndDestroy();
+	    }
+	else
+	    {
+	    CleanupStack::Pop();
+	    }
+    params5->AddStringArrayL(_L("key3"), stringArray2);
+    params5->AddIntArrayL(_L("key4"), intArray2);
+    
+	CBufFlat* externalizedBuffer = CBufFlat::NewL(150);
+	CleanupStack::PushL(externalizedBuffer);
+	
+	RBufWriteStream writeStream(*externalizedBuffer);
+	CleanupClosePushL(writeStream);
+	
+	params5->ExternalizeL(writeStream);
+	
+	COpaqueNamedParams* params6 = COpaqueNamedParams::NewLC();
+	
+	RBufReadStream readStream(*externalizedBuffer);
+	CleanupClosePushL(readStream);
+	params6->InternalizeL(readStream);
+	
+    if(params6->IntByNameL(_L("key2"))!= 23 || (params6->StringByNameL(_L("key1")) != _L("TestString")))
+        {
+        INFO_PRINTF1(_L("TestOpaqueNamedParamsL: Internalize of int and string failed."));
+        User::Leave(err);
+        } 
+    
+    const RArray<TInt>& internalizedIntArray = params6->IntArrayByNameL(_L("key4"));
+    
+    if(internalizedIntArray[0] != 100 && internalizedIntArray[1] != 200)
+        {
+        INFO_PRINTF1(_L("TestOpaqueNamedParamsL: Internalize of int array failed."));
+        User::Leave(err);
+        }   
+	
+    const RPointerArray<HBufC>& internalizedStringArray = params6->StringArrayByNameL(_L("key3"));
+    
+    if (err1 == KErrNone)
+        {
+        if(*internalizedStringArray[0] != _L("TestString1") && *internalizedStringArray[1] != _L("TestString2"))
+            {
+            INFO_PRINTF1(_L("TestOpaqueNamedParamsL: Internalize of string array failed."));
+            User::Leave(err);
+            }
+        }
+    else if (err2 == KErrNone)
+        {
+        if(*internalizedStringArray[0] != _L("TestString2"))
+            {
+            INFO_PRINTF1(_L("TestOpaqueNamedParamsL: Internalize of string array failed."));
+            User::Leave(err);
+            }
+        }
+    
+    CleanupStack::PopAndDestroy(8, params5);
+	
 	}