--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/activityfw/activityserviceplugin/tsrc/t_afactivation/src/t_afactivation.cpp Thu Sep 16 12:11:40 2010 +0100
@@ -0,0 +1,106 @@
+/*
+* 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 "t_afactivation.h"
+
+#include <QtTest/QtTest>
+
+#include "afactivation.h"
+#include "afactivation_p.h"
+#include "applicationlauncher_p.h"
+
+TestAfActivation::TestAfActivation()
+{
+ mDefaultActivityName = QString("appto://EBADC0DE?%1=TestActivity&TestParam=TestValue").arg(Af::KActivityUriNameKey);
+}
+
+void TestAfActivation::init()
+{
+ mServiceProvider = QSharedPointer<AfStorageProxy>(new AfStorageProxy());
+ mActivationPrivate = new AfActivationPrivate(mServiceProvider);
+}
+
+void TestAfActivation::cleanup()
+{
+ delete mActivationPrivate;
+ mActivationPrivate = NULL;
+}
+
+void TestAfActivation::invokeActivationPublicInterface()
+{
+ // AfActivation is only responsible of correct creation of AfActivationPrivate and
+ // forwarding requests. Since it's impossible to verify the effects of the member
+ // calls, just invoke the methods.
+ AfActivation activation;
+
+ activation.parameters();
+ activation.reason();
+ activation.name();
+}
+
+void TestAfActivation::testDefaultValuesAfterCreation()
+{
+ QCOMPARE(mActivationPrivate->parameters(), QVariantHash());
+ QCOMPARE(mActivationPrivate->reason(), Af::ActivationReasonNormal);
+ QCOMPARE(mActivationPrivate->name(), QString());
+}
+
+void TestAfActivation::testSignalIsEmittedWhenActivityIsRequested()
+{
+ QSignalSpy activatedSpy(mActivationPrivate, SIGNAL(activated(Af::ActivationReason,QString,QVariantHash)));
+ QVERIFY(activatedSpy.isValid());
+
+ mServiceProvider->emitActivityRequested(mDefaultActivityName);
+ QCOMPARE(activatedSpy.count(), 1);
+}
+
+void TestAfActivation::testValuesChangeWhenActivityIsRequested()
+{
+ QSignalSpy activatedSpy(mActivationPrivate, SIGNAL(activated(Af::ActivationReason,QString,QVariantHash)));
+ QVERIFY(activatedSpy.isValid());
+
+ mServiceProvider->emitActivityRequested(mDefaultActivityName);
+ QCOMPARE(activatedSpy.count(), 1);
+
+ QCOMPARE(mActivationPrivate->reason(), Af::ActivationReasonActivity);
+ QCOMPARE(mActivationPrivate->name(), QString("TestActivity"));
+ QVERIFY(mActivationPrivate->parameters().contains("TestParam"));
+ QCOMPARE(mActivationPrivate->parameters().value("TestParam").toString(), QString("TestValue"));
+}
+
+void TestAfActivation::testChangingActivityInBackground()
+{
+ // bring to foreground is called by default
+ {
+ mServiceProvider->emitActivityRequested(mDefaultActivityName);
+
+ ApplicationLauncherPrivate *launcher = ApplicationLauncherPrivate::instance;
+ QVERIFY(launcher);
+ QCOMPARE(launcher->bringToForegroundCalls.count(), 1);
+ launcher->bringToForegroundCalls.clear();
+ }
+
+ // bring to foreground is not called if background parameter is present
+ {
+ mServiceProvider->emitActivityRequested(QString("appto://EBADC0DE?%1=TestActivity&%2=").arg(Af::KActivityUriNameKey).arg(Af::KActivityUriBackgroundKey));
+
+ ApplicationLauncherPrivate *launcher = ApplicationLauncherPrivate::instance;
+ QVERIFY(launcher);
+ QCOMPARE(launcher->bringToForegroundCalls.count(), 0);
+ }
+}
+
+QTEST_MAIN(TestAfActivation)