--- a/radioapp/radioenginewrapper/tsrc/src/t_radioenginewrapper.cpp Fri Aug 06 09:29:48 2010 +0300
+++ b/radioapp/radioenginewrapper/tsrc/src/t_radioenginewrapper.cpp Mon Aug 23 14:17:50 2010 +0300
@@ -29,10 +29,10 @@
#include "radiologger.h" //Radio::connect
#include <cradiosettings.h>
#include "mradioenginesettings.h"
-#include <radiostubmanager.h>
#include "trace.h"
#include "RadioClientServer.h"
#include "radiointernalcrkeys.h"
+#include "radioengineutils.h"
#define STUB mRadioStubManager
#define TUNER mRadioStubManager->iTuner
@@ -42,8 +42,6 @@
#define REMCONTARGET mRadioStubManager->iRemConTarget
// Constants
-const uint KTestFrequency1 = 89000000;
-const QString KTestStationName1 = "Radio Noice";
// CONSTANTS
_LIT_SECURITY_POLICY_PASS(KRadioServerReadPolicy);
@@ -64,6 +62,7 @@
int res = QTest::qExec(&tv, 3, pass);
+ INFO_1( "Main, result value %i", res );
return res;
}
@@ -153,23 +152,22 @@
QVERIFY2( KErrNone == err, "Setting key KRadioCRTunedFrequency failed!" );
}
-
-void TestRadioEngineWrapper::seekingStarted( Seeking::Direction /* direction */)
-{
-FUNC_LOG;
-mEnteredSlots |= SeekingStarted;
-}
-
-void TestRadioEngineWrapper::radioStatusChanged( bool /* radioIsOn */)
-{
-FUNC_LOG;
-}
-
+
void TestRadioEngineWrapper::rdsAvailabilityChanged( bool /* available */)
{
FUNC_LOG;
}
+void TestRadioEngineWrapper::increaseVolume()
+{
+FUNC_LOG;
+}
+
+void TestRadioEngineWrapper::decreaseVolume()
+{
+FUNC_LOG;
+}
+
void TestRadioEngineWrapper::volumeChanged( int volume )
{
FUNC_LOG;
@@ -183,22 +181,16 @@
mEnteredSlots |= MuteChanged;
}
+void TestRadioEngineWrapper::antennaStatusChanged( bool /* muted */)
+{
+FUNC_LOG;
+mEnteredSlots |= AntennaChanged;
+}
+
void TestRadioEngineWrapper::audioRouteChanged( bool /* loudspeaker */)
{
FUNC_LOG;
}
-
-void TestRadioEngineWrapper::scanAndSaveFinished()
-{
-FUNC_LOG;
-}
-
-
-void TestRadioEngineWrapper::headsetStatusChanged( bool /* connected */)
-{
-FUNC_LOG;
-mEnteredSlots |= HeadsetConnected;
-}
void TestRadioEngineWrapper::skipPrevious()
{
@@ -269,12 +261,6 @@
mSchedulerTimer->StartTimer( 1000000, CSchedulerStopAndStartTimer::ETimerIdCreateMUT );
}
-void TestRadioEngineWrapper::testIsEngineConstructed()
-{
- FUNC_LOG;
- QVERIFY2( mEngineWrapper->isEngineConstructed(), "Radio Engine not constructed!" );;
-}
-
void TestRadioEngineWrapper::testRadioSettingsReference()
{
FUNC_LOG;
@@ -306,20 +292,22 @@
TInt err(KErrNone);
TBool antennaAttached = ETrue;
- QVERIFY2(KErrNone == err, "Attaching property ERadioServPsAntennaStatus failed!" );
err = RProperty::Set( KStub_KRadioServerPropertyCategory, ERadioServPsAntennaStatus, antennaAttached );
INFO_1("RProperty::Set( KStub_KRadioServerPropertyCategory, ERadioServPsAntennaStatus, antennaAttached ) err: %d", err);
QVERIFY2( KErrNone == err, "Setting property ERadioServPsAntennaStatus failed!" );
mSchedulerTimer->StartTimer( 1000000 );
QVERIFY2( mEngineWrapper->isAntennaAttached(), "Headset/Antenna not connected!");
- QVERIFY2( mEnteredSlots &= HeadsetConnected, "Headset/Antenna not connected!");
-
- err = mRadioCR->Set( KRadioCRVisualRadioPowerState, ETrue );
- QVERIFY2( KErrNone == err, "Setting key KRadioCRVisualRadioPowerState failed!" );
+ ACCESSORYOBSERVER.iObserver->HeadsetConnectedCallbackL();
+
+ TPckgBuf<TRsSettingsData> playerState;
+ playerState().iError = KErrNone;
+ playerState().iData1 = ETrue;
+ err = RProperty::Set( KStub_KRadioServerPropertyCategory, ERadioServPsPlayerState, playerState );
+ QVERIFY2( KErrNone == err, "Setting property ERadioServPsPlayerState failed!" );
mSchedulerTimer->StartTimer( 1000000 );
+ QVERIFY2( mEngineWrapper->isAntennaAttached(), "Headset/Antenna not connected!");
QVERIFY2( mEngineWrapper->isRadioOn(), "Radio is not on!" );
- //QVERIFY2( !mEngineWrapper->isFrequencyValid( 0 ), "Zero frequency accepted!" );
}
void TestRadioEngineWrapper::testTuning()
@@ -327,103 +315,129 @@
FUNC_LOG;
QVERIFY2( mEngineWrapper->isRadioOn(), "Radio is not on!" );
- mEngineWrapper->tuneFrequency( mEngineWrapper->minFrequency() );
- mSchedulerTimer->StartTimer( 1000000 );
- QVERIFY2( mEngineWrapper->currentFrequency() == mEngineWrapper->minFrequency(), "Tuning to minimum frequency failed!");
-
- uint freq_A = mEngineWrapper->currentFrequency();
- mSchedulerTimer->StartTimer( 1000 );
- tstSetFrequency( freq_A + mEngineWrapper->frequencyStepSize() );
- mEngineWrapper->startSeeking( Seeking::Up );
- QVERIFY2( mEnteredSlots &= SeekingStarted, "Seeking upwards not started!");
- mEnteredSlots &= !SeekingStarted;
-
+ // Tune to minimum frequency
+ mEngineWrapper->setFrequency( mEngineWrapper->minFrequency() );
TInt err = mPropertyFrequency.Set( KStub_KRadioServerPropertyCategory, ERadioServPsFrequency, tstGetFrequency() );
QVERIFY2( KErrNone == err, "Setting property ERadioServPsFrequency failed!" );
mSchedulerTimer->StartTimer( 1000000 );
+ INFO_1("mEngineWrapper->minFrequency() = %i", mEngineWrapper->minFrequency() );
+ INFO_1("mEngineWrapper->currentFrequency() = %i", mEngineWrapper->currentFrequency() );
+ QVERIFY2( mEngineWrapper->currentFrequency() == mEngineWrapper->minFrequency(), "Tuning to minimum frequency failed!");
- QVERIFY2( mEnteredSlots &= TunedToFrequency, "Not Tuned to next upward frequency!");
+ // Seek upwards
+ uint freq_A = mEngineWrapper->currentFrequency();
+ //mSchedulerTimer->StartTimer( 1000 );
+ tstSetFrequency( freq_A + mEngineWrapper->frequencyStepSize() );
+ mEngineWrapper->startSeeking( Seek::Up );
+ err = mPropertyFrequency.Set( KStub_KRadioServerPropertyCategory, ERadioServPsFrequency, tstGetFrequency() );
+ QVERIFY2( KErrNone == err, "Setting property ERadioServPsFrequency failed!" );
+ mSchedulerTimer->StartTimer( 1000000 );
+ QVERIFY2( TunedToFrequency == ( mEnteredSlots & TunedToFrequency ), "Not Tuned to next upward frequency!");
mEnteredSlots &= !TunedToFrequency;
uint freq_B = mEngineWrapper->currentFrequency();
QVERIFY2( (freq_B - mEngineWrapper->frequencyStepSize()) == freq_A, "Seeking upwards failed!");
+ // Tune to maximum frequency
tstSetFrequency( mEngineWrapper->maxFrequency() );
- mEngineWrapper->tuneFrequency( mEngineWrapper->maxFrequency() );
+ mEngineWrapper->setFrequency( mEngineWrapper->maxFrequency() );
+ err = mPropertyFrequency.Set( KStub_KRadioServerPropertyCategory, ERadioServPsFrequency, tstGetFrequency() );
+ QVERIFY2( KErrNone == err, "Setting property ERadioServPsFrequency failed!" );
mSchedulerTimer->StartTimer( 1000000 );
+ QVERIFY2( TunedToFrequency == ( mEnteredSlots & TunedToFrequency ), "Not Tuned to maximum frequency!");
+ mEnteredSlots &= !TunedToFrequency;
QVERIFY2( mEngineWrapper->currentFrequency() == mEngineWrapper->maxFrequency(), "Current frequency not the maximum one!" );
- mEngineWrapper->startSeeking( Seeking::Down );
- QVERIFY2( mEnteredSlots &= SeekingStarted, "Seeking downwards not started!");
- mEnteredSlots &= !SeekingStarted;
-
+
+ // Seek downwards
+ mEngineWrapper->startSeeking( Seek::Down );
tstSetFrequency( mEngineWrapper->currentFrequency() - (2 * mEngineWrapper->frequencyStepSize()) );
err = mPropertyFrequency.Set( KStub_KRadioServerPropertyCategory, ERadioServPsFrequency, tstGetFrequency() );
QVERIFY2( KErrNone == err, "Setting property ERadioServPsFrequency failed!" );
mSchedulerTimer->StartTimer( 1000000 );
-
- QVERIFY2( mEnteredSlots &= TunedToFrequency, "Not Tuned to next downward frequency!");
+ QVERIFY2( TunedToFrequency == ( mEnteredSlots & TunedToFrequency ), "Not Tuned to next downward frequency!");
mEnteredSlots &= !TunedToFrequency;
QVERIFY2( mEngineWrapper->currentFrequency() == mEngineWrapper->maxFrequency()- (2 * mEngineWrapper->frequencyStepSize()), "Seeking downwards failed!");
- mEngineWrapper->tuneFrequency( (mEngineWrapper->maxFrequency() + mEngineWrapper->minFrequency())/2 );
+ // Tune to avarage frequency
+ uint averageFrequency( mEngineWrapper->maxFrequency() + mEngineWrapper->minFrequency() );
+ averageFrequency /= 2;
+ averageFrequency -= ( averageFrequency % mEngineWrapper->frequencyStepSize() );
+ mEngineWrapper->setFrequency( averageFrequency );
+ err = mPropertyFrequency.Set( KStub_KRadioServerPropertyCategory, ERadioServPsFrequency, tstGetFrequency() );
+ QVERIFY2( KErrNone == err, "Setting property ERadioServPsFrequency failed!" );
mSchedulerTimer->StartTimer( 1000000 );
- QVERIFY2( mEngineWrapper->currentFrequency() == (mEngineWrapper->maxFrequency() + mEngineWrapper->minFrequency())/2, "Tuning to average frequency failed!");
+ QVERIFY2( TunedToFrequency == ( mEnteredSlots & TunedToFrequency ), "Not Tuned to average frequency!");
+ mEnteredSlots &= !TunedToFrequency;
+ QVERIFY2( mEngineWrapper->currentFrequency() == averageFrequency, "Tuning to average frequency failed!");
+ // Try to use frequency above maximum
uint freq_C = mEngineWrapper->currentFrequency();
TUNER.iSetFrequencyError.SetStubError( KRadioServErrFrequencyOutOfBandRange );
- mEngineWrapper->tuneFrequency( mEngineWrapper->maxFrequency() + mEngineWrapper->frequencyStepSize() );
- mSchedulerTimer->StartTimer( 1000000 );
-
- // Should be == not != as now. This is to continue after bug
+ mEngineWrapper->setFrequency( mEngineWrapper->maxFrequency() + mEngineWrapper->frequencyStepSize() );
+ mSchedulerTimer->StartTimer( 1000000 );
+ // Should be == not != as now. This is done in order to complete tests.
QVERIFY2( mEngineWrapper->currentFrequency() != freq_C, "Tuning over maximum frequency succeeded?");
QVERIFY2( !mEngineWrapper->isFrequencyValid( mEngineWrapper->currentFrequency() ), "A frequency over maximum accepted?");
+ // Try to use frequency below minimum
uint freq_D = mEngineWrapper->currentFrequency();
TUNER.iSetFrequencyError.SetStubError( KRadioServErrFrequencyOutOfBandRange );
- mEngineWrapper->tuneFrequency( mEngineWrapper->minFrequency() - mEngineWrapper->frequencyStepSize() );
+ mEngineWrapper->setFrequency( mEngineWrapper->minFrequency() - mEngineWrapper->frequencyStepSize() );
mSchedulerTimer->StartTimer( 1000000 );
- // Should be == not != as now. This is to continue after bug
+ // Should be == not != as now. This is done in order to complete tests.
QVERIFY2( mEngineWrapper->currentFrequency() != freq_D, "Tuning below minimum frequency succeeded?");
QVERIFY2( !mEngineWrapper->isFrequencyValid( mEngineWrapper->currentFrequency() ), "A frequency below minimum accepted?");
}
-void TestRadioEngineWrapper::testTuningWithDelay()
+void TestRadioEngineWrapper::testCancelSeeking()
{
FUNC_LOG;
QVERIFY2( mEngineWrapper->isRadioOn(), "Radio is not on!" );
- uint freq_A = mEngineWrapper->currentFrequency();
- uint freq_B = mEngineWrapper->currentFrequency();
- mEngineWrapper->tuneWithDelay( freq_B );
+
+ mEngineWrapper->startSeeking( Seek::Up, TuneReason::StationScanInitialization );
mSchedulerTimer->StartTimer( 1000000 );
- QVERIFY2( mEngineWrapper->currentFrequency() == freq_B, "Tuning with delay failed?");
- mEngineWrapper->tuneWithDelay( freq_A );
+ TInt frequency1( mEngineWrapper->currentFrequency() );
+
+ mEngineWrapper->startSeeking( Seek::Up, TuneReason::StationScan );
+ tstSetFrequency( mEngineWrapper->currentFrequency() + mEngineWrapper->frequencyStepSize() );
+ TInt err = mPropertyFrequency.Set( KStub_KRadioServerPropertyCategory, ERadioServPsFrequency, tstGetFrequency() );
+ QVERIFY2( KErrNone == err, "Setting property ERadioServPsFrequency failed!" );
mSchedulerTimer->StartTimer( 1000000 );
- QVERIFY2( mEngineWrapper->currentFrequency() == freq_A, "Tuning with delay failed?");
+ QVERIFY2( mEngineWrapper->currentFrequency() > frequency1, "Seeking Upwards failed!" );
+ frequency1 = mEngineWrapper->currentFrequency();
+
+ mEngineWrapper->cancelSeeking();
}
-void TestRadioEngineWrapper::testMuteToggling()
+/* Mute's callback function CRadioEngine::MrpoMuteChange() is commented in radio engine, so no point to test here.
+void TestRadioEngineWrapper::testMute()
{
FUNC_LOG;
QVERIFY2( mEngineWrapper->isRadioOn(), "Radio is not on!" );
+ // Toggle mute.
TBool muted_1( mEngineWrapper->isMuted() );
- mEngineWrapper->toggleMute();
-
+ INFO_1( "muted_1", muted_1 );
+ mEngineWrapper->setMute( !muted_1 );
+ TInt err = mPropertyFrequency.Set( KStub_KRadioServerPropertyCategory, ERadioServPsMuteStatus, muted_1 ? 0x0 : 0xff );
+ QVERIFY2( KErrNone == err, "Setting property ERadioServPsMuteStatus failed!" );
mSchedulerTimer->StartTimer( 1000000 );
-
TBool muted_2( mEngineWrapper->isMuted() );
QVERIFY2( mEnteredSlots &= MuteChanged, "Mute not changed!");
mEnteredSlots &= !MuteChanged;
QVERIFY2( muted_1 != muted_2, "Mute() not working!" );
- mEngineWrapper->toggleMute();
-
+
+ // Toggle back to original value
+ mEngineWrapper->setMute( muted_1 );
+ err = mPropertyFrequency.Set( KStub_KRadioServerPropertyCategory, ERadioServPsMuteStatus, muted_1 );
+ QVERIFY2( KErrNone == err, "Setting property ERadioServPsMuteStatus failed!" );
mSchedulerTimer->StartTimer( 1000000 );
-
TBool muted_3( mEngineWrapper->isMuted() );
QVERIFY2( mEnteredSlots &= MuteChanged, "Mute not changed!");
mEnteredSlots &= !MuteChanged;
QVERIFY2( muted_1 == muted_3, "Mute status not changed to original value!") ;
}
+*/
void TestRadioEngineWrapper::testVolumeSetting()
@@ -433,7 +447,7 @@
// is missing from test constellation.
QVERIFY2( mEngineWrapper->isRadioOn(), "Radio is not on!" );
INFO_1( "mLastRecordedVolume: %i", mLastRecordedVolume );
- TInt volume_1( 1000 );
+ TInt volume_1( 10 );
mEngineWrapper->setVolume( volume_1 );
mSchedulerTimer->StartTimer( 1000000 );
@@ -444,13 +458,39 @@
QVERIFY2( volume_1 == mLastRecordedVolume, "Volume has unexpected value!") ;
volume_1 = mLastRecordedVolume;
- TInt volume_2( mLastRecordedVolume * 30 );
+ TInt volume_2( (mLastRecordedVolume + 5)%20 );
mEngineWrapper->setVolume( volume_2 );
mSchedulerTimer->StartTimer( 1000000 );
INFO_1( "mLastRecordedVolume: %i", mLastRecordedVolume );
+ QVERIFY2( mEnteredSlots &= VolumeChanged, "Volume not changed!");
+ mEnteredSlots &= !VolumeChanged;
QVERIFY2( volume_2 == mLastRecordedVolume, "Volume has unexpected value!") ;
+
+ // Increase volume
+ mEngineWrapper->setVolume( volume_1 );
+ mSchedulerTimer->StartTimer( 1000000 );
+ mEngineWrapper->increaseVolume();
+ mSchedulerTimer->StartTimer( 1000000 );
+ QVERIFY2( mEnteredSlots &= VolumeChanged, "Volume not increased!");
+ mEnteredSlots &= !VolumeChanged;
+ QVERIFY2( volume_1 != mLastRecordedVolume, "Volume has unexpected value, not increased!") ;
+ INFO_1( "mLastRecordedVolume: %i", mLastRecordedVolume );
+
+ // Decrease volume
+ mEngineWrapper->setVolume( volume_1 );
+ mSchedulerTimer->StartTimer( 1000000 );
+ mEngineWrapper->decreaseVolume();
+ mSchedulerTimer->StartTimer( 1000000 );
+ QVERIFY2( mEnteredSlots &= VolumeChanged, "Volume not decreased!");
+ mEnteredSlots &= !VolumeChanged;
+ QVERIFY2( volume_1 != mLastRecordedVolume, "Volume has unexpected value, not decreased!") ;
+ INFO_1( "mLastRecordedVolume: %i", mLastRecordedVolume );
+
+ mEngineWrapper->toggleAudioRoute();
+ mEngineWrapper->toggleAudioRoute();
+
}
void TestRadioEngineWrapper::testLoudSpeakerUsage()
@@ -461,18 +501,6 @@
INFO_1( "isLoudSpeakerUsed: %i", isLoudSpeakerUsed );
}
-void TestRadioEngineWrapper::testScanning()
- {
- FUNC_LOG;
- QVERIFY2( mEngineWrapper->isRadioOn(), "Radio is not on!" );
- tstSetScanningData( 10, mEngineWrapper->minFrequency(), mEngineWrapper->frequencyStepSize() );
- QVERIFY2( TUNER.iScanStations.iCount == 10, "Scanning not initialized!" );
- mEngineWrapper->scanFrequencyBand();
- mSchedulerTimer->StartTimer( 1000000 );
-
- INFO_1( "TUNER.iScanStations.iCount: %i", TUNER.iScanStations.iCount );
- QVERIFY2( TUNER.iScanStations.iCount == 0, "Scanning not completed!" );
- }
/*!
* called after the last testfunction was executed
@@ -480,11 +508,7 @@
void TestRadioEngineWrapper::cleanupTestCase()
{
FUNC_LOG;
- delete mEngineWrapper;
- mEngineWrapper = NULL;
-
- //mSchedulerTimer->StartTimer( 1000000, CSchedulerStopAndStartTimer::ETimerIdDeleteMUT );
-
+ DeleteMUT();
delete mScheduler;
mScheduler = NULL;
mRadioStubManagerChunk.Close();
@@ -536,16 +560,23 @@
{
FUNC_LOG;
tstDefineAndAttachRadioServerProperties();
- tstCreateCRObjects();
TInt err( KErrNone );
- TRAP( err, mEngineWrapper = new (ELeave) RadioEngineWrapper( *this, *this ) );
+ err = tstCreateCRObjects();
+ QVERIFY2( KErrNone == err, "Radio CR not created!" );
+ TRAP( err, mEngineWrapper = new (ELeave) RadioEngineWrapper( *this ) );
+ RadioEngineUtils::InitializeL();
+ bool retVal( EFalse );
+ retVal = mEngineWrapper->init();
+ QVERIFY2( EFalse != retVal, "mEngineWrapper->init() failed!");
+ mEngineWrapper->addObserver( this );
QVERIFY2( KErrNone == err, "Radio Engine not constructed!" );
- tstSetTunerCababilities();
+ tstSetTunerCababilities();
}
void TestRadioEngineWrapper::DeleteMUT()
{
FUNC_LOG;
+ mEngineWrapper->removeObserver( this );
delete mEngineWrapper;
mEngineWrapper = NULL;
}
@@ -611,11 +642,13 @@
QVERIFY2(KErrNone == mPropertyBalance.Attach( KStub_KRadioServerPropertyCategory, ERadioServPsBalance ), "Property Attach() failed!");
}
-void TestRadioEngineWrapper::tstCreateCRObjects()
+TInt TestRadioEngineWrapper::tstCreateCRObjects()
{
+ FUNC_LOG;
TInt err( KErrNone );
TRAP( err, mRadioCR = CRepository::NewL(KStub_KRadioCRUid) );
- QVERIFY2( KErrNone == err, "Radio Central Repository create/open failed!" );
+ INFO_1( "Returning err = %i", err );
+ return err;
}