// SPDX-License-Identifier: MIT #include "packageutils.h" #include #include #include #include class PackageUtilsTest : public QObject { Q_OBJECT private Q_SLOTS: void validatesTouchpadSettings() { QVERIFY(validTouchpadSettings(100, 100, 10, 150, QStringLiteral("BTN_MIDDLE"))); QVERIFY(validTouchpadSettings(0, 0, 0, 2000, QStringLiteral("KEY_F13"))); QVERIFY(!validTouchpadSettings(-1, 100, 10, 150, QStringLiteral("BTN_MIDDLE"))); QVERIFY(!validTouchpadSettings(100, 2001, 10, 150, QStringLiteral("BTN_MIDDLE"))); QVERIFY(!validTouchpadSettings(100, 100, 151, 150, QStringLiteral("BTN_MIDDLE"))); QVERIFY(!validTouchpadSettings(100, 100, 0, 0, QStringLiteral("BTN_MIDDLE"))); QVERIFY(!validTouchpadSettings(100, 100, 10, 150, QStringLiteral("BTN_MIDDLE\n"))); QVERIFY(!validTouchpadSettings(100, 100, 10, 150, QStringLiteral("BTN_MIDDLE; reboot"))); } void frameworkCompatibility() { QTemporaryDir root; QVERIFY(packageCompatibilityError(QStringLiteral("touchpad-hold-tap"), root.path()).isEmpty()); QVERIFY(!packageCompatibilityError(QStringLiteral("framework-laptop-tools"), root.path()).isEmpty()); QVERIFY(QDir().mkpath(root.path() + QStringLiteral("/class/dmi/id"))); QFile vendor(root.path() + QStringLiteral("/class/dmi/id/sys_vendor")); QVERIFY(vendor.open(QIODevice::WriteOnly)); vendor.write("Framework\n"); vendor.close(); QFile product(root.path() + QStringLiteral("/class/dmi/id/product_name")); QVERIFY(product.open(QIODevice::WriteOnly)); product.write("Laptop 13 Pro (Intel Core Ultra Series 3)\n"); product.close(); QVERIFY(packageCompatibilityError(QStringLiteral("framework-laptop-tools"), root.path()).isEmpty()); QVERIFY(product.open(QIODevice::WriteOnly | QIODevice::Truncate)); product.write("Laptop 13\n"); product.close(); QVERIFY(!packageCompatibilityError(QStringLiteral("framework-laptop-tools"), root.path()).isEmpty()); } void parsesQueryOutput() { const auto records = parsePackageRecords( "touchpad-hold-tap\t0.1.0-6.fc44\tnoarch\tTouchpad gesture\n" "broken line\n"); QCOMPARE(records.size(), 1); QCOMPARE(records.first().name, QStringLiteral("touchpad-hold-tap")); QCOMPARE(records.first().version, QStringLiteral("0.1.0-6.fc44")); QCOMPARE(records.first().summary, QStringLiteral("Touchpad gesture")); } void validatesPackageNames() { QVERIFY(isValidPackageName(QStringLiteral("plasma-task-group-shortcuts"))); QVERIFY(!isValidPackageName(QStringLiteral("--installroot=/tmp"))); QVERIFY(!isValidPackageName(QStringLiteral("tool; reboot"))); QVERIFY(!isValidPackageName(QStringLiteral("Tool"))); QVERIFY(!isValidPackageName(QStringLiteral("touchpad-hold-tap\n"))); } }; QTEST_MAIN(PackageUtilsTest) #include "test-packageutils.moc"