File indexing completed on 2024-05-19 04:01:08

0001 /*
0002     SPDX-FileCopyrightText: 2017 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: MIT
0005 */
0006 
0007 #include <feedbackconfigwidget.h>
0008 #include <platforminfosource.h>
0009 #include <provider.h>
0010 #include <screeninfosource.h>
0011 
0012 #include <QDebug>
0013 #include <QLabel>
0014 #include <QtTest/qtest.h>
0015 #include <QObject>
0016 #include <QSlider>
0017 #include <QStandardPaths>
0018 
0019 using namespace KUserFeedback;
0020 
0021 class FeedbackConfigTest : public QObject
0022 {
0023     Q_OBJECT
0024 private Q_SLOTS:
0025     void initTestCase()
0026     {
0027         QStandardPaths::setTestModeEnabled(true);
0028     }
0029 
0030     void testTelemetrySettings()
0031     {
0032         Provider p;
0033         p.setProductIdentifier(QStringLiteral("org.kde.UserFeedback.UnitTestProduct"));
0034         p.addDataSource(new ScreenInfoSource);
0035         p.addDataSource(new PlatformInfoSource);
0036         p.setTelemetryMode(Provider::NoTelemetry);
0037 
0038         FeedbackConfigWidget w;
0039         w.setFeedbackProvider(&p);
0040         w.show();
0041 
0042         auto telemetrySlider = w.findChild<QSlider*>(QLatin1String("telemetrySlider"));
0043         QVERIFY(telemetrySlider);
0044         QVERIFY(telemetrySlider->isEnabled());
0045         QCOMPARE(telemetrySlider->minimum(), 0);
0046         QCOMPARE(telemetrySlider->maximum(), 2);
0047         QCOMPARE(telemetrySlider->value(), 0);
0048 
0049         telemetrySlider->setValue(1);
0050         QCOMPARE(w.telemetryMode(), Provider::BasicSystemInformation);
0051         QTest::qWait(1);
0052         QCOMPARE(p.telemetryMode(), Provider::NoTelemetry);
0053     }
0054 
0055     void testSurveySettings()
0056     {
0057         Provider p;
0058         p.setProductIdentifier(QStringLiteral("org.kde.UserFeedback.UnitTestProduct"));
0059         p.setSurveyInterval(-1);
0060 
0061         FeedbackConfigWidget w;
0062         w.setFeedbackProvider(&p);
0063         w.show();
0064 
0065         auto slider = w.findChild<QSlider*>(QLatin1String("surveySlider"));
0066         QVERIFY(slider);
0067         QVERIFY(slider->isEnabled());
0068         QCOMPARE(slider->minimum(), 0);
0069         QCOMPARE(slider->maximum(), 2);
0070         QCOMPARE(slider->value(), 0);
0071 
0072         auto label = w.findChild<QLabel*>(QLatin1String("surveyLabel"));
0073         QVERIFY(label);
0074         QVERIFY(!label->text().isEmpty());
0075 
0076         slider->setValue(1);
0077         QCOMPARE(w.surveyInterval(), 90);
0078         QTest::qWait(1);
0079         QCOMPARE(p.surveyInterval(), -1);
0080         QVERIFY(!label->text().isEmpty());
0081 
0082         slider->setValue(2);
0083         QCOMPARE(w.surveyInterval(), 0);
0084         QTest::qWait(1);
0085         QCOMPARE(p.surveyInterval(), -1);
0086         QVERIFY(!label->text().isEmpty());
0087     }
0088 };
0089 
0090 QTEST_MAIN(FeedbackConfigTest)
0091 
0092 #include "feedbackconfigtest.moc"