Warning, file /frameworks/kactivities-stats/autotests/QueryTest.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2015 Ivan Cukic <ivan.cukic(at)kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "QueryTest.h" 0008 0009 #include <QDBusConnection> 0010 #include <QDBusConnectionInterface> 0011 #include <QDebug> 0012 #include <QString> 0013 #include <QTest> 0014 0015 #include <query.h> 0016 0017 namespace KAStats = KActivities::Stats; 0018 using namespace KAStats; 0019 using namespace KAStats::Terms; 0020 0021 QueryTest::QueryTest(QObject *parent) 0022 : Test(parent) 0023 { 0024 } 0025 0026 void QueryTest::testDefaults() 0027 { 0028 TEST_CHUNK(QStringLiteral("Testing the term defaults")); 0029 0030 Query query; 0031 0032 QCOMPARE(query.selection(), AllResources); 0033 QCOMPARE(query.types(), {QStringLiteral(":any")}); 0034 QCOMPARE(query.agents(), {QStringLiteral(":current")}); 0035 QCOMPARE(query.activities(), {QStringLiteral(":current")}); 0036 QCOMPARE(query.ordering(), HighScoredFirst); 0037 } 0038 0039 void QueryTest::testDebuggingOutput() 0040 { 0041 TEST_CHUNK(QStringLiteral("Debugging output for a query")); 0042 0043 Query query; 0044 0045 // Testing whether qDebug can be called (compilation check) 0046 qDebug() << "Writing out a query:" << query; 0047 } 0048 0049 void QueryTest::testDerivationFromDefault() 0050 { 0051 TEST_CHUNK(QStringLiteral("Testing query derivation from default")) 0052 0053 Query queryDefault; 0054 auto queryDerived = queryDefault | LinkedResources; 0055 0056 // queryDefault should not have been modified 0057 QCOMPARE(queryDefault.selection(), AllResources); 0058 QCOMPARE(queryDerived.selection(), LinkedResources); 0059 0060 // Changing queryDerived back to AllResources, should be == to queryDefault 0061 queryDerived.setSelection(AllResources); 0062 QCOMPARE(queryDefault, queryDerived); 0063 } 0064 0065 void QueryTest::testDerivationFromCustom() 0066 { 0067 TEST_CHUNK(QStringLiteral("Testing query derivation from custom")) 0068 0069 Query queryCustom; 0070 auto queryDerived = queryCustom | LinkedResources; 0071 0072 // q1 should not have been modified 0073 QCOMPARE(queryCustom.selection(), AllResources); 0074 QCOMPARE(queryDerived.selection(), LinkedResources); 0075 0076 // Changing queryDerived back to AllResources, should be == to queryDefault 0077 queryDerived.setSelection(AllResources); 0078 QCOMPARE(queryCustom, queryDerived); 0079 } 0080 0081 void QueryTest::testNormalSyntaxAgentManipulation() 0082 { 0083 TEST_CHUNK(QStringLiteral("Testing normal syntax manipulation: Agents")) 0084 0085 Query query; 0086 query.addAgents(QStringList() << QStringLiteral("gvim") << QStringLiteral("kate")); 0087 0088 QCOMPARE(query.agents(), QStringList() << QStringLiteral("gvim") << QStringLiteral("kate")); 0089 0090 query.addAgents(QStringList() << QStringLiteral("kwrite")); 0091 0092 QCOMPARE(query.agents(), QStringList() << QStringLiteral("gvim") << QStringLiteral("kate") << QStringLiteral("kwrite")); 0093 0094 query.clearAgents(); 0095 0096 QCOMPARE(query.agents(), QStringList() << QStringLiteral(":current")); 0097 } 0098 0099 void QueryTest::testNormalSyntaxTypeManipulation() 0100 { 0101 TEST_CHUNK(QStringLiteral("Testing normal syntax manipulation: Types")) 0102 0103 Query query; 0104 query.addTypes(QStringList() << QStringLiteral("text/html") << QStringLiteral("text/plain")); 0105 0106 QCOMPARE(query.types(), QStringList() << QStringLiteral("text/html") << QStringLiteral("text/plain")); 0107 0108 query.addTypes(QStringList() << QStringLiteral("text/xml")); 0109 0110 QCOMPARE(query.types(), QStringList() << QStringLiteral("text/html") << QStringLiteral("text/plain") << QStringLiteral("text/xml")); 0111 0112 query.clearTypes(); 0113 0114 QCOMPARE(query.types(), QStringList() << QStringLiteral(":any")); 0115 } 0116 0117 void QueryTest::testNormalSyntaxActivityManipulation() 0118 { 0119 TEST_CHUNK(QStringLiteral("Testing normal syntax manipulation: Activities")) 0120 0121 Query query; 0122 query.addActivities(QStringList() << QStringLiteral("a1") << QStringLiteral("a2")); 0123 0124 QCOMPARE(query.activities(), QStringList() << QStringLiteral("a1") << QStringLiteral("a2")); 0125 0126 query.addActivities(QStringList() << QStringLiteral("a3")); 0127 0128 QCOMPARE(query.activities(), QStringList() << QStringLiteral("a1") << QStringLiteral("a2") << QStringLiteral("a3")); 0129 0130 query.clearActivities(); 0131 0132 QCOMPARE(query.activities(), QStringList() << QStringLiteral(":current")); 0133 } 0134 0135 void QueryTest::testNormalSyntaxOrderingManipulation() 0136 { 0137 TEST_CHUNK(QStringLiteral("Testing normal syntax manipulation: Activities")) 0138 0139 Query query; 0140 0141 QCOMPARE(query.ordering(), HighScoredFirst); 0142 0143 query.setOrdering(RecentlyCreatedFirst); 0144 0145 QCOMPARE(query.ordering(), RecentlyCreatedFirst); 0146 0147 query.setOrdering(OrderByUrl); 0148 0149 QCOMPARE(query.ordering(), OrderByUrl); 0150 } 0151 0152 void QueryTest::testFancySyntaxBasic() 0153 { 0154 TEST_CHUNK(QStringLiteral("Testing the fancy syntax, non c++11")) 0155 0156 /* clang-format off */ 0157 auto query = LinkedResources 0158 | Type(QStringLiteral("text")) 0159 | Type(QStringLiteral("image")) 0160 | Agent(QStringLiteral("test")) 0161 | RecentlyCreatedFirst; 0162 /* clang-format on */ 0163 0164 QCOMPARE(query.selection(), LinkedResources); 0165 QCOMPARE(query.types(), QStringList() << QStringLiteral("text") << QStringLiteral("image")); 0166 QCOMPARE(query.agents(), QStringList() << QStringLiteral("test")); 0167 QCOMPARE(query.activities(), QStringList() << QStringLiteral(":current")); 0168 QCOMPARE(query.ordering(), RecentlyCreatedFirst); 0169 0170 TEST_CHUNK(QStringLiteral("Testing the fancy syntax, c++11")) 0171 0172 /* clang-format off */ 0173 // Testing the fancy c++11 syntax 0174 auto queryCXX11 = LinkedResources 0175 | Type{QStringLiteral("text"), QStringLiteral("image")} 0176 | Agent{QStringLiteral("test")} 0177 | RecentlyCreatedFirst; 0178 /* clang-format on */ 0179 0180 QCOMPARE(query, queryCXX11); 0181 } 0182 0183 void QueryTest::testFancySyntaxAgentDefinition() 0184 { 0185 TEST_CHUNK(QStringLiteral("Testing the fancy syntax, agent definition")) 0186 0187 { 0188 auto query = LinkedResources | OrderByUrl; 0189 QCOMPARE(query.agents(), QStringList() << QStringLiteral(":current")); 0190 } 0191 0192 { 0193 auto query = LinkedResources | Agent(QStringLiteral("gvim")); 0194 QCOMPARE(query.agents(), QStringList() << QStringLiteral("gvim")); 0195 } 0196 0197 { 0198 auto query = LinkedResources | Agent(QStringLiteral("gvim")) | Agent(QStringLiteral("kate")); 0199 QCOMPARE(query.agents(), QStringList() << QStringLiteral("gvim") << QStringLiteral("kate")); 0200 } 0201 0202 { 0203 auto query = LinkedResources | Agent(QStringList() << QStringLiteral("gvim") << QStringLiteral("kate")); 0204 QCOMPARE(query.agents(), QStringList() << QStringLiteral("gvim") << QStringLiteral("kate")); 0205 } 0206 } 0207 0208 void QueryTest::testFancySyntaxTypeDefinition() 0209 { 0210 TEST_CHUNK(QStringLiteral("Testing the fancy syntax, type definition")) 0211 0212 { 0213 auto query = LinkedResources | OrderByUrl; 0214 QCOMPARE(query.types(), QStringList() << QStringLiteral(":any")); 0215 } 0216 0217 { 0218 auto query = LinkedResources | Type(QStringLiteral("text/plain")); 0219 QCOMPARE(query.types(), QStringList() << QStringLiteral("text/plain")); 0220 } 0221 0222 { 0223 auto query = LinkedResources | Type(QStringLiteral("text/plain")) | Type(QStringLiteral("text/html")); 0224 QCOMPARE(query.types(), QStringList() << QStringLiteral("text/plain") << QStringLiteral("text/html")); 0225 } 0226 0227 { 0228 auto query = LinkedResources | Type(QStringList() << QStringLiteral("text/plain") << QStringLiteral("text/html")); 0229 QCOMPARE(query.types(), QStringList() << QStringLiteral("text/plain") << QStringLiteral("text/html")); 0230 } 0231 } 0232 0233 void QueryTest::testFancySyntaxActivityDefinition() 0234 { 0235 TEST_CHUNK(QStringLiteral("Testing the fancy syntax, activity definition")) 0236 0237 { 0238 auto query = LinkedResources | OrderByUrl; 0239 QCOMPARE(query.activities(), QStringList() << QStringLiteral(":current")); 0240 } 0241 0242 { 0243 auto query = LinkedResources | Activity(QStringLiteral("gvim")); 0244 QCOMPARE(query.activities(), QStringList() << QStringLiteral("gvim")); 0245 } 0246 0247 { 0248 auto query = LinkedResources | Activity(QStringLiteral("gvim")) | Activity(QStringLiteral("kate")); 0249 QCOMPARE(query.activities(), QStringList() << QStringLiteral("gvim") << QStringLiteral("kate")); 0250 } 0251 0252 { 0253 auto query = LinkedResources | Activity(QStringList() << QStringLiteral("gvim") << QStringLiteral("kate")); 0254 QCOMPARE(query.activities(), QStringList() << QStringLiteral("gvim") << QStringLiteral("kate")); 0255 } 0256 } 0257 0258 void QueryTest::testFancySyntaxOrderingDefinition() 0259 { 0260 TEST_CHUNK(QStringLiteral("Testing the fancy syntax, activity definition")) 0261 0262 { 0263 auto query = LinkedResources | OrderByUrl; 0264 QCOMPARE(query.ordering(), OrderByUrl); 0265 } 0266 0267 { 0268 auto query = LinkedResources | HighScoredFirst; 0269 QCOMPARE(query.ordering(), HighScoredFirst); 0270 } 0271 0272 { 0273 auto query = LinkedResources | RecentlyCreatedFirst; 0274 QCOMPARE(query.ordering(), RecentlyCreatedFirst); 0275 } 0276 0277 { 0278 auto query = LinkedResources | RecentlyCreatedFirst | OrderByUrl; 0279 QCOMPARE(query.ordering(), OrderByUrl); 0280 } 0281 0282 { 0283 auto query = LinkedResources | RecentlyCreatedFirst | HighScoredFirst; 0284 QCOMPARE(query.ordering(), HighScoredFirst); 0285 } 0286 } 0287 0288 void QueryTest::testNormalSyntaxDateDefinition() 0289 { 0290 TEST_CHUNK(QStringLiteral("Testing the Date definition")) 0291 { 0292 auto query = Date::today(); 0293 QCOMPARE(query.start, QDate::currentDate()); 0294 } 0295 { 0296 auto query = Date::yesterday(); 0297 QDate date = QDate::currentDate(); 0298 QCOMPARE(query.start, date.addDays(-1)); 0299 } 0300 { 0301 auto query = Date(QDate::fromString(QStringLiteral("2019-07-25"))); 0302 QCOMPARE(query.start, QDate::fromString(QStringLiteral("2019-07-25"))); 0303 } 0304 { 0305 auto query = Date(QDate::fromString(QStringLiteral("2019-07-24,2019-07-25"))); 0306 QCOMPARE(query.start, QDate::fromString(QStringLiteral("2019-07-24"))); 0307 QCOMPARE(query.end, QDate::fromString(QStringLiteral("2019-07-25"))); 0308 } 0309 } 0310 0311 void QueryTest::initTestCase() 0312 { 0313 // CHECK_CONDITION(isActivityManagerRunning, FailIfTrue); 0314 } 0315 0316 void QueryTest::cleanupTestCase() 0317 { 0318 Q_EMIT testFinished(); 0319 }