Git commit 4baf21cfdfbe2a63001ca42145e7e42d603f8915 by Juan Palacios. Committed on 31/01/2015 at 20:47. Pushed by jpalacios into branch 'master'. Add TagLibExtractor tests REVIEW: 122329 M +13 -0 autotests/CMakeLists.txt A +- -- autotests/samplefiles/test.opus A +60 -0 autotests/taglibextractortest.cpp [License: LGPL (v2.1+)] A +37 -0 autotests/taglibextractortest.h [License: LGPL (v2.1+)] http://commits.kde.org/kfilemetadata/4baf21cfdfbe2a63001ca42145e7e42d603f89= 15 diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt index 6a98863..6cdc9e7 100644 --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -82,3 +82,16 @@ if(EXIV2_FOUND) LINK_LIBRARIES Qt5::Test KF5::FileMetaData ${EXIV2_LIBRARIES} ) endif() + +# +# TagLib +# +if(TAGLIB_FOUND) + include_directories(${TAGLIB_INCLUDES}) + + kde_enable_exceptions() + ecm_add_test(taglibextractortest.cpp ../src/extractors/taglibextractor= .cpp + TEST_NAME "taglibextractortest" + LINK_LIBRARIES Qt5::Test KF5::FileMetaData ${TAGLIB_LIBRARIES} + ) +endif() diff --git a/autotests/samplefiles/test.opus b/autotests/samplefiles/test.o= pus new file mode 100644 index 0000000..cf72976 Binary files /dev/null and b/autotests/samplefiles/test.opus differ diff --git a/autotests/taglibextractortest.cpp b/autotests/taglibextractort= est.cpp new file mode 100644 index 0000000..d46e49e --- /dev/null +++ b/autotests/taglibextractortest.cpp @@ -0,0 +1,60 @@ +/* + * TagLibExtractor tests. + * + * Copyright (C) 2015 Juan Palacios + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-13= 01 USA + * + */ + +#include "taglibextractortest.h" +#include "simpleextractionresult.h" +#include "indexerextractortestsconfig.h" +#include "extractors/taglibextractor.h" + +#include +#include +#include + +using namespace KFileMetaData; + +QString TagLibExtractorTest::testFilePath(const QString& fileName) const +{ + return QLatin1String(INDEXER_TESTS_SAMPLE_FILES_PATH) + QDir::separato= r() + fileName; +} + +void TagLibExtractorTest::test() +{ + QScopedPointer plugin(new TagLibExtractor(this)); + + SimpleExtractionResult result(testFilePath("test.opus"), "audio/opus"); + plugin->extract(&result); + + QCOMPARE(result.types().size(), 1); + QCOMPARE(result.types().first(), Type::Audio); + + QCOMPARE(result.properties().value(Property::Title), QVariant(QStringL= iteral("Title"))); + QCOMPARE(result.properties().value(Property::Artist), QVariant(QString= Literal("Artist"))); + QCOMPARE(result.properties().value(Property::Album), QVariant(QStringL= iteral("Test"))); + QCOMPARE(result.properties().value(Property::AlbumArtist), QVariant(QS= tringLiteral("Album Artist"))); + QCOMPARE(result.properties().value(Property::Genre), QVariant(QStringL= iteral("Genre"))); + QCOMPARE(result.properties().value(Property::Comment), QVariant(QStrin= gLiteral("Comment"))); + QCOMPARE(result.properties().value(Property::Composer), QVariant(QStri= ngLiteral("Composer"))); + QCOMPARE(result.properties().value(Property::TrackNumber).toInt(), 1); + QCOMPARE(result.properties().value(Property::ReleaseYear).toInt(), 201= 5); + QCOMPARE(result.properties().value(Property::Channels).toInt(), 1); +} + +QTEST_MAIN(TagLibExtractorTest) diff --git a/autotests/taglibextractortest.h b/autotests/taglibextractortes= t.h new file mode 100644 index 0000000..bb1efe0 --- /dev/null +++ b/autotests/taglibextractortest.h @@ -0,0 +1,37 @@ +/* + * TagLibExtractor tests. + * + * Copyright (C) 2015 Juan Palacios + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-13= 01 USA + * + */ + +#ifndef TAGLIBEXTRACTORTEST_H +#define TAGLIBEXTRACTORTEST_H + +#include + +class TagLibExtractorTest : public QObject +{ + Q_OBJECT +private: + QString testFilePath(const QString& fileName) const; + +private Q_SLOTS: + void test(); +}; + +#endif // TAGLIBEXTRACTORTEST_H