uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestdocandinit/src/bctestDocAndInitcase.cpp
changeset 0 2f259fa3e83a
child 17 a1caeb42b3a3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uifw/AvKon/tsrc/bc/S60_SDK3.0/bctestdocandinit/src/bctestDocAndInitcase.cpp	Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,403 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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:  test case
+*
+*/
+
+
+#include <w32std.h>
+#include <coecntrl.h>
+#include <eikenv.h>
+#include <apmstd.h>
+#include <PathInfo.h>
+#include <apgcli.h>
+#include <apmrec.h> 
+#include <bautils.h> // for BaflUtils::DeleteFile
+#include "bctestdocandinitcase.h"
+#include "bctestdocandinitcontainer.h"
+#include "bctestdocandinit.hrh"
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd static Constructor
+// ---------------------------------------------------------------------------
+//
+CBCTestDocAndInitCase* CBCTestDocAndInitCase::NewL( 
+    CBCTestDocAndInitContainer* aContainer )
+    {
+    CBCTestDocAndInitCase* self = new( ELeave ) CBCTestDocAndInitCase( 
+        aContainer );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+    
+// ---------------------------------------------------------------------------
+// C++ default constructor
+// ---------------------------------------------------------------------------
+//
+CBCTestDocAndInitCase::CBCTestDocAndInitCase( 
+    CBCTestDocAndInitContainer* aContainer )
+    : iContainer( aContainer )
+    {    
+    }
+    
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CBCTestDocAndInitCase::~CBCTestDocAndInitCase()
+    {
+  
+    }
+    
+// ---------------------------------------------------------------------------
+// Symbian 2nd Constructor
+// ---------------------------------------------------------------------------
+//
+void CBCTestDocAndInitCase::ConstructL()
+    {    
+        BuildScriptL();    
+    }
+    
+// ---------------------------------------------------------------------------
+// CBCTestDocAndInitCase::BuildScriptL
+// ---------------------------------------------------------------------------
+//
+void CBCTestDocAndInitCase::BuildScriptL()
+    { 
+       const TInt scripts[] =
+        {
+        DELAY( 1 ), // delay between commands is 1*0.1 seconds = 0.1 seconds
+        LeftCBA, 
+        LeftCBA, 
+        LeftCBA, KeyOK,
+        LeftCBA, KeyOK,
+        LeftCBA, KeyOK,
+        LeftCBA, LeftCBA, KeyOK,
+        DELAY( 15 ),         
+        LeftCBA,
+        DELAY( 1 ), 
+        REP(Down, 1 ), 
+        LeftCBA
+        };
+    AddTestScriptL( scripts, sizeof( scripts )/sizeof( TInt ) );
+    }
+    
+// ---------------------------------------------------------------------------
+// CBCTestDocAndInitCase::RunL
+// ---------------------------------------------------------------------------
+//
+void CBCTestDocAndInitCase::RunL( TInt aCmd )
+    {
+    if ( aCmd < EBCTestCmdDoc || aCmd > EBCTestCmdInit )
+        {
+        return;
+        }
+    // Call release before prepare to let container has time to draw the 
+    // control created in PrepareCaseL.
+    ReleaseCaseL();
+    PrepareCaseL( aCmd );
+    switch ( aCmd )  
+        {
+        case EBCTestCmdDoc:
+            Cleanup();
+            TestDocument1L();
+            TestDocument2L();
+            break;
+        case EBCTestCmdInit:
+            TestInitializationL();
+            break;
+        default:
+            break;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestDocAndInitCase::PrepareCaseL
+// ---------------------------------------------------------------------------
+//
+void CBCTestDocAndInitCase::PrepareCaseL( TInt aCmd )
+    {        
+    switch ( aCmd )
+        {
+        case EBCTestCmdDoc||EBCTestCmdInit:
+            // Here is a simple demo. You should create your control 
+            // instead of this.
+            iControl = new( ELeave ) CCoeControl();            
+            iControl->SetContainerWindowL( *iContainer );
+            iControl->MakeVisible( ETrue );
+            break;     
+        default:
+            break;
+        }
+    // Pass the owner of iControl to iContainer.
+    iContainer->SetControl( iControl );
+    }
+
+// ---------------------------------------------------------------------------
+// CBCTestDocAndInitCase::ReleaseCaseL
+// ---------------------------------------------------------------------------
+//   
+void CBCTestDocAndInitCase::ReleaseCaseL()
+    {
+    // let container delete the component control.
+    iContainer->ResetControl();
+    iControl = NULL;
+    }
+    
+// ---------------------------------------------------------------------------
+// CBCTestDocAndInitCase::TestInitialization
+// ---------------------------------------------------------------------------
+//     
+void CBCTestDocAndInitCase::TestInitializationL()
+    {
+        TestAppUiFactoryL();
+        TestCoCtlLibraryL();
+        TestCtlLibraryL();
+    }
+  
+// ---------------------------------------------------------------------------
+// CBCTestDocAndInitCase::TestAppUiFactory  (Test class CEikAppUiFactory)
+// ---------------------------------------------------------------------------
+// 
+void CBCTestDocAndInitCase::TestAppUiFactoryL()
+    {
+    CEikAppUiFactory* factory = new( ELeave ) CEikAppUiFactory();
+    CleanupStack::PushL( factory );
+    _LIT( KCEikAppUiFactory, "CEikAppUiFactory::CEikAppUiFactory() invoked" );
+    AssertNotNullL( factory, KCEikAppUiFactory );
+    
+    factory->TouchPane();  
+    _LIT( KTouchPane , "CEikAppUiFactory::TouchPane() invoked" );  
+    AssertTrueL( ETrue, KTouchPane );
+    
+    factory->CurrentPopupToolbar();
+    _LIT( KCurrentPopupToolbar, 
+    "CEikAppUiFactory::CurrentPopupToolbar() invoked" );
+    AssertTrueL( ETrue, KCurrentPopupToolbar );
+    
+    CAknToolbar* popup = factory->PopupToolbar();
+    _LIT( KPopupToolbar, "CEikAppUiFactory::PopupToolbar() invoked" );  
+    AssertTrueL( ETrue, KPopupToolbar );   
+    
+    factory->SetViewPopupToolbar( popup );  
+    _LIT( KSetViewPopupToolbar, 
+    "CEikAppUiFactory::SetViewPopupToolbar() invoked" );
+    AssertTrueL( ETrue, KSetViewPopupToolbar );
+
+    CleanupStack::PopAndDestroy( factory );    
+    }
+  
+// ---------------------------------------------------------------------------
+// CBCTestDocAndInitCase::TestCoCtlLibrary  (Test class CEikCoCtlLibrary)
+// ---------------------------------------------------------------------------
+// 
+void CBCTestDocAndInitCase::TestCoCtlLibraryL()
+    {
+    CEikCoCtlLibrary::ButtonGroupFactory();
+    _LIT( KButtonGroupFactory , 
+    "CEikCoCtlLibrary::ButtonGroupFactory() invoked" );
+    AssertTrueL( ETrue, KButtonGroupFactory );
+    
+    CEikCoCtlLibrary::ControlFactory();
+    _LIT( KControlFactory , "CEikCoCtlLibrary::ControlFactory() invoked" );
+    AssertTrueL( ETrue, KControlFactory );
+    
+    CEikCoCtlLibrary::ResourceFile();
+    _LIT( KResourceFile , "CEikCoCtlLibrary::ResourceFile() invoked" );
+    AssertTrueL( ETrue, KResourceFile );
+    }
+  
+// ---------------------------------------------------------------------------
+// CBCTestDocAndInitCase::TestCtlLibrary (Test class CEikCtlLibrary)
+// ---------------------------------------------------------------------------
+// 
+void CBCTestDocAndInitCase::TestCtlLibraryL()
+    {
+    CEikCtlLibrary::ResourceFile();
+    _LIT( KResourceFile , "CEikCtlLibrary::ResourceFile() invoked" );
+    AssertTrueL( ETrue, KResourceFile );
+    
+    CEikCtlLibrary::ControlFactory();
+    _LIT( KControlFactory , "CEikCtlLibrary::ControlFactory() invoked" );
+    AssertTrueL( ETrue, KControlFactory );
+    
+    CEikCtlLibrary::InitializeL();
+    _LIT( KInitializeL , "CEikCtlLibrary::InitializeL() invoked" );
+    AssertTrueL( ETrue, KInitializeL );
+    
+    CEikCtlLibrary::ButtonGroupFactory();
+    _LIT( KButtonGroupFactory , 
+    "CEikCtlLibrary::ButtonGroupFactory() invoked" );
+    AssertTrueL( ETrue, KButtonGroupFactory );
+    }
+// ---------------------------------------------------------------------------
+// CBCTestDocAndInitCase::TestDocument1(Test class CDocumentHandler)
+// ---------------------------------------------------------------------------
+//    
+void CBCTestDocAndInitCase::TestDocument1L()
+    {
+    CDocumentHandler *docHandler = CDocumentHandler::NewL();
+    _LIT( KNewL1 , "CDocumentHandler::NewL() invoked" );
+    AssertNotNullL( docHandler, KNewL1 );    
+       
+    docHandler->SetExitObserver( this );
+    _LIT( KSetExitObserver , 
+    "CDocumentHandler::SetExitObserver(MAknServerAppExitObserver*) invoked" );
+    AssertTrueL( ETrue, KSetExitObserver );
+    
+    docHandler->InParamListL();
+    _LIT( KInParamListL , "CDocumentHandler::InParamListL() invoked" );
+    AssertTrueL( ETrue, KInParamListL );
+    
+    TDataType dataType;    
+    _LIT( KEmbeddedFileName, "C:\\BCTestLog\\DocHandleEmbedded.txt" );
+    RFs& fs = CEikonEnv::Static()->FsSession();
+    RFile embeddedFile;
+    if( embeddedFile.Open( fs, KEmbeddedFileName, 
+                           EFileWrite | EFileShareAny ) != KErrNone ){
+        embeddedFile.Create( fs, KEmbeddedFileName, 
+                             EFileWrite | EFileShareAny );
+    }
+    _LIT8( KContent, "Content Text" );
+    embeddedFile.Write( KContent );
+    TInt error;
+    error = docHandler->OpenFileEmbeddedL( KEmbeddedFileName, dataType );
+    _LIT( KOpenFileEmbeddedL1 , 
+    "CDocumentHandler::OpenFileEmbeddedL(const TDesC&,TDataType&) invoked" );
+    AssertIntL( KErrNone, error, KOpenFileEmbeddedL1 );
+
+    error = docHandler->OpenFileEmbeddedL( embeddedFile, dataType );
+    _LIT( KOpenFileEmbeddedL2 , 
+    "CDocumentHandler::OpenFileEmbeddedL(RFile&,TDataType&) invoked" );
+    AssertIntL( KErrNone, error, KOpenFileEmbeddedL2 );
+
+    TBuf<32> fileName;
+    docHandler->CheckFileNameExtension( fileName, dataType );
+    _LIT( KCheckFileNameExtension ,
+    "CDocumentHandler::CheckFileNameExtension(TDes&,TDataType&) invoked" );
+    AssertTrueL( ETrue, KCheckFileNameExtension );
+    
+    TBool canOpen = docHandler->CanOpenL( dataType );
+    _LIT( KCanOpenL , "CDocumentHandler::CanOpenL(TDataType&) invoked" );
+    AssertTrueL( canOpen, KCanOpenL );
+
+    TBool canHandle = docHandler->CanHandleL( dataType );  
+    _LIT( KCanHandleL , "CDocumentHandler::CanHandleL(TDataType&) invoked" );
+    AssertTrueL( canHandle, KCanHandleL );
+
+    TBool canSave = docHandler->CanSaveL( dataType );
+    _LIT( KCanSaveL , "CDocumentHandler::CanSaveL(TDataType&) invoked" );
+    AssertTrueL( canSave, KCanSaveL );
+
+    docHandler->GetPath( fileName );
+    _LIT( KGetPath, "CDocumentHandler::GetPath(TDes&) invoked" );
+    AssertTrueL( ETrue, KGetPath );
+    
+    RFile tempFile;
+    _LIT( KTempFileName, "C:\\BCTestLog\\Temp.txt" );
+    docHandler->SaveTempFileL( KContent, dataType, KTempFileName, tempFile );
+    _LIT( KSaveTempFileL, "CDocumentHandler::SaveTempFileL() invoked" );
+    AssertTrueL( ETrue, KSaveTempFileL );
+    
+    tempFile.Close();
+
+    TUid uid;
+    docHandler->HandlerAppUid( uid );
+    _LIT( KHandlerAppUid, "CDocumentHandler::HandlerAppUid(TUid&) invoked" );
+    AssertTrueL( ETrue, KHandlerAppUid );
+
+    embeddedFile.Close();    
+
+    docHandler->OutParamList();
+    _LIT( KOutParamList , "CDocumentHandler::OutParamList() invoked" );
+    AssertTrueL( ETrue, KOutParamList );
+    
+//	CleanupStack::PopAndDestroy();	//iDocument
+    delete docHandler;
+    }
+  
+// ---------------------------------------------------------------------------
+// CBCTestDocAndInitCase::TestDocument2  (Test class CDocumentHandler)
+// ---------------------------------------------------------------------------
+//   
+void CBCTestDocAndInitCase::TestDocument2L()
+    {
+    _LIT8( KMyMimeType, "text/vnd.bctest" );
+    _LIT( KOldFileName, "C:\\BCTestLog\\DocHandleEmbedded.txt" );
+    _LIT( KOpenFileName, "C:\\BCTestLog\\DocInitOpen.txt" );
+    _LIT( KNewFileName, "C:\\BCTestLog\\DocInitNew.txt" );
+    _LIT8( KContentText, "Content Text" );
+    TDataType dataType( KMyMimeType );
+    CEikProcess* proc = CEikonEnv::Static()->Process();
+    CDocumentHandler *doc = CDocumentHandler::NewL(proc);
+    CleanupStack::PushL( doc );
+    _LIT( KNewL2 , "CDocumentHandler::NewL(CEikProcess*) invoked" );
+    AssertNotNullL( doc, KNewL2 );
+
+    RFs& fs = CEikonEnv::Static()->FsSession();
+    RFile File1;
+    if ( File1.Open( fs, KOpenFileName, EFileWrite | EFileShareAny ) 
+                                                       != KErrNone ){
+        File1.Create( fs, KOpenFileName, EFileWrite | EFileShareAny );
+    }
+       
+    TInt move = doc->MoveL( KOldFileName, KOpenFileName, dataType, 0 );
+    _LIT( KMoveL, "CDocumentHandler::MoveL() invoked" );
+    AssertIntL( KErrNone, move, KMoveL );
+
+    TInt save = doc->SaveL(KContentText, dataType, 0 );
+    _LIT( KSaveL, "CDocumentHandler::SaveL() invoked" );
+    AssertIntL( KErrNone, save, KSaveL );
+    
+    doc->CopyL( File1, KNewFileName, dataType, 0 );
+    _LIT( KCopyL1, "CDocumentHandler::CopyL() invoked" );
+    AssertTrueL( ETrue, KCopyL1 );
+    
+   	File1.Close();
+
+	doc->CopyL( KOpenFileName, KNewFileName, dataType, 0 );
+	_LIT( KCopyL2 ,
+	"CDocumentHandler::CopyL(TDesC8&,TDesC&,TDataType&,TUint) invoked" );
+    AssertTrueL( ETrue, KCopyL2 );
+
+    TInt error = doc->SilentMoveL( KOpenFileName, KNewFileName, 
+        PathInfo::PhoneMemoryRootPath(), dataType, 0 );
+    _LIT( KSilentMoveL, "CDocumentHandler::SilentMoveL() invoked" );
+    AssertIntL( KErrNone, error, KSilentMoveL );
+     
+    CleanupStack::PopAndDestroy( doc ); 
+    _LIT( KUCDocumentHandler, 
+    "CDocumentHandler::~CDocumentHandler() invoked" );
+    AssertTrueL( ETrue, KUCDocumentHandler );
+    }
+  
+// ---------------------------------------------------------------------------
+// CBCTestDocAndInitCase::HandleServerAppExit (from MAknServerAppExitObserver)
+// ---------------------------------------------------------------------------
+//
+void CBCTestDocAndInitCase::HandleServerAppExit( TInt /*aReason*/ )
+    {
+    }
+void CBCTestDocAndInitCase::Cleanup()
+    {
+    RFs& fs = CEikonEnv::Static()->FsSession();
+    _LIT( KPathAndPrefix1, "C:\\data\\others\\unname*");
+    _LIT( KPathAndPrefix2, "C:\\data\\others\\DocInit*");
+    BaflUtils::DeleteFile( fs, KPathAndPrefix1 );
+    BaflUtils::DeleteFile( fs, KPathAndPrefix2 );
+    }