- Added a test for the entryList method of Package.
- Added a TODO list to keep track of tests which need work. Feel free to add suggestions for tests or enhancements of tests. When time permits i'll work on it. svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=734422
This commit is contained in:
parent
65dadf4f3f
commit
6bba95aa0b
38
tests/TODO
Normal file
38
tests/TODO
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
This file enumerates which classes and methods needs test. Please feel free to
|
||||||
|
add a specific test you'd like to see for a class/method.
|
||||||
|
|
||||||
|
// Finished (as in has test for each method)
|
||||||
|
packagestructure
|
||||||
|
|
||||||
|
// Work in progress. Enumerated methods don't have tests yet.
|
||||||
|
Package:
|
||||||
|
- knownPackages
|
||||||
|
- installPackage
|
||||||
|
- createPackage
|
||||||
|
|
||||||
|
// No tests written atm.
|
||||||
|
abstractrunner
|
||||||
|
animator
|
||||||
|
appletbrowser
|
||||||
|
applet
|
||||||
|
configxml
|
||||||
|
containment
|
||||||
|
corona
|
||||||
|
datacontainer
|
||||||
|
datacontainer_p
|
||||||
|
dataengine
|
||||||
|
dataenginemanager
|
||||||
|
glapplet
|
||||||
|
package
|
||||||
|
packagemetadata
|
||||||
|
packages_p
|
||||||
|
phase
|
||||||
|
plasma_export
|
||||||
|
plasma
|
||||||
|
scriptengine
|
||||||
|
searchaction
|
||||||
|
searchcontext
|
||||||
|
shadowitem_p
|
||||||
|
svg
|
||||||
|
theme
|
||||||
|
uiloader
|
@ -30,7 +30,6 @@ void PlasmoidPackageTest::init()
|
|||||||
mPackageRoot = QDir::homePath() + "/.kde-unit-test/packageRoot";
|
mPackageRoot = QDir::homePath() + "/.kde-unit-test/packageRoot";
|
||||||
|
|
||||||
ps = new Plasma::PlasmoidStructure;
|
ps = new Plasma::PlasmoidStructure;
|
||||||
p = new Plasma::Package(mPackageRoot, mPackage, *ps);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlasmoidPackageTest::cleanup()
|
void PlasmoidPackageTest::cleanup()
|
||||||
@ -39,8 +38,14 @@ void PlasmoidPackageTest::cleanup()
|
|||||||
delete p;
|
delete p;
|
||||||
|
|
||||||
// Clean things up.
|
// Clean things up.
|
||||||
removeDir(QLatin1String("packageRoot/" + mPackage.toLatin1() + "/code"));
|
QDir local = QDir::homePath() + QLatin1String("/.kde-unit-test/packageRoot/");
|
||||||
removeDir(QLatin1String("packageRoot/" + mPackage.toLatin1()));
|
foreach(const QString &dir, local.entryList(QDir::Dirs))
|
||||||
|
{
|
||||||
|
removeDir(QLatin1String("packageRoot/" + dir.toLatin1() + "/code"));
|
||||||
|
removeDir(QLatin1String("packageRoot/" + dir.toLatin1() + "/images"));
|
||||||
|
removeDir(QLatin1String("packageRoot/" + dir.toLatin1()));
|
||||||
|
}
|
||||||
|
|
||||||
QDir().rmpath(QDir::homePath() + "/.kde-unit-test/packageRoot");
|
QDir().rmpath(QDir::homePath() + "/.kde-unit-test/packageRoot");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,8 +63,52 @@ void PlasmoidPackageTest::removeDir(const QString &subdir)
|
|||||||
local.rmpath(subd);
|
local.rmpath(subd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PlasmoidPackageTest::createTestPackage(const QString &packageName)
|
||||||
|
{
|
||||||
|
// Create the root and package dir.
|
||||||
|
QVERIFY(QDir().mkpath(mPackageRoot));
|
||||||
|
QVERIFY(QDir().mkpath(mPackageRoot + "/" + packageName));
|
||||||
|
|
||||||
|
// Create the code dir.
|
||||||
|
QVERIFY(QDir().mkpath(mPackageRoot + "/" + packageName + "/code"));
|
||||||
|
|
||||||
|
// Create the main file.
|
||||||
|
QFile file(mPackageRoot + "/" + packageName + "/code/main");
|
||||||
|
QVERIFY(file.open(QIODevice::WriteOnly | QIODevice::Text));
|
||||||
|
|
||||||
|
QTextStream out(&file);
|
||||||
|
out << "THIS IS A PLASMOID SCRIPT.....";
|
||||||
|
file.flush();
|
||||||
|
file.close();
|
||||||
|
|
||||||
|
// Now we have a minimal plasmoid package which is valid. Let's add some
|
||||||
|
// files to it for test purposes.
|
||||||
|
|
||||||
|
// Create the images dir.
|
||||||
|
QVERIFY(QDir().mkpath(mPackageRoot + "/" + packageName + "/images"));
|
||||||
|
file.setFileName(mPackageRoot + "/" + packageName + "/images/image-1.svg");
|
||||||
|
|
||||||
|
QVERIFY(file.open(QIODevice::WriteOnly | QIODevice::Text));
|
||||||
|
|
||||||
|
out.setDevice(&file);
|
||||||
|
out << "<svg>This is a test image</svg>";
|
||||||
|
file.flush();
|
||||||
|
file.close();
|
||||||
|
|
||||||
|
file.setFileName(mPackageRoot + "/" + packageName + "/images/image-2.svg");
|
||||||
|
|
||||||
|
QVERIFY(file.open(QIODevice::WriteOnly | QIODevice::Text));
|
||||||
|
|
||||||
|
out.setDevice(&file);
|
||||||
|
out << "<svg>This is another test image</svg>";
|
||||||
|
file.flush();
|
||||||
|
file.close();
|
||||||
|
}
|
||||||
|
|
||||||
void PlasmoidPackageTest::isValid()
|
void PlasmoidPackageTest::isValid()
|
||||||
{
|
{
|
||||||
|
p = new Plasma::Package(mPackageRoot, mPackage, *ps);
|
||||||
|
|
||||||
// A PlasmoidPackage is valid when:
|
// A PlasmoidPackage is valid when:
|
||||||
// - The package root exists.
|
// - The package root exists.
|
||||||
// - The package root consists an file named "code/main"
|
// - The package root consists an file named "code/main"
|
||||||
@ -102,8 +151,6 @@ void PlasmoidPackageTest::filePath()
|
|||||||
// Package::filePath() returns
|
// Package::filePath() returns
|
||||||
// - {package_root}/{package_name}/path/to/file if the file exists
|
// - {package_root}/{package_name}/path/to/file if the file exists
|
||||||
// - QString() otherwise.
|
// - QString() otherwise.
|
||||||
|
|
||||||
delete p;
|
|
||||||
p = new Plasma::Package(mPackageRoot, mPackage, *ps);
|
p = new Plasma::Package(mPackageRoot, mPackage, *ps);
|
||||||
|
|
||||||
QCOMPARE(p->filePath("scripts", "main"), QString());
|
QCOMPARE(p->filePath("scripts", "main"), QString());
|
||||||
@ -134,4 +181,30 @@ void PlasmoidPackageTest::filePath()
|
|||||||
QCOMPARE(p->filePath("mainscript"), path);
|
QCOMPARE(p->filePath("mainscript"), path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PlasmoidPackageTest::entryList()
|
||||||
|
{
|
||||||
|
QString packageName("SomePlasmoid");
|
||||||
|
|
||||||
|
// Create a package named @p packageName which is valid and has some images.
|
||||||
|
createTestPackage(packageName);
|
||||||
|
|
||||||
|
// Create a package object and verify that it is valid.
|
||||||
|
p = new Plasma::Package(mPackageRoot, packageName, *ps);
|
||||||
|
QVERIFY(p->isValid());
|
||||||
|
|
||||||
|
// Now we have a valid package that should contain the following files in
|
||||||
|
// given filetypes:
|
||||||
|
// fileTye - Files
|
||||||
|
// scripts - {"main"}
|
||||||
|
// images - {"image-1.svg", "image-2.svg"}
|
||||||
|
QStringList files = p->entryList("scripts");
|
||||||
|
QCOMPARE(files.size(), 1);
|
||||||
|
QVERIFY(files.contains("main"));
|
||||||
|
|
||||||
|
files = p->entryList("images");
|
||||||
|
QCOMPARE(files.size(), 2);
|
||||||
|
QVERIFY(files.contains("image-1.svg"));
|
||||||
|
QVERIFY(files.contains("image-2.svg"));
|
||||||
|
}
|
||||||
|
|
||||||
QTEST_KDEMAIN(PlasmoidPackageTest, NoGUI)
|
QTEST_KDEMAIN(PlasmoidPackageTest, NoGUI)
|
||||||
|
@ -34,9 +34,11 @@ public Q_SLOTS:
|
|||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void isValid();
|
void isValid();
|
||||||
void filePath();
|
void filePath();
|
||||||
|
void entryList();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void removeDir(const QString &subdir);
|
void removeDir(const QString &subdir);
|
||||||
|
void createTestPackage(const QString &packageName);
|
||||||
|
|
||||||
QString mPackageRoot;
|
QString mPackageRoot;
|
||||||
QString mPackage;
|
QString mPackage;
|
||||||
|
Loading…
Reference in New Issue
Block a user