mirror of
https://bitbucket.org/smil3y/kdelibs.git
synced 2025-02-23 18:32:49 +00:00

for compatibilty reasons automoc4 support is not removed but it shall be in the future. automoc4 has not been maintained for a while (last commit is from 2011) and the stable release is from 2009. CMake version >= 2.8.6 provides the functionality for mocking so I see no reason to not make use of it.
156 lines
5.3 KiB
C++
156 lines
5.3 KiB
C++
/*
|
|
* Copyright (C) 2002 David Faure <faure@kde.org>
|
|
* Copyright (C) 2003 Waldo Bastian <bastian@kde.org>
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Library General Public
|
|
* License version 2 as published by the Free Software Foundation;
|
|
*
|
|
* 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 "kruntest.h"
|
|
#include <QLabel>
|
|
|
|
#include <kapplication.h>
|
|
#include <kdebug.h>
|
|
#include <kservice.h>
|
|
#include <kde_file.h>
|
|
#include <kcmdlineargs.h>
|
|
#include <QtGui/QPushButton>
|
|
#include <QtGui/QLayout>
|
|
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
|
|
const int MAXKRUNS = 100;
|
|
|
|
testKRun * myArray[MAXKRUNS];
|
|
|
|
void testKRun::foundMimeType( const QString& _type )
|
|
{
|
|
kDebug() << "testKRun::foundMimeType " << _type;
|
|
kDebug() << "testKRun::foundMimeType URL=" << url().url();
|
|
setFinished( true );
|
|
return;
|
|
}
|
|
|
|
static const char testFile[] = KDESRCDIR "/kruntest.cpp";
|
|
|
|
static const struct {
|
|
const char* text;
|
|
const char* expectedResult;
|
|
const char* exec;
|
|
const char* url;
|
|
} s_tests[] = {
|
|
{ "run(kwrite, no url)", "should work normally", "kwrite", 0 },
|
|
{ "run(kwrite, file url)", "should work normally", "kwrite", testFile },
|
|
{ "run(kwrite, remote url)", "should work normally", "kwrite", "http://www.kde.org" },
|
|
{ "run(doesnotexit, no url)", "should show error message", "doesnotexist", 0 },
|
|
{ "run(doesnotexit, file url)", "should show error message", "doesnotexist", testFile },
|
|
{ "run(doesnotexit, remote url)", "should use kioexec and show error message", "doesnotexist", "http://www.kde.org" },
|
|
{ "run(missing lib, no url)", "should show error message (remove libqca.so.2 for this, e.g. by editing LD_LIBRARY_PATH if qca is in its own prefix)", "qcatool", 0 },
|
|
{ "run(missing lib, file url)", "should show error message (remove libqca.so.2 for this, e.g. by editing LD_LIBRARY_PATH if qca is in its own prefix)", "qcatool", testFile },
|
|
{ "run(missing lib, remote url)", "should show error message (remove libqca.so.2 for this, e.g. by editing LD_LIBRARY_PATH if qca is in its own prefix)", "qcatool", "http://www.kde.org" },
|
|
{ "runCommand(empty)", "should error", "", "" }, // #186036
|
|
{ "runCommand(full path)", "should work normally", "../../kdecore/tests/kurltest", "" }
|
|
};
|
|
|
|
Receiver::Receiver()
|
|
{
|
|
QVBoxLayout *lay = new QVBoxLayout(this);
|
|
QPushButton * h = new QPushButton( "Press here to terminate", this );
|
|
lay->addWidget( h );
|
|
connect(h, SIGNAL(clicked()), qApp, SLOT(quit()));
|
|
|
|
start = new QPushButton( "Launch KRuns", this );
|
|
lay->addWidget( start );
|
|
connect(start, SIGNAL(clicked()), this, SLOT(slotStart()));
|
|
|
|
stop = new QPushButton( "Stop those KRuns", this );
|
|
stop->setEnabled(false);
|
|
lay->addWidget( stop );
|
|
connect(stop, SIGNAL(clicked()), this, SLOT(slotStop()));
|
|
|
|
QPushButton* launchOne = new QPushButton( "Launch one http KRun", this );
|
|
lay->addWidget(launchOne);
|
|
connect(launchOne, SIGNAL(clicked()), this, SLOT(slotLaunchOne()));
|
|
|
|
for (uint i = 0; i < sizeof(s_tests)/sizeof(*s_tests); ++i) {
|
|
QHBoxLayout* hbox = new QHBoxLayout;
|
|
lay->addLayout(hbox);
|
|
QPushButton* button = new QPushButton(s_tests[i].text, this);
|
|
button->setProperty("testNumber", i);
|
|
hbox->addWidget(button);
|
|
QLabel* label = new QLabel(s_tests[i].expectedResult, this);
|
|
hbox->addWidget(label);
|
|
connect(button, SIGNAL(clicked()), this, SLOT(slotLaunchTest()));
|
|
hbox->addStretch();
|
|
}
|
|
|
|
adjustSize();
|
|
show();
|
|
}
|
|
|
|
void Receiver::slotLaunchTest()
|
|
{
|
|
QPushButton* button = qobject_cast<QPushButton *>(sender());
|
|
Q_ASSERT(button);
|
|
const int testNumber = button->property("testNumber").toInt();
|
|
KUrl::List urls;
|
|
if (QByteArray(s_tests[testNumber].text).startsWith("runCommand")) {
|
|
KRun::runCommand(s_tests[testNumber].exec, this);
|
|
} else {
|
|
if (s_tests[testNumber].url)
|
|
urls << KUrl(s_tests[testNumber].url);
|
|
KRun::run(s_tests[testNumber].exec, urls, this);
|
|
}
|
|
}
|
|
|
|
void Receiver::slotStop()
|
|
{
|
|
for (int i = 0 ; i < MAXKRUNS ; i++ )
|
|
{
|
|
kDebug() << " deleting krun " << i;
|
|
delete myArray[i];
|
|
}
|
|
start->setEnabled(true);
|
|
stop->setEnabled(false);
|
|
}
|
|
|
|
void Receiver::slotStart()
|
|
{
|
|
for (int i = 0 ; i < MAXKRUNS ; i++ )
|
|
{
|
|
kDebug() << "creating testKRun " << i;
|
|
myArray[i] = new testKRun( KUrl("file:/tmp"), window(), 0,
|
|
true /*isLocalFile*/, false /* showProgressInfo */ );
|
|
myArray[i]->setAutoDelete(false);
|
|
}
|
|
start->setEnabled(false);
|
|
stop->setEnabled(true);
|
|
}
|
|
|
|
void Receiver::slotLaunchOne()
|
|
{
|
|
new testKRun(KUrl("http://www.kde.org"), window());
|
|
}
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
KCmdLineArgs::init(argc,argv, "kruntest", 0, ki18n("kruntest"), 0);
|
|
KApplication app;
|
|
|
|
Receiver receiver;
|
|
return app.exec();
|
|
}
|
|
|
|
#include "moc_kruntest.cpp"
|