Files

64 lines
2.9 KiB
C++

// SPDX-License-Identifier: MIT
#include "packageutils.h"
#include <QTest>
#include <QTemporaryDir>
#include <QDir>
#include <QFile>
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"