installationservices/swinstallationfw/test/tusif/source/tsifcommonunitteststep.cpp
changeset 50 c6e8afe0ba85
parent 42 d17dc5398051
child 55 ac7f90a6ff4c
--- a/installationservices/swinstallationfw/test/tusif/source/tsifcommonunitteststep.cpp	Tue Jun 29 16:50:12 2010 +0300
+++ b/installationservices/swinstallationfw/test/tusif/source/tsifcommonunitteststep.cpp	Thu Jul 08 20:28:00 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;
 
@@ -544,4 +545,62 @@
 	    }
 
 	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);
+	stringArray2.Append(_L("TestString1").AllocL());
+    stringArray2.Append(_L("TestString2").AllocL());
+    
+    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[0] != 200)
+        {
+        INFO_PRINTF1(_L("TestOpaqueNamedParamsL: Internalize of int array failed."));
+        User::Leave(err);
+        }   
+	
+    const RPointerArray<HBufC>& internalizedStringArray = params6->StringArrayByNameL(_L("key3"));
+    
+    if(*internalizedStringArray[0] != _L("TestString1") && *internalizedStringArray[1] != _L("TestString2"))
+        {
+        INFO_PRINTF1(_L("TestOpaqueNamedParamsL: Internalize of string array failed."));
+        User::Leave(err);
+        }  
+    CleanupStack::PopAndDestroy(8, params5);
+	
 	}