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