photosgallery/slideshow/engine/tsrc/t_cshwmusiccontrol/t_cshwmusiccontrol.cpp
branchRCL_3
changeset 24 ea65f74e6de4
parent 23 b023a8d2866a
child 25 8e5f6eea9c9f
--- a/photosgallery/slideshow/engine/tsrc/t_cshwmusiccontrol/t_cshwmusiccontrol.cpp	Thu Jul 15 18:39:01 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,527 +0,0 @@
-/*
-* Copyright (c) 2007-2007 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 for music control for the slideshow
- *
-*/
-
-
-
-//  CLASS HEADER
-#include "t_cshwmusiccontrol.h"
-
-//  EXTERNAL INCLUDES
-#include <EUnitMacros.h>
-#include <EUnitDecorators.h>
-
-//  INTERNAL INCLUDES
-#include "shwevent.h"
-
-namespace
-	{
-	_LIT(KFileName, "c:\\knightrider.mp3");	
-	}
-
-// CONSTRUCTION
-T_CShwMusicControl* T_CShwMusicControl::NewL()
-    {
-    T_CShwMusicControl* self = T_CShwMusicControl::NewLC();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-T_CShwMusicControl* T_CShwMusicControl::NewLC()
-    {
-    T_CShwMusicControl* self = new( ELeave ) T_CShwMusicControl;
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-
-
-// Destructor (virtual by CBase)
-T_CShwMusicControl::~T_CShwMusicControl()
-    {
-    }
-
-
-
-// Default constructor
-T_CShwMusicControl::T_CShwMusicControl() 
-				   :iMusicOn(EFalse),
-				    iCurrentVolume(KErrNotFound),
-				    iMaxVolume(KErrNotFound),
-				    iPrevVolume(KErrNotFound)
-    {
-    }
-
-// Second phase construct
-void T_CShwMusicControl::ConstructL()
-    {
-    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
-    // It generates the test case table.
-    CEUnitTestSuiteClass::ConstructL();
-    }
-
-void T_CShwMusicControl::SendEventL(MShwEvent* aEvent)
-	{
-	iEvent = aEvent->CloneLC();
-	CleanupStack::Pop( iEvent );
-	}
-
-TBool gMusicOnCalled = EFalse;
-void T_CShwMusicControl::MusicOnL()
-	{
-	EUNIT_PRINT(_L("Music is ON"));
-	iMusicOn = ETrue;
-	gMusicOnCalled = ETrue;
-	// leave if error code set
-    User::LeaveIfError( iLeaveInObserver );
-	}
-	
-TBool gMusicOffCalled = EFalse;
-void T_CShwMusicControl::MusicOff()
-	{
-	EUNIT_PRINT(_L("Music is OFF"));
-	iMusicOn = EFalse;
-	gMusicOffCalled = ETrue;
-	}
-
-
-void T_CShwMusicControl::MusicVolume(TInt aCurrentVolume, TInt aMaxVolume)
-	{
-	iPrevVolume    = iCurrentVolume;
-	iCurrentVolume = aCurrentVolume;
-	iMaxVolume     = aMaxVolume;
-	EUNIT_PRINT(_L("current volume %d"),aCurrentVolume);
-	if(iWait.IsStarted())
-		{
-		iWait.AsyncStop();
-		}
-	}
-
-void T_CShwMusicControl::ErrorWithTrackL( TInt aErrorCode )
-	{
-	iErrorCode = aErrorCode;
-	}
-
-void T_CShwMusicControl::Empty()
-	{
-	}
-
-void T_CShwMusicControl::SetupL()
-    {
-    // reset current and max volume
-    iCurrentVolume = KErrNotFound;
-    iMaxVolume = KErrNotFound;
-    // reset error code
-    iErrorCode = KErrNone;
-    // reset leave flag
-    iLeaveInObserver = KErrNone;
-    // reset state flags
-    gMusicOnCalled = EFalse;
-    gMusicOffCalled = EFalse;
-    
-    iCShwMusicControl = CShwMusicControl::NewL( *this, KFileName );
-	// set the event queue - inherited from parent CShwEventPublisherBase
-	iCShwMusicControl->SetEventQueue(this);
-    }
-
-
-void T_CShwMusicControl::Teardown()
-    {
-    delete iCShwMusicControl;
-    iCShwMusicControl = NULL;
-    
-    delete iEvent;
-    iEvent = NULL;
-    }
-
-void T_CShwMusicControl::TestConstructL()
-	{
-	EUNIT_PRINT(_L("CShwMusicControl::NewL"));
-	// create 
-    iCShwMusicControl = CShwMusicControl::NewL(*this, KFileName);
-	// set the event queue
-	iCShwMusicControl->SetEventQueue(this);
-	// test that object exists
-	EUNIT_ASSERT_DESC(iCShwMusicControl, "object created");
-	// test that no error
-	EUNIT_ASSERT_EQUALS_DESC( 
-	    KErrNone, iErrorCode, "if there was error, make sure track file exists");
-	// delete music control
-    delete iCShwMusicControl;
-    iCShwMusicControl = NULL;
-    // EUnit checks for memory leaks
-	}
-
-void T_CShwMusicControl::T_NotifyLL()
-    {
-	// test that no error
-	EUNIT_ASSERT_EQUALS_DESC( 
-	    KErrNone, iErrorCode, "if there was error, make sure track file exists");
-    // send start event
-    TShwEventStart start;
-    iCShwMusicControl->NotifyL(&start);
-	// Need to let the scheduler loop to get first volume callback
-	iWait.Start(); // Wait for notification of volume
-	EUNIT_ASSERT(iMusicOn == ETrue);
-    EUNIT_ASSERT(iCurrentVolume != KErrNotFound && iMaxVolume != KErrNotFound);
-    }
-
-void T_CShwMusicControl::T_NotifyL1L()
-    {
-	// test that no error
-	EUNIT_ASSERT_EQUALS_DESC( 
-	    KErrNone, iErrorCode, "if there was error, make sure track file exists");
-    // if should evaluate false: if (event)
-    MShwEvent* iParam1 = NULL;
-    iCShwMusicControl->NotifyL(iParam1);
-
-	EUNIT_ASSERT_DESC( !iEvent, "event was not received" );
-
-    // test also HandlePropertyL with unsupported property
-    iCShwMusicControl->HandlePropertyL( EPbPropertyMute, 0, 0 );
-    // test that volume was not send
-    EUNIT_ASSERT( iCurrentVolume == KErrNotFound && iMaxVolume == KErrNotFound );
-    }
-    
-void T_CShwMusicControl::T_NotifyL2L()
-    {
-	// test that no error
-	EUNIT_ASSERT_EQUALS_DESC( 
-	    KErrNone, iErrorCode, "if there was error, make sure track file exists");
-    // send start event
-    TShwEventStart start;
-    iCShwMusicControl->NotifyL( &start );
-	// Need to let the scheduler loop to get first volume callback
-	iWait.Start();
-	// check that we got the volume
-    EUNIT_ASSERT(iCurrentVolume != KErrNotFound && iMaxVolume != KErrNotFound);
-
-    // send pause
-    TShwEventPause pause;
-    iCShwMusicControl->NotifyL( &pause );
-	EUNIT_ASSERT( iMusicOn == EFalse );
-
-    // send resume
-    TShwEventResume resume;
-    iCShwMusicControl->NotifyL( &resume );
-
-	EUNIT_ASSERT(iMusicOn != EFalse );
-	}
-
-void T_CShwMusicControl::T_NotifyL3L()
-    {
-	// test that no error
-	EUNIT_ASSERT_EQUALS_DESC( 
-	    KErrNone, iErrorCode, "if there was error, make sure track file exists");
-    // send resume before start
-    TShwEventResume resume;
-    iCShwMusicControl->NotifyL( &resume );
-	EUNIT_ASSERT_DESC( iMusicOn == ETrue, "music is on" );
-
-    // Send pause before start, does not pause
-    TShwEventPause pause;
-    iCShwMusicControl->NotifyL( &pause );
-	EUNIT_ASSERT_DESC( iMusicOn == EFalse, "music is off" );
-
-    // send start event
-    TShwEventStart start;
-    iCShwMusicControl->NotifyL( &start );
-	// Need to let the scheduler loop to get first volume callback
-	iWait.Start();
-
-    // Second subsequent pause request 
-    iCShwMusicControl->NotifyL( &pause );
-	EUNIT_ASSERT_DESC( iMusicOn == EFalse, "music is now paused" );
-	}
-
-void T_CShwMusicControl::T_NotifyL4L()
-    {
-	// test that no error
-	EUNIT_ASSERT_EQUALS_DESC( 
-	    KErrNone, iErrorCode, "if there was error, make sure track file exists");
-    // send start event
-    TShwEventStart start;
-    iCShwMusicControl->NotifyL(&start);
-	// Need to let the scheduler loop to get first volume callback
-	iWait.Start();
-	
-    // if should evaluate false: if (event)
-    TShwEventVolumeDown vol;
-    iCShwMusicControl->NotifyL(&vol);
-
-	// Need to let the scheduler loop to get another volume callback
-	iWait.Start();
-	EUNIT_ASSERT_GREATER_DESC( iPrevVolume, iCurrentVolume, "volume should decrease" );
-	EUNIT_ASSERT_NOT_EQUALS( KErrNotFound, iMaxVolume );
-	 
-	iMaxVolume = KErrNotFound;
-    }
-    
-void T_CShwMusicControl::T_NotifyL5L()
-    {
-	// test that no error
-	EUNIT_ASSERT_EQUALS_DESC( 
-	    KErrNone, iErrorCode, "if there was error, make sure track file exists");
-    // send start event
-    TShwEventStart start;
-    iCShwMusicControl->NotifyL(&start);
-	// Need to let the scheduler loop to get first volume callback
-	iWait.Start();
-	
-    // if should evaluate false: if (event)
-    TShwEventVolumeUp vol;
-    iCShwMusicControl->NotifyL(&vol);
-
-	// Need to let the scheduler loop to get another volume callback
-	iWait.Start();
-	EUNIT_ASSERT_GREATER_DESC( iCurrentVolume, iPrevVolume, "volume should increase" );
-	EUNIT_ASSERT_NOT_EQUALS( KErrNotFound, iMaxVolume );
-	iMaxVolume = KErrNotFound;
-	}
-        
-void T_CShwMusicControl::T_ExtendedPlayL()
-    {
-	// test that no error
-	EUNIT_ASSERT_EQUALS_DESC( 
-	    KErrNone, iErrorCode, "if there was error, make sure track file exists");
-
-    TShwEventStart start;
-    iCShwMusicControl->NotifyL( &start );
-	
-	if (!iTimer)
-		{
-		iTimer = CPeriodic::NewL(EPriorityNormal);
-		}
-
-    // play for 10 seconds
-	const TInt KPlayPeriod = 10 * 1000000;    // Microseconds
-	TCallBack callBack(StopPlaying, this);
-	iTimer->Start(KPlayPeriod, KPlayPeriod, callBack);		
-	
-	iPlayWait.Start();
-	
-	delete iTimer;
-    iTimer = NULL;
-	
-    TShwEventPause pause;
-    iCShwMusicControl->NotifyL(&pause);
-	EUNIT_ASSERT(iMusicOn == EFalse);
-
-	}   
-
-TInt T_CShwMusicControl::StopPlaying(TAny* aMusicControl)
-    {
-    T_CShwMusicControl* self = reinterpret_cast<T_CShwMusicControl*>(aMusicControl);
-
-	if(self->iPlayWait.IsStarted())
-		{
-		self->iPlayWait.AsyncStop();
-		}
-
-    return KErrNone;
-    }    
-
-void T_CShwMusicControl::T_ErrorInFileL()
-    {
-    // need to reset state as the setup is empty
-    gMusicOnCalled = EFalse;
-    // file that does not exist
-    _LIT( KErrorFileName, "C:\\juubaduuba.mp123" );
-	// create 
-    iCShwMusicControl = CShwMusicControl::NewL( *this, KErrorFileName );
-	// set the event queue
-	iCShwMusicControl->SetEventQueue( this );
-	// test that object exists
-	EUNIT_ASSERT_DESC(iCShwMusicControl, "object created");
-	
-	// test that error was called
-	// test that no error
-	EUNIT_ASSERT_EQUALS_DESC( 
-	    KErrNotFound, iErrorCode, "track should not exist");
-
-    // test that start is a no-op
-    TShwEventStart start;
-    iCShwMusicControl->NotifyL( &start );
-	
-	// test that music is off
-    EUNIT_ASSERT_DESC( gMusicOnCalled == EFalse, "music on was not called" );
-
-	// delete music control
-    delete iCShwMusicControl;
-    iCShwMusicControl = NULL;
-    // EUnit checks for memory leaks
-	}   
-
-void T_CShwMusicControl::T_LeaveInObserverL()
-    {
-    // make observer leave
-    iLeaveInObserver = KErrCorrupt;
-
-    // send start event
-    TShwEventStart start;
-    iCShwMusicControl->NotifyL( &start );
-    
-	// test that music is off
-	EUNIT_ASSERT_DESC( iMusicOn == EFalse, "music is off");
-    EUNIT_ASSERT_DESC( gMusicOnCalled == ETrue, "music on was called (and it did leave)" );
-    EUNIT_ASSERT_DESC( gMusicOffCalled == ETrue, "music off was called" );
-    // reset flags
-    gMusicOnCalled = EFalse;
-    gMusicOffCalled = EFalse;
-
-    // make observer not leave
-    iLeaveInObserver = KErrNone;
-
-    // resend start event
-    iCShwMusicControl->NotifyL( &start );
-	// test that music is on
-	EUNIT_ASSERT_DESC( iMusicOn == ETrue, "music is on");
-    EUNIT_ASSERT_DESC( gMusicOnCalled == ETrue, "music on was called" );
-    EUNIT_ASSERT_DESC( gMusicOffCalled == EFalse, "music off was not called" );
-    // reset flags
-    gMusicOnCalled = EFalse;
-    gMusicOffCalled = EFalse;
-
-    // send pause
-    TShwEventPause pause;
-    iCShwMusicControl->NotifyL( &pause );
-	EUNIT_ASSERT_DESC( iMusicOn == EFalse, "music is off" );
-    EUNIT_ASSERT_DESC( gMusicOnCalled == EFalse, "music on was not called" );
-    EUNIT_ASSERT_DESC( gMusicOffCalled == ETrue, "music off was called" );
-    // reset flags
-    gMusicOnCalled = EFalse;
-    gMusicOffCalled = EFalse;
-
-    // make observer leave
-    iLeaveInObserver = KErrCorrupt;
-
-    // send resume
-    TShwEventResume resume;
-    iCShwMusicControl->NotifyL( &resume );
-	EUNIT_ASSERT_DESC( iMusicOn == EFalse, "music is off" );
-    EUNIT_ASSERT_DESC( gMusicOnCalled == ETrue, "music on was called (and it did leave)" );
-    EUNIT_ASSERT_DESC( gMusicOffCalled == ETrue, "music off was called" );
-    // reset flags
-    gMusicOnCalled = EFalse;
-    gMusicOffCalled = EFalse;
-
-    // send volume up
-    TShwEventVolumeUp vol;
-    iCShwMusicControl->NotifyL( &vol );
-    EUNIT_ASSERT_DESC( gMusicOnCalled == EFalse, "music on was not called" );
-    EUNIT_ASSERT_DESC( gMusicOffCalled == EFalse, "music off was not called" );
-    // reset flags
-    gMusicOnCalled = EFalse;
-    gMusicOffCalled = EFalse;
-
-    // make observer not leave
-    iLeaveInObserver = KErrNone;
-
-    // send resume
-    iCShwMusicControl->NotifyL( &resume );
-	EUNIT_ASSERT_DESC( iMusicOn == ETrue, "music is on" );
-    EUNIT_ASSERT_DESC( gMusicOnCalled == ETrue, "music on was called" );
-    EUNIT_ASSERT_DESC( gMusicOffCalled == EFalse, "music off was not called" );
-	}
-
-//  TEST TABLE
-EUNIT_BEGIN_TEST_TABLE(
-    T_CShwMusicControl,
-    "Test suite for CShwMusicControl",
-    "UNIT" )
-
-/*
- Commented out as MPX crashes with Kern-exec 0
-EUNIT_ALLOC_TEST(
-    "Constructor test",
-    "CShwMusicControl",
-    "NewL",
-    "FUNCTIONALITY",
-    Empty, TestConstructL, Teardown )
-*/
-// these cant be decorated as the EUnit
-// scheduler does not implement Error method
-EUNIT_NOT_DECORATED_TEST(
-    "NotifyL - test 0",
-    "CShwMusicControl",
-    "NotifyL",
-    "FUNCTIONALITY",
-    SetupL, T_NotifyLL, Teardown)
-
-EUNIT_NOT_DECORATED_TEST(
-    "NotifyL - test 1",
-    "CShwMusicControl",
-    "NotifyL",
-    "FUNCTIONALITY",
-    SetupL, T_NotifyL1L, Teardown)
-
-EUNIT_NOT_DECORATED_TEST(
-    "NotifyL - test 2",
-    "CShwMusicControl",
-    "NotifyL",
-    "FUNCTIONALITY",
-    SetupL, T_NotifyL2L, Teardown)
-
-EUNIT_NOT_DECORATED_TEST(
-    "NotifyL - test 3",
-    "CShwMusicControl",
-    "NotifyL",
-    "FUNCTIONALITY",
-    SetupL, T_NotifyL3L, Teardown)
-
-EUNIT_NOT_DECORATED_TEST(
-    "NotifyL - test 4",
-    "CShwMusicControl",
-    "NotifyL",
-    "FUNCTIONALITY",
-    SetupL, T_NotifyL4L, Teardown)
-
-EUNIT_NOT_DECORATED_TEST(
-    "NotifyL - test 5",
-    "CShwMusicControl",
-    "NotifyL",
-    "FUNCTIONALITY",
-    SetupL, T_NotifyL5L, Teardown)
-
-EUNIT_NOT_DECORATED_TEST(
-    "Test error in file",
-    "CShwMusicControl",
-    "ConstructL, NotifyL",
-    "FUNCTIONALITY",
-    Empty, T_ErrorInFileL, Teardown)
-
-EUNIT_NOT_DECORATED_TEST(
-    "Test leave in observer",
-    "CShwMusicControl",
-    "NotifyL",
-    "FUNCTIONALITY",
-    SetupL, T_LeaveInObserverL, Teardown )
-
-/*
-commented out as no added value for the time beeing
-EUNIT_NOT_DECORATED_TEST(
-    "Play for multitple seconds",
-    "CShwMusicControl",
-    "NotifyL - test 6",
-    "FUNCTIONALITY",
-    SetupL, T_ExtendedPlayL, Teardown)
-*/
-    
-    
-EUNIT_END_TEST_TABLE
-
-//  END OF FILE