File indexing completed on 2024-12-08 09:35:23

0001 /*
0002     This file is part of the KDE libraries
0003     SPDX-FileCopyrightText: 2013 Alejandro Fiestas Olivares <afiestas@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 */
0007 
0008 #include "kdeplatformtheme_config.h"
0009 #include "kstyle.h"
0010 
0011 #include <QApplication>
0012 #include <QDir>
0013 #include <QFile>
0014 #include <QStandardPaths>
0015 #include <QTest>
0016 #include <QToolBar>
0017 #include <QToolButton>
0018 
0019 #include <QDebug>
0020 
0021 static void prepareEnvironment()
0022 {
0023     QStandardPaths::setTestModeEnabled(true);
0024 
0025     QString configPath = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);
0026 
0027     if (!QDir(configPath).mkpath(QStringLiteral("."))) {
0028         qFatal("Failed to create test configuration directory.");
0029     }
0030 
0031     configPath.append("/kdeglobals");
0032 
0033     QFile::remove(configPath);
0034     if (!QFile::copy(CONFIGFILE, configPath)) {
0035         qFatal("Failed to copy kdeglobals required for tests.");
0036     }
0037 }
0038 
0039 Q_COREAPP_STARTUP_FUNCTION(prepareEnvironment)
0040 
0041 class KStyle_UnitTest : public QObject
0042 {
0043     Q_OBJECT
0044 private Q_SLOTS:
0045     void initTestCase()
0046     {
0047         qApp->setStyle(new KStyle);
0048     }
0049     void cleanupTestCase()
0050     {
0051         QString configPath = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);
0052         configPath.append("/kdeglobals");
0053         QFile::remove(configPath);
0054     }
0055 
0056     void testToolButtonStyleHint()
0057     {
0058         QToolBar *toolbar = new QToolBar();
0059         QToolButton *btn = new QToolButton(toolbar);
0060 
0061         QCOMPARE(qApp->style()->styleHint(QStyle::SH_ToolButtonStyle, nullptr, btn), (int)Qt::ToolButtonTextOnly);
0062 
0063         toolbar->setProperty("otherToolbar", true);
0064         QCOMPARE(qApp->style()->styleHint(QStyle::SH_ToolButtonStyle, nullptr, btn), (int)Qt::ToolButtonTextUnderIcon);
0065     }
0066 };
0067 
0068 QTEST_MAIN(KStyle_UnitTest)
0069 
0070 #include "kstyle_unittest.moc"