File indexing completed on 2024-05-12 05:22:07
0001 /* 0002 * SPDX-FileCopyrightText: 2014 Daniel Vrátil <dvratil@redhat.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #include <QObject> 0008 #include <QTest> 0009 0010 #include "filesearchquery.h" 0011 0012 using namespace KGAPI2; 0013 using namespace KGAPI2::Drive; 0014 0015 Q_DECLARE_METATYPE(KGAPI2::Drive::FileSearchQuery) 0016 0017 class FileSearchQueryTest : public QObject 0018 { 0019 Q_OBJECT 0020 public: 0021 explicit FileSearchQueryTest() 0022 { 0023 } 0024 0025 ~FileSearchQueryTest() override 0026 { 0027 } 0028 0029 private Q_SLOTS: 0030 void testFileSearchQuery_data() 0031 { 0032 QTest::addColumn<FileSearchQuery>("query"); 0033 QTest::addColumn<QString>("expected"); 0034 0035 { 0036 FileSearchQuery query; 0037 query.addQuery(FileSearchQuery::Title, FileSearchQuery::Contains, QLatin1StringView("Some String")); 0038 QTest::newRow("simple") << query << "((title contains 'Some String'))"; 0039 } 0040 0041 { 0042 FileSearchQuery query; 0043 query.addQuery(FileSearchQuery::Title, FileSearchQuery::Equals, QLatin1StringView("Title")); 0044 query.addQuery(FileSearchQuery::MimeType, FileSearchQuery::Contains, QLatin1StringView("text/plain")); 0045 QTest::newRow("A and B") << query << "((title = 'Title') and (mimeType contains 'text/plain'))"; 0046 } 0047 0048 { 0049 FileSearchQuery query(FileSearchQuery::Or); 0050 query.addQuery(FileSearchQuery::Trashed, FileSearchQuery::Equals, true); 0051 query.addQuery(FileSearchQuery::Writers, FileSearchQuery::In, QLatin1StringView("user@gmail.com")); 0052 QTest::newRow("A or B") << query << "((trashed = true) or ('user@gmail.com' in writers))"; 0053 } 0054 0055 { 0056 FileSearchQuery query(FileSearchQuery::Or); 0057 query.addQuery(FileSearchQuery::ModifiedDate, FileSearchQuery::Equals, QDateTime(QDate(2014, 07, 28), QTime(17, 05, 30), QTimeZone::UTC)); 0058 FileSearchQuery subquery; 0059 subquery.addQuery(FileSearchQuery::Title, FileSearchQuery::Equals, QLatin1StringView("Test")); 0060 subquery.addQuery(FileSearchQuery::Title, FileSearchQuery::NotEquals, QLatin1StringView("File")); 0061 query.addQuery(subquery); 0062 QTest::newRow("A or (B and C)") << query << "((modifiedDate = '2014-07-28T17:05:30') or ((title = 'Test') and (title != 'File')))"; 0063 } 0064 } 0065 0066 void testFileSearchQuery() 0067 { 0068 QFETCH(FileSearchQuery, query); 0069 QFETCH(QString, expected); 0070 0071 const QString serialized = query.serialize(); 0072 QCOMPARE(serialized, expected); 0073 } 0074 }; 0075 0076 QTEST_GUILESS_MAIN(FileSearchQueryTest) 0077 0078 #include "filesearchquerytest.moc"