From 296e5d11b63d4933ae5f5d5a527d635cdfe8b87a Mon Sep 17 00:00:00 2001 From: Martchus Date: Thu, 14 Feb 2019 18:18:54 +0100 Subject: [PATCH] Fix TagValue::toStandardGenreIndex() for empty genre index --- tagvalue.cpp | 2 +- tests/tagvalue.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tagvalue.cpp b/tagvalue.cpp index 781db93..73f20ff 100644 --- a/tagvalue.cpp +++ b/tagvalue.cpp @@ -239,7 +239,7 @@ int TagValue::toStandardGenreIndex() const default: throw ConversionException(argsToString("Can not convert ", tagDataTypeString(m_type), " to genre index.")); } - if (!Id3Genres::isIndexSupported(index)) { + if (!Id3Genres::isEmptyGenre(index) && !Id3Genres::isIndexSupported(index)) { throw ConversionException("The assigned number is not a valid standard genre index."); } return index; diff --git a/tests/tagvalue.cpp b/tests/tagvalue.cpp index 3093ad6..8c50d38 100644 --- a/tests/tagvalue.cpp +++ b/tests/tagvalue.cpp @@ -84,8 +84,10 @@ void TagValueTests::testInteger() CPPUNIT_ASSERT_EQUAL("42"s, integer.toString()); integer.assignInteger(2); CPPUNIT_ASSERT_EQUAL("Country"s, string(Id3Genres::stringFromIndex(integer.toStandardGenreIndex()))); - integer.assignInteger(255); - CPPUNIT_ASSERT_EQUAL(string(), string(Id3Genres::stringFromIndex(integer.toStandardGenreIndex()))); + integer.assignInteger(Id3Genres::emptyGenreIndex()); + CPPUNIT_ASSERT_EQUAL(Id3Genres::emptyGenreIndex(), integer.toStandardGenreIndex()); + integer.clearData(); + CPPUNIT_ASSERT_EQUAL(Id3Genres::emptyGenreIndex(), integer.toStandardGenreIndex()); // negative number integer.assignInteger(-25);