summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppmodelmanager_test.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@digia.com>2013-10-01 18:04:44 +0200
committerNikolai Kosjar <nikolai.kosjar@digia.com>2013-10-02 10:29:06 +0200
commit9a97c42412bea20801def17114c604d68ac03541 (patch)
tree5c2ef116bc0e7792dc1cfa0b5c977e2383a466b6 /src/plugins/cpptools/cppmodelmanager_test.cpp
parent8d6ea451260699e731f36255166d1185ef6a0dcf (diff)
downloadqt-creator-9a97c42412bea20801def17114c604d68ac03541.tar.gz
CppTools: De-duplicate some code in cppmodelmanager_test.cpp
Change-Id: I371e986c9b41fec5cddf05e3f7849c5e0b9e6b69 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager_test.cpp')
-rw-r--r--src/plugins/cpptools/cppmodelmanager_test.cpp316
1 files changed, 129 insertions, 187 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager_test.cpp b/src/plugins/cpptools/cppmodelmanager_test.cpp
index 4d7ee198a9..bcc4488947 100644
--- a/src/plugins/cpptools/cppmodelmanager_test.cpp
+++ b/src/plugins/cpptools/cppmodelmanager_test.cpp
@@ -60,21 +60,23 @@ Q_DECLARE_METATYPE(QList<ProjectFile>)
namespace {
+inline QString _(const QByteArray &ba) { return QString::fromLatin1(ba, ba.size()); }
+
class MyTestDataDir : public Core::Tests::TestDataDir
{
public:
MyTestDataDir(const QString &dir)
- : TestDataDir(QLatin1String(SRCDIR "/../../../tests/cppmodelmanager/") + dir)
+ : TestDataDir(_(SRCDIR "/../../../tests/cppmodelmanager/") + dir)
{}
QString includeDir(bool cleaned = true) const
- { return directory(QLatin1String("include"), cleaned); }
+ { return directory(_("include"), cleaned); }
QString frameworksDir(bool cleaned = true) const
- { return directory(QLatin1String("frameworks"), cleaned); }
+ { return directory(_("frameworks"), cleaned); }
QString fileFromSourcesDir(const QString &fileName) const
- { return directory(QLatin1String("sources")) + fileName; }
+ { return directory(_("sources")) + fileName; }
};
// TODO: When possible, use this helper class in all tests
@@ -121,7 +123,7 @@ public:
ExampleProjectConfigurator(const QString &projectFile,
ProjectExplorerPlugin *projectExplorer)
{
- const QString projectUserFile = projectFile + QLatin1String(".user");
+ const QString projectUserFile = projectFile + _(".user");
QVERIFY(!QFileInfo(projectUserFile).exists());
// Open project
@@ -206,9 +208,9 @@ void CppToolsPlugin::test_modelmanager_paths_are_clean()
ModelManagerTestHelper helper;
CppModelManager *mm = CppModelManager::instance();
- const MyTestDataDir testDataDir(QLatin1String("testdata"));
+ const MyTestDataDir testDataDir(_("testdata"));
- Project *project = helper.createProject(QLatin1String("test_modelmanager_paths_are_clean"));
+ Project *project = helper.createProject(_("test_modelmanager_paths_are_clean"));
ProjectInfo pi = mm->projectInfo(project);
QCOMPARE(pi.project().data(), project);
@@ -240,9 +242,9 @@ void CppToolsPlugin::test_modelmanager_framework_headers()
ModelManagerTestHelper helper;
CppModelManager *mm = CppModelManager::instance();
- const MyTestDataDir testDataDir(QLatin1String("testdata"));
+ const MyTestDataDir testDataDir(_("testdata"));
- Project *project = helper.createProject(QLatin1String("test_modelmanager_framework_headers"));
+ Project *project = helper.createProject(_("test_modelmanager_framework_headers"));
ProjectInfo pi = mm->projectInfo(project);
QCOMPARE(pi.project().data(), project);
@@ -253,7 +255,7 @@ void CppToolsPlugin::test_modelmanager_framework_headers()
part->includePaths << testDataDir.includeDir();
part->frameworkPaths << testDataDir.frameworksDir();
const QString &source = testDataDir.fileFromSourcesDir(
- QLatin1String("test_modelmanager_framework_headers.cpp"));
+ _("test_modelmanager_framework_headers.cpp"));
part->files << ProjectFile(source, ProjectFile::CXXSource);
pi.appendProjectPart(part);
@@ -285,15 +287,13 @@ void CppToolsPlugin::test_modelmanager_refresh_also_includes_of_project_files()
ModelManagerTestHelper helper;
CppModelManager *mm = CppModelManager::instance();
- const MyTestDataDir testDataDir(QLatin1String("testdata"));
+ const MyTestDataDir testDataDir(_("testdata"));
- const QString testCpp(testDataDir.fileFromSourcesDir(
- QLatin1String("test_modelmanager_refresh.cpp")));
- const QString testHeader(testDataDir.fileFromSourcesDir(
- QLatin1String("test_modelmanager_refresh.h")));
+ const QString testCpp(testDataDir.fileFromSourcesDir(_("test_modelmanager_refresh.cpp")));
+ const QString testHeader(testDataDir.fileFromSourcesDir( _("test_modelmanager_refresh.h")));
Project *project = helper.createProject(
- QLatin1String("test_modelmanager_refresh_also_includes_of_project_files"));
+ _("test_modelmanager_refresh_also_includes_of_project_files"));
ProjectInfo pi = mm->projectInfo(project);
QCOMPARE(pi.project().data(), project);
@@ -348,14 +348,13 @@ void CppToolsPlugin::test_modelmanager_refresh_several_times()
ModelManagerTestHelper helper;
CppModelManager *mm = CppModelManager::instance();
- const MyTestDataDir testDataDir(QLatin1String("testdata_refresh"));
+ const MyTestDataDir testDataDir(_("testdata_refresh"));
- const QString testHeader1(testDataDir.file(QLatin1String("defines.h")));
- const QString testHeader2(testDataDir.file(QLatin1String("header.h")));
- const QString testCpp(testDataDir.file(QLatin1String("source.cpp")));
+ const QString testHeader1(testDataDir.file(_("defines.h")));
+ const QString testHeader2(testDataDir.file(_("header.h")));
+ const QString testCpp(testDataDir.file(_("source.cpp")));
- Project *project = helper.createProject(
- QLatin1String("test_modelmanager_refresh_several_times"));
+ Project *project = helper.createProject(_("test_modelmanager_refresh_several_times"));
ProjectInfo pi = mm->projectInfo(project);
QCOMPARE(pi.project().data(), project);
@@ -419,10 +418,10 @@ void CppToolsPlugin::test_modelmanager_refresh_test_for_changes()
ModelManagerTestHelper helper;
CppModelManager *mm = CppModelManager::instance();
- const MyTestDataDir testDataDir(QLatin1String("testdata_refresh"));
- const QString testCpp(testDataDir.file(QLatin1String("source.cpp")));
+ const MyTestDataDir testDataDir(_("testdata_refresh"));
+ const QString testCpp(testDataDir.file(_("source.cpp")));
- Project *project = helper.createProject(QLatin1String("test_modelmanager_refresh_2"));
+ Project *project = helper.createProject(_("test_modelmanager_refresh_2"));
ProjectInfo pi = mm->projectInfo(project);
QCOMPARE(pi.project().data(), project);
@@ -451,13 +450,13 @@ void CppToolsPlugin::test_modelmanager_refresh_added_and_purge_removed()
ModelManagerTestHelper helper;
CppModelManager *mm = CppModelManager::instance();
- const MyTestDataDir testDataDir(QLatin1String("testdata_refresh"));
+ const MyTestDataDir testDataDir(_("testdata_refresh"));
- const QString testHeader1(testDataDir.file(QLatin1String("header.h")));
- const QString testHeader2(testDataDir.file(QLatin1String("defines.h")));
- const QString testCpp(testDataDir.file(QLatin1String("source.cpp")));
+ const QString testHeader1(testDataDir.file(_("header.h")));
+ const QString testHeader2(testDataDir.file(_("defines.h")));
+ const QString testCpp(testDataDir.file(_("source.cpp")));
- Project *project = helper.createProject(QLatin1String("test_modelmanager_refresh_3"));
+ Project *project = helper.createProject(_("test_modelmanager_refresh_3"));
ProjectInfo pi = mm->projectInfo(project);
QCOMPARE(pi.project().data(), project);
@@ -516,8 +515,7 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_
ModelManagerTestHelper helper;
CppModelManager *mm = CppModelManager::instance();
- Project *project = helper.createProject(
- QLatin1String("test_modelmanager_refresh_timeStampModified"));
+ Project *project = helper.createProject(_("test_modelmanager_refresh_timeStampModified"));
ProjectInfo pi = mm->projectInfo(project);
QCOMPARE(pi.project().data(), project);
@@ -585,9 +583,9 @@ void CppToolsPlugin::test_modelmanager_refresh_timeStampModified_if_sourcefiles_
QTest::addColumn<QList<ProjectFile> >("initialProjectFiles");
QTest::addColumn<QList<ProjectFile> >("finalProjectFiles");
- const MyTestDataDir testDataDir(QLatin1String("testdata_refresh2"));
- const QString testCpp(testDataDir.file(QLatin1String("source.cpp")));
- const QString testCpp2(testDataDir.file(QLatin1String("source2.cpp")));
+ const MyTestDataDir testDataDir(_("testdata_refresh2"));
+ const QString testCpp(testDataDir.file(_("source.cpp")));
+ const QString testCpp2(testDataDir.file(_("source2.cpp")));
const QString fileToChange = testCpp;
QList<ProjectFile> projectFiles1 = QList<ProjectFile>()
@@ -614,11 +612,11 @@ void CppToolsPlugin::test_modelmanager_snapshot_after_two_projects()
CppModelManager *mm = CppModelManager::instance();
// Project 1
- project1.create(QLatin1String("test_modelmanager_snapshot_after_two_projects.1"),
- QLatin1String("testdata_project1"),
- QStringList() << QLatin1String("foo.h")
- << QLatin1String("foo.cpp")
- << QLatin1String("main.cpp"));
+ project1.create(_("test_modelmanager_snapshot_after_two_projects.1"),
+ _("testdata_project1"),
+ QStringList() << _("foo.h")
+ << _("foo.cpp")
+ << _("main.cpp"));
mm->updateProjectInfo(project1.projectInfo);
refreshedFiles = helper.waitForRefreshedSourceFiles();
@@ -629,11 +627,11 @@ void CppToolsPlugin::test_modelmanager_snapshot_after_two_projects()
QVERIFY(mm->snapshot().contains(file));
// Project 2
- project2.create(QLatin1String("test_modelmanager_snapshot_after_two_projects.2"),
- QLatin1String("testdata_project2"),
- QStringList() << QLatin1String("bar.h")
- << QLatin1String("bar.cpp")
- << QLatin1String("main.cpp"));
+ project2.create(_("test_modelmanager_snapshot_after_two_projects.2"),
+ _("testdata_project2"),
+ QStringList() << _("bar.h")
+ << _("bar.cpp")
+ << _("main.cpp"));
mm->updateProjectInfo(project2.projectInfo);
refreshedFiles = helper.waitForRefreshedSourceFiles();
@@ -657,8 +655,8 @@ void CppToolsPlugin::test_modelmanager_extraeditorsupport_uiFiles()
{
ModelManagerTestHelper helper;
- MyTestDataDir testDataDirectory(QLatin1String("testdata_guiproject1"));
- const QString projectFile = testDataDirectory.file(QLatin1String("testdata_guiproject1.pro"));
+ MyTestDataDir testDataDirectory(_("testdata_guiproject1"));
+ const QString projectFile = testDataDirectory.file(_("testdata_guiproject1.pro"));
// Open project with *.ui file
ProjectExplorerPlugin *pe = ProjectExplorerPlugin::instance();
@@ -679,13 +677,13 @@ void CppToolsPlugin::test_modelmanager_extraeditorsupport_uiFiles()
fileNamesInWorkinCopy << QFileInfo(it.key()).fileName();
}
fileNamesInWorkinCopy.sort();
- const QString expectedUiHeaderFileName = QLatin1String("ui_mainwindow.h");
+ const QString expectedUiHeaderFileName = _("ui_mainwindow.h");
QCOMPARE(fileNamesInWorkinCopy.at(0), mm->configurationFileName());
QCOMPARE(fileNamesInWorkinCopy.at(1), expectedUiHeaderFileName);
// Check CppPreprocessor / includes.
// The CppPreprocessor is expected to find the ui_* file in the working copy.
- const QString fileIncludingTheUiFile = testDataDirectory.file(QLatin1String("mainwindow.cpp"));
+ const QString fileIncludingTheUiFile = testDataDirectory.file(_("mainwindow.cpp"));
while (!mm->snapshot().document(fileIncludingTheUiFile))
QCoreApplication::processEvents();
@@ -694,8 +692,8 @@ void CppToolsPlugin::test_modelmanager_extraeditorsupport_uiFiles()
QVERIFY(document);
const QStringList includedFiles = document->includedFiles();
QCOMPARE(includedFiles.size(), 2);
- QCOMPARE(QFileInfo(includedFiles.at(0)).fileName(), QLatin1String("mainwindow.h"));
- QCOMPARE(QFileInfo(includedFiles.at(1)).fileName(), QLatin1String("ui_mainwindow.h"));
+ QCOMPARE(QFileInfo(includedFiles.at(0)).fileName(), _("mainwindow.h"));
+ QCOMPARE(QFileInfo(includedFiles.at(1)).fileName(), _("ui_mainwindow.h"));
// Close Project
SessionManager::removeProject(project);
@@ -708,8 +706,8 @@ void CppToolsPlugin::test_modelmanager_gc_if_last_cppeditor_closed()
{
ModelManagerTestHelper helper;
- MyTestDataDir testDataDirectory(QLatin1String("testdata_guiproject1"));
- const QString file = testDataDirectory.file(QLatin1String("main.cpp"));
+ MyTestDataDir testDataDirectory(_("testdata_guiproject1"));
+ const QString file = testDataDirectory.file(_("main.cpp"));
CppModelManager *mm = CppModelManager::instance();
@@ -738,8 +736,8 @@ void CppToolsPlugin::test_modelmanager_dont_gc_opened_files()
{
ModelManagerTestHelper helper;
- MyTestDataDir testDataDirectory(QLatin1String("testdata_guiproject1"));
- const QString file = testDataDirectory.file(QLatin1String("main.cpp"));
+ MyTestDataDir testDataDirectory(_("testdata_guiproject1"));
+ const QString file = testDataDirectory.file(_("main.cpp"));
CppModelManager *mm = CppModelManager::instance();
@@ -777,20 +775,35 @@ struct EditorCloser {
Core::Tests::closeAndDeleteEditor(editor);
}
};
+
+QString nameOfFirstDeclaration(const Document::Ptr &doc)
+{
+ if (doc && doc->globalNamespace()) {
+ if (CPlusPlus::Symbol *s = doc->globalSymbolAt(0)) {
+ if (CPlusPlus::Declaration *decl = s->asDeclaration()) {
+ if (const CPlusPlus::Name *name = decl->name()) {
+ if (const CPlusPlus::Identifier *identifier = name->identifier())
+ return QLatin1String(identifier->chars(), identifier->size());
+ }
+ }
+ }
+ }
+ return QString();
+}
}
void CppToolsPlugin::test_modelmanager_defines_per_project()
{
ModelManagerTestHelper helper;
- MyTestDataDir testDataDirectory(QLatin1String("testdata_defines"));
- const QString main1File = testDataDirectory.file(QLatin1String("main1.cpp"));
- const QString main2File = testDataDirectory.file(QLatin1String("main2.cpp"));
- const QString header = testDataDirectory.file(QLatin1String("header.h"));
+ MyTestDataDir testDataDirectory(_("testdata_defines"));
+ const QString main1File = testDataDirectory.file(_("main1.cpp"));
+ const QString main2File = testDataDirectory.file(_("main2.cpp"));
+ const QString header = testDataDirectory.file(_("header.h"));
CppModelManager *mm = CppModelManager::instance();
- Project *project = helper.createProject(QLatin1String("test_modelmanager_defines_per_project"));
+ Project *project = helper.createProject(_("test_modelmanager_defines_per_project"));
ProjectPart::Ptr part1(new ProjectPart);
part1->files.append(ProjectFile(main1File, ProjectFile::CXXSource));
@@ -821,32 +834,19 @@ void CppToolsPlugin::test_modelmanager_defines_per_project()
// Open a file in the editor
QCOMPARE(Core::EditorManager::documentModel()->openedDocuments().size(), 0);
- {
- Core::IEditor *editor = Core::EditorManager::openEditor(main1File);
- EditorCloser closer(editor);
- QVERIFY(editor);
- QCOMPARE(Core::EditorManager::documentModel()->openedDocuments().size(), 1);
- QVERIFY(mm->isCppEditor(editor));
-
- CppEditorSupport *sup = mm->cppEditorSupport(
- qobject_cast<TextEditor::BaseTextEditor *>(editor));
- while (sup->lastSemanticInfoDocument().isNull())
- QCoreApplication::processEvents();
-
- Document::Ptr doc = mm->snapshot().document(main1File);
- QVERIFY(doc);
- QVERIFY(doc->globalNamespace());
- QCOMPARE(doc->globalSymbolCount(), 1U);
- CPlusPlus::Symbol *s = doc->globalSymbolAt(0);
- QVERIFY(s);
- CPlusPlus::Declaration *decl = s->asDeclaration();
- QVERIFY(decl);
- QVERIFY(decl->type()->isIntegerType());
- QCOMPARE(decl->name()->identifier()->chars(), "one");
- }
-
- {
- Core::IEditor *editor = Core::EditorManager::openEditor(main2File);
+ struct Data {
+ QString firstDeclarationName;
+ QString fileName;
+ } d[] = {
+ { _("one"), main1File },
+ { _("two"), main2File }
+ };
+ const int size = sizeof(d) / sizeof(d[0]);
+ for (int i = 0; i < size; ++i) {
+ const QString firstDeclarationName = d[i].firstDeclarationName;
+ const QString fileName = d[i].fileName;
+
+ Core::IEditor *editor = Core::EditorManager::openEditor(fileName);
EditorCloser closer(editor);
QVERIFY(editor);
QCOMPARE(Core::EditorManager::documentModel()->openedDocuments().size(), 1);
@@ -857,16 +857,8 @@ void CppToolsPlugin::test_modelmanager_defines_per_project()
while (sup->lastSemanticInfoDocument().isNull())
QCoreApplication::processEvents();
- Document::Ptr doc = mm->snapshot().document(main2File);
- QVERIFY(doc);
- QVERIFY(doc->globalNamespace());
- QCOMPARE(doc->globalSymbolCount(), 1U);
- CPlusPlus::Symbol *s = doc->globalSymbolAt(0);
- QVERIFY(s);
- CPlusPlus::Declaration *decl = s->asDeclaration();
- QVERIFY(decl);
- QVERIFY(decl->type()->isIntegerType());
- QCOMPARE(decl->name()->identifier()->chars(), "two");
+ Document::Ptr doc = mm->snapshot().document(fileName);
+ QCOMPARE(nameOfFirstDeclaration(doc), firstDeclarationName);
}
}
@@ -874,17 +866,16 @@ void CppToolsPlugin::test_modelmanager_defines_per_project_pch()
{
ModelManagerTestHelper helper;
- MyTestDataDir testDataDirectory(QLatin1String("testdata_defines"));
- const QString main1File = testDataDirectory.file(QLatin1String("main1.cpp"));
- const QString main2File = testDataDirectory.file(QLatin1String("main2.cpp"));
- const QString header = testDataDirectory.file(QLatin1String("header.h"));
- const QString pch1File = testDataDirectory.file(QLatin1String("pch1.h"));
- const QString pch2File = testDataDirectory.file(QLatin1String("pch2.h"));
+ MyTestDataDir testDataDirectory(_("testdata_defines"));
+ const QString main1File = testDataDirectory.file(_("main1.cpp"));
+ const QString main2File = testDataDirectory.file(_("main2.cpp"));
+ const QString header = testDataDirectory.file(_("header.h"));
+ const QString pch1File = testDataDirectory.file(_("pch1.h"));
+ const QString pch2File = testDataDirectory.file(_("pch2.h"));
CppModelManager *mm = CppModelManager::instance();
- Project *project = helper.createProject(
- QLatin1String("test_modelmanager_defines_per_project_pch"));
+ Project *project = helper.createProject(_("test_modelmanager_defines_per_project_pch"));
ProjectPart::Ptr part1(new ProjectPart);
part1->files.append(ProjectFile(main1File, ProjectFile::CXXSource));
@@ -915,35 +906,19 @@ void CppToolsPlugin::test_modelmanager_defines_per_project_pch()
// Open a file in the editor
QCOMPARE(Core::EditorManager::documentModel()->openedDocuments().size(), 0);
- {
- Core::IEditor *editor = Core::EditorManager::openEditor(main1File);
- EditorCloser closer(editor);
- QVERIFY(editor);
- QCOMPARE(Core::EditorManager::documentModel()->openedDocuments().size(), 1);
- QVERIFY(mm->isCppEditor(editor));
-
- CppEditorSupport *sup = mm->cppEditorSupport(
- qobject_cast<TextEditor::BaseTextEditor *>(editor));
- while (sup->lastSemanticInfoDocument().isNull())
- QCoreApplication::processEvents();
-
- sup->snapshotUpdater()->setUsePrecompiledHeaders(true);
- sup->snapshotUpdater()->update(mm->workingCopy());
-
- Document::Ptr doc = mm->snapshot().document(main1File);
- QVERIFY(doc);
- QVERIFY(doc->globalNamespace());
- QCOMPARE(doc->globalSymbolCount(), 1U);
- CPlusPlus::Symbol *s = doc->globalSymbolAt(0);
- QVERIFY(s);
- CPlusPlus::Declaration *decl = s->asDeclaration();
- QVERIFY(decl);
- QVERIFY(decl->type()->isIntegerType());
- QCOMPARE(decl->name()->identifier()->chars(), "one");
- }
-
- {
- Core::IEditor *editor = Core::EditorManager::openEditor(main2File);
+ struct Data {
+ QString firstDeclarationName;
+ QString fileName;
+ } d[] = {
+ { _("one"), main1File },
+ { _("two"), main2File }
+ };
+ const int size = sizeof(d) / sizeof(d[0]);
+ for (int i = 0; i < size; ++i) {
+ const QString firstDeclarationName = d[i].firstDeclarationName;
+ const QString fileName = d[i].fileName;
+
+ Core::IEditor *editor = Core::EditorManager::openEditor(fileName);
EditorCloser closer(editor);
QVERIFY(editor);
QCOMPARE(Core::EditorManager::documentModel()->openedDocuments().size(), 1);
@@ -957,16 +932,8 @@ void CppToolsPlugin::test_modelmanager_defines_per_project_pch()
sup->snapshotUpdater()->setUsePrecompiledHeaders(true);
sup->snapshotUpdater()->update(mm->workingCopy());
- Document::Ptr doc = mm->snapshot().document(main2File);
- QVERIFY(doc);
- QVERIFY(doc->globalNamespace());
- QCOMPARE(doc->globalSymbolCount(), 1U);
- CPlusPlus::Symbol *s = doc->globalSymbolAt(0);
- QVERIFY(s);
- CPlusPlus::Declaration *decl = s->asDeclaration();
- QVERIFY(decl);
- QVERIFY(decl->type()->isIntegerType());
- QCOMPARE(decl->name()->identifier()->chars(), "two");
+ Document::Ptr doc = mm->snapshot().document(fileName);
+ QCOMPARE(nameOfFirstDeclaration(doc), firstDeclarationName);
}
}
@@ -974,15 +941,14 @@ void CppToolsPlugin::test_modelmanager_defines_per_editor()
{
ModelManagerTestHelper helper;
- MyTestDataDir testDataDirectory(QLatin1String("testdata_defines"));
- const QString main1File = testDataDirectory.file(QLatin1String("main1.cpp"));
- const QString main2File = testDataDirectory.file(QLatin1String("main2.cpp"));
- const QString header = testDataDirectory.file(QLatin1String("header.h"));
+ MyTestDataDir testDataDirectory(_("testdata_defines"));
+ const QString main1File = testDataDirectory.file(_("main1.cpp"));
+ const QString main2File = testDataDirectory.file(_("main2.cpp"));
+ const QString header = testDataDirectory.file(_("header.h"));
CppModelManager *mm = CppModelManager::instance();
- Project *project = helper.createProject(
- QLatin1String("test_modelmanager_defines_per_editor"));
+ Project *project = helper.createProject(_("test_modelmanager_defines_per_editor"));
ProjectPart::Ptr part1(new ProjectPart);
part1->files.append(ProjectFile(main1File, ProjectFile::CXXSource));
@@ -1011,7 +977,18 @@ void CppToolsPlugin::test_modelmanager_defines_per_editor()
// Open a file in the editor
QCOMPARE(Core::EditorManager::documentModel()->openedDocuments().size(), 0);
- {
+ struct Data {
+ QString editorDefines;
+ QString firstDeclarationName;
+ } d[] = {
+ { _("#define SUB1\n"), _("one") },
+ { _("#define SUB2\n"), _("two") }
+ };
+ const int size = sizeof(d) / sizeof(d[0]);
+ for (int i = 0; i < size; ++i) {
+ const QString editorDefines = d[i].editorDefines;
+ const QString firstDeclarationName = d[i].firstDeclarationName;
+
Core::IEditor *editor = Core::EditorManager::openEditor(main1File);
EditorCloser closer(editor);
QVERIFY(editor);
@@ -1023,45 +1000,10 @@ void CppToolsPlugin::test_modelmanager_defines_per_editor()
while (sup->lastSemanticInfoDocument().isNull())
QCoreApplication::processEvents();
- sup->snapshotUpdater()->setEditorDefines(QByteArray("#define SUB1\n"));
+ sup->snapshotUpdater()->setEditorDefines(editorDefines.toLatin1());
sup->snapshotUpdater()->update(mm->workingCopy());
Document::Ptr doc = mm->snapshot().document(main1File);
- QVERIFY(doc);
- QVERIFY(doc->globalNamespace());
- QCOMPARE(doc->globalSymbolCount(), 1U);
- CPlusPlus::Symbol *s = doc->globalSymbolAt(0);
- QVERIFY(s);
- CPlusPlus::Declaration *decl = s->asDeclaration();
- QVERIFY(decl);
- QVERIFY(decl->type()->isIntegerType());
- QCOMPARE(decl->name()->identifier()->chars(), "one");
- }
-
- {
- Core::IEditor *editor = Core::EditorManager::openEditor(main2File);
- EditorCloser closer(editor);
- QVERIFY(editor);
- QCOMPARE(Core::EditorManager::documentModel()->openedDocuments().size(), 1);
- QVERIFY(mm->isCppEditor(editor));
-
- CppEditorSupport *sup = mm->cppEditorSupport(
- qobject_cast<TextEditor::BaseTextEditor *>(editor));
- while (sup->lastSemanticInfoDocument().isNull())
- QCoreApplication::processEvents();
-
- sup->snapshotUpdater()->setEditorDefines(QByteArray("#define SUB2\n"));
- sup->snapshotUpdater()->update(mm->workingCopy());
-
- Document::Ptr doc = mm->snapshot().document(main2File);
- QVERIFY(doc);
- QVERIFY(doc->globalNamespace());
- QCOMPARE(doc->globalSymbolCount(), 1U);
- CPlusPlus::Symbol *s = doc->globalSymbolAt(0);
- QVERIFY(s);
- CPlusPlus::Declaration *decl = s->asDeclaration();
- QVERIFY(decl);
- QVERIFY(decl->type()->isIntegerType());
- QCOMPARE(decl->name()->identifier()->chars(), "two");
+ QCOMPARE(nameOfFirstDeclaration(doc), firstDeclarationName);
}
}