uifw/AvKon/tsrc/bc/bctestdom5.0/bctestdomavkonpsln/src/bctestdomfindcase.cpp
changeset 21 558113899881
parent 14 3320e4e6e8bb
child 22 75713bee6484
child 33 b3425bf29f82
equal deleted inserted replaced
14:3320e4e6e8bb 21:558113899881
     1 /*
       
     2 * Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  ?Description
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #include <w32std.h>
       
    20 #include <coemain.h>
       
    21 #include <coecntrl.h>
       
    22 #include <finditemdialog.h>
       
    23 #include <finditemmenu.h>
       
    24 #include <eikmenup.h> 
       
    25 #include <eikrted.h> 
       
    26 #include <findutil.h>
       
    27 #include <gulbordr.h>
       
    28 #include <coeaui.h>
       
    29 #include <txtfrmat.h>
       
    30 
       
    31 #include <bctestdomavkonpsln.rsg>
       
    32 #include "bctestdomfindcase.h"
       
    33 #include "bctestdomavkonpslncontainer.h"
       
    34 #include "bctestdomavkonpslnext.h"
       
    35 #include "bctestdomavkonpsln.hrh"
       
    36 
       
    37 //CONSTANT
       
    38 
       
    39 const TInt KDesLength = 32;
       
    40 _LIT( KUrlDes, "http://www.symbian.com" );
       
    41 _LIT( KNumberDes, "callback73644444");
       
    42 
       
    43 // =========================== MEMBER FUNCTIONS =============================
       
    44 
       
    45 // ---------------------------------------------------------------------------
       
    46 // Symbian 2nd static Constructor
       
    47 // ---------------------------------------------------------------------------
       
    48 //
       
    49 CBCTestDomFindCase* CBCTestDomFindCase::NewL( CBCTestDomAvkonPslnContainer* 
       
    50     aContainer )
       
    51     {
       
    52     CBCTestDomFindCase* self = new( ELeave ) CBCTestDomFindCase( 
       
    53         aContainer );
       
    54     CleanupStack::PushL( self );
       
    55     self->ConstructL();
       
    56     CleanupStack::Pop( self );
       
    57     return self;
       
    58     }
       
    59     
       
    60 // ---------------------------------------------------------------------------
       
    61 // C++ default constructor
       
    62 // ---------------------------------------------------------------------------
       
    63 //
       
    64 CBCTestDomFindCase::CBCTestDomFindCase( CBCTestDomAvkonPslnContainer* 
       
    65     aContainer )
       
    66     : iContainer( aContainer )
       
    67     {    
       
    68     }
       
    69     
       
    70 // ---------------------------------------------------------------------------
       
    71 // Destructor
       
    72 // ---------------------------------------------------------------------------
       
    73 //
       
    74 CBCTestDomFindCase::~CBCTestDomFindCase()
       
    75     {  
       
    76     }
       
    77     
       
    78 // ---------------------------------------------------------------------------
       
    79 // Symbian 2nd Constructor
       
    80 // ---------------------------------------------------------------------------
       
    81 //
       
    82 void CBCTestDomFindCase::ConstructL()
       
    83     {    
       
    84     BuildScriptL();    
       
    85     }
       
    86     
       
    87 // ---------------------------------------------------------------------------
       
    88 // CBCTestDomFindCase::BuildScriptL
       
    89 // ---------------------------------------------------------------------------
       
    90 //
       
    91 void CBCTestDomFindCase::BuildScriptL()
       
    92     { 
       
    93     const TInt scripts[] =
       
    94         {
       
    95         LeftCBA,
       
    96         REP( Down, 2 ),
       
    97         LeftCBA,
       
    98         
       
    99         WAIT(3),
       
   100         RightCBA,
       
   101         KeyOK,
       
   102         WAIT(3),
       
   103         KeyOK
       
   104         };
       
   105     AddTestScriptL( scripts, sizeof(scripts)/sizeof(TInt) );   
       
   106     }
       
   107     
       
   108 // ---------------------------------------------------------------------------
       
   109 // CBCTestDomFindCase::RunL
       
   110 // ---------------------------------------------------------------------------
       
   111 //
       
   112 void CBCTestDomFindCase::RunL( TInt aCmd )
       
   113     {
       
   114     if ( aCmd != EBCTestCmdOutline3 )
       
   115         {
       
   116         return;
       
   117         }
       
   118     switch ( aCmd )  
       
   119         {
       
   120         case EBCTestCmdOutline3:
       
   121             TestFindItemDialogL();
       
   122             TestFindItemMenuL();
       
   123             TestFindUtilL();
       
   124             TestItemFinderL();
       
   125             break;
       
   126         default:
       
   127             break;
       
   128         }
       
   129     }
       
   130 
       
   131 // ---------------------------------------------------------------------------
       
   132 // CBCTestDomEikCase::TestFindItemDialogL()
       
   133 // ---------------------------------------------------------------------------
       
   134 //    
       
   135 void CBCTestDomFindCase::TestFindItemDialogL()
       
   136 {
       
   137     _LIT( KNewL, "CFindItemDialog::NewL invoked" );
       
   138     _LIT( KOfferKeyEventL, "CFindItemDialog::OfferKeyEventL invoked" );
       
   139     _LIT( KProcessCommandL, "CFindItemDialog::ProcessCommandL invoked" );
       
   140     _LIT( KExecuteLD, "CFindItemDialog::ExecuteLD invoked" );
       
   141               
       
   142     CFindItemDialog* dlg = CFindItemDialog::NewL( KUrlDes, 
       
   143                            CFindItemEngine::EFindItemSearchURLBin );
       
   144     CleanupStack::PushL( dlg );
       
   145     AssertNotNullL( dlg, KNewL );
       
   146     
       
   147     TKeyEvent keyEvent = { EKeyPause, EStdKeySpace, 0, 0  };
       
   148     dlg->OfferKeyEventL( keyEvent, EEventKey );
       
   149     AssertTrueL( ETrue, KOfferKeyEventL );
       
   150   
       
   151 
       
   152     CCoeEnv::Static()->AppUi()->AddToStackL( dlg );
       
   153     dlg->ProcessCommandL( EAknSoftkeyHide );
       
   154     AssertTrueL( ETrue, KProcessCommandL );
       
   155     CCoeEnv::Static()->AppUi()->RemoveFromStack( dlg );
       
   156     
       
   157     CleanupStack::Pop( dlg );
       
   158     dlg->ExecuteLD();
       
   159     AssertTrueL( ETrue, KExecuteLD );
       
   160 }
       
   161 
       
   162 // ---------------------------------------------------------------------------
       
   163 // CBCTestDomEikCase::TestFindItemMenuL()
       
   164 // ---------------------------------------------------------------------------
       
   165 //    
       
   166 void CBCTestDomFindCase::TestFindItemMenuL()
       
   167 {
       
   168     _LIT( KNewL, "CFindItemMenu::NewL invoked" );
       
   169     _LIT( KNewLC, "CFindItemMenu::NewLC invoked" );
       
   170     _LIT( KDes, "CFindItemMenu::~CFindItemMenu invoked" );
       
   171     
       
   172     CFindItemMenu* menu = CFindItemMenu::NewL( 0 );
       
   173     CleanupStack::PushL( menu );
       
   174     
       
   175     AssertNotNullL( menu, KNewL );
       
   176     CleanupStack::PopAndDestroy( menu );
       
   177     AssertTrueL( ETrue, KDes );
       
   178     
       
   179     menu = CFindItemMenu::NewLC( R_BCTESTDOMAVKONPSLN_CASE_MENU );
       
   180     AssertNotNullL( menu, KNewLC );
       
   181     
       
   182     CAknForm* frm = new (ELeave) CAknForm;  
       
   183     CleanupStack::PushL( frm );
       
   184     frm->ConstructL();
       
   185     
       
   186     CEikMenuPane* pane = new ( ELeave ) CEikMenuPane( frm );
       
   187     CleanupStack::PushL( pane );
       
   188     pane->ConstructL( pane,0 );
       
   189     
       
   190     _LIT( KDisplayFindItemMenuItemL, 
       
   191         "CFindItemMenu::DisplayFindItemMenuItemL invoked" );
       
   192     menu->DisplayFindItemMenuItemL( *pane, 0 );
       
   193     AssertTrueL( ETrue, KDisplayFindItemMenuItemL );
       
   194     
       
   195     _LIT( KDisplayFindItemCascadeMenuL, 
       
   196         "CFindItemMenu::DisplayFindItemCascadeMenuL invoked" );
       
   197     menu->DisplayFindItemCascadeMenuL( *pane );
       
   198     AssertTrueL( ETrue, KDisplayFindItemCascadeMenuL );
       
   199     
       
   200     _LIT( KCommandIsValidL, "CFindItemMenu::CommandIsValidL invoked" );
       
   201     menu->CommandIsValidL( 0 );
       
   202     AssertTrueL( ETrue, KCommandIsValidL );
       
   203     
       
   204     _LIT( KSearchCase, "CFindItemMenu::SearchCase invoked" );
       
   205     menu->SearchCase( R_BCTESTDOMAVKONPSLN_CASE_MENU+1 );
       
   206     AssertTrueL( ETrue, KSearchCase );
       
   207     
       
   208     _LIT( KUpdateItemFinderMenuL, "CFindItemMenu::UpdateItemFinderMenuL invoked" );
       
   209     menu->UpdateItemFinderMenuL( R_BCTESTDOMAVKONPSLN_CASE_MENU, pane );
       
   210     AssertTrueL( ETrue, KUpdateItemFinderMenuL );
       
   211     
       
   212     _LIT( KHandleItemFinderCommandL, 
       
   213         "CFindItemMenu::HandleItemFinderCommandL invoked" );
       
   214     menu->HandleItemFinderCommandL( 0 );
       
   215     AssertTrueL( ETrue, KHandleItemFinderCommandL );
       
   216     
       
   217     _LIT( KAttachItemFinderMenuL, 
       
   218         "CFindItemMenu::HandleItemFinderCommandL invoked" );
       
   219     menu->AttachItemFinderMenuL( R_BCTESTDOMAVKONPSLN_CASE_MENU );
       
   220     AssertTrueL( ETrue, KAttachItemFinderMenuL );
       
   221     
       
   222     _LIT( KSetCallbackNumber, 
       
   223         "CFindItemMenu::SetCallbackNumber invoked" );
       
   224     
       
   225     menu->SetCallbackNumber( KNumberDes );
       
   226     AssertTrueL( ETrue, KSetCallbackNumber );
       
   227     
       
   228     _LIT( KHandleCallL, 
       
   229         "CFindItemMenu::HandleCallL invoked" );
       
   230     menu->HandleCallL( KUrlDes );
       
   231     AssertTrueL( ETrue, KHandleCallL );
       
   232     
       
   233     _LIT( KHandleVoIPCallL, 
       
   234         "CFindItemMenu::HandleCallL invoked" );
       
   235     menu->HandleVoIPCallL( KUrlDes );
       
   236     AssertTrueL( ETrue, KHandleVoIPCallL );
       
   237     
       
   238     _LIT( KSetSenderHighlightStatus, 
       
   239         "CFindItemMenu::SetSenderHighlightStatus invoked" );
       
   240     menu->SetSenderHighlightStatus( ETrue );
       
   241     AssertTrueL( ETrue, KSetSenderHighlightStatus );
       
   242     
       
   243     _LIT( KSetSenderDisplayText, 
       
   244         "CFindItemMenu::SetSenderDisplayText invoked" );
       
   245     menu->SetSenderDisplayText( KNumberDes );
       
   246     AssertTrueL( ETrue, KSetSenderDisplayText );
       
   247     
       
   248     _LIT( KAddItemFindMenuL, 
       
   249         "CFindItemMenu::AddItemFindMenuL() invoked" );
       
   250 
       
   251     CItemFinder* finder = CItemFinder::NewL();
       
   252     CleanupStack::PushL( finder );
       
   253     menu->AddItemFindMenuL( finder, pane, 0, KNumberDes );
       
   254     AssertTrueL( ETrue, KAddItemFindMenuL );
       
   255     
       
   256     _LIT( KSetSenderDescriptorType, 
       
   257         "CFindItemMenu::SetSenderDescriptorType() invoked" );
       
   258           
       
   259     menu->SetSenderDescriptorType( CItemFinder::EUrlAddress );
       
   260     AssertTrueL( ETrue, KSetSenderDescriptorType );
       
   261     
       
   262     CleanupStack::PopAndDestroy( finder );
       
   263     CleanupStack::PopAndDestroy( pane );
       
   264     CleanupStack::PopAndDestroy( frm );
       
   265     CleanupStack::PopAndDestroy( menu );
       
   266 }
       
   267 
       
   268 // ---------------------------------------------------------------------------
       
   269 // CBCTestDomEikCase::TestFindUtilL()
       
   270 // ---------------------------------------------------------------------------
       
   271 //    
       
   272 void CBCTestDomFindCase::TestFindUtilL()
       
   273     {
       
   274     _LIT( KNewL, "CFindUtil::NewL() invoked" );
       
   275     _LIT( KDes, "CFindUtil::~CFindUtil() invoked" );
       
   276     CFindUtil* util = CFindUtil::NewL();
       
   277     CleanupStack::PushL( util );
       
   278     AssertNotNullL( util, KNewL );
       
   279     
       
   280     CleanupStack::Pop( util );
       
   281     delete util;
       
   282     AssertTrueL( ETrue, KDes );
       
   283     }
       
   284 
       
   285 // ---------------------------------------------------------------------------
       
   286 // CBCTestDomEikCase::TestItemFinderL()
       
   287 // ---------------------------------------------------------------------------
       
   288 //    
       
   289 void CBCTestDomFindCase::TestItemFinderL()
       
   290     {
       
   291     
       
   292     _LIT( KNewL, "CItemFinder::NewL() invoked" );
       
   293     _LIT( KNextItemOrScrollL, "CItemFinder::NextItemOrScrollL() invoked" );
       
   294     _LIT( KSetFindModeL, "CItemFinder::SetFindModeL() invoked" );    
       
   295     _LIT( KSetEditor, "CItemFinder::SetEditor() invoked" );
       
   296     _LIT( KParseThisText, "CItemFinder::ParseThisText() invoked" );
       
   297     _LIT( KCreateDoItText, "CItemFinder::CreateDoItText() invoked" );
       
   298     _LIT( KActivateThisTextL, "CItemFinder::ActivateThisTextL() invoked" );
       
   299     _LIT( KReformatOnRecognise, "CItemFinder::ReformatOnRecognise() invoked" );
       
   300     _LIT( KReformatOnRollover, "CItemFinder::ReformatOnRollover() invoked" );
       
   301     _LIT( KGetRecogniseFormat, "CItemFinder::GetRecogniseFormat() invoked" );
       
   302     _LIT( KGetRolloverFormat, "CItemFinder::GetRolloverFormat() invoked" );
       
   303     _LIT( KConfirmCursorOverTag, "CItemFinder::ConfirmCursorOverTag() invoked" );
       
   304     _LIT( KMParser_Reserved_2, "CItemFinder::MParser_Reserved_2() invoked" );
       
   305     _LIT( KPositionOfNextItem, "CItemFinder::PositionOfNextItem() invoked" );
       
   306     _LIT( KResetCurrentItem, "CItemFinder::ResetCurrentItem() invoked" );
       
   307     _LIT( KResolveAndSetItemTypeL, "CItemFinder::ResolveAndSetItemTypeL() invoked" );
       
   308     _LIT( KAddObserver, "CItemFinder::AddObserver() invoked" );
       
   309     _LIT( KItemWasTappedL, "CItemFinder::ItemWasTappedL() invoked" );
       
   310     _LIT( KSetExternalLinks, "CItemFinder::SetExternalLinks() invoked" );
       
   311     _LIT( KDes, "CItemFinder::~CItemFinder() invoked" );
       
   312     _LIT( KRelease, "CItemFinder::Release() invoked" );
       
   313     _LIT( KCurrentSelection, "CItemFinder::CurrentSelection() invoked" );
       
   314     _LIT( KCurrentItemExt, "CItemFinder::CurrentItemExt() invoked" );
       
   315     
       
   316     
       
   317     CItemFinder* finder = CItemFinder::NewL();
       
   318     CleanupStack::PushL( finder );
       
   319     AssertNotNullL( finder, KNewL );
       
   320     
       
   321     finder->NextItemOrScrollL( CItemFinder::EInit );
       
   322     AssertTrueL( ETrue, KNextItemOrScrollL );
       
   323     
       
   324     finder->SetFindModeL( 0 );
       
   325     AssertTrueL( ETrue, KSetFindModeL );
       
   326     
       
   327     TGulBorder gulBorder;
       
   328     CEikRichTextEditor* editor = new ( ELeave ) CEikRichTextEditor ( gulBorder );
       
   329     CleanupStack::PushL( editor );
       
   330     editor->ConstructL( iContainer, 0, 0, 0 );
       
   331     
       
   332     finder->SetEditor( &editor );
       
   333     AssertTrueL( ETrue, KSetEditor );
       
   334     
       
   335     TInt tag(0), len(0);
       
   336     CRichText* richText = editor->RichText();  
       
   337     finder->ParseThisText( *richText, ETrue, 1, 1, tag, len ) ;
       
   338     AssertTrueL( ETrue, KParseThisText );
       
   339     
       
   340     finder->CreateDoItText( *richText, 1, 1 );
       
   341     AssertTrueL( ETrue, KCreateDoItText );
       
   342     
       
   343     finder->ActivateThisTextL( *richText, 1, 1 );
       
   344     AssertTrueL( ETrue, KActivateThisTextL );
       
   345     
       
   346     finder->ReformatOnRecognise();
       
   347     AssertTrueL( ETrue, KReformatOnRecognise );
       
   348     
       
   349     finder->ReformatOnRollover();
       
   350     AssertTrueL( ETrue, KReformatOnRollover );
       
   351     
       
   352     TCharFormat format;
       
   353     finder->GetRecogniseFormat( format );
       
   354     AssertTrueL( ETrue, KGetRecogniseFormat );
       
   355     
       
   356     finder->GetRolloverFormat( format );
       
   357     AssertTrueL( ETrue, KGetRolloverFormat );
       
   358     
       
   359     finder->ConfirmCursorOverTag( *richText, 1, 1, 1 );
       
   360     AssertTrueL( ETrue, KConfirmCursorOverTag );
       
   361     
       
   362     finder->MParser_Reserved_2();
       
   363     AssertTrueL( ETrue, KMParser_Reserved_2 );
       
   364     
       
   365     finder->PositionOfNextItem( CItemFinder::EInit );
       
   366     AssertTrueL( ETrue, KPositionOfNextItem );
       
   367     
       
   368     finder->ResetCurrentItem();
       
   369     AssertTrueL( ETrue, KResetCurrentItem );
       
   370     
       
   371     finder->ResolveAndSetItemTypeL();
       
   372     AssertTrueL( ETrue, KResolveAndSetItemTypeL );
       
   373     
       
   374     CItemFinderObserverExt* observer = new ( ELeave ) CItemFinderObserverExt;
       
   375     CleanupStack::PushL( observer );
       
   376     
       
   377     finder->AddObserver( *observer );
       
   378     AssertTrueL( ETrue, KAddObserver );
       
   379     
       
   380     TPoint point( 0, 0 );
       
   381     finder->ItemWasTappedL( point );
       
   382     AssertTrueL( ETrue, KItemWasTappedL );
       
   383     
       
   384     TBuf<KDesLength> des( KUrlDes );
       
   385     CItemFinder::CFindItemExt* findex = new ( ELeave ) CItemFinder::CFindItemExt;
       
   386     CleanupStack::PushL( findex );
       
   387     
       
   388     findex->iItemType = CItemFinder::EUrlAddress;
       
   389     findex->iItemDescriptor = des.AllocL();
       
   390     CArrayPtrFlat<CItemFinder::CFindItemExt>* links = 
       
   391         new ( ELeave ) CArrayPtrFlat<CItemFinder::CFindItemExt>( 1 );
       
   392     CleanupStack::PushL( links );
       
   393     links->AppendL( findex );
       
   394     
       
   395     finder->SetExternalLinks( links );
       
   396     AssertTrueL( ETrue, KSetExternalLinks );
       
   397     
       
   398     finder->CurrentItemExt();
       
   399     AssertTrueL( ETrue, KCurrentItemExt );
       
   400     
       
   401     finder->CurrentSelection();
       
   402     AssertTrueL( ETrue, KCurrentSelection );
       
   403     
       
   404     finder->Release();
       
   405     AssertTrueL( ETrue, KRelease );
       
   406     
       
   407     CleanupStack::PopAndDestroy( links );
       
   408     CleanupStack::PopAndDestroy( findex );
       
   409     CleanupStack::PopAndDestroy( observer );
       
   410     CleanupStack::PopAndDestroy( editor );
       
   411     CleanupStack::PopAndDestroy( finder );
       
   412 
       
   413     AssertTrueL( ETrue, KDes );
       
   414     }
       
   415     //end of file