542 INFO_PRINTF1(_L("TestOpaqueNamedParamsL: StringArrayByNameL failed")); |
543 INFO_PRINTF1(_L("TestOpaqueNamedParamsL: StringArrayByNameL failed")); |
543 User::Leave(err); |
544 User::Leave(err); |
544 } |
545 } |
545 |
546 |
546 CleanupStack::PopAndDestroy(3, &stringArray); |
547 CleanupStack::PopAndDestroy(3, &stringArray); |
547 } |
548 |
|
549 //Externalize, internalize tests. |
|
550 COpaqueNamedParams* params5 = COpaqueNamedParams::NewLC(); |
|
551 HBufC* testString = _L("TestString").AllocLC(); |
|
552 |
|
553 params5->AddStringL(_L("key1"), *testString); |
|
554 params5->AddIntL(_L("key2"), 23); |
|
555 |
|
556 RArray<TInt> intArray2; |
|
557 CleanupClosePushL(intArray2); |
|
558 intArray2.AppendL(100); |
|
559 intArray2.AppendL(200); |
|
560 |
|
561 RPointerArray<HBufC> stringArray2; |
|
562 CleanupResetAndDestroyPushL(stringArray2); |
|
563 const HBufC16* testString1 = _L("TestString1").AllocLC(); |
|
564 |
|
565 |
|
566 TInt err1 = stringArray2.Append(testString1); |
|
567 if (err1 != KErrNone) |
|
568 { |
|
569 CleanupStack::PopAndDestroy(); |
|
570 } |
|
571 else |
|
572 { |
|
573 CleanupStack::Pop(); |
|
574 } |
|
575 |
|
576 const HBufC16* testString2 = _L("TestString2").AllocLC(); |
|
577 TInt err2 = stringArray2.Append(testString2); |
|
578 if (err2 != KErrNone) |
|
579 { |
|
580 CleanupStack::PopAndDestroy(); |
|
581 } |
|
582 else |
|
583 { |
|
584 CleanupStack::Pop(); |
|
585 } |
|
586 params5->AddStringArrayL(_L("key3"), stringArray2); |
|
587 params5->AddIntArrayL(_L("key4"), intArray2); |
|
588 |
|
589 CBufFlat* externalizedBuffer = CBufFlat::NewL(150); |
|
590 CleanupStack::PushL(externalizedBuffer); |
|
591 |
|
592 RBufWriteStream writeStream(*externalizedBuffer); |
|
593 CleanupClosePushL(writeStream); |
|
594 |
|
595 params5->ExternalizeL(writeStream); |
|
596 |
|
597 COpaqueNamedParams* params6 = COpaqueNamedParams::NewLC(); |
|
598 |
|
599 RBufReadStream readStream(*externalizedBuffer); |
|
600 CleanupClosePushL(readStream); |
|
601 params6->InternalizeL(readStream); |
|
602 |
|
603 if(params6->IntByNameL(_L("key2"))!= 23 || (params6->StringByNameL(_L("key1")) != _L("TestString"))) |
|
604 { |
|
605 INFO_PRINTF1(_L("TestOpaqueNamedParamsL: Internalize of int and string failed.")); |
|
606 User::Leave(err); |
|
607 } |
|
608 |
|
609 const RArray<TInt>& internalizedIntArray = params6->IntArrayByNameL(_L("key4")); |
|
610 |
|
611 if(internalizedIntArray[0] != 100 && internalizedIntArray[1] != 200) |
|
612 { |
|
613 INFO_PRINTF1(_L("TestOpaqueNamedParamsL: Internalize of int array failed.")); |
|
614 User::Leave(err); |
|
615 } |
|
616 |
|
617 const RPointerArray<HBufC>& internalizedStringArray = params6->StringArrayByNameL(_L("key3")); |
|
618 |
|
619 if (err1 == KErrNone) |
|
620 { |
|
621 if(*internalizedStringArray[0] != _L("TestString1") && *internalizedStringArray[1] != _L("TestString2")) |
|
622 { |
|
623 INFO_PRINTF1(_L("TestOpaqueNamedParamsL: Internalize of string array failed.")); |
|
624 User::Leave(err); |
|
625 } |
|
626 } |
|
627 else if (err2 == KErrNone) |
|
628 { |
|
629 if(*internalizedStringArray[0] != _L("TestString2")) |
|
630 { |
|
631 INFO_PRINTF1(_L("TestOpaqueNamedParamsL: Internalize of string array failed.")); |
|
632 User::Leave(err); |
|
633 } |
|
634 } |
|
635 |
|
636 CleanupStack::PopAndDestroy(8, params5); |
|
637 |
|
638 } |