/****************************************************************************** * Copyright 2007 by Aaron Seigo * * * * 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 "packagestructuretest.h" #include #include #include #include "applet.h" #include "pluginloader.h" class NoPrefixes : public Plasma::Package { public: explicit NoPrefixes() : Plasma::Package() { setContentsPrefixPaths(QStringList()); addDirectoryDefinition("bin", "bin", "bin"); setPath("/"); } }; PackageStructureTest::PackageStructureTest() { m_packagePath = QString::fromLatin1(KDESRCDIR) + "signedPackage/"; ps = Plasma::PluginLoader::self()->loadPackage("Plasma/Applet"); ps.setPath(m_packagePath); } void PackageStructureTest::copyPerformance() { // seed the cache first ps.filePath("mainscript"); QTime t; t.start(); for (int i = 0; i < 100000; ++i) { Plasma::Package foo(ps); const QString bar = foo.filePath("mainscript"); } QVERIFY(t.elapsed() < 50); } void PackageStructureTest::emptyContentsPrefix() { NoPrefixes package; QString path(package.filePath("bin", "ls")); //qDebug() << path; QCOMPARE(path, QString("/bin/ls")); } void PackageStructureTest::directories() { QList dirs; dirs << "animations" << "config" << "data" << "images" << "scripts" << "translations" << "ui"; QList psDirs = ps.directories(); QCOMPARE(dirs.count(), psDirs.count()); foreach (const char *dir, psDirs) { bool found = false; foreach (const char *check, dirs) { if (qstrcmp(dir, check)) { found = true; break; } } QVERIFY(found); } foreach (const char *dir, dirs) { bool found = false; foreach (const char *check, psDirs) { if (qstrcmp(dir, check)) { found = true; break; } } QVERIFY(found); } } void PackageStructureTest::requiredDirectories() { QList dirs; QCOMPARE(ps.requiredDirectories(), dirs); } void PackageStructureTest::files() { QList files; files << "defaultconfig" << "mainconfigui" << "mainconfigxml" << "mainscript"; QList psFiles = ps.files(); //for (int i = 0; i < psFiles.count(); ++i) { // qDebug() << psFiles[i]; //} foreach (const char *file, psFiles) { bool found = false; foreach (const char *check, files) { if (qstrcmp(file, check)) { found = true; break; } } QVERIFY(found); } } void PackageStructureTest::requiredFiles() { QList files; files << "mainscript"; QList psFiles = ps.requiredFiles(); QCOMPARE(files.count(), psFiles.count()); for (int i = 0; i < files.count(); ++i) { QCOMPARE(files[i], psFiles[i]); } } void PackageStructureTest::path() { qDebug() << "real paths are" << ps.filePath("images") << ps.filePath("mainscript"); qDebug() << "we wants" << QString(m_packagePath + QString("contents/images")) << QString(m_packagePath + QString("contents/code/main.js")); QCOMPARE(ps.filePath("images"), QString(m_packagePath + QString("contents/images"))); QCOMPARE(ps.filePath("mainscript"), QString(m_packagePath + QString("contents/code/main.js"))); } void PackageStructureTest::name() { QCOMPARE(ps.name("config"), i18n("Configuration Definitions")); QCOMPARE(ps.name("mainscript"), i18n("Main Script File")); } void PackageStructureTest::required() { QVERIFY(ps.isRequired("mainscript")); } void PackageStructureTest::mimeTypes() { QStringList mimeTypes; mimeTypes << "image/svg+xml" << "image/png" << "image/jpeg"; QCOMPARE(ps.mimeTypes("images"), mimeTypes); } QTEST_KDEMAIN(PackageStructureTest, NoGUI) //#include "packagestructuretest.moc"