mirror of
https://bitbucket.org/smil3y/kde-extraapps.git
synced 2025-02-26 20:03:10 +00:00
148 lines
3.9 KiB
C++
148 lines
3.9 KiB
C++
/***************************************************************************
|
|
* Copyright 2007 Robert Gruber <rgruber@users.sourceforge.net> *
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#include "cvstest.h"
|
|
|
|
#include <qtest_kde.h>
|
|
#include <QtTest/QtTest>
|
|
|
|
#include <KUrl>
|
|
#include <kio/netaccess.h>
|
|
|
|
#include <cvsjob.h>
|
|
#include <cvsproxy.h>
|
|
|
|
#include <tests/autotestshell.h>
|
|
#include <tests/testcore.h>
|
|
|
|
#define CVSTEST_BASEDIR "/tmp/kdevcvs_testdir/"
|
|
#define CVS_REPO CVSTEST_BASEDIR "repo/"
|
|
#define CVS_IMPORT CVSTEST_BASEDIR "import/"
|
|
#define CVS_TESTFILE_NAME "testfile"
|
|
#define CVS_CHECKOUT CVSTEST_BASEDIR "working/"
|
|
|
|
void CvsTest::initTestCase()
|
|
{
|
|
KDevelop::AutoTestShell::init();
|
|
KDevelop::TestCore::initialize(KDevelop::Core::NoUi);
|
|
|
|
m_proxy = new CvsProxy;
|
|
|
|
// If the basedir for this cvs test exists from a
|
|
// previous run; remove it...
|
|
cleanup();
|
|
}
|
|
|
|
void CvsTest::cleanupTestCase()
|
|
{
|
|
KDevelop::TestCore::shutdown();
|
|
|
|
delete m_proxy;
|
|
}
|
|
|
|
void CvsTest::init()
|
|
{
|
|
// Now create the basic directory structure
|
|
QDir tmpdir("/tmp");
|
|
tmpdir.mkdir(CVSTEST_BASEDIR);
|
|
tmpdir.mkdir(CVS_REPO);
|
|
tmpdir.mkdir(CVS_IMPORT);
|
|
}
|
|
|
|
void CvsTest::cleanup()
|
|
{
|
|
if ( QFileInfo(CVSTEST_BASEDIR).exists() )
|
|
KIO::NetAccess::del(KUrl(QString(CVSTEST_BASEDIR)), 0);
|
|
}
|
|
|
|
void CvsTest::repoInit()
|
|
{
|
|
// make job that creates the local repository
|
|
CvsJob* j = new CvsJob(0);
|
|
QVERIFY( j );
|
|
j->setDirectory(CVSTEST_BASEDIR);
|
|
*j << "cvs" << "-d" << CVS_REPO << "init";
|
|
|
|
// try to start the job
|
|
QVERIFY( j->exec() );
|
|
|
|
//check if the CVSROOT directory in the new local repository exists now
|
|
QVERIFY( QFileInfo(QString(CVS_REPO "/CVSROOT")).exists() );
|
|
}
|
|
|
|
void CvsTest::importTestData()
|
|
{
|
|
// create a file so we don't import an empty dir
|
|
QFile f(CVS_IMPORT "" CVS_TESTFILE_NAME);
|
|
if(f.open(QIODevice::WriteOnly)) {
|
|
QTextStream input( &f );
|
|
input << "HELLO WORLD";
|
|
}
|
|
f.flush();
|
|
|
|
|
|
CvsJob* j = m_proxy->import(KUrl(CVS_IMPORT), CVS_REPO,
|
|
"test", "vendor", "release",
|
|
"test import message");
|
|
QVERIFY( j );
|
|
|
|
// try to start the job
|
|
QVERIFY( j->exec() );
|
|
|
|
//check if the directory has been added to the repository
|
|
QString testdir(CVS_REPO "/test");
|
|
QVERIFY( QFileInfo(testdir).exists() );
|
|
|
|
//check if the file has been added to the repository
|
|
QString testfile(CVS_REPO "/test/" CVS_TESTFILE_NAME ",v");
|
|
QVERIFY( QFileInfo(testfile).exists() );
|
|
}
|
|
|
|
|
|
void CvsTest::checkoutTestData()
|
|
{
|
|
CvsJob* j = m_proxy->checkout(KUrl(CVS_CHECKOUT), CVS_REPO, "test");
|
|
QVERIFY( j );
|
|
|
|
// try to start the job
|
|
QVERIFY( j->exec() );
|
|
|
|
//check if the directory is there
|
|
QString testdir(CVS_CHECKOUT);
|
|
QVERIFY( QFileInfo(testdir).exists() );
|
|
|
|
//check if the file is there
|
|
QString testfile(CVS_CHECKOUT "" CVS_TESTFILE_NAME);
|
|
QVERIFY( QFileInfo(testfile).exists() );
|
|
}
|
|
|
|
|
|
void CvsTest::testInitAndImport()
|
|
{
|
|
repoInit();
|
|
importTestData();
|
|
checkoutTestData();
|
|
}
|
|
|
|
void CvsTest::testLogFolder()
|
|
{
|
|
repoInit();
|
|
importTestData();
|
|
checkoutTestData();
|
|
QString testdir(CVS_CHECKOUT);
|
|
KDevelop::VcsRevision rev = KDevelop::VcsRevision::createSpecialRevision(KDevelop::VcsRevision::Head);
|
|
CvsJob* job = m_proxy->log(KUrl(testdir), rev);
|
|
QVERIFY(job);
|
|
}
|
|
|
|
QTEST_KDEMAIN(CvsTest, GUI)
|
|
|
|
|
|
#include "moc_cvstest.cpp"
|