b8aac3c9bc
Add secondary_cursors field to Editor with insert_char_multi, delete_back_multi, delete_forward_multi methods. Right-to-left processing ensures position shifts don't corrupt earlier insertions. 7 new tests: add/clear, all_positions, insert, delete_back, delete_forward, unicode, duplicate-add.
36 lines
1.0 KiB
C++
36 lines
1.0 KiB
C++
/*
|
|
SPDX-FileCopyrightText: 2025 Joshua Goins <josh@redstrate.com>
|
|
|
|
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
|
|
*/
|
|
|
|
// Qt includes
|
|
#include <QTest>
|
|
|
|
// Solid includes
|
|
#include <solid/predicate.h>
|
|
|
|
class PredicateTest : public QObject
|
|
{
|
|
Q_OBJECT
|
|
private Q_SLOTS:
|
|
void testParsing();
|
|
};
|
|
|
|
QTEST_MAIN(PredicateTest)
|
|
|
|
void PredicateTest::testParsing()
|
|
{
|
|
Solid::Predicate equalPredicate = Solid::Predicate::fromString(QStringLiteral("IS OpticalDisc"));
|
|
QVERIFY(equalPredicate.isValid());
|
|
QCOMPARE(equalPredicate.interfaceType(), Solid::DeviceInterface::OpticalDisc);
|
|
QCOMPARE(equalPredicate.isInterfaceTypeNegated(), false);
|
|
|
|
Solid::Predicate notEqualPredicate = Solid::Predicate::fromString(QStringLiteral("IS_NOT OpticalDisc"));
|
|
QVERIFY(notEqualPredicate.isValid());
|
|
QCOMPARE(notEqualPredicate.interfaceType(), Solid::DeviceInterface::OpticalDisc);
|
|
QCOMPARE(notEqualPredicate.isInterfaceTypeNegated(), true);
|
|
}
|
|
|
|
#include "predicatetest.moc"
|