diff --git a/language/codegen/tests/expected/classname.cpp b/language/codegen/tests/expected/classname.cpp index 224502176c..8f83877502 100644 --- a/language/codegen/tests/expected/classname.cpp +++ b/language/codegen/tests/expected/classname.cpp @@ -1,16 +1,16 @@ /* * This is just a test. * You may do with it as you please. */ #include "classname.h" void ClassName::doSomething(double howMuch, bool doSomethingElse) { - + } int ClassName::getSomeOtherNumber() { - + } diff --git a/plugins/codeutils/tests/CMakeLists.txt b/plugins/codeutils/tests/CMakeLists.txt index fd31c59690..da38e25fd1 100644 --- a/plugins/codeutils/tests/CMakeLists.txt +++ b/plugins/codeutils/tests/CMakeLists.txt @@ -1,7 +1,7 @@ configure_file(codeutils_tests_config.h.cmake codeutils_tests_config.h) -add_subdirectory(templates) +add_subdirectory(data/testgenerationtest/templates) kde4_add_unit_test(testgenerationtest testgenerationtest.cpp) -target_link_libraries(testgenerationtest ${KDEVPLATFORM_LANGUAGE_LIBRARIES} ${KDEVPLATFORM_TESTS_LIBRARIES} ${QT_QTTEST_LIBRARIES}) \ No newline at end of file +target_link_libraries(testgenerationtest ${KDEVPLATFORM_LANGUAGE_LIBRARIES} ${KDEVPLATFORM_TESTS_LIBRARIES} ${QT_QTTEST_LIBRARIES}) diff --git a/plugins/codeutils/tests/codeutils_tests_config.h.cmake b/plugins/codeutils/tests/codeutils_tests_config.h.cmake index 43a85db4e2..1bb5dca267 100644 --- a/plugins/codeutils/tests/codeutils_tests_config.h.cmake +++ b/plugins/codeutils/tests/codeutils_tests_config.h.cmake @@ -1,2 +1,2 @@ -#define CODEUTILS_TESTS_TEMPLATES_DIR "${CMAKE_CURRENT_BINARY_DIR}/templates" +#define CODEUTILS_TESTS_DATA_DIR "${CMAKE_CURRENT_BINARY_DIR}/data" #define CODEUTILS_TESTS_EXPECTED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/expected" diff --git a/plugins/codeutils/tests/templates/CMakeLists.txt b/plugins/codeutils/tests/data/testgenerationtest/templates/CMakeLists.txt similarity index 100% rename from plugins/codeutils/tests/templates/CMakeLists.txt rename to plugins/codeutils/tests/data/testgenerationtest/templates/CMakeLists.txt diff --git a/plugins/codeutils/tests/templates/test_qtestlib/class.cpp b/plugins/codeutils/tests/data/testgenerationtest/templates/test_qtestlib/class.cpp similarity index 100% rename from plugins/codeutils/tests/templates/test_qtestlib/class.cpp rename to plugins/codeutils/tests/data/testgenerationtest/templates/test_qtestlib/class.cpp diff --git a/plugins/codeutils/tests/templates/test_qtestlib/class.h b/plugins/codeutils/tests/data/testgenerationtest/templates/test_qtestlib/class.h similarity index 100% rename from plugins/codeutils/tests/templates/test_qtestlib/class.h rename to plugins/codeutils/tests/data/testgenerationtest/templates/test_qtestlib/class.h diff --git a/plugins/codeutils/tests/templates/test_qtestlib/test_qtestlib.desktop b/plugins/codeutils/tests/data/testgenerationtest/templates/test_qtestlib/test_qtestlib.desktop similarity index 100% rename from plugins/codeutils/tests/templates/test_qtestlib/test_qtestlib.desktop rename to plugins/codeutils/tests/data/testgenerationtest/templates/test_qtestlib/test_qtestlib.desktop diff --git a/plugins/codeutils/tests/templates/test_yaml/class.yaml b/plugins/codeutils/tests/data/testgenerationtest/templates/test_yaml/class.yaml similarity index 100% rename from plugins/codeutils/tests/templates/test_yaml/class.yaml rename to plugins/codeutils/tests/data/testgenerationtest/templates/test_yaml/class.yaml diff --git a/plugins/codeutils/tests/templates/test_yaml/test_yaml.desktop b/plugins/codeutils/tests/data/testgenerationtest/templates/test_yaml/test_yaml.desktop similarity index 100% rename from plugins/codeutils/tests/templates/test_yaml/test_yaml.desktop rename to plugins/codeutils/tests/data/testgenerationtest/templates/test_yaml/test_yaml.desktop diff --git a/plugins/codeutils/tests/testgenerationtest.cpp b/plugins/codeutils/tests/testgenerationtest.cpp index 78f6c2427e..85a131a640 100644 --- a/plugins/codeutils/tests/testgenerationtest.cpp +++ b/plugins/codeutils/tests/testgenerationtest.cpp @@ -1,104 +1,112 @@ /* * */ #include "testgenerationtest.h" #include "codeutils_tests_config.h" #include #include #include #include #include #include #include #include using namespace KDevelop; #define COMPARE_FILES(name) \ do { \ KUrl resultUrl(baseUrl); \ resultUrl.addPath(name); \ QFile actualFile(resultUrl.toLocalFile()); \ QVERIFY(actualFile.open(QIODevice::ReadOnly)); \ QFile expectedFile(CODEUTILS_TESTS_EXPECTED_DIR "/" name); \ QVERIFY(expectedFile.open(QIODevice::ReadOnly)); \ QCOMPARE(actualFile.size(), expectedFile.size()); \ QCOMPARE(QString(actualFile.readAll()), QString(expectedFile.readAll())); \ } while(0) void TestGenerationTest::initTestCase() { AutoTestShell::init(); TestCore::initialize (Core::NoUi); + bool addedDir = ICore::self()->componentData().dirs()->addResourceDir("data", CODEUTILS_TESTS_DATA_DIR, true); + QVERIFY(addedDir); + + TemplatesModel model("testgenerationtest"); + model.refresh(); + renderer = new TemplateRenderer; renderer->setEmptyLinesPolicy(TemplateRenderer::TrimEmptyLines); renderer->addVariable("name", "TestName"); renderer->addVariable("license", "Test license header\nIn two lines"); QStringList testCases; testCases << "firstTestCase"; testCases << "secondTestCase"; testCases << "thirdTestCase"; renderer->addVariable("testCases", testCases); } void TestGenerationTest::cleanupTestCase() { delete renderer; qDebug() << "Shutting down"; TestCore::shutdown(); qDebug() << "Core is finished"; } void TestGenerationTest::init() { dir.reset(new KTempDir); baseUrl = KUrl(dir->name()); } void TestGenerationTest::yamlTemplate() { - QString description = ICore::self()->componentData().dirs()->findResource("data", "test_yaml.desktop"); + QString description = ICore::self()->componentData().dirs()->findResource("data", "testgenerationtest/template_descriptions/test_yaml.desktop"); QVERIFY(!description.isEmpty()); - SourceFileTemplate file(description); + SourceFileTemplate file; + file.setTemplateDescription(description, "testgenerationtest"); QCOMPARE(file.name(), QString("Testing YAML Template")); DocumentChangeSet changes = renderer->renderFileTemplate(file, baseUrl, urls(file)); changes.applyAllChanges(); COMPARE_FILES("testname.yaml"); } void TestGenerationTest::cppTemplate() { - QString description = ICore::self()->componentData().dirs()->findResource("filetemplate_descriptions", "test_qtestlib.desktop"); + QString description = ICore::self()->componentData().dirs()->findResource("data", "testgenerationtest/template_descriptions/test_qtestlib.desktop"); QVERIFY(!description.isEmpty()); - SourceFileTemplate file(description); + SourceFileTemplate file; + file.setTemplateDescription(description, "testgenerationtest"); QCOMPARE(file.name(), QString("Testing C++ Template")); DocumentChangeSet changes = renderer->renderFileTemplate(file, baseUrl, urls(file)); changes.applyAllChanges(); COMPARE_FILES("testname.h"); COMPARE_FILES("testname.cpp"); } QHash< QString, KUrl > TestGenerationTest::urls (const SourceFileTemplate& file) { QHash ret; foreach (const SourceFileTemplate::OutputFile& output, file.outputFiles()) { KUrl url(baseUrl); url.addPath(renderer->render(output.outputName).toLower()); ret.insert(output.identifier, url); } return ret; } QTEST_KDEMAIN (TestGenerationTest, NoGUI);