Fix playlist parser tests

This commit is contained in:
David Sansome 2010-12-11 11:07:00 +00:00
parent 67452baa4d
commit a739ff2714
6 changed files with 22 additions and 15 deletions

View File

@ -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("://"))

View File

@ -26,6 +26,8 @@
class AsxIniParserTest : public ::testing::Test { class AsxIniParserTest : public ::testing::Test {
protected: protected:
AsxIniParserTest() : parser_(NULL) {}
AsxIniParser parser_; AsxIniParser parser_;
}; };

View File

@ -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());

View File

@ -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());

View File

@ -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))

View File

@ -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);