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 All 12 Lines | |||||
13 | * | 13 | * | ||
14 | * You should have received a copy of the GNU Lesser General Public License | 14 | * You should have received a copy of the GNU Lesser General Public License | ||
15 | * along with this program. If not, see <https://www.gnu.org/licenses/>. | 15 | * along with this program. If not, see <https://www.gnu.org/licenses/>. | ||
16 | */ | 16 | */ | ||
17 | 17 | | |||
18 | #include "databasetestdata.h" | 18 | #include "databasetestdata.h" | ||
19 | 19 | | |||
20 | #include "databaseinterface.h" | 20 | #include "databaseinterface.h" | ||
21 | #include "datatypes.h" | ||||
21 | #include "musicaudiotrack.h" | 22 | #include "musicaudiotrack.h" | ||
22 | 23 | | |||
23 | #include "config-upnp-qt.h" | 24 | #include "config-upnp-qt.h" | ||
24 | 25 | | |||
25 | #include <QObject> | 26 | #include <QObject> | ||
26 | #include <QUrl> | 27 | #include <QUrl> | ||
27 | #include <QString> | 28 | #include <QString> | ||
28 | #include <QHash> | 29 | #include <QHash> | ||
Show All 22 Lines | 50 | private Q_SLOTS: | |||
51 | void initTestCase() | 52 | void initTestCase() | ||
52 | { | 53 | { | ||
53 | qRegisterMetaType<QHash<qulonglong,int>>("QHash<qulonglong,int>"); | 54 | qRegisterMetaType<QHash<qulonglong,int>>("QHash<qulonglong,int>"); | ||
54 | qRegisterMetaType<QHash<QString,QUrl>>("QHash<QString,QUrl>"); | 55 | qRegisterMetaType<QHash<QString,QUrl>>("QHash<QString,QUrl>"); | ||
55 | qRegisterMetaType<QList<MusicAudioTrack>>("QList<MusicAudioTrack>"); | 56 | qRegisterMetaType<QList<MusicAudioTrack>>("QList<MusicAudioTrack>"); | ||
56 | qRegisterMetaType<QVector<qlonglong>>("QVector<qlonglong>"); | 57 | qRegisterMetaType<QVector<qlonglong>>("QVector<qlonglong>"); | ||
57 | qRegisterMetaType<QHash<qlonglong,int>>("QHash<qlonglong,int>"); | 58 | qRegisterMetaType<QHash<qlonglong,int>>("QHash<qlonglong,int>"); | ||
58 | qRegisterMetaType<QHash<QUrl,QDateTime>>("QHash<QUrl,QDateTime>"); | 59 | qRegisterMetaType<QHash<QUrl,QDateTime>>("QHash<QUrl,QDateTime>"); | ||
59 | qRegisterMetaType<DatabaseInterface::ListTrackDataType>("ListTrackDataType"); | 60 | qRegisterMetaType<DataTypes::ListTrackDataType>("ListTrackDataType"); | ||
60 | qRegisterMetaType<DatabaseInterface::ListAlbumDataType>("ListAlbumDataType"); | 61 | qRegisterMetaType<DataTypes::ListAlbumDataType>("ListAlbumDataType"); | ||
61 | qRegisterMetaType<DatabaseInterface::ListArtistDataType>("ListArtistDataType"); | 62 | qRegisterMetaType<DataTypes::ListArtistDataType>("ListArtistDataType"); | ||
62 | qRegisterMetaType<DatabaseInterface::ListGenreDataType>("ListGenreDataType"); | 63 | qRegisterMetaType<DataTypes::ListGenreDataType>("ListGenreDataType"); | ||
63 | qRegisterMetaType<DatabaseInterface::TrackDataType>("TrackDataType"); | 64 | qRegisterMetaType<DataTypes::TrackDataType>("TrackDataType"); | ||
64 | qRegisterMetaType<DatabaseInterface::AlbumDataType>("AlbumDataType"); | 65 | qRegisterMetaType<DataTypes::AlbumDataType>("AlbumDataType"); | ||
65 | qRegisterMetaType<DatabaseInterface::ArtistDataType>("ArtistDataType"); | 66 | qRegisterMetaType<DataTypes::ArtistDataType>("ArtistDataType"); | ||
66 | qRegisterMetaType<DatabaseInterface::GenreDataType>("GenreDataType"); | 67 | qRegisterMetaType<DataTypes::GenreDataType>("GenreDataType"); | ||
67 | } | 68 | } | ||
68 | 69 | | |||
69 | void avoidCrashInTrackIdFromTitleAlbumArtist() | 70 | void avoidCrashInTrackIdFromTitleAlbumArtist() | ||
70 | { | 71 | { | ||
71 | DatabaseInterface musicDb; | 72 | DatabaseInterface musicDb; | ||
72 | musicDb.trackIdFromTitleAlbumTrackDiscNumber(QStringLiteral("track1"), QStringLiteral("artist1"), QStringLiteral("album3"), 1, 1); | 73 | musicDb.trackIdFromTitleAlbumTrackDiscNumber(QStringLiteral("track1"), QStringLiteral("artist1"), QStringLiteral("album3"), 1, 1); | ||
73 | } | 74 | } | ||
74 | 75 | | |||
▲ Show 20 Lines • Show All 94 Lines • ▼ Show 20 Line(s) | 89 | { | |||
169 | QVERIFY(albumId != 0); | 170 | QVERIFY(albumId != 0); | ||
170 | auto album = musicDb.albumDataFromDatabaseId(albumId); | 171 | auto album = musicDb.albumDataFromDatabaseId(albumId); | ||
171 | auto albumData = musicDb.albumData(albumId); | 172 | auto albumData = musicDb.albumData(albumId); | ||
172 | 173 | | |||
173 | QCOMPARE(album.isValid(), true); | 174 | QCOMPARE(album.isValid(), true); | ||
174 | QCOMPARE(albumData.count(), 1); | 175 | QCOMPARE(albumData.count(), 1); | ||
175 | QCOMPARE(album.title(), QStringLiteral("album3")); | 176 | QCOMPARE(album.title(), QStringLiteral("album3")); | ||
176 | QCOMPARE(album.artist(), QStringLiteral("artist2")); | 177 | QCOMPARE(album.artist(), QStringLiteral("artist2")); | ||
177 | QCOMPARE(album[DatabaseInterface::ColumnsRoles::SecondaryTextRole], QStringLiteral("artist2")); | 178 | QCOMPARE(album[DataTypes::ColumnsRoles::SecondaryTextRole], QStringLiteral("artist2")); | ||
178 | QVERIFY(album.isValidArtist()); | 179 | QVERIFY(album.isValidArtist()); | ||
179 | QCOMPARE(album.albumArtURI(), QUrl::fromLocalFile(QStringLiteral("album3"))); | 180 | QCOMPARE(album.albumArtURI(), QUrl::fromLocalFile(QStringLiteral("album3"))); | ||
180 | QCOMPARE(album.isSingleDiscAlbum(), true); | 181 | QCOMPARE(album.isSingleDiscAlbum(), true); | ||
181 | } | 182 | } | ||
182 | 183 | | |||
183 | void addAndRemoveOneTrackWithoutAlbum() | 184 | void addAndRemoveOneTrackWithoutAlbum() | ||
184 | { | 185 | { | ||
185 | QTemporaryFile databaseFile; | 186 | QTemporaryFile databaseFile; | ||
▲ Show 20 Lines • Show All 2024 Lines • ▼ Show 20 Line(s) | 2105 | { | |||
2210 | QCOMPARE(firstAlbumImageV2, QUrl::fromLocalFile(QStringLiteral("album1"))); | 2211 | QCOMPARE(firstAlbumImageV2, QUrl::fromLocalFile(QStringLiteral("album1"))); | ||
2211 | QCOMPARE(firstAlbumTracksCountV2, 3); | 2212 | QCOMPARE(firstAlbumTracksCountV2, 3); | ||
2212 | QCOMPARE(firstAlbumIsSingleDiscAlbumV2, false); | 2213 | QCOMPARE(firstAlbumIsSingleDiscAlbumV2, false); | ||
2213 | 2214 | | |||
2214 | auto removedTrackId = musicDb.trackIdFromTitleAlbumTrackDiscNumber(QStringLiteral("track1"), QStringLiteral("artist1"), | 2215 | auto removedTrackId = musicDb.trackIdFromTitleAlbumTrackDiscNumber(QStringLiteral("track1"), QStringLiteral("artist1"), | ||
2215 | QStringLiteral("album1"), 1, 1); | 2216 | QStringLiteral("album1"), 1, 1); | ||
2216 | QCOMPARE(removedTrackId, qulonglong(0)); | 2217 | QCOMPARE(removedTrackId, qulonglong(0)); | ||
2217 | 2218 | | |||
2218 | firstTrack[DatabaseInterface::DatabaseIdRole] = 0; | 2219 | firstTrack[DataTypes::DatabaseIdRole] = 0; | ||
2219 | 2220 | | |||
2220 | musicDb.insertTracksList({MusicAudioTrack::trackFromData(firstTrack)}, mNewCovers); | 2221 | musicDb.insertTracksList({MusicAudioTrack::trackFromData(firstTrack)}, mNewCovers); | ||
2221 | 2222 | | |||
2222 | musicDbTrackAddedSpy.wait(300); | 2223 | musicDbTrackAddedSpy.wait(300); | ||
2223 | 2224 | | |||
2224 | QCOMPARE(musicDb.allAlbumsData().count(), 5); | 2225 | QCOMPARE(musicDb.allAlbumsData().count(), 5); | ||
2225 | QCOMPARE(musicDb.allArtistsData().count(), 7); | 2226 | QCOMPARE(musicDb.allArtistsData().count(), 7); | ||
2226 | QCOMPARE(musicDb.allTracksData().count(), 22); | 2227 | QCOMPARE(musicDb.allTracksData().count(), 22); | ||
▲ Show 20 Lines • Show All 2059 Lines • ▼ Show 20 Line(s) | 4118 | { | |||
4286 | QCOMPARE(secondTrackDiscNumber, 2); | 4287 | QCOMPARE(secondTrackDiscNumber, 2); | ||
4287 | QCOMPARE(secondTrackResource.isValid(), true); | 4288 | QCOMPARE(secondTrackResource.isValid(), true); | ||
4288 | QCOMPARE(secondTrackResource, QUrl::fromLocalFile(QStringLiteral("/$25"))); | 4289 | QCOMPARE(secondTrackResource, QUrl::fromLocalFile(QStringLiteral("/$25"))); | ||
4289 | QCOMPARE(secondTrackRating, 5); | 4290 | QCOMPARE(secondTrackRating, 5); | ||
4290 | QCOMPARE(secondIsSingleDiscAlbum, false); | 4291 | QCOMPARE(secondIsSingleDiscAlbum, false); | ||
4291 | 4292 | | |||
4292 | const auto &modifiedTrackSignal = musicDbTrackModifiedSpy.at(0); | 4293 | const auto &modifiedTrackSignal = musicDbTrackModifiedSpy.at(0); | ||
4293 | QCOMPARE(modifiedTrackSignal.count(), 1); | 4294 | QCOMPARE(modifiedTrackSignal.count(), 1); | ||
4294 | const auto &modifiedTrack = modifiedTrackSignal.at(0).value<DatabaseInterface::TrackDataType>(); | 4295 | const auto &modifiedTrack = modifiedTrackSignal.at(0).value<DataTypes::TrackDataType>(); | ||
4295 | 4296 | | |||
4296 | auto modifiedTrackTitle = modifiedTrack.title(); | 4297 | auto modifiedTrackTitle = modifiedTrack.title(); | ||
4297 | auto modifiedTrackArtist = modifiedTrack.artist(); | 4298 | auto modifiedTrackArtist = modifiedTrack.artist(); | ||
4298 | auto modifiedTrackAlbumArtist = modifiedTrack.albumArtist(); | 4299 | auto modifiedTrackAlbumArtist = modifiedTrack.albumArtist(); | ||
4299 | auto modifiedTrackAlbum = modifiedTrack.album(); | 4300 | auto modifiedTrackAlbum = modifiedTrack.album(); | ||
4300 | auto modifiedTrackImage = modifiedTrack.albumCover(); | 4301 | auto modifiedTrackImage = modifiedTrack.albumCover(); | ||
4301 | auto modifiedTrackDuration = modifiedTrack.duration(); | 4302 | auto modifiedTrackDuration = modifiedTrack.duration(); | ||
4302 | auto modifiedTrackMilliSecondsDuration = modifiedTrack.duration().msecsSinceStartOfDay(); | 4303 | auto modifiedTrackMilliSecondsDuration = modifiedTrack.duration().msecsSinceStartOfDay(); | ||
▲ Show 20 Lines • Show All 855 Lines • ▼ Show 20 Line(s) | 5090 | { | |||
5158 | QCOMPARE(musicDbAlbumRemovedSpy.count(), 0); | 5159 | QCOMPARE(musicDbAlbumRemovedSpy.count(), 0); | ||
5159 | QCOMPARE(musicDbTrackRemovedSpy.count(), 0); | 5160 | QCOMPARE(musicDbTrackRemovedSpy.count(), 0); | ||
5160 | QCOMPARE(musicDbAlbumModifiedSpy.count(), 0); | 5161 | QCOMPARE(musicDbAlbumModifiedSpy.count(), 0); | ||
5161 | QCOMPARE(musicDbTrackModifiedSpy.count(), 0); | 5162 | QCOMPARE(musicDbTrackModifiedSpy.count(), 0); | ||
5162 | QCOMPARE(musicDbDatabaseErrorSpy.count(), 0); | 5163 | QCOMPARE(musicDbDatabaseErrorSpy.count(), 0); | ||
5163 | 5164 | | |||
5164 | const auto newAlbumSignal = musicDbAlbumAddedSpy.at(0); | 5165 | const auto newAlbumSignal = musicDbAlbumAddedSpy.at(0); | ||
5165 | QCOMPARE(newAlbumSignal.size(), 1); | 5166 | QCOMPARE(newAlbumSignal.size(), 1); | ||
5166 | const auto newAlbums = newAlbumSignal.at(0).value<DatabaseInterface::ListAlbumDataType>(); | 5167 | const auto newAlbums = newAlbumSignal.at(0).value<DataTypes::ListAlbumDataType>(); | ||
5167 | QCOMPARE(newAlbums.size(), 1); | 5168 | QCOMPARE(newAlbums.size(), 1); | ||
5168 | const auto newAlbum = newAlbums.at(0); | 5169 | const auto newAlbum = newAlbums.at(0); | ||
5169 | QCOMPARE(newAlbum.title(), QStringLiteral("album3")); | 5170 | QCOMPARE(newAlbum.title(), QStringLiteral("album3")); | ||
5170 | QCOMPARE(newAlbum.artist(), QStringLiteral("Various Artists")); | 5171 | QCOMPARE(newAlbum.artist(), QStringLiteral("Various Artists")); | ||
5171 | QCOMPARE(newAlbum[DatabaseInterface::ColumnsRoles::SecondaryTextRole], QStringLiteral("Various Artists")); | 5172 | QCOMPARE(newAlbum[DataTypes::ColumnsRoles::SecondaryTextRole], QStringLiteral("Various Artists")); | ||
5172 | 5173 | | |||
5173 | const auto oneAlbum = musicDb.allAlbumsData().at(0); | 5174 | const auto oneAlbum = musicDb.allAlbumsData().at(0); | ||
5174 | QCOMPARE(oneAlbum.title(), QStringLiteral("album3")); | 5175 | QCOMPARE(oneAlbum.title(), QStringLiteral("album3")); | ||
5175 | QCOMPARE(oneAlbum.artist(), QStringLiteral("Various Artists")); | 5176 | QCOMPARE(oneAlbum.artist(), QStringLiteral("Various Artists")); | ||
5176 | QCOMPARE(oneAlbum[DatabaseInterface::ColumnsRoles::SecondaryTextRole], QStringLiteral("Various Artists")); | 5177 | QCOMPARE(oneAlbum[DataTypes::ColumnsRoles::SecondaryTextRole], QStringLiteral("Various Artists")); | ||
5177 | } | 5178 | } | ||
5178 | 5179 | | |||
5179 | void testAlbumFromGenreAndArtistWithoutAlbumArtist() | 5180 | void testAlbumFromGenreAndArtistWithoutAlbumArtist() | ||
5180 | { | 5181 | { | ||
5181 | QTemporaryFile databaseFile; | 5182 | QTemporaryFile databaseFile; | ||
5182 | databaseFile.open(); | 5183 | databaseFile.open(); | ||
5183 | 5184 | | |||
5184 | qDebug() << "testAlbumFromGenreAndArtistWithoutAlbumArtist" << databaseFile.fileName(); | 5185 | qDebug() << "testAlbumFromGenreAndArtistWithoutAlbumArtist" << databaseFile.fileName(); | ||
▲ Show 20 Lines • Show All 68 Lines • Show Last 20 Lines |