// GrabberWizard unit tests: buildFileTypes, buildStartParams, buildHarvestParams. Lane GUI. // // Red when every file-type checkbox unchecked stops meaning "every type" (null, not an // empty array), a blank include/exclude field stops becoming schema null, or harvest // params drop a selected fileId. #include #include #include "dialogs/GrabberWizard.hpp" using velox::gui::GrabberWizard; class TstGrabberWizard : public QObject { Q_OBJECT private slots: void noFileTypesSelectedMeansNull(); void selectedTypesAndCustomAreMerged(); void blankFiltersBecomeNull(); void filtersAreSplitOnCommaAndNewline(); void harvestParamsCarrySelection(); }; void TstGrabberWizard::noFileTypesSelectedMeansNull() { const QJsonValue v = GrabberWizard::buildFileTypes(false, false, false, false, false, ""); QVERIFY(v.isNull()); } void TstGrabberWizard::selectedTypesAndCustomAreMerged() { const QJsonValue v = GrabberWizard::buildFileTypes(true, false, false, false, false, "iso, bin"); QVERIFY(v.isArray()); const QJsonArray a = v.toArray(); QVERIFY(a.contains(QStringLiteral("jpg"))); QVERIFY(a.contains(QStringLiteral("iso"))); QVERIFY(a.contains(QStringLiteral("bin"))); } void TstGrabberWizard::blankFiltersBecomeNull() { const QJsonObject p = GrabberWizard::buildStartParams("https://example.test/", 2, true, "", "", QJsonValue()); QVERIFY(p.value("includePatterns").isNull()); QVERIFY(p.value("excludePatterns").isNull()); QCOMPARE(p.value("depth").toInt(), 2); QCOMPARE(p.value("sameHostOnly").toBool(), true); } void TstGrabberWizard::filtersAreSplitOnCommaAndNewline() { const QJsonObject p = GrabberWizard::buildStartParams("https://example.test/", 1, false, "*.jpg,*.png\n*.gif", "", QJsonValue()); QCOMPARE(p.value("includePatterns").toArray().size(), 3); } void TstGrabberWizard::harvestParamsCarrySelection() { const QJsonObject p = GrabberWizard::buildHarvestParams("job1", {"f1", "f2"}, "cat1", "later"); QCOMPARE(p.value("jobId").toString(), QStringLiteral("job1")); QCOMPARE(p.value("select").toArray().size(), 2); QCOMPARE(p.value("defaults").toObject().value("categoryId").toString(), QStringLiteral("cat1")); QCOMPARE(p.value("defaults").toObject().value("startMode").toString(), QStringLiteral("later")); } QTEST_MAIN(TstGrabberWizard) #include "tst_grabberwizard.moc"