1/*
2 Copyright (c) 2008 Volker Krause <vkrause@kde.org>
3
4 This library is free software; you can redistribute it and/or modify it
5 under the terms of the GNU Library General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or (at your
7 option) any later version.
8
9 This library is distributed in the hope that it will be useful, but WITHOUT
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
12 License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to the
16 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 02110-1301, USA.
18*/
19
20#ifndef AKONADI_SELFTESTDIALOG_P_H
21#define AKONADI_SELFTESTDIALOG_P_H
22
23#include "akonadiprivate_export.h"
24#include "ui_selftestdialog.h"
25
26#include <KDialog>
27#include <KLocalizedString>
28
29class QStandardItem;
30class QStandardItemModel;
31
32namespace Akonadi {
33
34/**
35 * @internal
36 *
37 * @short A dialog that checks the current status of the Akonadi system.
38 *
39 * This dialog checks the current status of the Akonadi system and
40 * displays a summary of the checks.
41 *
42 * @author Volker Krause <vkrause@kde.org>
43 */
44class AKONADI_TESTS_EXPORT SelfTestDialog : public KDialog
45{
46 Q_OBJECT
47public:
48 /**
49 * Creates a new self test dialog.
50 *
51 * @param parent The parent widget.
52 */
53 explicit SelfTestDialog(QWidget *parent = 0);
54
55 /**
56 * Hides the label with the introduction message.
57 */
58 void hideIntroduction();
59
60private Q_SLOTS:
61 void selectionChanged(const QModelIndex &index);
62 void saveReport();
63 void copyReport();
64 void linkActivated(const QString &link);
65 void runTests();
66
67private:
68 enum ResultType {
69 Skip,
70 Success,
71 Warning,
72 Error
73 };
74 QStandardItem *report(ResultType type, const KLocalizedString &summary, const KLocalizedString &details);
75 QVariant serverSetting(const QString &group, const char *key, const QVariant &def) const;
76 bool useStandaloneMysqlServer() const;
77 bool runProcess(const QString &app, const QStringList &args, QString &result) const;
78
79 void testSQLDriver();
80 void testMySQLServer();
81 void testMySQLServerLog();
82 void testMySQLServerConfig();
83 void testPSQLServer();
84 void testAkonadiCtl();
85 void testServerStatus();
86 void testProtocolVersion();
87 void testResources();
88 void testServerLog();
89 void testControlLog();
90 void testRootUser();
91
92 QString createReport();
93
94 Ui::SelfTestDialog ui;
95 QStandardItemModel *mTestModel;
96};
97
98}
99
100#endif
101