Changeset View
Changeset View
Standalone View
Standalone View
src/tests/dolphinquerytest.cpp
Show All 39 Lines | |||||
40 | * Defines the parameters for the test cases in testBalooSearchParsing() | 40 | * Defines the parameters for the test cases in testBalooSearchParsing() | ||
41 | */ | 41 | */ | ||
42 | void DolphinSearchBoxTest::testBalooSearchParsing_data() | 42 | void DolphinSearchBoxTest::testBalooSearchParsing_data() | ||
43 | { | 43 | { | ||
44 | const QString text = QStringLiteral("xyz"); | 44 | const QString text = QStringLiteral("xyz"); | ||
45 | const QString filename = QStringLiteral("filename:\"xyz\""); | 45 | const QString filename = QStringLiteral("filename:\"xyz\""); | ||
46 | const QString rating = QStringLiteral("rating>=2"); | 46 | const QString rating = QStringLiteral("rating>=2"); | ||
47 | const QString modified = QString("modified>=2019-08-07"); | 47 | const QString modified = QString("modified>=2019-08-07"); | ||
48 | const QString tagA = QString("tag:tagA"); | ||||
49 | const QString tagB = QString("tag:tagB"); | ||||
48 | 50 | | |||
49 | QTest::addColumn<QString>("searchString"); | 51 | QTest::addColumn<QString>("searchString"); | ||
50 | QTest::addColumn<QString>("expectedText"); | 52 | QTest::addColumn<QString>("expectedText"); | ||
51 | QTest::addColumn<QStringList>("expectedTerms"); | 53 | QTest::addColumn<QStringList>("expectedTerms"); | ||
52 | 54 | | |||
53 | // Test for "Content" | 55 | // Test for "Content" | ||
54 | QTest::newRow("content") << text << text << QStringList(); | 56 | QTest::newRow("content") << text << text << QStringList(); | ||
55 | QTest::newRow("content/empty") << "" << "" << QStringList(); | 57 | QTest::newRow("content/empty") << "" << "" << QStringList(); | ||
56 | QTest::newRow("content/singleQuote") << "\"" << "" << QStringList(); | 58 | QTest::newRow("content/singleQuote") << "\"" << "" << QStringList(); | ||
57 | QTest::newRow("content/doubleQuote") << "\"\"" << "" << QStringList(); | 59 | QTest::newRow("content/doubleQuote") << "\"\"" << "" << QStringList(); | ||
58 | // Test for empty `filename` | 60 | | ||
61 | // Test for "Filename" | ||||
59 | QTest::newRow("filename") << filename << text << QStringList(); | 62 | QTest::newRow("filename") << filename << text << QStringList(); | ||
60 | QTest::newRow("filename/empty") << "filename:" << "" << QStringList(); | 63 | QTest::newRow("filename/empty") << "filename:" << "" << QStringList(); | ||
61 | QTest::newRow("filename/singleQuote") << "filename:\"" << "" << QStringList(); | 64 | QTest::newRow("filename/singleQuote") << "filename:\"" << "" << QStringList(); | ||
62 | QTest::newRow("filename/doubleQuote") << "filename:\"\"" << "" << QStringList(); | 65 | QTest::newRow("filename/doubleQuote") << "filename:\"\"" << "" << QStringList(); | ||
63 | 66 | | |||
64 | // Test for rating | 67 | // Test for rating | ||
65 | QTest::newRow("rating") << rating << "" << QStringList({rating}); | 68 | QTest::newRow("rating") << rating << "" << QStringList({rating}); | ||
66 | QTest::newRow("rating+content") << rating + " " + text << text << QStringList({rating}); | 69 | QTest::newRow("rating+content") << rating + " " + text << text << QStringList({rating}); | ||
67 | QTest::newRow("rating+filename") << rating + " " + filename << text << QStringList({rating}); | 70 | QTest::newRow("rating+filename") << rating + " " + filename << text << QStringList({rating}); | ||
71 | | ||||
68 | // Test for modified date | 72 | // Test for modified date | ||
69 | QTest::newRow("modified") << modified << "" << QStringList({modified}); | 73 | QTest::newRow("modified") << modified << "" << QStringList({modified}); | ||
70 | QTest::newRow("modified+content") << modified + " " + text << text << QStringList({modified}); | 74 | QTest::newRow("modified+content") << modified + " " + text << text << QStringList({modified}); | ||
71 | QTest::newRow("modified+filename") << modified + " " + filename << text << QStringList({modified}); | 75 | QTest::newRow("modified+filename") << modified + " " + filename << text << QStringList({modified}); | ||
76 | | ||||
77 | // Test for tags | ||||
78 | QTest::newRow("tag") << tagA << "" << QStringList({tagA}); | ||||
79 | QTest::newRow("tag/double") << tagA + " " + tagB << "" << QStringList({tagA, tagB}); | ||||
80 | QTest::newRow("tag+content") << tagA + " " + text << text << QStringList({tagA}); | ||||
81 | QTest::newRow("tag+filename") << tagA + " " + filename << text << QStringList({tagA}); | ||||
82 | | ||||
72 | // Combined tests | 83 | // Combined tests | ||
73 | QTest::newRow("rating+modified") << rating + " AND " + modified << "" << QStringList({modified, rating}); | 84 | QTest::newRow("rating+modified") | ||
74 | QTest::newRow("rating+modified+content") << rating + " AND " + modified + " " + text << text << QStringList({modified, rating}); | 85 | << rating + " AND " + modified | ||
75 | QTest::newRow("rating+modified+filename") << rating + " AND " + modified + " " + filename << text << QStringList({modified, rating}); | 86 | << "" << QStringList({modified, rating}); | ||
87 | | ||||
88 | QTest::newRow("allTerms") | ||||
89 | << rating + " AND " + modified + " AND " + tagA + " AND " + tagB | ||||
90 | << "" << QStringList({modified, rating, tagA, tagB}); | ||||
91 | | ||||
92 | QTest::newRow("allTerms+content") | ||||
93 | << rating + " AND " + modified + " " + text + " " + tagA + " AND " + tagB | ||||
94 | << text << QStringList({modified, rating, tagA, tagB}); | ||||
95 | | ||||
96 | QTest::newRow("allTerms+filename") | ||||
97 | << rating + " AND " + modified + " " + filename + " " + tagA + " AND " + tagB | ||||
98 | << text << QStringList({modified, rating, tagA, tagB}); | ||||
76 | } | 99 | } | ||
77 | 100 | | |||
78 | /** | 101 | /** | ||
79 | * Helper function to compose the baloo query URL used for searching | 102 | * Helper function to compose the baloo query URL used for searching | ||
80 | */ | 103 | */ | ||
81 | QUrl composeQueryUrl(const QString& searchString) | 104 | QUrl composeQueryUrl(const QString& searchString) | ||
82 | { | 105 | { | ||
83 | const QJsonObject jsonObject { | 106 | const QJsonObject jsonObject { | ||
▲ Show 20 Lines • Show All 46 Lines • Show Last 20 Lines |