Changeset View
Changeset View
Standalone View
Standalone View
src/tests/dolphinquerytest.cpp
Show All 35 Lines | 34 | private slots: | |||
---|---|---|---|---|---|
36 | void testBalooSearchParsing(); | 36 | void testBalooSearchParsing(); | ||
37 | }; | 37 | }; | ||
38 | 38 | | |||
39 | /** | 39 | /** | ||
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("abc xyz"); | 44 | const QString text = QStringLiteral("abc"); | ||
45 | const QString textS = QStringLiteral("abc xyz"); | ||||
45 | const QString filename = QStringLiteral("filename:\"%1\"").arg(text); | 46 | const QString filename = QStringLiteral("filename:\"%1\"").arg(text); | ||
47 | const QString filenameS = QStringLiteral("filename:\"%1\"").arg(textS); | ||||
48 | | ||||
46 | const QString rating = QStringLiteral("rating>=2"); | 49 | const QString rating = QStringLiteral("rating>=2"); | ||
47 | const QString modified = QString("modified>=2019-08-07"); | 50 | const QString modified = QStringLiteral("modified>=2019-08-07"); | ||
48 | const QString tagA = QString("tag:tagA"); | 51 | | ||
49 | const QString tagB = QString("tag:tagB"); | 52 | const QString tag = QStringLiteral("tag:tagA"); | ||
53 | const QString tagS = QStringLiteral("tag:\"tagB with spaces\""); // in search url | ||||
54 | const QString tagR = QStringLiteral("tag:tagB with spaces"); // in result term | ||||
50 | 55 | | |||
51 | QTest::addColumn<QString>("searchString"); | 56 | QTest::addColumn<QString>("searchString"); | ||
52 | QTest::addColumn<QString>("expectedText"); | 57 | QTest::addColumn<QString>("expectedText"); | ||
53 | QTest::addColumn<QStringList>("expectedTerms"); | 58 | QTest::addColumn<QStringList>("expectedTerms"); | ||
54 | QTest::addColumn<bool>("hasContent"); | 59 | QTest::addColumn<bool>("hasContent"); | ||
55 | QTest::addColumn<bool>("hasFileName"); | 60 | QTest::addColumn<bool>("hasFileName"); | ||
56 | 61 | | |||
57 | // Test for "Content" | 62 | // Test for "Content" | ||
58 | QTest::newRow("content") << text << text << QStringList() << true << false; | 63 | QTest::newRow("content") << text << text << QStringList() << true << false; | ||
64 | QTest::newRow("content/space") << textS << textS << QStringList() << true << false; | ||||
59 | QTest::newRow("content/empty") << "" << "" << QStringList() << false << false; | 65 | QTest::newRow("content/empty") << "" << "" << QStringList() << false << false; | ||
60 | QTest::newRow("content/singleQuote") << "\"" << "" << QStringList() << false << false; | 66 | QTest::newRow("content/single_quote") << "\"" << "\"" << QStringList() << true << false; | ||
61 | QTest::newRow("content/doubleQuote") << "\"\"" << "" << QStringList() << false << false; | 67 | QTest::newRow("content/double_quote") << "\"\"" << "" << QStringList() << false << false; | ||
62 | 68 | | |||
63 | // Test for "FileName" | 69 | // Test for "FileName" | ||
64 | QTest::newRow("filename") << filename << text << QStringList() << false << true; | 70 | QTest::newRow("filename") << filename << text << QStringList() << false << true; | ||
71 | QTest::newRow("filename/space") << filenameS << textS << QStringList() << false << true; | ||||
65 | QTest::newRow("filename/empty") << "filename:" << "" << QStringList() << false << false; | 72 | QTest::newRow("filename/empty") << "filename:" << "" << QStringList() << false << false; | ||
66 | QTest::newRow("filename/singleQuote") << "filename:\"" << "" << QStringList() << false << false; | 73 | QTest::newRow("filename/single_quote") << "filename:\"" << "\"" << QStringList() << false << true; | ||
67 | QTest::newRow("filename/doubleQuote") << "filename:\"\"" << "" << QStringList() << false << false; | 74 | QTest::newRow("filename/double_quote") << "filename:\"\"" << "" << QStringList() << false << false; | ||
68 | 75 | | |||
69 | // Combined content and filename search | 76 | // Combined content and filename search | ||
70 | QTest::newRow("content+filename") << text + " " + filename << text + " " + filename << QStringList() << true << true; | 77 | QTest::newRow("content+filename") | ||
78 | << text + " " + filename | ||||
79 | << text + " " + filename << QStringList() << true << true; | ||||
71 | 80 | | |||
72 | // Test for rating | 81 | // Test for rating | ||
73 | QTest::newRow("rating") << rating << "" << QStringList({rating}) << false << false; | 82 | QTest::newRow("rating") << rating << "" << QStringList({rating}) << false << false; | ||
74 | QTest::newRow("rating+content") << rating + " " + text << text << QStringList({rating}) << true << false; | 83 | QTest::newRow("rating+content") << rating + " " + text << text << QStringList({rating}) << true << false; | ||
75 | QTest::newRow("rating+filename") << rating + " " + filename << text << QStringList({rating}) << false << true; | 84 | QTest::newRow("rating+filename") << rating + " " + filename << text << QStringList({rating}) << false << true; | ||
76 | 85 | | |||
77 | // Test for modified date | 86 | // Test for modified date | ||
78 | QTest::newRow("modified") << modified << "" << QStringList({modified}) << false << false; | 87 | QTest::newRow("modified") << modified << "" << QStringList({modified}) << false << false; | ||
79 | QTest::newRow("modified+content") << modified + " " + text << text << QStringList({modified}) << true << false; | 88 | QTest::newRow("modified+content") << modified + " " + text << text << QStringList({modified}) << true << false; | ||
80 | QTest::newRow("modified+filename") << modified + " " + filename << text << QStringList({modified}) << false << true; | 89 | QTest::newRow("modified+filename") << modified + " " + filename << text << QStringList({modified}) << false << true; | ||
81 | 90 | | |||
82 | // Test for tags | 91 | // Test for tags | ||
83 | QTest::newRow("tag") << tagA << "" << QStringList({tagA}) << false << false; | 92 | QTest::newRow("tag") << tag << "" << QStringList({tag}) << false << false; | ||
84 | QTest::newRow("tag/double") << tagA + " " + tagB << "" << QStringList({tagA, tagB}) << false << false; | 93 | QTest::newRow("tag/space" ) << tagS << "" << QStringList({tagR}) << false << false; | ||
85 | QTest::newRow("tag+content") << tagA + " " + text << text << QStringList({tagA}) << true << false; | 94 | QTest::newRow("tag/double") << tag + " " + tagS << "" << QStringList({tag, tagR}) << false << false; | ||
86 | QTest::newRow("tag+filename") << tagA + " " + filename << text << QStringList({tagA}) << false << true; | 95 | QTest::newRow("tag+content") << tag + " " + text << text << QStringList({tag}) << true << false; | ||
96 | QTest::newRow("tag+filename") << tag + " " + filename << text << QStringList({tag}) << false << true; | ||||
87 | 97 | | |||
88 | // Combined search terms | 98 | // Combined search terms | ||
99 | QTest::newRow("searchTerms") | ||||
100 | << rating + " AND " + modified + " AND " + tag + " AND " + tagS | ||||
101 | << "" << QStringList({modified, rating, tag, tagR}) << false << false; | ||||
102 | | ||||
103 | QTest::newRow("searchTerms+content") | ||||
104 | << rating + " AND " + modified + " " + text + " " + tag + " AND " + tagS | ||||
105 | << text << QStringList({modified, rating, tag, tagR}) << true << false; | ||||
106 | | ||||
107 | QTest::newRow("searchTerms+filename") | ||||
108 | << rating + " AND " + modified + " " + filename + " " + tag + " AND " + tagS | ||||
109 | << text << QStringList({modified, rating, tag, tagR}) << false << true; | ||||
110 | | ||||
89 | QTest::newRow("allTerms") | 111 | QTest::newRow("allTerms") | ||
90 | << rating + " AND " + modified + " AND " + tagA + " AND " + tagB | 112 | << text + " " + filename + " " + rating + " AND " + modified + " AND " + tag | ||
91 | << "" << QStringList({modified, rating, tagA, tagB}) << false << false; | 113 | << text + " " + filename << QStringList({modified, rating, tag}) << true << true; | ||
92 | 114 | | |||
93 | QTest::newRow("allTerms+content") | 115 | QTest::newRow("allTerms/space") | ||
94 | << rating + " AND " + modified + " " + text + " " + tagA + " AND " + tagB | 116 | << textS + " " + filenameS + " " + rating + " AND " + modified + " AND " + tagS | ||
95 | << text << QStringList({modified, rating, tagA, tagB}) << true << false; | 117 | << textS + " " + filenameS << QStringList({modified, rating, tagR}) << true << true; | ||
96 | | ||||
97 | QTest::newRow("allTerms+filename") | | |||
98 | << rating + " AND " + modified + " " + filename + " " + tagA + " AND " + tagB | | |||
99 | << text << QStringList({modified, rating, tagA, tagB}) << false << true; | | |||
100 | | ||||
101 | QTest::newRow("allTerms+content+filename") | | |||
102 | << text + " " + filename + " " + rating + " AND " + modified + " AND " + tagA + " AND " + tagB | | |||
103 | << text + " " + filename << QStringList({modified, rating, tagA, tagB}) << true << true; | | |||
104 | } | 118 | } | ||
105 | 119 | | |||
106 | /** | 120 | /** | ||
107 | * Helper function to compose the baloo query URL used for searching | 121 | * Helper function to compose the baloo query URL used for searching | ||
108 | */ | 122 | */ | ||
109 | QUrl composeQueryUrl(const QString& searchString) | 123 | QUrl composeQueryUrl(const QString& searchString) | ||
110 | { | 124 | { | ||
111 | const QJsonObject jsonObject { | 125 | const QJsonObject jsonObject { | ||
▲ Show 20 Lines • Show All 52 Lines • Show Last 20 Lines |