Add collection backend url tests

This commit is contained in:
Jonas Kvinge 2019-11-25 00:34:59 +01:00
parent bf35665932
commit f7f9333d91
1 changed files with 44 additions and 1 deletions

View File

@ -30,6 +30,7 @@
#include "test_utils.h"
#include "core/timeconstants.h"
#include "core/song.h"
#include "core/database.h"
#include "core/logging.h"
@ -43,7 +44,7 @@ class CollectionBackendTest : public ::testing::Test {
virtual void SetUp() {
database_.reset(new MemoryDatabase(nullptr));
backend_.reset(new CollectionBackend);
backend_->Init(database_.get(), SCollection::kSongsTable, SCollection::kDirsTable, SCollection::kSubdirsTable, SCollection::kFtsTable);
backend_->Init(database_.get(), Song::Source_Collection, SCollection::kSongsTable, SCollection::kDirsTable, SCollection::kSubdirsTable, SCollection::kFtsTable);
}
Song MakeDummySong(int directory_id) {
@ -367,4 +368,46 @@ TEST_F(SingleSong, MarkSongsUnavailable) {
}
TEST_F(SingleSong, TestUrls) {
QStringList strings = QStringList() << "file:///mnt/music/01 - Pink Floyd - Echoes.flac"
<< "file:///mnt/music/02 - Björn Afzelius - Det räcker nu.flac"
<< "file:///mnt/music/03 - Vazelina Bilopphøggers - Bomull i øra.flac"
<< "file:///mnt/music/Test !#$%&'()-@^_`{}~..flac";
QList<QUrl> urls = QUrl::fromStringList(strings);
for (const QUrl &url : urls) {
QString str = url.toString(QUrl::FullyEncoded);
QUrl test_url = QUrl::fromEncoded(str.toUtf8());
EXPECT_EQ(url, test_url);
Song song(Song::Source_Collection);
song.set_directory_id(1);
song.set_title("Test Title");
song.set_album("Test Album");
song.set_artist("Test Artist");
song.set_url(url);
song.set_length_nanosec(kNsecPerSec);
song.set_mtime(1);
song.set_ctime(1);
song.set_filesize(1);
song.set_valid(true);
backend_->AddOrUpdateSongs(SongList() << song);
if (HasFatalFailure()) continue;
SongList songs = backend_->GetSongsByUrl(url);
EXPECT_EQ(1, songs.count());
if (songs.count() < 1) continue;
Song new_song = songs.first();
EXPECT_TRUE(new_song.is_valid());
EXPECT_EQ(new_song.url(), url);
}
}
} // namespace