Changeset View
Changeset View
Standalone View
Standalone View
autotests/integration/querytest.cpp
Show First 20 Lines • Show All 54 Lines • ▼ Show 20 Line(s) | 36 | private Q_SLOTS: | |||
---|---|---|---|---|---|
55 | void testTermOr(); | 55 | void testTermOr(); | ||
56 | void testTermPhrase(); | 56 | void testTermPhrase(); | ||
57 | 57 | | |||
58 | private: | 58 | private: | ||
59 | QTemporaryDir* dir; | 59 | QTemporaryDir* dir; | ||
60 | Database* db; | 60 | Database* db; | ||
61 | 61 | | |||
62 | void insertDocuments(Transaction* tr); | 62 | void insertDocuments(Transaction* tr); | ||
63 | void addDocument(Transaction* tr,const QString& text, quint64 id, const QString& url) | 63 | void addDocument(Transaction* tr,const QString& text, DocId id, const QString& url) | ||
64 | { | 64 | { | ||
65 | Document doc; | 65 | Document doc; | ||
66 | doc.setUrl(QFile::encodeName(url)); | 66 | doc.setUrl(QFile::encodeName(url)); | ||
67 | 67 | | |||
68 | QString fileName = url.mid(url.lastIndexOf('/') + 1); | 68 | QString fileName = url.mid(url.lastIndexOf('/') + 1); | ||
69 | 69 | | |||
70 | TermGenerator tg(&doc); | 70 | TermGenerator tg(&doc); | ||
71 | tg.indexText(text); | 71 | tg.indexText(text); | ||
72 | tg.indexFileNameText(fileName); | 72 | tg.indexFileNameText(fileName); | ||
73 | doc.setId(id); | 73 | doc.setId(id); | ||
74 | doc.setMTime(1); | 74 | doc.setMTime(1); | ||
75 | doc.setCTime(2); | 75 | doc.setCTime(2); | ||
76 | 76 | | |||
77 | tr->addDocument(doc); | 77 | tr->addDocument(doc); | ||
78 | } | 78 | } | ||
79 | 79 | | |||
80 | quint64 m_id1; | 80 | DocId m_id1; | ||
81 | quint64 m_id2; | 81 | DocId m_id2; | ||
82 | quint64 m_id3; | 82 | DocId m_id3; | ||
83 | quint64 m_id4; | 83 | DocId m_id4; | ||
84 | }; | 84 | }; | ||
85 | 85 | | |||
86 | static quint64 touchFile(const QString& path) { | 86 | static DocId touchFile(const QString& path) { | ||
87 | QFile file(path); | 87 | QFile file(path); | ||
88 | file.open(QIODevice::WriteOnly); | 88 | file.open(QIODevice::WriteOnly); | ||
89 | file.write("data"); | 89 | file.write("data"); | ||
90 | file.close(); | 90 | file.close(); | ||
91 | 91 | | |||
92 | return filePathToId(QFile::encodeName(path)); | 92 | return filePathToId(QFile::encodeName(path)); | ||
93 | } | 93 | } | ||
94 | 94 | | |||
Show All 9 Lines | 96 | { | |||
104 | addDocument(tr, QStringLiteral("Don't feel sorry for yourself. Only assholes do that"), m_id3, dir->path() + "/file3"); | 104 | addDocument(tr, QStringLiteral("Don't feel sorry for yourself. Only assholes do that"), m_id3, dir->path() + "/file3"); | ||
105 | addDocument(tr, QStringLiteral("Only the dead stay 17 forever. crazy"), m_id4, dir->path() + "/file4"); | 105 | addDocument(tr, QStringLiteral("Only the dead stay 17 forever. crazy"), m_id4, dir->path() + "/file4"); | ||
106 | } | 106 | } | ||
107 | 107 | | |||
108 | void QueryTest::testTermEqual() | 108 | void QueryTest::testTermEqual() | ||
109 | { | 109 | { | ||
110 | EngineQuery q("the"); | 110 | EngineQuery q("the"); | ||
111 | 111 | | |||
112 | QVector<quint64> result = {m_id1, m_id2, m_id4}; | 112 | QVector<DocId> result = {m_id1, m_id2, m_id4}; | ||
113 | Transaction tr(db, Transaction::ReadOnly); | 113 | Transaction tr(db, Transaction::ReadOnly); | ||
114 | QCOMPARE(tr.exec(q), result); | 114 | QCOMPARE(tr.exec(q), result); | ||
115 | } | 115 | } | ||
116 | 116 | | |||
117 | void QueryTest::testTermStartsWith() | 117 | void QueryTest::testTermStartsWith() | ||
118 | { | 118 | { | ||
119 | EngineQuery q("for", EngineQuery::StartsWith); | 119 | EngineQuery q("for", EngineQuery::StartsWith); | ||
120 | 120 | | |||
121 | QVector<quint64> result = {m_id3, m_id4}; | 121 | QVector<DocId> result = {m_id3, m_id4}; | ||
122 | Transaction tr(db, Transaction::ReadOnly); | 122 | Transaction tr(db, Transaction::ReadOnly); | ||
123 | QCOMPARE(tr.exec(q), result); | 123 | QCOMPARE(tr.exec(q), result); | ||
124 | } | 124 | } | ||
125 | 125 | | |||
126 | void QueryTest::testTermAnd() | 126 | void QueryTest::testTermAnd() | ||
127 | { | 127 | { | ||
128 | QVector<EngineQuery> queries; | 128 | QVector<EngineQuery> queries; | ||
129 | queries << EngineQuery("for"); | 129 | queries << EngineQuery("for"); | ||
130 | queries << EngineQuery("sorry"); | 130 | queries << EngineQuery("sorry"); | ||
131 | 131 | | |||
132 | EngineQuery q(queries, EngineQuery::And); | 132 | EngineQuery q(queries, EngineQuery::And); | ||
133 | 133 | | |||
134 | QVector<quint64> result = {m_id3}; | 134 | QVector<DocId> result = {m_id3}; | ||
135 | Transaction tr(db, Transaction::ReadOnly); | 135 | Transaction tr(db, Transaction::ReadOnly); | ||
136 | QCOMPARE(tr.exec(q), result); | 136 | QCOMPARE(tr.exec(q), result); | ||
137 | } | 137 | } | ||
138 | 138 | | |||
139 | void QueryTest::testTermOr() | 139 | void QueryTest::testTermOr() | ||
140 | { | 140 | { | ||
141 | QVector<EngineQuery> queries; | 141 | QVector<EngineQuery> queries; | ||
142 | queries << EngineQuery("over"); | 142 | queries << EngineQuery("over"); | ||
143 | queries << EngineQuery("terror"); | 143 | queries << EngineQuery("terror"); | ||
144 | 144 | | |||
145 | EngineQuery q(queries, EngineQuery::Or); | 145 | EngineQuery q(queries, EngineQuery::Or); | ||
146 | 146 | | |||
147 | QVector<quint64> result = {m_id1, m_id2}; | 147 | QVector<DocId> result = {m_id1, m_id2}; | ||
148 | Transaction tr(db, Transaction::ReadOnly); | 148 | Transaction tr(db, Transaction::ReadOnly); | ||
149 | QCOMPARE(tr.exec(q), result); | 149 | QCOMPARE(tr.exec(q), result); | ||
150 | } | 150 | } | ||
151 | 151 | | |||
152 | void QueryTest::testTermPhrase() | 152 | void QueryTest::testTermPhrase() | ||
153 | { | 153 | { | ||
154 | QVector<EngineQuery> queries; | 154 | QVector<EngineQuery> queries; | ||
155 | queries << EngineQuery("the"); | 155 | queries << EngineQuery("the"); | ||
156 | queries << EngineQuery("crazy"); | 156 | queries << EngineQuery("crazy"); | ||
157 | 157 | | |||
158 | EngineQuery q(queries, EngineQuery::Phrase); | 158 | EngineQuery q(queries, EngineQuery::Phrase); | ||
159 | 159 | | |||
160 | QVector<quint64> result = {m_id1}; | 160 | QVector<DocId> result = {m_id1}; | ||
161 | Transaction tr(db, Transaction::ReadOnly); | 161 | Transaction tr(db, Transaction::ReadOnly); | ||
162 | QCOMPARE(tr.exec(q), result); | 162 | QCOMPARE(tr.exec(q), result); | ||
163 | } | 163 | } | ||
164 | 164 | | |||
165 | 165 | | |||
166 | QTEST_MAIN(QueryTest) | 166 | QTEST_MAIN(QueryTest) | ||
167 | 167 | | |||
168 | #include "querytest.moc" | 168 | #include "querytest.moc" |