activityfw/activityserviceplugin/tsrc/unittest_activityserviceplugin/src/unittest_activityserviceplugin.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/activityfw/activityserviceplugin/tsrc/unittest_activityserviceplugin/src/unittest_activityserviceplugin.cpp Thu Sep 16 12:11:40 2010 +0100
@@ -0,0 +1,105 @@
+/*
+* 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:
+*
+*/
+
+#include "unittest_activityserviceplugin.h"
+
+#include <QtTest/QtTest>
+#include <QScopedPointer>
+#include <QDebug>
+
+#include <qservicemanager.h>
+
+#include <afstorageglobals.h>
+
+#include <tstestutils.h>
+
+void TestActivityServicePlugin::initTestCase()
+{
+ QServiceManager manager;
+ if (!manager.findServices().contains("ActivityService")) {
+ qDebug() << "ActivityService not found";
+ QVERIFY(QFile::exists(":/activityserviceplugin.xml"));
+ if (!manager.addService(":/activityserviceplugin.xml")) {
+ QFAIL(qPrintable(QString("Failed to add ActivityService: %1").arg(manager.error())));
+ }
+ QVERIFY(manager.findServices().contains("ActivityService"));
+ }
+}
+
+void TestActivityServicePlugin::testActivityClientCreation()
+{
+ QServiceManager manager;
+ QObject *activityClient = manager.loadInterface("com.nokia.qt.activities.ActivityClient");
+ if (!activityClient) qDebug() << "error:" << manager.error();
+ QVERIFY(activityClient);
+ QCOMPARE(activityClient->metaObject()->className(), "AfClient");
+ delete activityClient;
+}
+
+void TestActivityServicePlugin::testActivityManagerCreation()
+{
+ QServiceManager manager;
+ QObject *activityManager = manager.loadInterface("com.nokia.qt.activities.ActivityManager");
+ if (!activityManager) qDebug() << "error:" << manager.error();
+ QVERIFY(activityManager);
+ QCOMPARE(activityManager->metaObject()->className(), "AfManager");
+ delete activityManager;
+}
+
+void TestActivityServicePlugin::testInvalidInterfaceCreation()
+{
+ QServiceManager manager;
+ QObject *invalidInterface = manager.loadInterface("com.nokia.qt.activities.BlahBlahBlah");
+ QVERIFY(!invalidInterface);
+}
+
+void TestActivityServicePlugin::testActivityManagerEmitsDataChangeSignalAfterSavingThroughStorage()
+{
+ QServiceManager manager;
+ QScopedPointer<QObject> activityManager(manager.loadInterface("com.nokia.qt.activities.ActivityManager"));
+ QVERIFY(activityManager.data());
+
+ QScopedPointer<QObject> activityStorage(manager.loadInterface("com.nokia.qt.activities.Storage"));
+ QVERIFY(activityStorage.data());
+
+ QSignalSpy dataChangedSpy(activityManager.data(), SIGNAL(dataChanged()));
+ QVERIFY(dataChangedSpy.isValid());
+ QCOMPARE(dataChangedSpy.count(), 0);
+
+ {
+ QPixmap screenshot(128, 128);
+ screenshot.fill(Qt::red);
+ QVERIFY(!screenshot.isNull());
+ QVariantHash metadata;
+ metadata.insert(ActivityScreenshotKeyword, screenshot);
+
+ bool invokeResult;
+ bool saveResult;
+ invokeResult = QMetaObject::invokeMethod(
+ activityStorage.data(),
+ "saveActivity",
+ Q_RETURN_ARG(bool, saveResult),
+ Q_ARG(QString, "Test"),
+ Q_ARG(QVariant, "TestData"),
+ Q_ARG(QVariantHash, metadata));
+
+ QVERIFY(invokeResult);
+ QVERIFY(saveResult);
+ }
+
+ QVERIFY(dataChangedSpy.count() > 0 || TsTestUtils::waitForSignal(activityManager.data(), SIGNAL(dataChanged()), 1500));
+}