From kde-commits Sat Nov 13 01:32:38 2010 From: David Faure Date: Sat, 13 Nov 2010 01:32:38 +0000 To: kde-commits Subject: KDE/kdelibs/kdecore Message-Id: <20101113013238.640D2AC89E () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=128961200122880 SVN commit 1196329 by dfaure: Fix KMimeType::mainExtension() returning an empty string if patterns hadn't been called before. M +1 -1 services/kmimetype.cpp M +30 -18 tests/kmimetypetest.cpp M +1 -0 tests/kmimetypetest.h --- trunk/KDE/kdelibs/kdecore/services/kmimetype.cpp #1196328:1196329 @@ -755,7 +755,7 @@ } #endif // HACK END - Q_FOREACH(const QString& pattern, d->m_lstPatterns) { + Q_FOREACH(const QString& pattern, patterns()) { // Skip if if looks like: README or *. or *.* // or *.JP*G or *.JP? if (pattern.startsWith(QLatin1String("*.")) && --- trunk/KDE/kdelibs/kdecore/tests/kmimetypetest.cpp #1196328:1196329 @@ -103,6 +103,8 @@ KService::Ptr fakeApp = KService::serviceByStorageId("fake_nonkde_application.desktop"); QVERIFY(fakeApp); // it should be found. QVERIFY(KService::serviceByDesktopPath(m_nonKdeApp)); // the desktoppath is the full path nowadays + + KGlobal::locale(); } void KMimeTypeTest::cleanupTestCase() @@ -883,24 +885,6 @@ testBuffer.close(); } -void KMimeTypeTest::testThreads() -{ - QThreadPool::globalInstance()->setMaxThreadCount(10); - // Note that data-based tests cannot be used here (QTest::fetchData asserts). - QList > futures; - futures << QtConcurrent::run(this, &KMimeTypeTest::testFindByUrl); - futures << QtConcurrent::run(this, &KMimeTypeTest::testFindByFileContent); - futures << QtConcurrent::run(this, &KMimeTypeTest::testFindByNameAndContent); - futures << QtConcurrent::run(this, &KMimeTypeTest::testFindByPathWithContent); - futures << QtConcurrent::run(this, &KMimeTypeTest::testAllMimeTypes); - futures << QtConcurrent::run(this, &KMimeTypeTest::testAlias); - futures << QtConcurrent::run(this, &KMimeTypeTest::testMimeTypeParent); - futures << QtConcurrent::run(this, &KMimeTypeTest::testPreferredService); - kDebug() << "Joining all threads"; - Q_FOREACH(QFuture f, futures) - f.waitForFinished(); -} - void KMimeTypeTest::testHelperProtocols() { QVERIFY(KProtocolInfo::isKnownProtocol("mailto")); @@ -919,4 +903,32 @@ } } +void KMimeTypeTest::testFromThread() +{ + // Some simple tests to test more API from testThreads without using _data() + KMimeType::Ptr mime = KMimeType::mimeType("application/pdf"); + QVERIFY(mime); + QCOMPARE(mime->mainExtension(), QString::fromLatin1(".pdf")); +} + +void KMimeTypeTest::testThreads() +{ + QThreadPool::globalInstance()->setMaxThreadCount(20); + // Note that data-based tests cannot be used here (QTest::fetchData asserts). + QList > futures; + futures << QtConcurrent::run(this, &KMimeTypeTest::testFindByUrl); + futures << QtConcurrent::run(this, &KMimeTypeTest::testFindByFileContent); + futures << QtConcurrent::run(this, &KMimeTypeTest::testFindByNameAndContent); + futures << QtConcurrent::run(this, &KMimeTypeTest::testFindByPathWithContent); + futures << QtConcurrent::run(this, &KMimeTypeTest::testAllMimeTypes); + futures << QtConcurrent::run(this, &KMimeTypeTest::testAlias); + futures << QtConcurrent::run(this, &KMimeTypeTest::testMimeTypeParent); + futures << QtConcurrent::run(this, &KMimeTypeTest::testPreferredService); + futures << QtConcurrent::run(this, &KMimeTypeTest::testFromThread); + futures << QtConcurrent::run(this, &KMimeTypeTest::testHelperProtocols); + kDebug() << "Joining all threads"; + Q_FOREACH(QFuture f, futures) + f.waitForFinished(); +} + #include "kmimetypetest.moc" --- trunk/KDE/kdelibs/kdecore/tests/kmimetypetest.h #1196328:1196329 @@ -59,6 +59,7 @@ void testParseMagicFile_data(); void testParseMagicFile(); void testHelperProtocols(); + void testFromThread(); void testThreads(); private: