--- a/appinstall_plat/sifui_api/tsrc/src/sifuitestcases.cpp Thu May 27 12:58:35 2010 +0300
+++ b/appinstall_plat/sifui_api/tsrc/src/sifuitestcases.cpp Fri Jun 11 13:45:18 2010 +0300
@@ -15,14 +15,27 @@
*
*/
-#include <badesca.h> // CDesCArray
+#include <badesca.h> // CDesCArray, StifUnitMacros.h needs this
+#include <StifUnitMacros.h> // STIF_ASSERT_NULL, STIF_ASSERT_NOT_NULL
#include <sifui.h> // CSifUi
-#include "SifUiTest.h" // CSifUiTest
+#include <sifuiappinfo.h> // CSifUiAppInfo
+#include <sifuicertificateinfo.h> // CSifUiCertificateInfo
+#include <s32file.h> // RFileReadStream
+#include <s32mem.h> // RDesReadStream
+#include <apgcli.h> // RApaLsSession
+#include <swi/msisuihandlers.h> // Swi::CCertificateInfo
+#include "sifuitest.h" // CSifUiTest
+#include "sifuitestcleanuputils.h" // CleanupResetAndDestroyPushL
+
+_LIT( KX509TestCertFile, "\\testing\\data\\test_x509_cert.cer" );
_LIT( KEnter, "Enter" );
_LIT( KStepFormat, "Step %d" );
_LIT( KExit, "Exit" );
+const TInt KBufferGranularity = 1024;
+
+
// Internal structure containing test case name and pointer to test function
class TCaseInfoInternal
{
@@ -34,12 +47,6 @@
TInt iLastMemoryAllocation;
};
-const TInt KOneSecond = 1000000;
-const TInt KThreeSeconds = 3 * KOneSecond;
-const TInt KFiveSeconds = 5 * KOneSecond;
-const TInt KHalfSecond = KOneSecond / 2;
-const TKeyEvent KRightSoftkey = { EKeyDevice1, 0, 0, EStdKeyDevice1 }; // EKeyCBA2
-
// ======== MEMBER FUNCTIONS ========
@@ -69,13 +76,10 @@
static TCaseInfoInternal const KCases[] =
{
ENTRY( "CreateLowMemTest", CSifUiTest::CreateLowMemTest ),
- ENTRY( "InformationNoteTest", CSifUiTest::InformationNoteTest ),
- ENTRY( "WarningNoteTest", CSifUiTest::WarningNoteTest ),
- ENTRY( "ErrorNoteTest", CSifUiTest::ErrorNoteTest ),
- ENTRY( "PermanentNoteTest", CSifUiTest::PermanentNoteTest ),
- ENTRY( "ProgressNoteTest", CSifUiTest::ProgressNoteTest ),
- ENTRY( "WaitNoteTest", CSifUiTest::WaitNoteTest ),
- ENTRY( "LaunchHelpTest", CSifUiTest::LaunchHelpTest )
+ ENTRY( "MemorySelectionTest", CSifUiTest::MemorySelectionTest ),
+ ENTRY( "CertificateInfoTest", CSifUiTest::CertificateInfoTest ),
+ ENTRY( "AppInfoTest", CSifUiTest::AppInfoTest ),
+ ENTRY( "ProgressDialogsTest", CSifUiTest::ProgressDialogsTest )
};
if( (TUint) aCaseNumber >= sizeof( KCases ) / sizeof( TCaseInfoInternal ) )
@@ -98,19 +102,30 @@
}
// -----------------------------------------------------------------------------
-// CSifUiTest::CreateSifUi()
+// CSifUiTest::ReadCertificateL()
// -----------------------------------------------------------------------------
//
-TInt CSifUiTest::CreateSifUi()
+CX509Certificate* CSifUiTest::ReadCertificateL( const TDesC& aFileName )
{
- if( iSifUi )
- {
- delete iSifUi;
- iSifUi = NULL;
- }
+ TFindFile findFile( iFs );
+ User::LeaveIfError( findFile.FindByDir( aFileName, KNullDesC ) );
+
+ RFile file;
+ User::LeaveIfError( file.Open( iFs, findFile.File(), EFileRead ) );
+ CleanupClosePushL( file );
+
+ TInt fileSize = 0;
+ User::LeaveIfError( file.Size( fileSize ) );
- TRAPD( err, iSifUi = CSifUi::NewL() );
- return err;
+ HBufC8* buffer = HBufC8::NewLC( fileSize );
+ TPtr8 ptr( buffer->Des() );
+ User::LeaveIfError( file.Read( ptr ) );
+
+ CX509Certificate* x509cert = CX509Certificate::NewL( *buffer );
+
+ CleanupStack::PopAndDestroy( buffer );
+ CleanupStack::PopAndDestroy( &file );
+ return x509cert;
}
// -----------------------------------------------------------------------------
@@ -124,321 +139,228 @@
TInt count = 0;
TInt error = KErrNoMemory;
+ CSifUi* sifUi = NULL;
while( error == KErrNoMemory )
{
User::__DbgSetAllocFail( EFalse, RHeap::EDeterministic, ++count );
- __UHEAP_MARK;
- error = CreateSifUi();
- __UHEAP_MARKEND;
+ TRAP( error, sifUi = CSifUi::NewL() );
User::__DbgSetAllocFail( EFalse, RHeap::ENone, count );
+ if( !error )
+ {
+ delete sifUi;
+ sifUi = NULL;
+ }
}
TestModuleIf().Printf( 1, KTestName, _L("count %d, last error %d"), count, error );
SetResult( aResult, error );
- delete iSifUi;
- iSifUi = NULL;
-
- TestModuleIf().Printf( 0, KTestName, KExit );
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CSifUiTest::InformationNoteTest()
-// -----------------------------------------------------------------------------
-//
-TInt CSifUiTest::InformationNoteTest( TTestResult& aResult )
- {
- _LIT( KTestName, "InformationNoteTest" );
- TestModuleIf().Printf( 0, KTestName, KEnter );
-
- enum TTestSteps
- {
- EFirstStep,
- EChangeText,
- EWaitSomeTime,
- EAllDone
- };
- _LIT( KInfoNoteText, "This is information note" );
- _LIT( KChangedInfoNoteText, "Changed information note text" );
-
- TInt result = CreateSifUi();
- for( TInt step = EFirstStep; step < EAllDone && result == KErrNone; ++step )
- {
- TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
- switch( step )
- {
- case EFirstStep:
- TRAP( result, iSifUi->DisplayInformationNoteL( KInfoNoteText ) );
- break;
- case EChangeText:
- User::After( KOneSecond );
- TRAP( result, iSifUi->DisplayInformationNoteL( KChangedInfoNoteText ) );
- break;
- case EWaitSomeTime:
- User::After( KOneSecond );
- break;
- default:
- User::Leave( KErrGeneral );
- break;
- }
- }
-
- delete iSifUi;
- iSifUi = NULL;
-
- SetResult( aResult, result );
-
- TestModuleIf().Printf( 0, KTestName, KExit );
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CSifUiTest::WarningNoteTest()
-// -----------------------------------------------------------------------------
-//
-TInt CSifUiTest::WarningNoteTest( TTestResult& aResult )
- {
- _LIT( KTestName, "WarningNoteTest" );
- TestModuleIf().Printf( 0, KTestName, KEnter );
-
- enum TTestSteps
- {
- EFirstStep,
- EChangeText,
- EWaitSomeTime,
- EAllDone
- };
- _LIT( KWarningNoteText, "This is warning note" );
- _LIT( KChangedWarningNoteText, "Changed warning note text" );
-
- TInt result = CreateSifUi();
- for( TInt step = EFirstStep; step < EAllDone && result == KErrNone; ++step )
- {
- TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
- switch( step )
- {
- case EFirstStep:
- TRAP( result, iSifUi->DisplayInformationNoteL( KWarningNoteText ) );
- break;
- case EChangeText:
- User::After( KOneSecond );
- TRAP( result, iSifUi->DisplayInformationNoteL( KChangedWarningNoteText ) );
- break;
- case EWaitSomeTime:
- User::After( KOneSecond );
- break;
- default:
- User::Leave( KErrGeneral );
- break;
- }
- }
-
- delete iSifUi;
- iSifUi = NULL;
-
- SetResult( aResult, result );
TestModuleIf().Printf( 0, KTestName, KExit );
return KErrNone;
}
// -----------------------------------------------------------------------------
-// CSifUiTest::ErrorNoteTest()
+// CSifUiTest::MemorySelectionTest()
// -----------------------------------------------------------------------------
//
-TInt CSifUiTest::ErrorNoteTest( TTestResult& aResult )
+TInt CSifUiTest::MemorySelectionTest( TTestResult& aResult )
{
- _LIT( KTestName, "ErrorNoteTest" );
+ TRAPD( result, DoMemorySelectionTestL( aResult ) );
+ SetResult( aResult, result );
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CSifUiTest::DoMemorySelectionTestL()
+// -----------------------------------------------------------------------------
+//
+void CSifUiTest::DoMemorySelectionTestL( TTestResult& aResult )
+ {
+ _LIT( KTestName, "MemorySelectionTest" );
TestModuleIf().Printf( 0, KTestName, KEnter );
enum TTestSteps
{
EFirstStep,
- EChangeText,
- EAllDone
- };
- _LIT( KErrorNoteText, "This is error note" );
- _LIT( KChangedErrorNoteText, "Changed error note text" );
-
- TInt result = CreateSifUi();
- for( TInt step = EFirstStep; step < EAllDone && result == KErrNone; ++step )
- {
- TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
- switch( step )
- {
- case EFirstStep:
- TRAP( result, iSifUi->DisplayErrorNoteL( KErrorNoteText ) );
- break;
- case EChangeText:
- User::After( KOneSecond );
- TRAP( result, iSifUi->DisplayErrorNoteL( KChangedErrorNoteText ) );
- break;
- default:
- User::Leave( KErrGeneral );
- break;
- }
- }
-
- delete iSifUi;
- iSifUi = NULL;
-
- SetResult( aResult, result );
-
- TestModuleIf().Printf( 0, KTestName, KExit );
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CSifUiTest::PermanentNoteTest()
-// -----------------------------------------------------------------------------
-//
-TInt CSifUiTest::PermanentNoteTest( TTestResult& aResult )
- {
- _LIT( KTestName, "PermanentNoteTest" );
- TestModuleIf().Printf( 0, KTestName, KEnter );
-
- enum TTestSteps
- {
- EFirstStep,
- EDisplayNote,
- EChangeText,
- ECloseNote,
- EDisplayDelayedNote,
- EChangeDelayedNoteText,
- ECloseSecondNote,
+ EGetSelectedWhenNotSet,
+ ESetNoDrivesStep,
+ ESetThreeDriveStep,
+ ESetOneDriveStep,
+ EGetSelectedWhenSetButNotAskedStep,
+ ELastStep,
EAllDone
};
- _LIT( KPermanentNoteText, "This is permanent note" );
- _LIT( KChangedNoteText, "Changed permanent note text" );
- _LIT( KDelayedNoteText, "This is delayed permanent note" );
- _LIT( KChangedDelayedNoteText, "Changed delayed permanent note text" );
+ CSifUi* sifUi = NULL;
+ RArray<TInt> driveNumbers;
+ CleanupClosePushL( driveNumbers );
+ TInt drive = 0;
+ TInt errorCode = KErrNone;
- TInt result = CreateSifUi();
- for( TInt step = EFirstStep; step < EAllDone && result == KErrNone; ++step )
+ TInt error = KErrNone;
+ for( TInt step = EFirstStep; step < EAllDone && !error; ++step )
{
TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
switch( step )
{
case EFirstStep:
- TRAP( result, iSifUi->ClosePermanentNote() );
- break;
- case EDisplayNote:
- TRAP( result, iSifUi->DisplayPermanentNoteL( KPermanentNoteText ) );
+ STIF_ASSERT_NULL( sifUi );
+ TRAP( error, sifUi = CSifUi::NewL() );
+ if( !error )
+ {
+ CleanupStack::PushL( sifUi );
+ }
break;
- case EChangeText:
- User::After( KThreeSeconds );
- TRAP( result, iSifUi->DisplayPermanentNoteL( KChangedNoteText ) );
+
+ case EGetSelectedWhenNotSet:
+ STIF_ASSERT_NOT_NULL( sifUi );
+ TRAP( error, errorCode = sifUi->SelectedDrive( drive ) );
+ if( error == KErrNone && errorCode == KErrNotFound )
+ {
+ error = KErrNone;
+ }
+ else
+ {
+ error = KErrGeneral;
+ }
break;
- case ECloseNote:
- TRAP( result, iSifUi->ClosePermanentNote() );
+
+ case ESetNoDrivesStep:
+ STIF_ASSERT_NOT_NULL( sifUi );
+ TRAP( error, sifUi->SetMemorySelectionL( driveNumbers ) );
break;
- case EDisplayDelayedNote:
- User::After( KThreeSeconds );
- TRAP( result, iSifUi->DisplayPermanentNoteL( KDelayedNoteText ) );
+
+ case ESetThreeDriveStep:
+ STIF_ASSERT_NOT_NULL( sifUi );
+ driveNumbers.Append( EDriveC );
+ driveNumbers.Append( EDriveE );
+ driveNumbers.Append( EDriveF );
+ TRAP( error, sifUi->SetMemorySelectionL( driveNumbers ) );
+ break;
+
+ case ESetOneDriveStep:
+ STIF_ASSERT_NOT_NULL( sifUi );
+ driveNumbers.Append( EDriveC );
+ TRAP( error, sifUi->SetMemorySelectionL( driveNumbers ) );
break;
- case EChangeDelayedNoteText:
- User::After( KFiveSeconds );
- TRAP( result, iSifUi->DisplayPermanentNoteL( KChangedDelayedNoteText ) );
+
+ case EGetSelectedWhenSetButNotAskedStep:
+ STIF_ASSERT_NOT_NULL( sifUi );
+ TRAP( error, errorCode = sifUi->SelectedDrive( drive ) );
+ if( error == KErrNone && errorCode == KErrNotFound )
+ {
+ error = KErrNone;
+ }
+ else
+ {
+ error = KErrGeneral;
+ }
break;
- case ECloseSecondNote:
- User::After( KOneSecond );
- TRAP( result, iSifUi->ClosePermanentNote() );
+
+ case ELastStep:
+ STIF_ASSERT_NOT_NULL( sifUi );
+ CleanupStack::PopAndDestroy( sifUi );
+ sifUi = NULL;
break;
+
default:
User::Leave( KErrGeneral );
break;
}
}
+ User::LeaveIfError( error );
- delete iSifUi;
- iSifUi = NULL;
+ CleanupStack::PopAndDestroy( &driveNumbers );
+ TestModuleIf().Printf( 0, KTestName, KExit );
+ }
+// -----------------------------------------------------------------------------
+// CSifUiTest::CertificateInfoTest()
+// -----------------------------------------------------------------------------
+//
+TInt CSifUiTest::CertificateInfoTest( TTestResult& aResult )
+ {
+ TRAPD( result, DoCertificateInfoTestL( aResult ) );
SetResult( aResult, result );
-
- TestModuleIf().Printf( 0, KTestName, KExit );
return KErrNone;
}
// -----------------------------------------------------------------------------
-// CSifUiTest::ProgressNoteTest()
+// CSifUiTest::DoCertificateInfoTestL()
// -----------------------------------------------------------------------------
//
-TInt CSifUiTest::ProgressNoteTest( TTestResult& aResult )
+void CSifUiTest::DoCertificateInfoTestL( TTestResult& aResult )
{
- _LIT( KTestName, "ProgressNoteTest" );
+ _LIT( KTestName, "CertificateInfoTest" );
TestModuleIf().Printf( 0, KTestName, KEnter );
enum TTestSteps
{
- EDisplayProgressNote,
- EIncreaseBar1,
- EIncreaseBar2,
- EChangeProgressText,
- EIncreaseBar3,
- EIncreaseBar4,
- EIncreaseBar5,
- ECloseProgressNote,
- EDelayedProgressNote,
+ EFirstStep,
+ ESetNoCertificates,
+ EReadAndSetCertificate,
+ ELastStep,
EAllDone
};
- _LIT( KProgressNoteText, "This is progress note" );
- _LIT( KChangedProgressNoteText, "Changed progress note text" );
- const TInt KProgressBarFinalValue = 6;
- TInt progressBarValue = -1;
- TRequestStatus reqStatus; // ignored now, not monitoring if user cancels the note
- TRequestStatus reqUpdate;
- TInt result = CreateSifUi();
- for( TInt step = EDisplayProgressNote; step < EAllDone && result == KErrNone; ++step )
+ CSifUi* sifUi = NULL;
+ RPointerArray<CSifUiCertificateInfo> certificates;
+ CleanupResetAndDestroyPushL( certificates );
+
+ TInt error = KErrNone;
+ for( TInt step = EFirstStep; step < EAllDone && !error; ++step )
{
TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
switch( step )
{
- case EDisplayProgressNote:
- TRAP( result, iSifUi->DisplayProgressNoteL( KProgressNoteText, reqStatus ) );
- if( result == KErrNone )
+ case EFirstStep:
+ STIF_ASSERT_NULL( sifUi );
+ TRAP( error, sifUi = CSifUi::NewL() );
+ if( !error )
{
- TRAP( result, iSifUi->SetProgressNoteFinalValueL( KProgressBarFinalValue ) );
+ CleanupStack::PushL( sifUi );
}
break;
- case EIncreaseBar1:
- case EIncreaseBar2:
- case EIncreaseBar3:
- case EIncreaseBar4:
- case EIncreaseBar5:
- User::After( KOneSecond );
- TRAP( result, iSifUi->UpdateProgressNoteValueL( progressBarValue ) );
- progressBarValue += 2;
+ case ESetNoCertificates:
+ STIF_ASSERT_NOT_NULL( sifUi );
+ TRAP( error, sifUi->SetCertificateInfoL( certificates ) );
break;
- case EChangeProgressText:
- User::After( KOneSecond );
- TRAP( result, iSifUi->DisplayProgressNoteL( KChangedProgressNoteText, reqUpdate ) );
- if( result == KErrNone )
- {
- User::WaitForRequest( reqUpdate );
- result = reqUpdate.Int();
- }
+ case EReadAndSetCertificate:
+ {
+ STIF_ASSERT_NOT_NULL( sifUi );
+ CX509Certificate* x509cert = ReadCertificateL( KX509TestCertFile );
+ CleanupStack::PushL( x509cert );
+
+ Swi::CCertificateInfo* swiCert = Swi::CCertificateInfo::NewLC( *x509cert );
+ CSifUiCertificateInfo* testCert = CSifUiCertificateInfo::NewLC( *swiCert );
+
+ CBufBase* buf = CBufFlat::NewL( KBufferGranularity );
+ CleanupStack::PushL( buf );
+ RBufWriteStream writeStream( *buf );
+ CleanupClosePushL( writeStream );
+ STIF_ASSERT_TRUE( buf->Size() == 0 );
+ testCert->ExternalizeL( writeStream );
+ STIF_ASSERT_TRUE( buf->Size() > 0 );
+ CleanupStack::PopAndDestroy( 2, buf ); // writeStream, buf
+
+ CleanupStack::PopAndDestroy( testCert );
+ testCert = NULL;
+
+ testCert = CSifUiCertificateInfo::NewL( *swiCert );
+ CleanupStack::PushL( testCert );
+ certificates.AppendL( testCert );
+ CleanupStack::Pop( testCert );
+ TRAP( error, sifUi->SetCertificateInfoL( certificates ) );
+
+ CleanupStack::PopAndDestroy( 2, x509cert ); // swiCert, x509cert
+ }
break;
- case ECloseProgressNote:
- User::After( KOneSecond );
- TRAP( result, iSifUi->CloseProgressNoteL() );
- if( result == KErrNone )
- {
- User::WaitForRequest( reqStatus );
- result = reqStatus.Int();
- }
- break;
-
- case EDelayedProgressNote:
- TRAP( result, iSifUi->DisplayProgressNoteL( KProgressNoteText, reqStatus ) );
- if( result == KErrNone )
- {
- User::After( KHalfSecond );
- TRAP( result, iSifUi->CloseProgressNoteL() );
- }
+ case ELastStep:
+ STIF_ASSERT_NOT_NULL( sifUi );
+ CleanupStack::PopAndDestroy( sifUi );
+ sifUi = NULL;
break;
default:
@@ -446,141 +368,274 @@
break;
}
}
+ User::LeaveIfError( error );
- delete iSifUi;
- iSifUi = NULL;
+ CleanupStack::PopAndDestroy( &certificates );
+ TestModuleIf().Printf( 0, KTestName, KExit );
+ }
+// -----------------------------------------------------------------------------
+// CSifUiTest::AppInfoTest()
+// -----------------------------------------------------------------------------
+//
+TInt CSifUiTest::AppInfoTest( TTestResult& aResult )
+ {
+ TRAPD( result, DoAppInfoTestL( aResult ) );
SetResult( aResult, result );
-
- TestModuleIf().Printf( 0, KTestName, KExit );
return KErrNone;
}
// -----------------------------------------------------------------------------
-// CSifUiTest::WaitNoteTest()
+// CSifUiTest::DoAppInfoTestL()
// -----------------------------------------------------------------------------
//
-TInt CSifUiTest::WaitNoteTest( TTestResult& aResult )
+void CSifUiTest::DoAppInfoTestL( TTestResult& aResult )
{
- _LIT( KTestName, "WaitNoteTest" );
+ _LIT( KTestName, "AppInfoTest" );
TestModuleIf().Printf( 0, KTestName, KEnter );
enum TTestSteps
{
- ECloseWaitNoteBeforeItsOpened,
- EDisplayWaitNote,
- EChangeDisplayedText,
- ECloseFirstWaitNote,
- EDisplayDelayedWaitNote,
- EChangeDelayedWaitNoteText,
- ECloseWaitNote,
+ EFirstStep,
+ EAppInfoTests,
+ EAppInfoIconTest,
+ EShowConfirmation,
+ EShowError,
+ ELastStep,
EAllDone
};
- _LIT( KWaitNoteText, "This is wait note" );
- _LIT( KChangedWaitNoteText, "Changed wait note text" );
- _LIT( KDelayedWaitNoteText, "This is delayed wait note" );
- _LIT( KChangedDelayedWaitNoteText, "Changed delayed wait note text" );
+
+ CSifUi* sifUi = NULL;
- TInt result = CreateSifUi();
- TRequestStatus reqStatus; // ignored now, not monitoring if user cancels the note
- for( TInt step = EDisplayWaitNote; step < EAllDone && result == KErrNone; ++step )
+ _LIT( KAppName, "TestApplication" );
+ _LIT( KAppVendor, "TestSupplier" );
+ const TVersion KAppVersion( 1, 2, 3 );
+ const TInt KAppSize = 0x1234;
+
+ TInt error = KErrNone;
+ for( TInt step = EFirstStep; step < EAllDone && !error; ++step )
{
TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
switch( step )
{
- case ECloseWaitNoteBeforeItsOpened:
- TRAP( result, iSifUi->CloseWaitNote() );
- break;
- case EDisplayWaitNote:
- TRAP( result, iSifUi->DisplayWaitNoteL( KWaitNoteText, reqStatus ) );
- if( result == KErrNone && reqStatus != KRequestPending )
+ case EFirstStep:
+ STIF_ASSERT_NULL( sifUi );
+ TRAP( error, sifUi = CSifUi::NewL() );
+ if( !error )
{
- User::WaitForRequest( reqStatus );
- result = reqStatus.Int();
- }
- break;
- case EChangeDisplayedText:
- User::After( KThreeSeconds );
- TRAP( result, iSifUi->DisplayWaitNoteL( KChangedWaitNoteText, reqStatus ) );
- if( result == KErrNone && reqStatus != KRequestPending )
- {
- User::WaitForRequest( reqStatus );
- result = reqStatus.Int();
- }
- break;
- case ECloseFirstWaitNote:
- TRAP( result, iSifUi->CloseWaitNote() );
- if( result == KErrNone )
- {
- User::WaitForRequest( reqStatus );
- result = reqStatus.Int();
+ CleanupStack::PushL( sifUi );
}
break;
- case EDisplayDelayedWaitNote:
- User::After( KOneSecond );
- TRAP( result, iSifUi->DisplayWaitNoteL( KDelayedWaitNoteText, reqStatus ) );
- if( result == KErrNone && reqStatus != KRequestPending )
- {
- User::WaitForRequest( reqStatus );
- result = reqStatus.Int();
- }
+
+ case EAppInfoTests:
+ {
+ STIF_ASSERT_NOT_NULL( sifUi );
+ CSifUiAppInfo* appInfo = NULL;
+ appInfo = CSifUiAppInfo::NewLC( KAppName, KAppVendor, KAppVersion, KAppSize, NULL );
+
+ STIF_ASSERT_TRUE( appInfo->Name().Compare( KAppName ) == 0 );
+ STIF_ASSERT_TRUE( appInfo->Vendor().Compare( KAppVendor ) == 0 );
+
+ STIF_ASSERT_TRUE( appInfo->Version().iMajor == KAppVersion.iMajor );
+ STIF_ASSERT_TRUE( appInfo->Version().iMinor == KAppVersion.iMinor );
+ STIF_ASSERT_TRUE( appInfo->Version().iBuild == KAppVersion.iBuild );
+
+ STIF_ASSERT_TRUE( appInfo->Size() == KAppSize );
+ STIF_ASSERT_TRUE( appInfo->Bitmaps() == NULL );
+
+ CBufBase* buf = CBufFlat::NewL( KBufferGranularity );
+ CleanupStack::PushL( buf );
+ RBufWriteStream writeStream( *buf );
+ CleanupClosePushL( writeStream );
+ STIF_ASSERT_TRUE( buf->Size() == 0 );
+ appInfo->ExternalizeL( writeStream );
+ STIF_ASSERT_TRUE( buf->Size() > 0 );
+ CleanupStack::PopAndDestroy( &writeStream );
+ CleanupStack::PopAndDestroy( buf );
+
+ CleanupStack::PopAndDestroy( appInfo );
+ }
break;
- case EChangeDelayedWaitNoteText:
- User::After( KThreeSeconds );
- TRAP( result, iSifUi->DisplayWaitNoteL( KChangedDelayedWaitNoteText, reqStatus ) );
- if( result == KErrNone && reqStatus != KRequestPending )
+
+ case EAppInfoIconTest:
+ {
+ STIF_ASSERT_NOT_NULL( sifUi );
+ CSifUiAppInfo* appInfo = NULL;
+
+ // TODO: proper icon test needed
+ CApaMaskedBitmap* appBitmap = NULL;
+ appInfo = CSifUiAppInfo::NewLC( KAppName, KAppVendor, KAppVersion, KAppSize, appBitmap );
+
+ CBufBase* buf = CBufFlat::NewL( KBufferGranularity );
+ CleanupStack::PushL( buf );
+ RBufWriteStream writeStream( *buf );
+ CleanupClosePushL( writeStream );
+ STIF_ASSERT_TRUE( buf->Size() == 0 );
+ appInfo->ExternalizeL( writeStream );
+ STIF_ASSERT_TRUE( buf->Size() > 0 );
+ CleanupStack::PopAndDestroy( &writeStream );
+ CleanupStack::PopAndDestroy( buf );
+
+ CleanupStack::PopAndDestroy( appInfo );
+ }
+ break;
+
+ case EShowConfirmation:
+ {
+ STIF_ASSERT_NOT_NULL( sifUi );
+ CSifUiAppInfo* appInfo = NULL;
+ appInfo = CSifUiAppInfo::NewL( KAppName, KAppVendor, KAppVersion, KAppSize, NULL );
+ CleanupStack::PushL( appInfo );
+
+ CBufBase* buf = CBufFlat::NewL( KBufferGranularity );
+ CleanupStack::PushL( buf );
+ RBufWriteStream writeStream( *buf );
+ CleanupClosePushL( writeStream );
+ STIF_ASSERT_TRUE( buf->Size() == 0 );
+ appInfo->ExternalizeL( writeStream );
+ STIF_ASSERT_TRUE( buf->Size() > 0 );
+ CleanupStack::PopAndDestroy( &writeStream );
+ CleanupStack::PopAndDestroy( buf );
+
+ TBool result = EFalse;
+ // TODO: how to close opened dialog automatically?
+ TRAP( error, result = sifUi->ShowConfirmationL( *appInfo ) );
+ if( result )
{
- User::WaitForRequest( reqStatus );
- result = reqStatus.Int();
+ _LIT( KAccepted, "Accepted" );
+ TestModuleIf().Printf( 1, KTestName, KAccepted );
}
+ else
+ {
+ _LIT( KCancelled, "Cancelled" );
+ TestModuleIf().Printf( 1, KTestName, KCancelled );
+ }
+ CleanupStack::PopAndDestroy( appInfo );
+ }
break;
- case ECloseWaitNote:
- User::After( KOneSecond );
- TRAP( result, iSifUi->CloseWaitNote() );
- if( result == KErrNone )
- {
- User::WaitForRequest( reqStatus );
- result = reqStatus.Int();
- }
+
+ case EShowError:
+ {
+ STIF_ASSERT_NOT_NULL( sifUi );
+ _LIT( KErrorMessage, "Test error" );
+ _LIT( KErrorDetails, "Test error details" );
+ // TODO: how to close opened dialog automatically?
+ TRAP( error, sifUi->ShowFailedL( KErrNotFound, KErrorMessage, KErrorDetails ) );
+ }
break;
+
+ case ELastStep:
+ STIF_ASSERT_NOT_NULL( sifUi );
+ CleanupStack::PopAndDestroy( sifUi );
+ sifUi = NULL;
+ break;
+
default:
User::Leave( KErrGeneral );
break;
}
}
-
- delete iSifUi;
- iSifUi = NULL;
-
- SetResult( aResult, result );
+ User::LeaveIfError( error );
TestModuleIf().Printf( 0, KTestName, KExit );
+ }
+
+// -----------------------------------------------------------------------------
+// CSifUiTest::ProgressDialogsTest()
+// -----------------------------------------------------------------------------
+//
+TInt CSifUiTest::ProgressDialogsTest( TTestResult& aResult )
+ {
+ TRAPD( result, DoProgressDialogsTestL( aResult ) );
+ SetResult( aResult, result );
return KErrNone;
}
// -----------------------------------------------------------------------------
-// CSifUiTest::LaunchHelpTest()
+// CSifUiTest::DoProgressDialogsTestL()
// -----------------------------------------------------------------------------
//
-TInt CSifUiTest::LaunchHelpTest( TTestResult& aResult )
+void CSifUiTest::DoProgressDialogsTestL( TTestResult& aResult )
{
- _LIT( KTestName, "LaunchHelpTest" );
+ _LIT( KTestName, "ProgressDlgsTest" );
TestModuleIf().Printf( 0, KTestName, KEnter );
- TInt result = CreateSifUi();
- if( result == KErrNone )
+ enum TTestSteps
{
- AsyncWaitAndSendKeyEventL( KFiveSeconds, KRightSoftkey );
+ EFirstStep,
+ EShowProgress,
+ EUpdateProgress,
+ EShowComplete,
+ ELastStep,
+ EAllDone
+ };
+
+ CSifUi* sifUi = NULL;
+
+ _LIT( KAppName, "NoitaCilppa" );
+ _LIT( KAppVendor, "Rodnev" );
+ const TVersion KAppVersion( 3, 2, 1 );
+ const TInt KAppSize = 0x4321;
+
+ const TInt KMaxProgress = 150;
+ const TInt KUpdateStarts = -10;
+ const TInt KUpdateEnds = KMaxProgress + 10;
+ const TInt KUpdateStep = 4;
+
+ TInt error = KErrNone;
+ for( TInt step = EFirstStep; step < EAllDone && !error; ++step )
+ {
+ TestModuleIf().Printf( 1, KTestName, KStepFormat, step );
+ switch( step )
+ {
+ case EFirstStep:
+ STIF_ASSERT_NULL( sifUi );
+ TRAP( error, sifUi = CSifUi::NewL() );
+ if( !error )
+ {
+ CleanupStack::PushL( sifUi );
+ }
+ break;
- _LIT( KAM_HLP_INSTALL_CAPAB, "AM_HLP_INSTALL_CAPAB" );
- TRAP( result, iSifUi->LaunchHelpL( KAM_HLP_INSTALL_CAPAB ) );
+ case EShowProgress:
+ {
+ STIF_ASSERT_NOT_NULL( sifUi );
+ CSifUiAppInfo* appInfo = NULL;
+ appInfo = CSifUiAppInfo::NewL( KAppName, KAppVendor, KAppVersion, KAppSize, NULL );
+ CleanupStack::PushL( appInfo );
+ TRAP( error, sifUi->ShowProgressL( *appInfo, KMaxProgress ) );
+ CleanupStack::PopAndDestroy( appInfo );
+ }
+ break;
- delete iSifUi;
- iSifUi = NULL;
+ case EUpdateProgress:
+ {
+ STIF_ASSERT_NOT_NULL( sifUi );
+ for( TInt i = KUpdateStarts; i < KUpdateEnds; i += KUpdateStep )
+ {
+ TRAP( error, sifUi->IncreaseProgressBarValueL( KUpdateStep ) );
+ }
+ }
+ break;
+
+ case EShowComplete:
+ STIF_ASSERT_NOT_NULL( sifUi );
+ TRAP( error, sifUi->ShowCompleteL() );
+ break;
+
+ case ELastStep:
+ STIF_ASSERT_NOT_NULL( sifUi );
+ CleanupStack::PopAndDestroy( sifUi );
+ sifUi = NULL;
+ break;
+
+ default:
+ User::Leave( KErrGeneral );
+ break;
+ }
}
- SetResult( aResult, result );
+ User::LeaveIfError( error );
TestModuleIf().Printf( 0, KTestName, KExit );
- return KErrNone;
}