File indexing completed on 2024-05-19 03:59:31

0001 /*
0002     SPDX-FileCopyrightText: 2014 Marco Martin <mart@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "framesvgtest.h"
0008 #include <QStandardPaths>
0009 
0010 void FrameSvgTest::initTestCase()
0011 {
0012     QStandardPaths::setTestModeEnabled(true);
0013     m_cacheDir = QDir(QStandardPaths::writableLocation(QStandardPaths::CacheLocation));
0014     m_cacheDir.removeRecursively();
0015 
0016     m_frameSvg = new KSvg::FrameSvg;
0017     m_frameSvg->setImagePath(QFINDTESTDATA("data/background.svgz"));
0018     QVERIFY(m_frameSvg->isValid());
0019 }
0020 
0021 void FrameSvgTest::cleanupTestCase()
0022 {
0023     delete m_frameSvg;
0024 
0025     m_cacheDir.removeRecursively();
0026 }
0027 
0028 void FrameSvgTest::margins()
0029 {
0030     QCOMPARE(m_frameSvg->marginSize(KSvg::FrameSvg::LeftMargin), (qreal)26);
0031     QCOMPARE(m_frameSvg->marginSize(KSvg::FrameSvg::TopMargin), (qreal)26);
0032     QCOMPARE(m_frameSvg->marginSize(KSvg::FrameSvg::RightMargin), (qreal)26);
0033     QCOMPARE(m_frameSvg->marginSize(KSvg::FrameSvg::BottomMargin), (qreal)26);
0034 }
0035 
0036 void FrameSvgTest::contentsRect()
0037 {
0038     m_frameSvg->resizeFrame(QSize(100, 100));
0039     QCOMPARE(m_frameSvg->contentsRect(), QRectF(26, 26, 48, 48));
0040 }
0041 
0042 void FrameSvgTest::repaintBlocked()
0043 {
0044     // check the properties to be correct even if set during a repaint blocked transaction
0045     m_frameSvg->setRepaintBlocked(true);
0046     QVERIFY(m_frameSvg->isRepaintBlocked());
0047 
0048     m_frameSvg->setElementPrefix("prefix");
0049     m_frameSvg->setEnabledBorders(KSvg::FrameSvg::TopBorder | KSvg::FrameSvg::LeftBorder);
0050     m_frameSvg->resizeFrame(QSizeF(100, 100));
0051 
0052     m_frameSvg->setRepaintBlocked(false);
0053 
0054     QCOMPARE(m_frameSvg->prefix(), QString("prefix"));
0055     QCOMPARE(m_frameSvg->enabledBorders(), KSvg::FrameSvg::TopBorder | KSvg::FrameSvg::LeftBorder);
0056     QCOMPARE(m_frameSvg->frameSize(), QSizeF(100, 100));
0057 }
0058 
0059 void FrameSvgTest::setImageSet()
0060 {
0061     // Should not crash
0062 
0063     KSvg::FrameSvg *frameSvg = new KSvg::FrameSvg;
0064     frameSvg->setImagePath("widgets/background");
0065     frameSvg->setImageSet(new KSvg::ImageSet("breeze-light", {}, this));
0066     frameSvg->framePixmap();
0067     frameSvg->setImageSet(new KSvg::ImageSet("breeze-dark", {}, this));
0068     frameSvg->framePixmap();
0069     delete frameSvg;
0070 
0071     frameSvg = new KSvg::FrameSvg;
0072     frameSvg->setImagePath("widgets/background");
0073     frameSvg->setImageSet(new KSvg::ImageSet("breeze-light", {}, this));
0074     frameSvg->framePixmap();
0075     frameSvg->setImageSet(new KSvg::ImageSet("breeze-dark", {}, this));
0076     frameSvg->framePixmap();
0077     delete frameSvg;
0078 }
0079 
0080 void FrameSvgTest::resizeMask()
0081 {
0082     m_frameSvg->resizeFrame(QSize(100, 100));
0083     QCOMPARE(m_frameSvg->alphaMask().size(), QSize(100, 100));
0084     m_frameSvg->resizeFrame(QSize(50, 50));
0085     QCOMPARE(m_frameSvg->alphaMask().size(), QSize(50, 50));
0086     m_frameSvg->resizeFrame(QSize(100, 100));
0087     QCOMPARE(m_frameSvg->alphaMask().size(), QSize(100, 100));
0088 }
0089 
0090 QTEST_MAIN(FrameSvgTest)
0091 
0092 #include "moc_framesvgtest.cpp"