Add unit tests
[accounts-sso:libaccountsetup.git] / tests / testplugin.cpp
1 /*
2  * This file is part of libAccountSetup
3  *
4  * Copyright (C) 2011 Nokia Corporation.
5  *
6  * Contact: Alberto Mardegan <alberto.mardegan@nokia.com>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License
10  * version 2.1 as published by the Free Software Foundation.
11  *
12  * This library is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20  * 02110-1301 USA
21  */
22
23 #include <AccountSetup/ProviderPluginProcess>
24 #include <Accounts/Account>
25 #include <Accounts/Manager>
26 #include <QCoreApplication>
27 #include <QDebug>
28 #include <QSettings>
29
30 using namespace Accounts;
31 using namespace AccountSetup;
32
33 int main(int argc, char **argv)
34 {
35     QCoreApplication *app = new QCoreApplication(argc, argv);
36
37     ProviderPluginProcess *plugin = new ProviderPluginProcess();
38
39     /* test basic functionality */
40     if (plugin != ProviderPluginProcess::instance()) {
41         qFatal("ProviderPluginProcess::instance returned wrong instance");
42     }
43
44     /* open a QSettings file as specified by the parent process */
45     QStringList args = QCoreApplication::arguments();
46     int argIndex = args.indexOf("--config-file");
47     if (argIndex > 0 && argIndex + 1 < args.length()) {
48         QSettings status(args[argIndex + 1]);
49
50         /* Dump the current status into the QSettings file */
51         status.setValue("ping", QString("pong"));
52         status.setValue("AccountId", plugin->account()->id());
53         status.setValue("SetupType", plugin->setupType());
54         status.setValue("ServiceType", plugin->serviceType());
55         status.setValue("ParentWindowId",
56                         QVariant::fromValue<uint>(plugin->parentWindowId()));
57     }
58
59     plugin->quit();
60     delete plugin;
61 }
62