Tests: Extract TestDataDir to the coreplugin

Change-Id: Ie290c07c07c13134a57f328e9ae876b2af6974db
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
This commit is contained in:
Nikolai Kosjar
2013-08-19 11:49:13 +02:00
parent d185849150
commit 6ac341467d
7 changed files with 177 additions and 131 deletions

View File

@@ -33,6 +33,7 @@
#include "modelmanagertesthelper.h"
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/testdatadir.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/session.h>
#include <utils/hostosinfo.h>
@@ -59,57 +60,23 @@ Q_DECLARE_METATYPE(QList<ProjectFile>)
namespace {
class TestDataDirectory
class MyTestDataDir : public Core::Internal::Tests::TestDataDir
{
public:
TestDataDirectory(const QString &testDataDirectory)
: m_testDataDirectory(QLatin1String(SRCDIR "/../../../tests/cppmodelmanager/")
+ testDataDirectory)
{
QFileInfo testDataDir(m_testDataDirectory);
QVERIFY(testDataDir.exists());
QVERIFY(testDataDir.isDir());
}
MyTestDataDir(const QString &dir)
: TestDataDir(QLatin1String(SRCDIR "/../../../tests/cppmodelmanager/") + dir)
{}
QString includeDir(bool cleaned = true) const
{
return testDataDir(QLatin1String("include"), cleaned);
}
{ return directory(QLatin1String("include"), cleaned); }
QString frameworksDir(bool cleaned = true) const
{
return testDataDir(QLatin1String("frameworks"), cleaned);
}
{ return directory(QLatin1String("frameworks"), cleaned); }
QString fileFromSourcesDir(const QString &fileName) const
{
return testDataDir(QLatin1String("sources")) + fileName;
}
/// File from the test data directory (top leve)
QString file(const QString &fileName) const
{
return testDataDir(QString()) + fileName;
}
private:
QString testDataDir(const QString& subdir, bool cleaned = true) const
{
QString path = m_testDataDirectory;
if (!subdir.isEmpty())
path += QLatin1String("/") + subdir;
if (cleaned)
return CppPreprocessor::cleanPath(path);
else
return path;
}
private:
const QString m_testDataDirectory;
{ return directory(QLatin1String("sources")) + fileName; }
};
// TODO: When possible, use this helper class in all tests
class ProjectCreator
{
@@ -121,7 +88,7 @@ public:
/// 'files' is expected to be a list of file names that reside in 'dir'.
void create(const QString &name, const QString &dir, const QStringList files)
{
const TestDataDirectory projectDir(dir);
const MyTestDataDir projectDir(dir);
foreach (const QString &file, files)
projectFiles << projectDir.file(file);
@@ -239,7 +206,7 @@ void CppToolsPlugin::test_modelmanager_paths_are_clean()
ModelManagerTestHelper helper;
CppModelManager *mm = CppModelManager::instance();
const TestDataDirectory testDataDir(QLatin1String("testdata"));
const MyTestDataDir testDataDir(QLatin1String("testdata"));
Project *project = helper.createProject(QLatin1String("test_modelmanager_paths_are_clean"));
ProjectInfo pi = mm->projectInfo(project);
@@ -273,7 +240,7 @@ void CppToolsPlugin::test_modelmanager_framework_headers()
ModelManagerTestHelper helper;
CppModelManager *mm = CppModelManager::instance();
const TestDataDirectory testDataDir(QLatin1String("testdata"));
const MyTestDataDir testDataDir(QLatin1String("testdata"));
Project *project = helper.createProject(QLatin1String("test_modelmanager_framework_headers"));
ProjectInfo pi = mm->projectInfo(project);
@@ -318,7 +285,7 @@ void CppToolsPlugin::test_modelmanager_refresh_also_includes_of_project_files()
ModelManagerTestHelper helper;
CppModelManager *mm = CppModelManager::instance();
const TestDataDirectory testDataDir(QLatin1String("testdata"));
const MyTestDataDir testDataDir(QLatin1String("testdata"));
const QString testCpp(testDataDir.fileFromSourcesDir(
QLatin1String("test_modelmanager_refresh.cpp")));
@@ -381,7 +348,7 @@ void CppToolsPlugin::test_modelmanager_refresh_several_times()
ModelManagerTestHelper helper;
CppModelManager *mm = CppModelManager::instance();
const TestDataDirectory testDataDir(QLatin1String("testdata_refresh"));
const MyTestDataDir testDataDir(QLatin1String("testdata_refresh"));
const QString testHeader1(testDataDir.file(QLatin1String("defines.h")));
const QString testHeader2(testDataDir.file(QLatin1String("header.h")));
@@ -452,7 +419,7 @@ void CppToolsPlugin::test_modelmanager_refresh_test_for_changes()
ModelManagerTestHelper helper;
CppModelManager *mm = CppModelManager::instance();
const TestDataDirectory testDataDir(QLatin1String("testdata_refresh"));
const MyTestDataDir testDataDir(QLatin1String("testdata_refresh"));
const QString testCpp(testDataDir.file(QLatin1String("source.cpp")));
Project *project = helper.createProject(QLatin1String("test_modelmanager_refresh_2"));
@@ -484,7 +451,7 @@ void CppToolsPlugin::test_modelmanager_refresh_added_and_purge_removed()
ModelManagerTestHelper helper;
CppModelManager *mm = CppModelManager::instance();
const TestDataDirectory testDataDir(QLatin1String("testdata_refresh"));
const MyTestDataDir testDataDir(QLatin1String("testdata_refresh"));
const QString testHeader1(testDataDir.file(QLatin1String("header.h")));
const QString testHeader2(testDataDir.file(QLatin1String("defines.h")));
@@ -618,7 +585,7 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_
QTest::addColumn<QList<ProjectFile> >("initialProjectFiles");
QTest::addColumn<QList<ProjectFile> >("finalProjectFiles");
const TestDataDirectory testDataDir(QLatin1String("testdata_refresh2"));
const MyTestDataDir testDataDir(QLatin1String("testdata_refresh2"));
const QString testCpp(testDataDir.file(QLatin1String("source.cpp")));
const QString testCpp2(testDataDir.file(QLatin1String("source2.cpp")));
@@ -690,7 +657,7 @@ void CppToolsPlugin::test_modelmanager_extraeditorsupport_uiFiles()
{
ModelManagerTestHelper helper;
TestDataDirectory testDataDirectory(QLatin1String("testdata_guiproject1"));
MyTestDataDir testDataDirectory(QLatin1String("testdata_guiproject1"));
const QString projectFile = testDataDirectory.file(QLatin1String("testdata_guiproject1.pro"));
// Open project with *.ui file
@@ -742,7 +709,7 @@ void CppToolsPlugin::test_modelmanager_gc_if_last_cppeditor_closed()
{
ModelManagerTestHelper helper;
TestDataDirectory testDataDirectory(QLatin1String("testdata_guiproject1"));
MyTestDataDir testDataDirectory(QLatin1String("testdata_guiproject1"));
const QString file = testDataDirectory.file(QLatin1String("main.cpp"));
Core::EditorManager *em = Core::EditorManager::instance();
@@ -773,7 +740,7 @@ void CppToolsPlugin::test_modelmanager_dont_gc_opened_files()
{
ModelManagerTestHelper helper;
TestDataDirectory testDataDirectory(QLatin1String("testdata_guiproject1"));
MyTestDataDir testDataDirectory(QLatin1String("testdata_guiproject1"));
const QString file = testDataDirectory.file(QLatin1String("main.cpp"));
Core::EditorManager *em = Core::EditorManager::instance();