Changeset View
Changeset View
Standalone View
Standalone View
autotests/databaseinterfacetest.cpp
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
Show First 20 Lines • Show All 174 Lines • ▼ Show 20 Line(s) | 88 | { | |||
---|---|---|---|---|---|
175 | QCOMPARE(album.title(), QStringLiteral("album3")); | 175 | QCOMPARE(album.title(), QStringLiteral("album3")); | ||
176 | QCOMPARE(album.artist(), QStringLiteral("artist2")); | 176 | QCOMPARE(album.artist(), QStringLiteral("artist2")); | ||
177 | QCOMPARE(album[DatabaseInterface::ColumnsRoles::SecondaryTextRole], QStringLiteral("artist2")); | 177 | QCOMPARE(album[DatabaseInterface::ColumnsRoles::SecondaryTextRole], QStringLiteral("artist2")); | ||
178 | QVERIFY(album.isValidArtist()); | 178 | QVERIFY(album.isValidArtist()); | ||
179 | QCOMPARE(album.albumArtURI(), QUrl::fromLocalFile(QStringLiteral("album3"))); | 179 | QCOMPARE(album.albumArtURI(), QUrl::fromLocalFile(QStringLiteral("album3"))); | ||
180 | QCOMPARE(album.isSingleDiscAlbum(), true); | 180 | QCOMPARE(album.isSingleDiscAlbum(), true); | ||
181 | } | 181 | } | ||
182 | 182 | | |||
183 | void addAndRemoveOneTrackWithoutTitle() | ||||
184 | { | ||||
185 | QTemporaryFile databaseFile; | ||||
186 | databaseFile.open(); | ||||
187 | | ||||
188 | DatabaseInterface musicDb; | ||||
189 | | ||||
190 | musicDb.init(QStringLiteral("testDb"), databaseFile.fileName()); | ||||
191 | | ||||
192 | QSignalSpy musicDbArtistAddedSpy(&musicDb, &DatabaseInterface::artistsAdded); | ||||
193 | QSignalSpy musicDbAlbumAddedSpy(&musicDb, &DatabaseInterface::albumsAdded); | ||||
194 | QSignalSpy musicDbTrackAddedSpy(&musicDb, &DatabaseInterface::tracksAdded); | ||||
195 | QSignalSpy musicDbArtistRemovedSpy(&musicDb, &DatabaseInterface::artistRemoved); | ||||
196 | QSignalSpy musicDbAlbumRemovedSpy(&musicDb, &DatabaseInterface::albumRemoved); | ||||
197 | QSignalSpy musicDbTrackRemovedSpy(&musicDb, &DatabaseInterface::trackRemoved); | ||||
198 | QSignalSpy musicDbAlbumModifiedSpy(&musicDb, &DatabaseInterface::albumModified); | ||||
199 | QSignalSpy musicDbTrackModifiedSpy(&musicDb, &DatabaseInterface::trackModified); | ||||
200 | QSignalSpy musicDbDatabaseErrorSpy(&musicDb, &DatabaseInterface::databaseError); | ||||
201 | | ||||
202 | QCOMPARE(musicDb.allAlbumsData().count(), 0); | ||||
203 | QCOMPARE(musicDb.allArtistsData().count(), 0); | ||||
204 | QCOMPARE(musicDb.allTracksData().count(), 0); | ||||
205 | QCOMPARE(musicDbArtistAddedSpy.count(), 0); | ||||
206 | QCOMPARE(musicDbAlbumAddedSpy.count(), 0); | ||||
207 | QCOMPARE(musicDbTrackAddedSpy.count(), 0); | ||||
208 | QCOMPARE(musicDbArtistRemovedSpy.count(), 0); | ||||
209 | QCOMPARE(musicDbAlbumRemovedSpy.count(), 0); | ||||
210 | QCOMPARE(musicDbTrackRemovedSpy.count(), 0); | ||||
211 | QCOMPARE(musicDbAlbumModifiedSpy.count(), 0); | ||||
212 | QCOMPARE(musicDbTrackModifiedSpy.count(), 0); | ||||
213 | QCOMPARE(musicDbDatabaseErrorSpy.count(), 0); | ||||
214 | | ||||
215 | auto newTrack = MusicAudioTrack {true, QStringLiteral("$23"), QStringLiteral("0"), {}, | ||||
216 | QStringLiteral("artist8"), QStringLiteral("album4"), QStringLiteral("artist8"), | ||||
217 | 9, 1, QTime::fromMSecsSinceStartOfDay(24), {QUrl::fromLocalFile(QStringLiteral("/$24"))}, QDateTime::fromMSecsSinceEpoch(24), | ||||
218 | {}, 9, true, QStringLiteral("genre1"), QStringLiteral("composer1"), QStringLiteral("lyricist1"), false}; | ||||
219 | | ||||
220 | auto newTracks = QList<MusicAudioTrack>(); | ||||
221 | newTracks.push_back(newTrack); | ||||
222 | | ||||
223 | auto newCovers = mNewCovers; | ||||
224 | newCovers[QStringLiteral("file:///$24")] = QUrl::fromLocalFile(QStringLiteral("album4")); | ||||
225 | | ||||
226 | musicDb.insertTracksList(newTracks, newCovers); | ||||
227 | | ||||
228 | musicDbTrackAddedSpy.wait(300); | ||||
229 | | ||||
230 | QCOMPARE(musicDb.allAlbumsData().count(), 1); | ||||
231 | QCOMPARE(musicDb.allArtistsData().count(), 1); | ||||
232 | QCOMPARE(musicDb.allTracksData().count(), 1); | ||||
233 | QCOMPARE(musicDbArtistAddedSpy.count(), 1); | ||||
234 | QCOMPARE(musicDbAlbumAddedSpy.count(), 1); | ||||
235 | QCOMPARE(musicDbTrackAddedSpy.count(), 1); | ||||
236 | QCOMPARE(musicDbArtistRemovedSpy.count(), 0); | ||||
237 | QCOMPARE(musicDbAlbumRemovedSpy.count(), 0); | ||||
238 | QCOMPARE(musicDbTrackRemovedSpy.count(), 0); | ||||
239 | QCOMPARE(musicDbAlbumModifiedSpy.count(), 0); | ||||
240 | QCOMPARE(musicDbTrackModifiedSpy.count(), 0); | ||||
241 | QCOMPARE(musicDbDatabaseErrorSpy.count(), 0); | ||||
242 | | ||||
243 | auto trackId = musicDb.trackIdFromFileName(QUrl::fromLocalFile(QStringLiteral("/$24"))); | ||||
244 | QVERIFY(trackId != 0); | ||||
245 | auto track = musicDb.trackDataFromDatabaseId(trackId); | ||||
246 | | ||||
247 | QCOMPARE(track.isValid(), true); | ||||
248 | QCOMPARE(track.title(), QString()); | ||||
249 | QCOMPARE(track.artist(), QStringLiteral("artist8")); | ||||
250 | QCOMPARE(track.album(), QStringLiteral("album4")); | ||||
251 | QCOMPARE(track.albumCover(), QUrl::fromLocalFile(QStringLiteral("album4"))); | ||||
252 | QCOMPARE(track.trackNumber(), 9); | ||||
253 | QCOMPARE(track.discNumber(), 1); | ||||
254 | QCOMPARE(track.duration(), QTime::fromMSecsSinceStartOfDay(24)); | ||||
255 | QCOMPARE(track.resourceURI(), QUrl::fromLocalFile(QStringLiteral("/$24"))); | ||||
256 | QCOMPARE(track.rating(), 9); | ||||
257 | QCOMPARE(track.genre(), QStringLiteral("genre1")); | ||||
258 | QCOMPARE(track.composer(), QStringLiteral("composer1")); | ||||
259 | QCOMPARE(track.lyricist(), QStringLiteral("lyricist1")); | ||||
260 | | ||||
261 | musicDb.removeTracksList({track.resourceURI()}); | ||||
262 | | ||||
263 | QCOMPARE(musicDb.allAlbumsData().count(), 0); | ||||
264 | QCOMPARE(musicDb.allArtistsData().count(), 0); | ||||
265 | QCOMPARE(musicDb.allTracksData().count(), 0); | ||||
266 | QCOMPARE(musicDbArtistAddedSpy.count(), 1); | ||||
267 | QCOMPARE(musicDbAlbumAddedSpy.count(), 1); | ||||
268 | QCOMPARE(musicDbTrackAddedSpy.count(), 1); | ||||
269 | QCOMPARE(musicDbArtistRemovedSpy.count(), 1); | ||||
270 | QCOMPARE(musicDbAlbumRemovedSpy.count(), 1); | ||||
271 | QCOMPARE(musicDbTrackRemovedSpy.count(), 1); | ||||
272 | QCOMPARE(musicDbAlbumModifiedSpy.count(), 0); | ||||
273 | QCOMPARE(musicDbTrackModifiedSpy.count(), 0); | ||||
274 | QCOMPARE(musicDbDatabaseErrorSpy.count(), 0); | ||||
275 | } | ||||
276 | | ||||
183 | void addAndRemoveOneTrackWithoutAlbum() | 277 | void addAndRemoveOneTrackWithoutAlbum() | ||
184 | { | 278 | { | ||
185 | QTemporaryFile databaseFile; | 279 | QTemporaryFile databaseFile; | ||
186 | databaseFile.open(); | 280 | databaseFile.open(); | ||
187 | 281 | | |||
188 | qDebug() << "addAndRemoveOneTrackWithoutAlbum" << databaseFile.fileName(); | 282 | qDebug() << "addAndRemoveOneTrackWithoutAlbum" << databaseFile.fileName(); | ||
189 | 283 | | |||
190 | DatabaseInterface musicDb; | 284 | DatabaseInterface musicDb; | ||
▲ Show 20 Lines • Show All 4143 Lines • ▼ Show 20 Line(s) | 4211 | { | |||
4334 | QCOMPARE(firstAlbumTitle2, QStringLiteral("album3")); | 4428 | QCOMPARE(firstAlbumTitle2, QStringLiteral("album3")); | ||
4335 | QCOMPARE(firstAlbumArtist2, QStringLiteral("artist2")); | 4429 | QCOMPARE(firstAlbumArtist2, QStringLiteral("artist2")); | ||
4336 | QCOMPARE(firstAlbumImage2.isValid(), true); | 4430 | QCOMPARE(firstAlbumImage2.isValid(), true); | ||
4337 | QCOMPARE(firstAlbumImage2, QUrl::fromLocalFile(QStringLiteral("album3"))); | 4431 | QCOMPARE(firstAlbumImage2, QUrl::fromLocalFile(QStringLiteral("album3"))); | ||
4338 | QCOMPARE(firstAlbumTracksCount2, 2); | 4432 | QCOMPARE(firstAlbumTracksCount2, 2); | ||
4339 | QCOMPARE(firstAlbumIsSingleDiscAlbum2, false); | 4433 | QCOMPARE(firstAlbumIsSingleDiscAlbum2, false); | ||
4340 | } | 4434 | } | ||
4341 | 4435 | | |||
4342 | void addTwoIdenticalInvalidTracks() | | |||
4343 | { | | |||
4344 | DatabaseInterface musicDb; | | |||
4345 | | ||||
4346 | musicDb.init(QStringLiteral("testDb")); | | |||
4347 | | ||||
4348 | QSignalSpy musicDbArtistAddedSpy(&musicDb, &DatabaseInterface::artistsAdded); | | |||
4349 | QSignalSpy musicDbAlbumAddedSpy(&musicDb, &DatabaseInterface::albumsAdded); | | |||
4350 | QSignalSpy musicDbTrackAddedSpy(&musicDb, &DatabaseInterface::tracksAdded); | | |||
4351 | QSignalSpy musicDbArtistRemovedSpy(&musicDb, &DatabaseInterface::artistRemoved); | | |||
4352 | QSignalSpy musicDbAlbumRemovedSpy(&musicDb, &DatabaseInterface::albumRemoved); | | |||
4353 | QSignalSpy musicDbTrackRemovedSpy(&musicDb, &DatabaseInterface::trackRemoved); | | |||
4354 | QSignalSpy musicDbAlbumModifiedSpy(&musicDb, &DatabaseInterface::albumModified); | | |||
4355 | QSignalSpy musicDbTrackModifiedSpy(&musicDb, &DatabaseInterface::trackModified); | | |||
4356 | QSignalSpy musicDbDatabaseErrorSpy(&musicDb, &DatabaseInterface::databaseError); | | |||
4357 | | ||||
4358 | QCOMPARE(musicDb.allAlbumsData().count(), 0); | | |||
4359 | QCOMPARE(musicDb.allArtistsData().count(), 0); | | |||
4360 | QCOMPARE(musicDb.allTracksData().count(), 0); | | |||
4361 | QCOMPARE(musicDbArtistAddedSpy.count(), 0); | | |||
4362 | QCOMPARE(musicDbAlbumAddedSpy.count(), 0); | | |||
4363 | QCOMPARE(musicDbTrackAddedSpy.count(), 0); | | |||
4364 | QCOMPARE(musicDbArtistRemovedSpy.count(), 0); | | |||
4365 | QCOMPARE(musicDbAlbumRemovedSpy.count(), 0); | | |||
4366 | QCOMPARE(musicDbTrackRemovedSpy.count(), 0); | | |||
4367 | QCOMPARE(musicDbAlbumModifiedSpy.count(), 0); | | |||
4368 | QCOMPARE(musicDbTrackModifiedSpy.count(), 0); | | |||
4369 | QCOMPARE(musicDbDatabaseErrorSpy.count(), 0); | | |||
4370 | | ||||
4371 | musicDb.insertTracksList(mNewTracks, mNewCovers); | | |||
4372 | | ||||
4373 | musicDbTrackAddedSpy.wait(300); | | |||
4374 | | ||||
4375 | QCOMPARE(musicDb.allAlbumsData().count(), 5); | | |||
4376 | QCOMPARE(musicDb.allArtistsData().count(), 7); | | |||
4377 | QCOMPARE(musicDb.allTracksData().count(), 22); | | |||
4378 | QCOMPARE(musicDbArtistAddedSpy.count(), 1); | | |||
4379 | QCOMPARE(musicDbAlbumAddedSpy.count(), 1); | | |||
4380 | QCOMPARE(musicDbTrackAddedSpy.count(), 1); | | |||
4381 | QCOMPARE(musicDbArtistRemovedSpy.count(), 0); | | |||
4382 | QCOMPARE(musicDbAlbumRemovedSpy.count(), 0); | | |||
4383 | QCOMPARE(musicDbTrackRemovedSpy.count(), 0); | | |||
4384 | QCOMPARE(musicDbAlbumModifiedSpy.count(), 0); | | |||
4385 | QCOMPARE(musicDbTrackModifiedSpy.count(), 0); | | |||
4386 | QCOMPARE(musicDbDatabaseErrorSpy.count(), 0); | | |||
4387 | | ||||
4388 | auto newTrack = MusicAudioTrack{true, QStringLiteral("$23"), QStringLiteral("0"), {}, | | |||
4389 | {}, {}, {}, {}, {}, {}, {QUrl::fromLocalFile(QStringLiteral("file:///$23"))}, | | |||
4390 | QDateTime::fromMSecsSinceEpoch(23), {}, {}, {}, {}, {}, {}, false}; | | |||
4391 | auto newTracks = QList<MusicAudioTrack>(); | | |||
4392 | newTracks.push_back(newTrack); | | |||
4393 | newTracks.push_back(newTrack); | | |||
4394 | | ||||
4395 | auto newCovers = mNewCovers; | | |||
4396 | newCovers[QStringLiteral("file:///$23")] = QUrl::fromLocalFile(QStringLiteral("album3")); | | |||
4397 | | ||||
4398 | musicDb.insertTracksList(newTracks, newCovers); | | |||
4399 | | ||||
4400 | musicDbTrackAddedSpy.wait(300); | | |||
4401 | | ||||
4402 | QCOMPARE(musicDb.allAlbumsData().count(), 5); | | |||
4403 | QCOMPARE(musicDb.allArtistsData().count(), 7); | | |||
4404 | QCOMPARE(musicDb.allTracksData().count(), 22); | | |||
4405 | QCOMPARE(musicDbArtistAddedSpy.count(), 1); | | |||
4406 | QCOMPARE(musicDbAlbumAddedSpy.count(), 1); | | |||
4407 | QCOMPARE(musicDbTrackAddedSpy.count(), 1); | | |||
4408 | QCOMPARE(musicDbArtistRemovedSpy.count(), 0); | | |||
4409 | QCOMPARE(musicDbAlbumRemovedSpy.count(), 0); | | |||
4410 | QCOMPARE(musicDbTrackRemovedSpy.count(), 0); | | |||
4411 | QCOMPARE(musicDbAlbumModifiedSpy.count(), 0); | | |||
4412 | QCOMPARE(musicDbTrackModifiedSpy.count(), 0); | | |||
4413 | QCOMPARE(musicDbDatabaseErrorSpy.count(), 0); | | |||
4414 | } | | |||
4415 | | ||||
4416 | | ||||
4417 | void checkRestoredTracks() | 4436 | void checkRestoredTracks() | ||
4418 | { | 4437 | { | ||
4419 | DatabaseInterface musicDb; | 4438 | DatabaseInterface musicDb; | ||
4420 | 4439 | | |||
4421 | musicDb.init(QStringLiteral("testDb")); | 4440 | musicDb.init(QStringLiteral("testDb")); | ||
4422 | 4441 | | |||
4423 | QSignalSpy musicDbArtistAddedSpy(&musicDb, &DatabaseInterface::artistsAdded); | 4442 | QSignalSpy musicDbArtistAddedSpy(&musicDb, &DatabaseInterface::artistsAdded); | ||
4424 | QSignalSpy musicDbAlbumAddedSpy(&musicDb, &DatabaseInterface::albumsAdded); | 4443 | QSignalSpy musicDbAlbumAddedSpy(&musicDb, &DatabaseInterface::albumsAdded); | ||
▲ Show 20 Lines • Show All 828 Lines • Show Last 20 Lines |