/****************************************************************************** * Copyright 2007 by Bertjan Broeksema * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Library General Public * * License as published by the Free Software Foundation; either * * version 2 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 * * Library General Public License for more details. * * * * You should have received a copy of the GNU Library General Public License * * along with this library; see the file COPYING.LIB. If not, write to * * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301, USA. * *******************************************************************************/ #include "packagemetadatatest.h" #include #include void PackageMetadataTest::init() { pm = new Plasma::PackageMetadata; // Create data dir mDataDir = QDir::homePath() + "/.kde-unit-test/share/config"; QVERIFY(QDir().mkpath(mDataDir)); QDir dir(mDataDir); QFile::copy(QString::fromLatin1(KDESRCDIR) + QLatin1String("/packagemetadatatest.desktop"), mDataDir + QLatin1String("/packagemetadatatest.desktop")); } void PackageMetadataTest::cleanup() { delete pm; // Clean things up. removeDir(QLatin1String("share/config")); QDir().rmpath(QDir::homePath() + "/.kde-unit-test/share"); } // Copied from ktimezonetest.h void PackageMetadataTest::removeDir(const QString &subdir) { QDir local = QDir::homePath() + QLatin1String("/.kde-unit-test/") + subdir; foreach(const QString &file, local.entryList(QDir::Files)) if(!local.remove(file)) qWarning("%s: removing failed", qPrintable( file )); QCOMPARE((int)local.entryList(QDir::Files).count(), 0); local.cdUp(); QString subd = subdir; subd.remove(QRegExp("^.*/")); local.rmpath(subd); } void PackageMetadataTest::read() { pm->read("packagemetadatatest.desktop"); QVERIFY(pm->isValid()); QCOMPARE(pm->name(), QString("test")); QCOMPARE(pm->description(), QString("Some fancy test description")); QCOMPARE(pm->serviceType(), QString("Plasma/Applet")); QCOMPARE(pm->author(), QString("Bertjan Broeksema")); QCOMPARE(pm->email(), QString("b.broeksema@kdemail.net")); QCOMPARE(pm->version(), QString("pre0.1")); QCOMPARE(pm->website(), QString("http://plasma.kde.org/")); QCOMPARE(pm->license(), QString("GPL")); QCOMPARE(pm->application(), QString("A Test name")); QCOMPARE(pm->requiredVersion(), QString("1.2.3")); QCOMPARE(pm->type(), QString("System test")); } void PackageMetadataTest::write() { pm->setName(QString("Package metadata test file")); pm->setDescription(QString("Some fancy test description")); pm->setServiceType(QString("Plasma/Applet")); pm->setAuthor(QString("Bertjan Broeksema")); pm->setEmail(QString("b.broeksema@kdemail.net")); pm->setVersion(QString("pre0.1")); pm->setWebsite(QString("http://plasma.kde.org/")); pm->setLicense(QString("GPL")); pm->setApplication(QString("A Test name")); pm->setRequiredVersion(QString("1.2.3")); pm->write("somefile.desktop"); delete pm; pm = new Plasma::PackageMetadata("somefile.desktop"); QCOMPARE(pm->name(), QString("Package metadata test file")); QCOMPARE(pm->description(), QString("Some fancy test description")); QCOMPARE(pm->serviceType(), QString("Plasma/Applet")); QCOMPARE(pm->author(), QString("Bertjan Broeksema")); QCOMPARE(pm->email(), QString("b.broeksema@kdemail.net")); QCOMPARE(pm->version(), QString("pre0.1")); QCOMPARE(pm->website(), QString("http://plasma.kde.org/")); QCOMPARE(pm->license(), QString("GPL")); QCOMPARE(pm->application(), QString("A Test name")); QCOMPARE(pm->requiredVersion(), QString("1.2.3")); } QTEST_KDEMAIN(PackageMetadataTest, NoGUI)