--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpengine/tsrc/unittest_mpengine/src/unittest_mpengine.cpp Fri Aug 06 16:51:36 2010 -0500
@@ -0,0 +1,565 @@
+/*
+* Copyright (c) 2009 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: Unit test for mpengine
+*
+*/
+
+#include <QSignalSpy>
+#include <EqualizerConstants.h>
+
+#include "unittest_mpengine.h"
+#include "mpmediakeyhandler.h"
+#include "mpmpxcollectionviewdefs.h"
+
+#define private public
+#include "mpengine.h"
+#undef private
+
+// help to test private function
+#include "../../src/mpengine.cpp"
+
+/*!
+ Make our test case a stand-alone executable that runs all the test functions.
+ */
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+
+ TestMpEngine tv;
+
+ if ( argc > 1 ) {
+ return QTest::qExec( &tv, argc, argv);
+ }
+ else {
+ char *pass[3];
+ pass[0] = argv[0];
+ pass[1] = "-o";
+ pass[2] = "c:\\data\\unittest_mpengine.txt";
+
+ return QTest::qExec(&tv, 3, pass);
+ }
+}
+
+TestMpEngine::TestMpEngine()
+ : mTest(0)
+{
+}
+
+TestMpEngine::~TestMpEngine()
+{
+ delete mTest;
+}
+
+/*!
+ Called before the first testfunction is executed.
+ */
+void TestMpEngine::initTestCase()
+{
+}
+
+/*!
+ Called after the last testfunction was executed.
+ */
+void TestMpEngine::cleanupTestCase()
+{
+ MpEngineFactory::close();
+}
+
+/*!
+ Called before each testfunction is executed.
+ */
+void TestMpEngine::init()
+{
+
+}
+
+/*!
+ Called after every testfunction.
+ */
+void TestMpEngine::cleanup()
+{
+
+}
+
+/*!
+ test initialize
+ */
+void TestMpEngine::testInitialize()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QVERIFY( mTest->mSongData != 0 );
+ QVERIFY( mTest->mMpxHarvesterWrapper != 0 );
+ QVERIFY( mTest->mMpxCollectionWrapper != 0 );
+ QVERIFY( mTest->mEqualizerWrapper != 0 );
+ QVERIFY( mTest->mMpxPlaybackWrapper != 0 );
+ QVERIFY( mTest->mAudioEffectsWrapper != 0 );
+
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::Fetch );
+ QVERIFY( mTest->mMpxHarvesterWrapper != 0 );
+ QVERIFY( mTest->mMpxCollectionWrapper != 0 );
+ QVERIFY( mTest->mMpxPlaybackWrapper != 0 );
+ QVERIFY( mTest->mEqualizerWrapper == 0 );
+ QVERIFY( mTest->mAudioEffectsWrapper == 0 );
+
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::MediaBrowsing );
+ QVERIFY( mTest->mMpxCollectionWrapper != 0 );
+ QVERIFY( mTest->mMpxHarvesterWrapper == 0 );
+ QVERIFY( mTest->mMpxPlaybackWrapper == 0 );
+ QVERIFY( mTest->mEqualizerWrapper == 0 );
+ QVERIFY( mTest->mAudioEffectsWrapper == 0 );
+
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::Embedded );
+ QVERIFY( mTest->mMpxPlaybackWrapper != 0 );
+ QVERIFY( mTest->mSongData != 0 );
+}
+
+/*!
+ test verifyUsbBlocking
+ */
+void TestMpEngine::testVerifyUsbBlocking()
+{
+ bool result;
+ QSignalSpy spy( mTest, SIGNAL( unableToCotinueDueUSB() ) );
+
+ mTest->mUsbBlockingState = MpEngine::USB_Connected;
+ result = mTest->verifyUsbBlocking( true );
+ QVERIFY( result == true );
+ QVERIFY( spy.count() == 1 );
+ spy.clear();
+
+ mTest->mUsbBlockingState = MpEngine::USB_Connected;
+ result = mTest->verifyUsbBlocking( false );
+ QVERIFY( result == true );
+ QVERIFY( spy.count() == 0 );
+ spy.clear();
+
+ mTest->mUsbBlockingState = MpEngine::USB_NotConnected;
+ result = mTest->verifyUsbBlocking( true );
+ QVERIFY( result == false );
+ QVERIFY( spy.count() == 0 );
+ spy.clear();
+
+ mTest->mUsbBlockingState = MpEngine::USB_NotConnected;
+ result = mTest->verifyUsbBlocking( false );
+ QVERIFY( result == false );
+ QVERIFY( spy.count() == 0 );
+ spy.clear();
+
+ mTest->mUsbBlockingState = MpEngine::USB_Synchronizing;
+ result = mTest->verifyUsbBlocking( true );
+ QVERIFY( result == false );
+ QVERIFY( spy.count() == 0 );
+ spy.clear();
+
+ mTest->mUsbBlockingState = MpEngine::USB_Synchronizing;
+ result = mTest->verifyUsbBlocking( false );
+ QVERIFY( result == false );
+ QVERIFY( spy.count() == 0 );
+ spy.clear();
+}
+
+/*!
+ test songScanner
+ */
+void TestMpEngine::testSongScanner()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QCOMPARE( mTest->mSongScanner, mTest->songScanner() );
+}
+
+/*!
+ test refreshLibrary
+ */
+void TestMpEngine::testRefreshLibrary()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QSignalSpy spy( mTest, SIGNAL( libraryAboutToUpdate() ) );
+
+ mTest->mUsbBlockingState = MpEngine::USB_Connected;
+ QVERIFY( mTest->verifyUsbBlocking() == true );
+ mTest->refreshLibrary( true );
+ QVERIFY( mTest->mSongScanner == 0 );
+ QVERIFY( spy.count() == 0 );
+
+ mTest->mUsbBlockingState = MpEngine::USB_NotConnected;
+ QVERIFY( mTest->verifyUsbBlocking() == false );
+ mTest->refreshLibrary( true );
+ QVERIFY( mTest->mSongScanner != 0 );
+ QVERIFY( spy.count() == 1 );
+ spy.clear();
+
+ mTest->mUsbBlockingState = MpEngine::USB_Synchronizing;
+ QVERIFY( mTest->verifyUsbBlocking() == false );
+ mTest->refreshLibrary( true );
+ QVERIFY( mTest->mSongScanner != 0 );
+ QVERIFY( spy.count() == 1 );
+ spy.clear();
+}
+
+/*!
+ test handleScanStarted
+ */
+void TestMpEngine::testHandleScanStarted()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ mTest->handleScanStarted();
+ QVERIFY( mTest->mHandleMediaCommands == false );
+}
+
+/*!
+ test handleScanEnded
+ */
+void TestMpEngine::testHandleScanEnded()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QSignalSpy spy( mTest, SIGNAL( libraryUpdated() ) );
+
+ mTest->handleScanEnded( 0, 0 );
+ QVERIFY( mTest->mHandleMediaCommands == true );
+
+ QVERIFY( spy.count() == 1 );
+ spy.clear();
+}
+
+/*!
+ test handleDiskEvent
+ */
+void TestMpEngine::testHandleDiskEvent()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QSignalSpy spy( mTest, SIGNAL( libraryUpdated() ) );
+ QSignalSpy spyTwo( mTest, SIGNAL( libraryAboutToUpdate() ) );
+
+ mTest->handleDiskEvent( DiskFormatStarted );
+ QVERIFY( mTest->mHandleMediaCommands == false );
+
+ mTest->handleDiskEvent( DiskFormatEnded );
+ QVERIFY( mTest->mHandleMediaCommands == true );
+
+ mTest->mUsbBlockingState = MpEngine::USB_Synchronizing;
+ mTest->handleDiskEvent( DiskRemoved );
+ QVERIFY( spy.count() == 0 );
+ spy.clear();
+
+ mTest->mUsbBlockingState = MpEngine::USB_NotConnected;
+ mTest->handleDiskEvent( DiskRemoved );
+ QVERIFY( spy.count() == 1 );
+ spy.clear();
+
+ mTest->mUsbBlockingState = MpEngine::USB_Connected;
+ mTest->handleDiskEvent( DiskRemoved );
+ QVERIFY( spy.count() == 1 );
+ spy.clear();
+
+ mTest->mUsbBlockingState = MpEngine::USB_NotConnected;
+ mTest->handleDiskEvent( DiskInserted );
+ QVERIFY( mTest->verifyUsbBlocking() == false );
+ QVERIFY( spyTwo.count() == 1 );
+ spyTwo.clear();
+
+ mTest->mUsbBlockingState = MpEngine::USB_Connected;
+ mTest->handleDiskEvent( DiskInserted );
+ QVERIFY( spy.count() == 1 );
+ spy.clear();
+}
+
+/*!
+ test HandleUsbEvent
+ */
+void TestMpEngine::testHandleUsbEvent()
+{
+ // no need to test here
+}
+
+/*!
+ test handleUsbMassStorageStartEvent
+ */
+void TestMpEngine::testHandleUsbMassStorageStartEvent()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QSignalSpy spy( mTest, SIGNAL( usbBlocked( bool ) ) );
+ QSignalSpy spyTwo( mTest, SIGNAL( usbSynchronizationStarted() ) );
+
+ mTest->handleUsbMassStorageStartEvent();
+ QVERIFY( mTest->mHandleMediaCommands == false );
+ QVERIFY( spy.count() == 1 );
+ QList<QVariant> arguments = spy.takeFirst();
+ QVERIFY( arguments.at(0).toBool() == true );
+
+ QVERIFY( spyTwo.count() == 1 );
+}
+
+/*!
+ test handleUsbMassStorageEndEvent
+ */
+void TestMpEngine::testHandleUsbMassStorageEndEvent()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QSignalSpy spy( mTest, SIGNAL( usbBlocked( bool ) ) );
+ QSignalSpy spyTwo( mTest, SIGNAL( usbSynchronizationFinished() ) );
+
+ mTest->handleUsbMassStorageEndEvent();
+ QVERIFY( mTest->mHandleMediaCommands == true );
+ QVERIFY( spy.count() == 1 );
+ QList<QVariant> arguments = spy.takeFirst();
+ QVERIFY(arguments.at(0).toBool() == false );
+
+ QVERIFY( spyTwo.count() == 1 );
+}
+
+/*!
+ test handleUsbMtpStartEvent
+ */
+void TestMpEngine::testHandleUsbMtpStartEvent()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QSignalSpy spy( mTest, SIGNAL( usbBlocked( bool ) ) );
+ QSignalSpy spyTwo( mTest, SIGNAL( libraryAboutToUpdate() ) );
+ QSignalSpy spyThree( mTest, SIGNAL( usbSynchronizationStarted() ) );
+
+ mTest->handleUsbMtpStartEvent();
+ QVERIFY( mTest->mHandleMediaCommands == false );
+ QVERIFY( spy.count() == 1 );
+ QList<QVariant> arguments = spy.takeFirst();
+ QVERIFY( arguments.at(0).toBool() == true );
+ QVERIFY( spyTwo.count() == 1 );
+ QVERIFY( spyThree.count() == 1 );
+}
+
+/*!
+ test handleUsbMtpEndEvent
+ */
+void TestMpEngine::testHandleUsbMtpEndEvent()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QSignalSpy spy( mTest, SIGNAL( usbBlocked( bool ) ) );
+ QSignalSpy spyTwo( mTest, SIGNAL( usbSynchronizationFinished() ) );
+ QSignalSpy spyThree( mTest, SIGNAL( libraryUpdated() ) );
+ QList<QVariant> arguments;
+
+ mTest->mUsbBlockingState = MpEngine::USB_Synchronizing;
+ mTest->handleUsbMtpEndEvent();
+ QVERIFY( mTest->mHandleMediaCommands == true );
+ QVERIFY( spy.count() == 1 );
+ arguments = spy.takeFirst();
+ QVERIFY( arguments.at(0).toBool() == false );
+ QVERIFY( spyTwo.count() == 1 );
+ QVERIFY( spyThree.count() == 1 );
+ spyTwo.clear();
+ spyThree.clear();
+ arguments.clear();
+
+ mTest->mPreviousUsbState = MpEngine::USB_NotConnected;
+ mTest->handleUsbMtpEndEvent();
+ QVERIFY( mTest->mHandleMediaCommands == true );
+ QVERIFY( spy.count() == 1 );
+ arguments = spy.takeFirst();
+ QVERIFY( arguments.at(0).toBool() == false );
+ QVERIFY( spyTwo.count() == 0 );
+ QVERIFY( spyThree.count() == 0 );
+ spyTwo.clear();
+ spyThree.clear();
+ arguments.clear();
+
+ mTest->mPreviousUsbState = MpEngine::USB_Connected;
+ mTest->handleUsbMtpEndEvent();
+ QVERIFY( mTest->mHandleMediaCommands == true );
+ QVERIFY( spy.count() == 1 );
+ arguments = spy.takeFirst();
+ QVERIFY( arguments.at(0).toBool() == false );
+ QVERIFY( spyTwo.count() == 0 );
+ QVERIFY( spyThree.count() == 0 );
+ spyTwo.clear();
+ spyThree.clear();
+ arguments.clear();
+}
+
+/*!
+ test handleUsbMtpNotActive
+ */
+void TestMpEngine::testHandleUsbMtpNotActive()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QSignalSpy spy( mTest, SIGNAL( usbBlocked( bool ) ) );
+
+ mTest->handleUsbMtpNotActive();
+ QVERIFY( spy.count() == 1 );
+ QList<QVariant> arguments = spy.takeFirst();
+ QVERIFY( arguments.at(0).toBool() == true );
+}
+
+/*!
+ test changeUsbBlockingState
+ */
+void TestMpEngine::testChangeUsbBlockingState()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+
+ MpEngine::UsbBlockingState cState = mTest->mUsbBlockingState;
+ mTest->changeUsbBlockingState( MpEngine::USB_Connected );
+ QCOMPARE( mTest->mPreviousUsbState, cState );
+ QCOMPARE( mTest->mUsbBlockingState, MpEngine::USB_Connected );
+}
+
+/*!
+ test handleDeleteStarted
+ */
+void TestMpEngine::testHandleDeleteStarted()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ qRegisterMetaType<QModelIndex>("TCollectionContext");
+ QSignalSpy spy( mTest, SIGNAL( deleteStarted( TCollectionContext, int ) ) );
+
+ TCollectionContext context( ECollectionContextAllSongs );
+ mTest->handleDeleteStarted( context, 0 );
+ QVERIFY( mTest->mHandleMediaCommands == false );
+ QVERIFY( spy.count() == 1 );
+}
+
+/*!
+ test handleDeleteEnded
+ */
+void TestMpEngine::testHandleDeleteEnded()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QSignalSpy spy( mTest, SIGNAL( songsDeleted( bool ) ) );
+ QList<QVariant> arguments;
+
+ mTest->handleDeleteEnded( true );
+ QVERIFY( mTest->mHandleMediaCommands == true );
+ QVERIFY( spy.count() == 1 );
+ arguments = spy.takeFirst();
+ QVERIFY( arguments.at(0).toBool() == true );
+ spy.clear();
+ arguments.clear();
+
+ mTest->handleDeleteEnded( false );
+ QVERIFY( mTest->mHandleMediaCommands == true );
+ QVERIFY( spy.count() == 1 );
+ arguments = spy.takeFirst();
+ QVERIFY( arguments.at(0).toBool() == false );
+ spy.clear();
+ arguments.clear();
+}
+
+/*!
+ test playbackData
+ */
+void TestMpEngine::testPlaybackData()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QVERIFY( mTest->mMpxPlaybackWrapper->mPlaybackData == mTest->playbackData() );
+}
+
+/*!
+ test songData
+ */
+void TestMpEngine::testSongData()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QVERIFY( mTest->mSongData == mTest->songData() );
+}
+
+/*!
+ test balance
+ */
+void TestMpEngine::testBalance()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QVERIFY( mTest->mAudioEffectsWrapper->mBalance == mTest->balance() );
+}
+
+/*!
+ test loudness
+ */
+void TestMpEngine::testLoudness()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QVERIFY( mTest->mAudioEffectsWrapper->mLoudness == mTest->loudness() );
+}
+
+/*!
+ test setBalance
+ */
+void TestMpEngine::testSetBalance()
+{
+ // nothing to test here
+}
+
+/*!
+ test setLoudness
+ */
+void TestMpEngine::testSetLoudness()
+{
+ // nothing to test here
+}
+
+/*!
+ test applyPreset
+ */
+void TestMpEngine::testApplyPreset()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ mTest->mCurrentPresetIndex = 2;
+
+ mTest->applyPreset( 4 );
+ QCOMPARE( mTest->mCurrentPresetIndex, 4 );
+}
+
+/*!
+ test disableEqualizer
+ */
+void TestMpEngine::testDisableEqualizer()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ mTest->disableEqualizer();
+
+ QCOMPARE( mTest->mCurrentPresetIndex, KEqualizerPresetNone );
+}
+
+/*!
+ test activePreset
+ */
+void TestMpEngine::testActivePreset()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+
+ QCOMPARE( mTest->mCurrentPresetIndex, mTest->activePreset() );
+}
+
+/*!
+ test presetNames
+ */
+void TestMpEngine::testPresetNames()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+
+ QCOMPARE( mTest->mEqualizerWrapper->mList, mTest->presetNames() );
+}
+
+/*!
+ test handleEqualizerReady
+ */
+void TestMpEngine::testHandleEqualizerReady()
+{
+ mTest = MpEngineFactory::createIsolatedEngine( MpEngine::StandAlone );
+ QSignalSpy spy( mTest, SIGNAL( equalizerReady() ) );
+
+ mTest->handleEqualizerReady();
+ QCOMPARE( mTest->mCurrentPresetIndex, 1 );
+ QVERIFY( spy.count() == 1 );
+}
+
+
+// End of file