Fix playlist parser tests
This commit is contained in:
parent
67452baa4d
commit
a739ff2714
@ -81,6 +81,9 @@ QString ParserBase::MakeUrl(const QString& filename_or_url) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Song ParserBase::LoadLibrarySong(const QString& filename_or_url) const {
|
Song ParserBase::LoadLibrarySong(const QString& filename_or_url) const {
|
||||||
|
if (!library_)
|
||||||
|
return Song();
|
||||||
|
|
||||||
QFileInfo info;
|
QFileInfo info;
|
||||||
|
|
||||||
if (filename_or_url.contains("://"))
|
if (filename_or_url.contains("://"))
|
||||||
|
@ -26,6 +26,8 @@
|
|||||||
|
|
||||||
class AsxIniParserTest : public ::testing::Test {
|
class AsxIniParserTest : public ::testing::Test {
|
||||||
protected:
|
protected:
|
||||||
|
AsxIniParserTest() : parser_(NULL) {}
|
||||||
|
|
||||||
AsxIniParser parser_;
|
AsxIniParser parser_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ TEST_F(ASXParserTest, ParsesOneTrackFromXML) {
|
|||||||
"</entry></asx>";
|
"</entry></asx>";
|
||||||
QBuffer buffer(&data);
|
QBuffer buffer(&data);
|
||||||
buffer.open(QIODevice::ReadOnly);
|
buffer.open(QIODevice::ReadOnly);
|
||||||
ASXParser parser;
|
ASXParser parser(NULL);
|
||||||
SongList songs = parser.Load(&buffer);
|
SongList songs = parser.Load(&buffer);
|
||||||
ASSERT_EQ(1, songs.length());
|
ASSERT_EQ(1, songs.length());
|
||||||
const Song& song = songs[0];
|
const Song& song = songs[0];
|
||||||
@ -61,7 +61,7 @@ TEST_F(ASXParserTest, ParsesMoreThanOneTrackFromXML) {
|
|||||||
"</entry></asx>";
|
"</entry></asx>";
|
||||||
QBuffer buffer(&data);
|
QBuffer buffer(&data);
|
||||||
buffer.open(QIODevice::ReadOnly);
|
buffer.open(QIODevice::ReadOnly);
|
||||||
ASXParser parser;
|
ASXParser parser(NULL);
|
||||||
SongList songs = parser.Load(&buffer);
|
SongList songs = parser.Load(&buffer);
|
||||||
ASSERT_EQ(2, songs.length());
|
ASSERT_EQ(2, songs.length());
|
||||||
EXPECT_EQ("http://example.com/foo.mp3", songs[0].filename());
|
EXPECT_EQ("http://example.com/foo.mp3", songs[0].filename());
|
||||||
@ -74,7 +74,7 @@ TEST_F(ASXParserTest, SavesSong) {
|
|||||||
QByteArray data;
|
QByteArray data;
|
||||||
QBuffer buffer(&data);
|
QBuffer buffer(&data);
|
||||||
buffer.open(QIODevice::WriteOnly);
|
buffer.open(QIODevice::WriteOnly);
|
||||||
ASXParser parser;
|
ASXParser parser(NULL);
|
||||||
Song one;
|
Song one;
|
||||||
one.set_filename("http://www.example.com/foo.mp3");
|
one.set_filename("http://www.example.com/foo.mp3");
|
||||||
one.set_filetype(Song::Type_Stream);
|
one.set_filetype(Song::Type_Stream);
|
||||||
@ -94,7 +94,7 @@ TEST_F(ASXParserTest, ParsesSomaFM) {
|
|||||||
QFile somafm(":/testdata/secretagent.asx");
|
QFile somafm(":/testdata/secretagent.asx");
|
||||||
somafm.open(QIODevice::ReadOnly);
|
somafm.open(QIODevice::ReadOnly);
|
||||||
|
|
||||||
ASXParser parser;
|
ASXParser parser(NULL);
|
||||||
SongList songs = parser.Load(&somafm);
|
SongList songs = parser.Load(&somafm);
|
||||||
|
|
||||||
ASSERT_EQ(4, songs.count());
|
ASSERT_EQ(4, songs.count());
|
||||||
|
@ -68,7 +68,7 @@ TEST_F(M3UParserTest, ParsesTrackLocationRelative) {
|
|||||||
temp.open();
|
temp.open();
|
||||||
QFileInfo info(temp);
|
QFileInfo info(temp);
|
||||||
taglib_.ExpectCall(temp.fileName(), "foo", "bar", "baz");
|
taglib_.ExpectCall(temp.fileName(), "foo", "bar", "baz");
|
||||||
M3UParser parser;
|
M3UParser parser(NULL);
|
||||||
QString line(info.fileName());
|
QString line(info.fileName());
|
||||||
Song song(&taglib_);
|
Song song(&taglib_);
|
||||||
ASSERT_TRUE(parser.ParseTrackLocation(line, info.dir(), &song));
|
ASSERT_TRUE(parser.ParseTrackLocation(line, info.dir(), &song));
|
||||||
@ -89,7 +89,7 @@ TEST_F(M3UParserTest, ParsesSongsFromDevice) {
|
|||||||
"http://foo.com/bar/somefile.mp3\n";
|
"http://foo.com/bar/somefile.mp3\n";
|
||||||
QBuffer buffer(&data);
|
QBuffer buffer(&data);
|
||||||
buffer.open(QIODevice::ReadOnly);
|
buffer.open(QIODevice::ReadOnly);
|
||||||
M3UParser parser;
|
M3UParser parser(NULL);
|
||||||
SongList songs = parser.Load(&buffer);
|
SongList songs = parser.Load(&buffer);
|
||||||
ASSERT_EQ(1, songs.size());
|
ASSERT_EQ(1, songs.size());
|
||||||
Song s = songs[0];
|
Song s = songs[0];
|
||||||
@ -105,7 +105,7 @@ TEST_F(M3UParserTest, ParsesNonExtendedM3U) {
|
|||||||
"http://baz.com/thing.mp3\n";
|
"http://baz.com/thing.mp3\n";
|
||||||
QBuffer buffer(&data);
|
QBuffer buffer(&data);
|
||||||
buffer.open(QIODevice::ReadOnly);
|
buffer.open(QIODevice::ReadOnly);
|
||||||
M3UParser parser;
|
M3UParser parser(NULL);
|
||||||
SongList songs = parser.Load(&buffer, QDir("somedir"));
|
SongList songs = parser.Load(&buffer, QDir("somedir"));
|
||||||
ASSERT_EQ(2, songs.size());
|
ASSERT_EQ(2, songs.size());
|
||||||
EXPECT_PRED_FORMAT2(::testing::IsSubstring,
|
EXPECT_PRED_FORMAT2(::testing::IsSubstring,
|
||||||
@ -120,7 +120,7 @@ TEST_F(M3UParserTest, ParsesNonExtendedM3U) {
|
|||||||
TEST_F(M3UParserTest, ParsesActualM3U) {
|
TEST_F(M3UParserTest, ParsesActualM3U) {
|
||||||
QFile file(":testdata/test.m3u");
|
QFile file(":testdata/test.m3u");
|
||||||
file.open(QIODevice::ReadOnly);
|
file.open(QIODevice::ReadOnly);
|
||||||
M3UParser parser;
|
M3UParser parser(NULL);
|
||||||
SongList songs = parser.Load(&file, QDir("somedir"));
|
SongList songs = parser.Load(&file, QDir("somedir"));
|
||||||
ASSERT_EQ(239, songs.size());
|
ASSERT_EQ(239, songs.size());
|
||||||
EXPECT_EQ("gravity", songs[0].title());
|
EXPECT_EQ("gravity", songs[0].title());
|
||||||
@ -141,7 +141,7 @@ TEST_F(M3UParserTest, SavesSong) {
|
|||||||
one.set_filename("http://www.example.com/foo.mp3");
|
one.set_filename("http://www.example.com/foo.mp3");
|
||||||
SongList songs;
|
SongList songs;
|
||||||
songs << one;
|
songs << one;
|
||||||
M3UParser parser;
|
M3UParser parser(NULL);
|
||||||
parser.Save(songs, &buffer);
|
parser.Save(songs, &buffer);
|
||||||
EXPECT_THAT(data.constData(), HasSubstr("#EXTM3U"));
|
EXPECT_THAT(data.constData(), HasSubstr("#EXTM3U"));
|
||||||
EXPECT_THAT(data.constData(), HasSubstr("#EXTINF:123,bar - foo"));
|
EXPECT_THAT(data.constData(), HasSubstr("#EXTINF:123,bar - foo"));
|
||||||
@ -154,7 +154,7 @@ TEST_F(M3UParserTest, ParsesUTF8) {
|
|||||||
"/foo/Разные/исполнители.mp3\n";
|
"/foo/Разные/исполнители.mp3\n";
|
||||||
QBuffer buffer(&data);
|
QBuffer buffer(&data);
|
||||||
buffer.open(QIODevice::ReadOnly);
|
buffer.open(QIODevice::ReadOnly);
|
||||||
M3UParser parser;
|
M3UParser parser(NULL);
|
||||||
SongList songs = parser.Load(&buffer);
|
SongList songs = parser.Load(&buffer);
|
||||||
ASSERT_EQ(1, songs.length());
|
ASSERT_EQ(1, songs.length());
|
||||||
EXPECT_EQ(6, songs[0].artist().length());
|
EXPECT_EQ(6, songs[0].artist().length());
|
||||||
|
@ -31,6 +31,8 @@ using boost::shared_ptr;
|
|||||||
|
|
||||||
class PLSParserTest : public ::testing::Test {
|
class PLSParserTest : public ::testing::Test {
|
||||||
protected:
|
protected:
|
||||||
|
PLSParserTest() : parser_(NULL) {}
|
||||||
|
|
||||||
shared_ptr<QFile> Open(const QString& filename) {
|
shared_ptr<QFile> Open(const QString& filename) {
|
||||||
shared_ptr<QFile> ret(new QFile(":/testdata/" + filename));
|
shared_ptr<QFile> ret(new QFile(":/testdata/" + filename));
|
||||||
if (!ret->open(QIODevice::ReadOnly))
|
if (!ret->open(QIODevice::ReadOnly))
|
||||||
|
@ -42,7 +42,7 @@ TEST_F(XSPFParserTest, ParsesOneTrackFromXML) {
|
|||||||
"</track></trackList></playlist>";
|
"</track></trackList></playlist>";
|
||||||
QBuffer buffer(&data);
|
QBuffer buffer(&data);
|
||||||
buffer.open(QIODevice::ReadOnly);
|
buffer.open(QIODevice::ReadOnly);
|
||||||
XSPFParser parser;
|
XSPFParser parser(NULL);
|
||||||
SongList songs = parser.Load(&buffer);
|
SongList songs = parser.Load(&buffer);
|
||||||
ASSERT_EQ(1, songs.length());
|
ASSERT_EQ(1, songs.length());
|
||||||
const Song& song = songs[0];
|
const Song& song = songs[0];
|
||||||
@ -66,7 +66,7 @@ TEST_F(XSPFParserTest, ParsesMoreThanOneTrackFromXML) {
|
|||||||
"</trackList></playlist>";
|
"</trackList></playlist>";
|
||||||
QBuffer buffer(&data);
|
QBuffer buffer(&data);
|
||||||
buffer.open(QIODevice::ReadOnly);
|
buffer.open(QIODevice::ReadOnly);
|
||||||
XSPFParser parser;
|
XSPFParser parser(NULL);
|
||||||
SongList songs = parser.Load(&buffer);
|
SongList songs = parser.Load(&buffer);
|
||||||
ASSERT_EQ(2, songs.length());
|
ASSERT_EQ(2, songs.length());
|
||||||
EXPECT_EQ("http://example.com/foo.mp3", songs[0].filename());
|
EXPECT_EQ("http://example.com/foo.mp3", songs[0].filename());
|
||||||
@ -88,7 +88,7 @@ TEST_F(XSPFParserTest, IgnoresInvalidLength) {
|
|||||||
"</track></trackList></playlist>";
|
"</track></trackList></playlist>";
|
||||||
QBuffer buffer(&data);
|
QBuffer buffer(&data);
|
||||||
buffer.open(QIODevice::ReadOnly);
|
buffer.open(QIODevice::ReadOnly);
|
||||||
XSPFParser parser;
|
XSPFParser parser(NULL);
|
||||||
SongList songs = parser.Load(&buffer);
|
SongList songs = parser.Load(&buffer);
|
||||||
ASSERT_EQ(1, songs.length());
|
ASSERT_EQ(1, songs.length());
|
||||||
EXPECT_EQ(-1, songs[0].length());
|
EXPECT_EQ(-1, songs[0].length());
|
||||||
@ -98,7 +98,7 @@ TEST_F(XSPFParserTest, SavesSong) {
|
|||||||
QByteArray data;
|
QByteArray data;
|
||||||
QBuffer buffer(&data);
|
QBuffer buffer(&data);
|
||||||
buffer.open(QIODevice::WriteOnly);
|
buffer.open(QIODevice::WriteOnly);
|
||||||
XSPFParser parser;
|
XSPFParser parser(NULL);
|
||||||
Song one;
|
Song one;
|
||||||
one.set_filename("http://www.example.com/foo.mp3");
|
one.set_filename("http://www.example.com/foo.mp3");
|
||||||
one.set_filetype(Song::Type_Stream);
|
one.set_filetype(Song::Type_Stream);
|
||||||
@ -119,7 +119,7 @@ TEST_F(XSPFParserTest, SavesLocalFile) {
|
|||||||
QByteArray data;
|
QByteArray data;
|
||||||
QBuffer buffer(&data);
|
QBuffer buffer(&data);
|
||||||
buffer.open(QIODevice::WriteOnly);
|
buffer.open(QIODevice::WriteOnly);
|
||||||
XSPFParser parser;
|
XSPFParser parser(NULL);
|
||||||
Song one;
|
Song one;
|
||||||
one.set_filename("/bar/foo.mp3");
|
one.set_filename("/bar/foo.mp3");
|
||||||
one.set_filetype(Song::Type_Mpeg);
|
one.set_filetype(Song::Type_Mpeg);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user