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"