diff options
Diffstat (limited to 'tests/auto')
4 files changed, 61 insertions, 0 deletions
diff --git a/tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-cache/CMakeLists.txt b/tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-cache/CMakeLists.txt index c32ad90437..589b129fad 100644 --- a/tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-cache/CMakeLists.txt +++ b/tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-cache/CMakeLists.txt @@ -48,6 +48,14 @@ qt_internal_add_resource(tst_qmimedatabase-cache "testdata" ${testdata_resource_files} ) +qt_internal_add_resource(tst_qmimedatabase-cache "testfiles" + PREFIX + "/files" + FILES + "../test.txt" + "../test.qml" +) + # special case begin set(corelib_source_dir ../../../../../../src/corelib) include(${corelib_source_dir}/mimetypes/mimetypes_resources.cmake) diff --git a/tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-xml/CMakeLists.txt b/tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-xml/CMakeLists.txt index 831e879764..a2633b5fec 100644 --- a/tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-xml/CMakeLists.txt +++ b/tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-xml/CMakeLists.txt @@ -48,6 +48,14 @@ qt_internal_add_resource(tst_qmimedatabase-xml "testdata" ${testdata_resource_files} ) +qt_internal_add_resource(tst_qmimedatabase-xml "testfiles" + PREFIX + "/files" + FILES + "../test.txt" + "../test.qml" +) + # special case begin set(corelib_source_dir ../../../../../../src/corelib) include(${corelib_source_dir}/mimetypes/mimetypes_resources.cmake) diff --git a/tests/auto/corelib/mimetypes/qmimedatabase/test.txt b/tests/auto/corelib/mimetypes/qmimedatabase/test.txt new file mode 100644 index 0000000000..752cf553e9 --- /dev/null +++ b/tests/auto/corelib/mimetypes/qmimedatabase/test.txt @@ -0,0 +1,6 @@ +// Copyright (C) 2012 David Faure <faure@kde.org> +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +import QtQuick 1.1 +Item { +} diff --git a/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp b/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp index 61a7682ac6..4145219bde 100644 --- a/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp +++ b/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp @@ -26,6 +26,8 @@ #include <QProcess> #endif +using namespace Qt::StringLiterals; + static const char *const additionalMimeFiles[] = { "yast2-metapackage-handler-mimetypes.xml", "qml-again.xml", @@ -246,6 +248,7 @@ void tst_QMimeDatabase::mimeTypeForFileName_data() // fdo bug 15436, needs shared-mime-info >= 0.40 (and this tests the globs2-parsing code). QTest::newRow("glob that ends with *, also matches *.pdf. *.pdf has higher weight") << "README.pdf" << "application/pdf"; QTest::newRow("directory") << "/" << "inode/directory"; + QTest::newRow("resource-directory") << ":/files/" << "inode/directory"; QTest::newRow("doesn't exist, no extension") << "IDontExist" << "application/octet-stream"; QTest::newRow("doesn't exist but has known extension") << "IDontExist.txt" << "text/plain"; QTest::newRow("empty") << "" << "application/octet-stream"; @@ -498,6 +501,42 @@ void tst_QMimeDatabase::mimeTypeForFileWithContent() QCOMPARE(mime.name(), QString::fromLatin1("application/smil+xml")); } + // Test what happens with Qt resources (file engines in general) + { + QFile rccFile(":/files/test.txt"); + + mime = db.mimeTypeForFile(rccFile.fileName()); + QCOMPARE(mime.name(), "text/plain"_L1); + + QVERIFY(rccFile.open(QIODevice::ReadOnly)); + mime = db.mimeTypeForData(&rccFile); + QCOMPARE(mime.name(), "text/x-qml"_L1); + QVERIFY(rccFile.isOpen()); + + mime = db.mimeTypeForFile(rccFile.fileName(), QMimeDatabase::MatchContent); + QCOMPARE(mime.name(), "text/x-qml"_L1); + } + + // Directories + { + mime = db.mimeTypeForFile("/"); + QCOMPARE(mime.name(), "inode/directory"_L1); + + QString dirName = QDir::tempPath(); + if (!dirName.endsWith(u'/')) + dirName += u'/'; + mime = db.mimeTypeForFile(dirName); + QCOMPARE(mime.name(), "inode/directory"_L1); + + while (dirName.endsWith(u'/')) + dirName.chop(1); + mime = db.mimeTypeForFile(dirName); + QCOMPARE(mime.name(), "inode/directory"_L1); + + mime = db.mimeTypeForFile(":/files"); + QCOMPARE(mime.name(), "inode/directory"_L1); + } + // Test what happens with an incorrect path mime = db.mimeTypeForFile(QString::fromLatin1("file:///etc/passwd" /* incorrect code, use a path instead */)); QVERIFY(mime.isDefault()); |