From 0334e01186cbb1d2a4d5f5d5ad2dabb173d87dc6 Mon Sep 17 00:00:00 2001 From: Wolf Bergenheim Date: Thu, 25 Feb 2010 13:56:08 +0200 Subject: Fixed ResourceSet signals QList to list namespace, so the users don't have to use namecpace ResourcePolicy --- .../test-resource-engine/test-resource-engine.cpp | 96 +++++++++++++++++++++- tests/test-resource-engine/test-resource-engine.h | 22 +++-- tests/test-resource-set/test-resource-set.cpp | 59 +++++++++++++ tests/test-resource-set/test-resource-set.h | 43 ++++++---- 4 files changed, 192 insertions(+), 28 deletions(-) (limited to 'tests') diff --git a/tests/test-resource-engine/test-resource-engine.cpp b/tests/test-resource-engine/test-resource-engine.cpp index 804ef16..8b7fe72 100644 --- a/tests/test-resource-engine/test-resource-engine.cpp +++ b/tests/test-resource-engine/test-resource-engine.cpp @@ -1,10 +1,12 @@ #include "test-resource-engine.h" #include +#include using namespace ResourcePolicy; quint32 theID = 0; void statusCallbackHandler(resset_t *libresourceSet, resmsg_t *message); +static bool strverify(const char *a, const char *b); static void verify_resproto_init(resproto_role_t role, resproto_transport_t transport, @@ -197,6 +199,65 @@ void TestResourceEngine::testRelease() QVERIFY(releaseRequestSucceeded == !requestShouldFail); } +void TestResourceEngine::testRegisterAudioProperties_data() +{ + QTest::addColumn("audioGroup"); + QTest::addColumn("pid"); + QTest::addColumn("streamName"); + QTest::addColumn("streamValue"); + + QTest::newRow("'player':12345:'media.role':'music'") << "player" << 12345 << "media.role" << "music"; + QTest::newRow("'':12345:'media.role':'music'") << "" << 12345 << "media.role" << "music"; + QTest::newRow(":12345:'media.role':'music'") << QString() << 12345 << "media.role" << "music"; + QTest::newRow("'player':0:'media.role':'music'") << "player" << 0 << "media.role" << "music"; + QTest::newRow("'player':12345:'':'music'") << "player" << 12345 << "" << "music"; + QTest::newRow("'player':12345::'music'") << "player" << 12345 << QString() << "music"; + QTest::newRow("'player':12345:'':''") << "player" << 12345 << "" << ""; + QTest::newRow("'player':12345::") << "player" << 12345 << QString() << QString(); + QTest::newRow("'player':12345:'media.role':''") << "player" << 12345 << "media.role" << ""; + QTest::newRow("'player':12345:'media.role':") << "player" << 12345 << "media.role" << QString(); + QTest::newRow("'':0:'':''") << "" << 0 << "" << ""; + QTest::newRow(":0::") << QString() << 0 << QString() << QString(); +} + +char *expectedGroup, *expectedStreamName, *expectedStreamValue; + +void TestResourceEngine::testRegisterAudioProperties() +{ + QFETCH(QString, audioGroup); + QFETCH(quint32, pid); + QFETCH(QString, streamName); + QFETCH(QString, streamValue); + + if(audioGroup.isEmpty() || audioGroup.isNull()) { + expectedGroup = NULL; + } + else { + QByteArray ba = audioGroup.toLatin1(); + expectedGroup = strdup(ba.data()); + } + + if(streamName.isEmpty() || streamName.isNull()) { + expectedStreamName = NULL; + } + else { + QByteArray ba = streamName.toLatin1(); + expectedStreamName = strdup(ba.data()); + } + if(streamValue.isEmpty() || streamValue.isNull()) { + expectedStreamValue = NULL; + } + else { + QByteArray ba = streamValue.toLatin1(); + expectedStreamValue = strdup(ba.data()); + } + + resourceEngine->connectToManager(); + + bool audioPropertiesSetSucceeded = resourceEngine->registerAudioProperties(audioGroup, pid, streamName, streamValue); + QVERIFY(audioPropertiesSetSucceeded); +} + QTEST_MAIN(TestResourceEngine) //////////////////////////////////////////////////////////////// @@ -348,6 +409,14 @@ int resproto_send_message(resset_t *resourceSet, resmsg_t *message, grantMessage.record.reqno = message->record.reqno; grantCallback(&grantMessage, resSet, resSet->userdata); break; + case RESMSG_AUDIO: + statusMessage.type = RESMSG_STATUS; + statusMessage.status.errcod = 0; + statusMessage.status.errmsg = ""; + statusMessage.record.id = 11; + statusMessage.record.reqno = 77; + callbackFunction(resSet, &statusMessage); + break; default: qDebug("Unknown message requested..."); return 0; @@ -369,16 +438,41 @@ static void verify_resproto_send_message(resset_t *resourceSet, resmsg_t *messag QVERIFY(message->possess.id == theID); QVERIFY(callbackFunction != NULL); break; + case RESMSG_AUDIO: + QVERIFY(resourceSet == resSet); + QVERIFY(message->possess.id == theID); + QVERIFY(callbackFunction != NULL); + QVERIFY(strverify(expectedGroup, message->audio.group)); + QVERIFY(strverify(expectedStreamName, message->audio.property.name)); + QVERIFY(strverify(expectedStreamValue, message->audio.property.match.pattern)); default: bool expectedMessageType = false; QVERIFY(expectedMessageType); } } +static bool strverify(const char *a, const char *b) +{ + if (a == b) { + return true; + } + else if ((a == NULL) || (b == NULL)) { + return false; + } + else { + int i = strcmp(a, b); + if (i == 0) + return true; + else + return false; + } + +} + char *resmsg_dump_message(resmsg_t *resmsg, int indent, char *buf, int len) { - return "message"; + char * ret = strdup("message"); } \ No newline at end of file diff --git a/tests/test-resource-engine/test-resource-engine.h b/tests/test-resource-engine/test-resource-engine.h index dbdd755..5398a72 100644 --- a/tests/test-resource-engine/test-resource-engine.h +++ b/tests/test-resource-engine/test-resource-engine.h @@ -3,26 +3,27 @@ #include #include + +class TestResourceEngine; + #include "resource-engine.h" Q_DECLARE_METATYPE(ResourcePolicy::ResourceType) -namespace ResourcePolicy -{ class TestResourceEngine: public QObject { Q_OBJECT private: - ResourceEngine *resourceEngine; - AudioResource *audioPlayback; - VideoResource *videoPlayback; - AudioRecorderResource *audioRecorder; - VideoRecorderResource *videoRecorder; + ResourcePolicy::ResourceEngine *resourceEngine; + ResourcePolicy::AudioResource *audioPlayback; + ResourcePolicy::VideoResource *videoPlayback; + ResourcePolicy::AudioRecorderResource *audioRecorder; + ResourcePolicy::VideoRecorderResource *videoRecorder; bool libresourceInitialized; bool acquireOrDenyWasCalled; public: - ResourceSet *resourceSet; + ResourcePolicy::ResourceSet *resourceSet; TestResourceEngine(); ~TestResourceEngine(); @@ -44,7 +45,10 @@ private slots: void testRelease_data(); void testRelease(); + + void testRegisterAudioProperties_data(); + void testRegisterAudioProperties(); }; -} + #endif diff --git a/tests/test-resource-set/test-resource-set.cpp b/tests/test-resource-set/test-resource-set.cpp index d9cbbce..61ea71c 100644 --- a/tests/test-resource-set/test-resource-set.cpp +++ b/tests/test-resource-set/test-resource-set.cpp @@ -1,5 +1,7 @@ #include "test-resource-set.h" +using namespace ResourcePolicy; + Resource * TestResourceSet::resourceFromType(ResourceType type) { switch (type) { @@ -125,5 +127,62 @@ void TestResourceSet::testContainsSet() QVERIFY(containsAll); QVERIFY(containsSubset); } + +void TestResourceSet::testConnectToSignals() +{ + bool signalConnectionSucceeded=false; + signalConnectionSucceeded = QObject::connect(resourceSet, + SIGNAL(resourcesBecameAvailable(const QList &)), + this, SLOT(handleResourcesBecameAvailable(const QList &))); + + QVERIFY(signalConnectionSucceeded); + + signalConnectionSucceeded = QObject::connect(resourceSet, + SIGNAL(resourcesGranted(const QList &)), + this, SLOT(handleResourcesGranted(const QList &))); + + QVERIFY(signalConnectionSucceeded); + + signalConnectionSucceeded = QObject::connect(resourceSet, + SIGNAL(resourcesDenied()), + this, SLOT(handleResourcesDenied())); + + QVERIFY(signalConnectionSucceeded); + + signalConnectionSucceeded = QObject::connect(resourceSet, + SIGNAL(resourcesReleased()), + this, SLOT(handleResourcesReleased())); + + QVERIFY(signalConnectionSucceeded); + + signalConnectionSucceeded = QObject::connect(resourceSet, + SIGNAL(lostResources()), + this, SLOT(handleLostResources())); + + QVERIFY(signalConnectionSucceeded); + +} + +void TestResourceSet::handleResourcesBecameAvailable(const QList &availableResources) +{ + +} +void TestResourceSet::handleResourcesGranted(const QList &grantedOptionalResources) +{ +} + +void TestResourceSet::handleResourcesDenied() +{ +} + +void TestResourceSet::handleResourcesReleased() +{ +} + +void TestResourceSet::handleLostResources() +{ +} + + QTEST_MAIN(TestResourceSet) diff --git a/tests/test-resource-set/test-resource-set.h b/tests/test-resource-set/test-resource-set.h index abab859..c112b6c 100644 --- a/tests/test-resource-set/test-resource-set.h +++ b/tests/test-resource-set/test-resource-set.h @@ -4,32 +4,37 @@ #include #include -using namespace ResourcePolicy; - class TestResourceSet: public QObject { Q_OBJECT private: - ResourceSet *resourceSet; - - AudioResource *audioResource; - AudioRecorderResource *audioRecorderResource; - Resource *videoResource; - Resource *videoRecorderResource; - Resource *vibraResource; - Resource *ledsResource; - Resource *backlightResource; - Resource *systemButtonResource; - Resource *lockButtonResource; - Resource *scaleButtonResource; - Resource *snapButtonResource; - Resource *lensCoverResource; - - Resource * resourceFromType(ResourceType type); + ResourcePolicy::ResourceSet *resourceSet; + + ResourcePolicy::AudioResource *audioResource; + ResourcePolicy::AudioRecorderResource *audioRecorderResource; + ResourcePolicy::Resource *videoResource; + ResourcePolicy::Resource *videoRecorderResource; + ResourcePolicy::Resource *vibraResource; + ResourcePolicy::Resource *ledsResource; + ResourcePolicy::Resource *backlightResource; + ResourcePolicy::Resource *systemButtonResource; + ResourcePolicy::Resource *lockButtonResource; + ResourcePolicy::Resource *scaleButtonResource; + ResourcePolicy::Resource *snapButtonResource; + ResourcePolicy::Resource *lensCoverResource; + + ResourcePolicy::Resource * resourceFromType(ResourcePolicy::ResourceType type); public: TestResourceSet(); ~TestResourceSet(); +public slots: + + void handleResourcesBecameAvailable(const QList &availableResources); + void handleResourcesGranted(const QList &grantedOptionalResources); + void handleResourcesDenied(); + void handleResourcesReleased(); + void handleLostResources(); private slots: @@ -43,6 +48,8 @@ private slots: void testDelResource(); void testContainsSet(); + + void testConnectToSignals(); }; #endif -- cgit v1.2.3