1 /*
2 SPDX-FileCopyrightText: 2020-2021 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7 #include "showimagewidgettest.h"
8 #include "dialogs/showimagewidget.h"
9
10 #include <QDoubleSpinBox>
11 #include <QGraphicsView>
12 #include <QLabel>
13 #include <QPushButton>
14 #include <QSlider>
15 #include <QTest>
16 #include <QVBoxLayout>
17
QTEST_MAIN(ShowImageWidgetTest)18 QTEST_MAIN(ShowImageWidgetTest)
19
20 ShowImageWidgetTest::ShowImageWidgetTest(QObject *parent)
21 : QObject(parent)
22 {
23 }
24
shouldHaveDefaultValues()25 void ShowImageWidgetTest::shouldHaveDefaultValues()
26 {
27 ShowImageWidget w(nullptr);
28 ShowImageWidget::ImageInfo info;
29 const auto pixmap = QPixmap(QStringLiteral(":/icons/systray.png"));
30 info.pixmap = pixmap;
31 w.setImageInfo(info);
32
33 auto mainLayout = w.findChild<QVBoxLayout *>(QStringLiteral("mainLayout"));
34 QVERIFY(mainLayout);
35 QCOMPARE(mainLayout->contentsMargins(), {});
36
37 auto graphicsView = w.findChild<ImageGraphicsView *>(QStringLiteral("mImageGraphicsView"));
38 QVERIFY(graphicsView);
39
40 auto zoomLayout = w.findChild<QHBoxLayout *>(QStringLiteral("zoomLayout"));
41 QVERIFY(zoomLayout);
42
43 auto zoomLabel = w.findChild<QLabel *>(QStringLiteral("zoomLabel"));
44 QVERIFY(zoomLabel);
45 QVERIFY(!zoomLabel->text().isEmpty());
46
47 auto mZoomSpin = w.findChild<QDoubleSpinBox *>(QStringLiteral("mZoomSpin"));
48 QVERIFY(mZoomSpin);
49 QCOMPARE(mZoomSpin->value(), 1.0);
50 QCOMPARE(mZoomSpin->singleStep(), 0.1);
51
52 auto mSlider = w.findChild<QSlider *>(QStringLiteral("mSlider"));
53 QVERIFY(mSlider);
54 QCOMPARE(mSlider->orientation(), Qt::Horizontal);
55 QCOMPARE(mSlider->value(), 100);
56
57 mSlider->setValue(200);
58 QCOMPARE(mSlider->value(), 200);
59 QCOMPARE(mZoomSpin->value(), 2);
60 QCOMPARE(graphicsView->zoom(), (qreal)2.0);
61
62 mZoomSpin->setValue(3);
63 QCOMPARE(mZoomSpin->value(), 3);
64 QCOMPARE(mSlider->value(), 300);
65 QCOMPARE(graphicsView->zoom(), (qreal)3.0);
66
67 auto resetButton = w.findChild<QPushButton *>(QStringLiteral("resetButton"));
68 QVERIFY(resetButton);
69 resetButton->click();
70 QCOMPARE(graphicsView->zoom(), (qreal)1.0);
71 QCOMPARE(mZoomSpin->value(), 1.0);
72 QCOMPARE(mSlider->value(), 100);
73
74 QVERIFY(!w.imageInfo().isAnimatedImage);
75 QVERIFY(!w.imageInfo().pixmap.isNull());
76 }
77