File: kstyle_unittest.cpp

package info (click to toggle)
frameworkintegration 5.28.0-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,116 kB
  • ctags: 70
  • sloc: cpp: 609; sh: 34; makefile: 5
file content (84 lines) | stat: -rw-r--r-- 2,630 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/*  This file is part of the KDE libraries
 *  Copyright 2013 Alejandro Fiestas Olivares <afiestas@kde.org>
 *
 *  This library is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU Lesser General Public License as published by
 *  the Free Software Foundation; either version 2 of the License or ( at
 *  your option ) version 3 or, at the discretion of KDE e.V. ( which shall
 *  act as a proxy as in section 14 of the GPLv3 ), any later version.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Library General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public License
 *  along with this library; see the file COPYING.LIB.  If not, write to
 *  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 *  Boston, MA 02110-1301, USA.
 */

#include "kdeplatformtheme_config.h"
#include "kstyle.h"

#include <QTest>
#include <QDir>
#include <QFile>
#include <QToolBar>
#include <QToolButton>
#include <QApplication>
#include <QStandardPaths>

#include <QDebug>

static void prepareEnvironment()
{
    QStandardPaths::setTestModeEnabled(true);

    QString configPath = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);

    if(!QDir(configPath).mkpath(QStringLiteral("."))) {
        qFatal("Failed to create test configuration directory.");
    }

    configPath.append("/kdeglobals");

    QFile::remove(configPath);
    if(!QFile::copy(CONFIGFILE, configPath)) {
        qFatal("Failed to copy kdeglobals required for tests.");
    }
}

Q_COREAPP_STARTUP_FUNCTION(prepareEnvironment)

class KStyle_UnitTest : public QObject
{
    Q_OBJECT
private Q_SLOTS:
    void initTestCase()
    {
        qApp->setStyle(new KStyle);
    }
    void cleanupTestCase()
    {
        QString configPath = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);
        configPath.append("/kdeglobals");
        QFile::remove(configPath);
    }

    void testToolButtonStyleHint()
    {
        QToolBar *toolbar = new QToolBar();
        QToolButton *btn = new QToolButton(toolbar);

        QCOMPARE(qApp->style()->styleHint(QStyle::SH_ToolButtonStyle, 0, btn), (int)  Qt::ToolButtonTextOnly);

        toolbar->setProperty("otherToolbar", true);
        QCOMPARE(qApp->style()->styleHint(QStyle::SH_ToolButtonStyle, 0, btn), (int) Qt::ToolButtonTextUnderIcon);
    }
};

QTEST_MAIN(KStyle_UnitTest)

#include "kstyle_unittest.moc"