diff --git a/autotests/extractorcollectiontest.cpp b/autotests/extractorcollectiontest.cpp index f177468..b9184c0 100644 --- a/autotests/extractorcollectiontest.cpp +++ b/autotests/extractorcollectiontest.cpp @@ -1,59 +1,75 @@ /* * This file is part of the KDE KFileMetaData project * Copyright (C) 2014 Vishesh Handa * 2017 Igor Poboiko * * 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-1301 USA * */ #include #include #include #include "extractorcollection.h" -#include "extractors/plaintextextractor.h" using namespace KFileMetaData; class ExtractorCollectionTest : public QObject { Q_OBJECT private Q_SLOTS: void testFetchExtractors() { QCoreApplication::setLibraryPaths({QCoreApplication::applicationDirPath()}); ExtractorCollection collection; QVERIFY(collection.fetchExtractors("unknown/mimetype").isEmpty()); QVERIFY(!collection.fetchExtractors("text/plain").isEmpty()); } void testMultipleExtractorCollections() { QCoreApplication::setLibraryPaths({QCoreApplication::applicationDirPath()}); ExtractorCollection collection; QVERIFY(collection.fetchExtractors("unknown/mimetype").isEmpty()); QVERIFY(!collection.fetchExtractors("text/plain").isEmpty()); ExtractorCollection collection2; QVERIFY(collection.fetchExtractors("unknown/mimetype").isEmpty()); QVERIFY(!collection.fetchExtractors("text/plain").isEmpty()); QVERIFY(collection2.fetchExtractors("unknown/mimetype").isEmpty()); QVERIFY(!collection2.fetchExtractors("text/plain").isEmpty()); } + + void testMimeInheritance() + { + QCoreApplication::setLibraryPaths({QCoreApplication::applicationDirPath()}); + ExtractorCollection collection; + + auto textExtractors = collection.fetchExtractors("text/plain"); + QVERIFY(!textExtractors.isEmpty()); + + auto xmlExtractors = collection.fetchExtractors("application/xml"); + QVERIFY(!xmlExtractors.isEmpty()); + + // Verify the generic "text/plain" extractor is not used for "application/xml" + for (auto extractor : textExtractors) { + QVERIFY(!xmlExtractors.contains(extractor)); + } + } }; QTEST_GUILESS_MAIN(ExtractorCollectionTest) #include "extractorcollectiontest.moc"