/* SPDX-FileCopyrightText: 2021 Alexander Lohnau SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #include #include #include #include "browsers/firefox.h" using namespace Plasma; class TestBookmarksMatch : public QObject { Q_OBJECT public: using QObject::QObject; private Q_SLOTS: void testQueryMatchConversion(); void testQueryMatchConversion_data(); void testAddToList(); }; void TestBookmarksMatch::testQueryMatchConversion() { QFETCH(QString, searchTerm); QFETCH(QString, bookmarkDescription); QFETCH(int, expectedMatchType); QFETCH(qreal, expectedRelevance); BookmarkMatch bookmarkMatch(QIcon::fromTheme("unknown"), searchTerm, "KDE Community", "https://somehost.com/", bookmarkDescription); QueryMatch match = bookmarkMatch.asQueryMatch(nullptr); QCOMPARE(match.text(), "KDE Community"); QCOMPARE(match.data().toString(), "https://somehost.com/"); QCOMPARE(match.type(), expectedMatchType); QCOMPARE(match.relevance(), expectedRelevance); } void TestBookmarksMatch::testQueryMatchConversion_data() { QTest::addColumn("searchTerm"); QTest::addColumn("bookmarkDescription"); QTest::addColumn("expectedMatchType"); QTest::addColumn("expectedRelevance"); auto newRow = [](const char *dataTag, const QString searchTerm, const QString bookmarkDescription, int expectedMatchType, qreal expectedRelevance) { QTest::newRow(dataTag) << searchTerm << bookmarkDescription << expectedMatchType << expectedRelevance; }; newRow("no text match", "krunner", "", (int)QueryMatch::PossibleMatch, 0.18); newRow("title partly matches", "kde", "", (int)QueryMatch::PossibleMatch, 0.45); newRow("title exactly matches", "kde community", "", (int)QueryMatch::ExactMatch, 1.0); newRow("url partly matches", "somehost", "", (int)QueryMatch::PossibleMatch, 0.2); newRow("url exactly matches", "https://somehost.com/", "", (int)QueryMatch::PossibleMatch, 0.2); newRow("description exactly matches", "test", "test", (int)QueryMatch::ExactMatch, 1.0); newRow("description partly matches", "test", "testme", (int)QueryMatch::PossibleMatch, 0.3); } void TestBookmarksMatch::testAddToList() { BookmarkMatch noMatch(QIcon(), "krunner", "KDE Community", "https://somehost.com/"); BookmarkMatch match(QIcon(), "kde", "KDE Community", "https://somehost.com/"); QList onlyMatching; noMatch.addTo(onlyMatching, false); match.addTo(onlyMatching, false); QCOMPARE(onlyMatching.count(), 1); QList allMatches; noMatch.addTo(allMatches, true); match.addTo(allMatches, true); QCOMPARE(allMatches.count(), 2); } QTEST_MAIN(TestBookmarksMatch) #include "bookmarksmatchtest.moc"