// SpeedLimiterDialog::buildParams unit tests. Lane GUI. // // Red when disabling the limiter stops zeroing globalBps, enabling it with 0 KiB/s stops // being clamped to 1 (Limiter.schema.json: "0 with enabled true means stop everything, // which the GUI must not offer"), or the KiB/s -> bytes/s conversion drifts. #include #include "dialogs/SpeedLimiterDialog.hpp" using velox::gui::SpeedLimiterDialog; class TstSpeedLimiterDialog : public QObject { Q_OBJECT private slots: void disabledSendsZero(); void enabledConvertsKibpsToBytesPerSec(); void enabledClampsZeroToOne(); void applyToRunningPassesThrough(); }; void TstSpeedLimiterDialog::disabledSendsZero() { const QJsonObject p = SpeedLimiterDialog::buildParams(false, 512, false); QCOMPARE(p.value("enabled").toBool(), false); QCOMPARE(p.value("globalBps").toDouble(), 0.0); } void TstSpeedLimiterDialog::enabledConvertsKibpsToBytesPerSec() { const QJsonObject p = SpeedLimiterDialog::buildParams(true, 512, false); QCOMPARE(p.value("enabled").toBool(), true); QCOMPARE(p.value("globalBps").toDouble(), 512.0 * 1024); } void TstSpeedLimiterDialog::enabledClampsZeroToOne() { const QJsonObject p = SpeedLimiterDialog::buildParams(true, 0, false); QCOMPARE(p.value("globalBps").toDouble(), 1024.0); } void TstSpeedLimiterDialog::applyToRunningPassesThrough() { QVERIFY(SpeedLimiterDialog::buildParams(true, 1, true).value("applyToRunning").toBool()); QVERIFY(!SpeedLimiterDialog::buildParams(true, 1, false).value("applyToRunning").toBool()); } QTEST_MAIN(TstSpeedLimiterDialog) #include "tst_speedlimiterdialog.moc"