diff options
author | Nikolai Kosjar <nikolai.kosjar@theqtcompany.com> | 2014-11-27 15:48:11 +0100 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@theqtcompany.com> | 2014-11-28 14:00:58 +0100 |
commit | c58b029319d229c9af0cbe5696e042d9b5ed09c1 (patch) | |
tree | a063ceac33dd1d750520bcda5c007c38c25ac4aa | |
parent | 315fb0372e1cddbf33eea2fa1414f1d25ec65f90 (diff) | |
download | qt-creator-c58b029319d229c9af0cbe5696e042d9b5ed09c1.tar.gz |
CppEditor: Tests: Refactor out BaseQuickFixTestCase
We will add another type of test case that allows us to test the list of
offered operations.
Change-Id: I528b3844181c139c8955091ac0bbcf6475fd8a4f
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
-rw-r--r-- | src/plugins/cppeditor/cppinsertvirtualmethods.cpp | 6 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppquickfix_test.cpp | 347 | ||||
-rw-r--r-- | src/plugins/cppeditor/cppquickfix_test.h | 66 |
3 files changed, 219 insertions, 200 deletions
diff --git a/src/plugins/cppeditor/cppinsertvirtualmethods.cpp b/src/plugins/cppeditor/cppinsertvirtualmethods.cpp index 60d6d517b8..fff21d928d 100644 --- a/src/plugins/cppeditor/cppinsertvirtualmethods.cpp +++ b/src/plugins/cppeditor/cppinsertvirtualmethods.cpp @@ -1637,7 +1637,7 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods() InsertVirtualMethods factory( new Tests::InsertVirtualMethodsDialogTest(implementationMode, insertVirtualKeyword)); - Tests::QuickFixTestCase(Tests::singleDocument(original, expected), &factory); + Tests::QuickFixOperationTest(Tests::singleDocument(original, expected), &factory); } /// Check: Insert in implementation file @@ -1683,7 +1683,7 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_implementationFile() InsertVirtualMethods factory(new Tests::InsertVirtualMethodsDialogTest( InsertVirtualMethodsDialog::ModeImplementationFile, true)); - Tests::QuickFixTestCase(testFiles, &factory); + Tests::QuickFixOperationTest(testFiles, &factory); } /// Check: Qualified names. @@ -1735,7 +1735,7 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_BaseClassInNamespace() InsertVirtualMethods factory(new Tests::InsertVirtualMethodsDialogTest( InsertVirtualMethodsDialog::ModeImplementationFile, true)); - Tests::QuickFixTestCase(testFiles, &factory); + Tests::QuickFixOperationTest(testFiles, &factory); } #endif // WITH_TESTS diff --git a/src/plugins/cppeditor/cppquickfix_test.cpp b/src/plugins/cppeditor/cppquickfix_test.cpp index 3269df3c0d..2403cdd3b1 100644 --- a/src/plugins/cppeditor/cppquickfix_test.cpp +++ b/src/plugins/cppeditor/cppquickfix_test.cpp @@ -89,54 +89,26 @@ QList<QuickFixTestDocument::Ptr> singleDocument(const QByteArray &original, << QuickFixTestDocument::create("file.cpp", original, expected); } -/// Leading whitespace is not removed, so we can check if the indetation ranges -/// have been set correctly by the quick-fix. -static QString &removeTrailingWhitespace(QString &input) -{ - const QStringList lines = input.split(QLatin1Char('\n')); - input.resize(0); - for (int i = 0, total = lines.size(); i < total; ++i) { - QString line = lines.at(i); - while (line.length() > 0) { - QChar lastChar = line[line.length() - 1]; - if (lastChar == QLatin1Char(' ') || lastChar == QLatin1Char('\t')) - line.chop(1); - else - break; - } - input.append(line); - - const bool isLastLine = i == lines.size() - 1; - if (!isLastLine) - input.append(QLatin1Char('\n')); - } - return input; -} - -/// The '@' in the originalSource is the position from where the quick-fix discovery is triggered. -/// Exactly one TestFile must contain the cursor position marker '@' in the originalSource. -QuickFixTestCase::QuickFixTestCase(const QList<QuickFixTestDocument::Ptr> &theTestFiles, - CppQuickFixFactory *factory, - const ProjectPart::HeaderPaths &headerPaths, - int resultIndex, - const QByteArray &expectedFailMessage) - : m_testFiles(theTestFiles) +BaseQuickFixTestCase::BaseQuickFixTestCase(const QList<QuickFixTestDocument::Ptr> &testDocuments, + const ProjectPart::HeaderPaths &headerPaths) + : m_testDocuments(testDocuments) , m_cppCodeStylePreferences(0) , m_restoreHeaderPaths(false) { QVERIFY(succeededSoFar()); + m_succeededSoFar = false; // Check if there is exactly one cursor marker unsigned cursorMarkersCount = 0; - foreach (const QuickFixTestDocument::Ptr testFile, m_testFiles) { - if (testFile->hasCursorMarker()) + foreach (const QuickFixTestDocument::Ptr document, m_testDocuments) { + if (document->hasCursorMarker()) ++cursorMarkersCount; } QVERIFY2(cursorMarkersCount == 1, "Exactly one cursor marker is allowed."); - // Write files to disk - foreach (QuickFixTestDocument::Ptr testFile, m_testFiles) - testFile->writeToDisk(); + // Write documents to disk + foreach (QuickFixTestDocument::Ptr document, m_testDocuments) + document->writeToDisk(); // Set appropriate include paths if (!headerPaths.isEmpty()) { @@ -147,23 +119,23 @@ QuickFixTestCase::QuickFixTestCase(const QList<QuickFixTestDocument::Ptr> &theTe // Update Code Model QSet<QString> filePaths; - foreach (const QuickFixTestDocument::Ptr &testFile, m_testFiles) - filePaths << testFile->filePath(); + foreach (const QuickFixTestDocument::Ptr &document, m_testDocuments) + filePaths << document->filePath(); QVERIFY(parseFiles(filePaths)); // Open Files - foreach (QuickFixTestDocument::Ptr testFile, m_testFiles) { - QVERIFY(openCppEditor(testFile->filePath(), &testFile->m_editor, - &testFile->m_editorWidget)); - closeEditorAtEndOfTestCase(testFile->m_editor); + foreach (QuickFixTestDocument::Ptr document, m_testDocuments) { + QVERIFY(openCppEditor(document->filePath(), &document->m_editor, + &document->m_editorWidget)); + closeEditorAtEndOfTestCase(document->m_editor); // Set cursor position - const int cursorPosition = testFile->hasCursorMarker() - ? testFile->m_cursorPosition : 0; - testFile->m_editor->setCursorPosition(cursorPosition); + const int cursorPosition = document->hasCursorMarker() + ? document->m_cursorPosition : 0; + document->m_editor->setCursorPosition(cursorPosition); // Rehighlight - waitForRehighlightedSemanticDocument(testFile->m_editorWidget); + waitForRehighlightedSemanticDocument(document->m_editorWidget); } // Enforce the default cpp code style, so we are independent of config file settings. @@ -173,21 +145,81 @@ QuickFixTestCase::QuickFixTestCase(const QList<QuickFixTestDocument::Ptr> &theTe m_cppCodeStylePreferencesOriginalDelegateId = m_cppCodeStylePreferences->currentDelegateId(); m_cppCodeStylePreferences->setCurrentDelegate("qt"); - // Run the fix in the file having the cursor marker - QuickFixTestDocument::Ptr testFile; - foreach (const QuickFixTestDocument::Ptr file, m_testFiles) { - if (file->hasCursorMarker()) - testFile = file; + // Find the document having the cursor marker + foreach (const QuickFixTestDocument::Ptr document, m_testDocuments) { + if (document->hasCursorMarker()){ + m_documentWithMarker = document; + break; + } + } + + QVERIFY(m_documentWithMarker); + m_succeededSoFar = true; +} + +BaseQuickFixTestCase::~BaseQuickFixTestCase() +{ + // Restore default cpp code style + if (m_cppCodeStylePreferences) + m_cppCodeStylePreferences->setCurrentDelegate(m_cppCodeStylePreferencesOriginalDelegateId); + + // Restore include paths + if (m_restoreHeaderPaths) + m_modelManager->setHeaderPaths(m_headerPathsToRestore); + + // Remove created files from file system + foreach (const QuickFixTestDocument::Ptr &testDocument, m_testDocuments) + QVERIFY(QFile::remove(testDocument->filePath())); +} + +/// Leading whitespace is not removed, so we can check if the indetation ranges +/// have been set correctly by the quick-fix. +static QString &removeTrailingWhitespace(QString &input) +{ + const QStringList lines = input.split(QLatin1Char('\n')); + input.resize(0); + for (int i = 0, total = lines.size(); i < total; ++i) { + QString line = lines.at(i); + while (line.length() > 0) { + QChar lastChar = line[line.length() - 1]; + if (lastChar == QLatin1Char(' ') || lastChar == QLatin1Char('\t')) + line.chop(1); + else + break; + } + input.append(line); + + const bool isLastLine = i == lines.size() - 1; + if (!isLastLine) + input.append(QLatin1Char('\n')); } - QVERIFY2(testFile, "No test file with cursor marker found"); + return input; +} - if (QuickFixOperation::Ptr fix = getFix(factory, testFile->m_editorWidget, resultIndex)) - fix->perform(); - else +QuickFixOperationTest::QuickFixOperationTest(const QList<QuickFixTestDocument::Ptr> &testDocuments, + CppQuickFixFactory *factory, + const ProjectPart::HeaderPaths &headerPaths, + int operationIndex, + const QByteArray &expectedFailMessage) + : BaseQuickFixTestCase(testDocuments, headerPaths) +{ + QVERIFY(succeededSoFar()); + + // Perform operation if there is one + CppQuickFixInterface quickFixInterface(m_documentWithMarker->m_editorWidget, ExplicitlyInvoked); + TextEditor::QuickFixOperations operations; + factory->match(quickFixInterface, operations); + if (operations.isEmpty()) { qDebug() << "Quickfix was not triggered"; + return; + } + + QVERIFY(operationIndex < operations.size()); + const QuickFixOperation::Ptr operation = operations.at(operationIndex); + operation->perform(); // Compare all files - foreach (const QuickFixTestDocument::Ptr testFile, m_testFiles) { + foreach (const QuickFixTestDocument::Ptr testFile, m_testDocuments) { // Check QString result = testFile->m_editorWidget->document()->toPlainText(); removeTrailingWhitespace(result); @@ -203,27 +235,14 @@ QuickFixTestCase::QuickFixTestCase(const QList<QuickFixTestDocument::Ptr> &theTe } } -QuickFixTestCase::~QuickFixTestCase() +void QuickFixOperationTest::run(const QList<QuickFixTestDocument::Ptr> &testDocuments, + CppQuickFixFactory *factory, + const QString &headerPath, + int operationIndex) { - // Restore default cpp code style - if (m_cppCodeStylePreferences) - m_cppCodeStylePreferences->setCurrentDelegate(m_cppCodeStylePreferencesOriginalDelegateId); - - // Restore include paths - if (m_restoreHeaderPaths) - m_modelManager->setHeaderPaths(m_headerPathsToRestore); - - // Remove created files from file system - foreach (const QuickFixTestDocument::Ptr &testDocument, m_testFiles) - QVERIFY(QFile::remove(testDocument->filePath())); -} - -void QuickFixTestCase::run(const QList<QuickFixTestDocument::Ptr> &theTestFiles, - CppQuickFixFactory *factory, const QString &incPath, int resultIndex) -{ - ProjectPart::HeaderPaths hps; - hps += ProjectPart::HeaderPath(incPath, ProjectPart::HeaderPath::IncludePath); - QuickFixTestCase(theTestFiles, factory, hps, resultIndex); + ProjectPart::HeaderPaths headerPaths; + headerPaths += ProjectPart::HeaderPath(headerPath, ProjectPart::HeaderPath::IncludePath); + QuickFixOperationTest(testDocuments, factory, headerPaths, operationIndex); } /// Delegates directly to AddIncludeForUndefinedIdentifierOp for easier testing. @@ -242,16 +261,6 @@ private: const QString m_include; }; -/// Apply the factory on the source and get back the resultIndex'th result or a null pointer. -QSharedPointer<TextEditor::QuickFixOperation> QuickFixTestCase::getFix( - CppQuickFixFactory *factory, CppEditorWidget *editorWidget, int resultIndex) -{ - CppQuickFixInterface qfi(editorWidget, ExplicitlyInvoked); - TextEditor::QuickFixOperations results; - factory->match(qfi, results); - return results.isEmpty() ? QuickFixOperation::Ptr() : results.at(resultIndex); -} - } // namespace Tests } // namespace Internal @@ -1482,7 +1491,7 @@ void CppEditorPlugin::test_quickfix() if (expected.isEmpty()) expected = original; - QuickFixTestCase(singleDocument(original, expected), factory.data()); + QuickFixOperationTest(singleDocument(original, expected), factory.data()); } /// Checks: In addition to test_quickfix_GenerateGetterSetter_basicGetterWithPrefix @@ -1535,7 +1544,7 @@ void CppEditorPlugin::test_quickfix_GenerateGetterSetter_basicGetterWithPrefixAn testFiles << QuickFixTestDocument::create("file.cpp", original, expected); GenerateGetterSetter factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check if definition is inserted right after class for insert definition outside @@ -1578,7 +1587,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_afterClass() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); InsertDefFromDecl factory; - QuickFixTestCase(testFiles, &factory, ProjectPart::HeaderPaths(), 1); + QuickFixOperationTest(testFiles, &factory, ProjectPart::HeaderPaths(), 1); } /// Check from header file: If there is a source file, insert the definition in the source file. @@ -1610,7 +1619,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_basic1() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); InsertDefFromDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check from header file: If there is a source file, insert the definition in the source file. @@ -1647,7 +1656,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_basic2() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); InsertDefFromDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check from source file: Insert in source file, not header file. @@ -1677,7 +1686,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_basic3() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); InsertDefFromDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check from header file: If the class is in a namespace, the added function definition @@ -1711,7 +1720,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_namespace1() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); InsertDefFromDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check from header file: If the class is in namespace N and the source file has a @@ -1749,7 +1758,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_namespace2() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); InsertDefFromDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check definition insert inside class @@ -1767,7 +1776,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_insideClass() "};"; InsertDefFromDecl factory; - QuickFixTestCase(singleDocument(original, expected), &factory, ProjectPart::HeaderPaths(), 1); + QuickFixOperationTest(singleDocument(original, expected), &factory, ProjectPart::HeaderPaths(), + 1); } /// Check not triggering when definition exists @@ -1781,7 +1791,8 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_notTriggeringWhenDefinitio const QByteArray expected = original; InsertDefFromDecl factory; - QuickFixTestCase(singleDocument(original, expected), &factory, ProjectPart::HeaderPaths(), 1); + QuickFixOperationTest(singleDocument(original, expected), &factory, ProjectPart::HeaderPaths(), + 1); } /// Find right implementation file. @@ -1830,7 +1841,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_findRightImplementationFil testFiles << QuickFixTestDocument::create("file2.cpp", original, expected); InsertDefFromDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Ignore generated functions declarations when looking at the surrounding @@ -1885,7 +1896,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_ignoreSurroundingGenerated testFiles << QuickFixTestDocument::create("file2.cpp", original, expected); InsertDefFromDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check if whitespace is respected for operator functions @@ -1909,7 +1920,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_respectWsInOperatorNames1( "}\n"; InsertDefFromDecl factory; - QuickFixTestCase(singleDocument(original, expected), &factory); + QuickFixOperationTest(singleDocument(original, expected), &factory); } /// Check if whitespace is respected for operator functions @@ -1933,7 +1944,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_respectWsInOperatorNames2( "}\n"; InsertDefFromDecl factory; - QuickFixTestCase(singleDocument(original, expected), &factory); + QuickFixOperationTest(singleDocument(original, expected), &factory); } /// Check if a function like macro use is not separated by the function to insert @@ -1975,7 +1986,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_macroUsesAtEndOfFile1() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); InsertDefFromDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check if a function like macro use is not separated by the function to insert @@ -2015,7 +2026,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_macroUsesAtEndOfFile2() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); InsertDefFromDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check if insertion happens before syntactically erroneous statements at end of file. @@ -2052,7 +2063,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_erroneousStatementAtEndOfF testFiles << QuickFixTestDocument::create("file.cpp", original, expected); InsertDefFromDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check: Respect rvalue references @@ -2080,7 +2091,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_rvalueReference() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); InsertDefFromDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Find right implementation file. (QTCREATORBUG-10728) @@ -2119,7 +2130,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_findImplementationFile() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); InsertDefFromDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } void CppEditorPlugin::test_quickfix_InsertDefFromDecl_unicodeIdentifier() @@ -2163,7 +2174,7 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_unicodeIdentifier() #undef TEST_UNICODE_IDENTIFIER InsertDefFromDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } // Function for one of InsertDeclDef section cases @@ -2199,7 +2210,7 @@ void insertToSectionDeclFromDef(const QByteArray §ion, int sectionIndex) testFiles << QuickFixTestDocument::create("file.cpp", original, expected); InsertDeclFromDef factory; - QuickFixTestCase(testFiles, &factory, ProjectPart::HeaderPaths(), sectionIndex); + QuickFixOperationTest(testFiles, &factory, ProjectPart::HeaderPaths(), sectionIndex); } /// Check from source file: Insert in header file. @@ -2249,7 +2260,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onSimpleNam + "/afile.cpp", original, expected); AddIncludeForUndefinedIdentifier factory; - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Cursor is on a qualified name (1) @@ -2289,7 +2300,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onNameOfQua // Do not use the test factory, at least once we want to go through the "full stack". AddIncludeForUndefinedIdentifier factory; - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onBaseOfQualifiedName() @@ -2328,7 +2339,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onBaseOfQua // Do not use the test factory, at least once we want to go through the "full stack". AddIncludeForUndefinedIdentifier factory; - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateName() @@ -2367,7 +2378,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateN // Do not use the test factory, at least once we want to go through the "full stack". AddIncludeForUndefinedIdentifier factory; - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateNameInsideArguments() @@ -2406,7 +2417,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_onTemplateN // Do not use the test factory, at least once we want to go through the "full stack". AddIncludeForUndefinedIdentifier factory; - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForwardDeclaration() @@ -2449,7 +2460,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForward // Do not use the test factory, at least once we want to go through the "full stack". AddIncludeForUndefinedIdentifier factory; - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForwardDeclaration2() @@ -2492,7 +2503,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForward // Do not use the test factory, at least once we want to go through the "full stack". AddIncludeForUndefinedIdentifier factory; - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForwardHeader() @@ -2537,7 +2548,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_withForward // Do not use the test factory, at least once we want to go through the "full stack". AddIncludeForUndefinedIdentifier factory; - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath(), 1); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath(), 1); } /// Check: Ignore *.moc includes @@ -2562,7 +2573,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_i + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Insert include at top for a sorted group @@ -2588,7 +2599,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_s + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Insert include in the middle for a sorted group @@ -2614,7 +2625,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_s + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Insert include at bottom for a sorted group @@ -2640,7 +2651,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_s + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: For an unsorted group the new include is appended @@ -2666,7 +2677,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_a + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Insert a local include at front if there are only global includes @@ -2693,7 +2704,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_f + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Insert a global include at back if there are only local includes @@ -2722,7 +2733,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_f + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<file.h>")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Prefer group with longest matching prefix @@ -2752,7 +2763,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_p + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"prefixc.h\"")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Create a new include group if there are only include groups with a different include dir @@ -2779,7 +2790,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_n + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Include group with mixed include dirs, sorted --> insert properly @@ -2807,7 +2818,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<firstlib/file.h>")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Include group with mixed include dirs, unsorted --> append @@ -2835,7 +2846,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<lastlib/file.h>")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Include group with mixed include types @@ -2861,7 +2872,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"z.h\"")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Include group with mixed include types @@ -2887,7 +2898,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"a.h\"")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Include group with mixed include types @@ -2913,7 +2924,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"lib/file.h\"")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Include group with mixed include types @@ -2939,7 +2950,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_m + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("<lib/file.h>")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Insert very first include @@ -2962,7 +2973,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_n + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Insert very first include after include guard @@ -2992,7 +3003,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_o + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Insert very first include if there is a c++ style comment on top @@ -3021,7 +3032,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_v + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: Insert very first include if there is a c style comment on top @@ -3054,7 +3065,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_v + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifierTestFactory factory(QLatin1String("\"file.h\"")); - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalIncludePath()); } /// Check: If a "Qt Class" was not found by the locator, check the header files in the Qt @@ -3078,7 +3089,7 @@ void CppEditorPlugin::test_quickfix_AddIncludeForUndefinedIdentifier_inserting_c + "/file.cpp", original, expected); AddIncludeForUndefinedIdentifier factory; - QuickFixTestCase::run(testFiles, &factory, TestIncludePaths::globalQtCoreIncludePath()); + QuickFixOperationTest::run(testFiles, &factory, TestIncludePaths::globalQtCoreIncludePath()); } @@ -3122,7 +3133,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncToCpp() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefOutside factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncToCppInsideNS() @@ -3168,7 +3179,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncToCppInsideNS() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefOutside factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check: Move definition outside class @@ -3202,7 +3213,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncOutside1() "void Foo::f4() {}\n"; MoveFuncDefOutside factory; - QuickFixTestCase(singleDocument(original, expected), &factory); + QuickFixOperationTest(singleDocument(original, expected), &factory); } /// Check: Move definition outside class @@ -3244,7 +3255,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncOutside2() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefOutside factory; - QuickFixTestCase(testFiles, &factory, ProjectPart::HeaderPaths(), 1); + QuickFixOperationTest(testFiles, &factory, ProjectPart::HeaderPaths(), 1); } /// Check: Move definition from header to cpp (with namespace). @@ -3286,7 +3297,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncToCppNS() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefOutside factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check: Move definition from header to cpp (with namespace + using). @@ -3330,7 +3341,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncToCppNSUsing() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefOutside factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check: Move definition outside class with Namespace @@ -3357,7 +3368,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_MemberFuncOutsideWithNs() "\n}\n"; MoveFuncDefOutside factory; - QuickFixTestCase(singleDocument(original, expected), &factory); + QuickFixOperationTest(singleDocument(original, expected), &factory); } /// Check: Move free function from header to cpp. @@ -3392,7 +3403,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_FreeFuncToCpp() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefOutside factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check: Move free function from header to cpp (with namespace). @@ -3430,7 +3441,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_FreeFuncToCppNS() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefOutside factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check: Move Ctor with member initialization list (QTCREATORBUG-9157). @@ -3470,7 +3481,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_CtorWithInitialization1() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefOutside factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check: Move Ctor with member initialization list (QTCREATORBUG-9462). @@ -3515,7 +3526,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_CtorWithInitialization2() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefOutside factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check if definition is inserted right after class for move definition outside @@ -3557,7 +3568,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_afterClass() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefOutside factory; - QuickFixTestCase(testFiles, &factory, ProjectPart::HeaderPaths(), 1); + QuickFixOperationTest(testFiles, &factory, ProjectPart::HeaderPaths(), 1); } /// Check if whitespace is respected for operator functions @@ -3579,7 +3590,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_respectWsInOperatorNames1 ; MoveFuncDefOutside factory; - QuickFixTestCase(singleDocument(original, expected), &factory); + QuickFixOperationTest(singleDocument(original, expected), &factory); } /// Check if whitespace is respected for operator functions @@ -3601,7 +3612,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_respectWsInOperatorNames2 ; MoveFuncDefOutside factory; - QuickFixTestCase(singleDocument(original, expected), &factory); + QuickFixOperationTest(singleDocument(original, expected), &factory); } void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_macroUses() @@ -3633,7 +3644,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefOutside_macroUses() ; MoveFuncDefOutside factory; - QuickFixTestCase(singleDocument(original, expected), &factory, + QuickFixOperationTest(singleDocument(original, expected), &factory, ProjectPart::HeaderPaths(), 0, "QTCREATORBUG-12314"); } @@ -3666,7 +3677,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_MemberFunc() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefToDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check: revert test_quickfix_MoveFuncDefOutside_MemberFuncOutside() @@ -3691,7 +3702,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_MemberFuncOutside() "};\n\n\n"; MoveFuncDefToDecl factory; - QuickFixTestCase(singleDocument(original, expected), &factory); + QuickFixOperationTest(singleDocument(original, expected), &factory); } /// Check: revert test_quickfix_MoveFuncDefOutside_MemberFuncToCppNS() @@ -3731,7 +3742,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_MemberFuncToCppNS() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefToDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check: revert test_quickfix_MoveFuncDefOutside_MemberFuncToCppNSUsing() @@ -3775,7 +3786,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_MemberFuncToCppNSUsing() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefToDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check: revert test_quickfix_MoveFuncDefOutside_MemberFuncOutsideWithNs() @@ -3802,7 +3813,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_MemberFuncOutsideWithNs() "};\n\n\n}\n"; MoveFuncDefToDecl factory; - QuickFixTestCase(singleDocument(original, expected), &factory); + QuickFixOperationTest(singleDocument(original, expected), &factory); } /// Check: revert test_quickfix_MoveFuncDefOutside_FreeFuncToCpp() @@ -3834,7 +3845,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_FreeFuncToCpp() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefToDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check: revert test_quickfix_MoveFuncDefOutside_FreeFuncToCppNS() @@ -3872,7 +3883,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_FreeFuncToCppNS() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefToDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check: revert test_quickfix_MoveFuncDefOutside_CtorWithInitialization() @@ -3911,7 +3922,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_CtorWithInitialization() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); MoveFuncDefToDecl factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } /// Check: Definition should not be placed behind the variable. QTCREATORBUG-10303 @@ -3937,7 +3948,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_structWithAssignedVariable "} bar;\n"; MoveFuncDefToDecl factory; - QuickFixTestCase(singleDocument(original, expected), &factory); + QuickFixOperationTest(singleDocument(original, expected), &factory); } void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_macroUses() @@ -3967,7 +3978,7 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_macroUses() "};\n\n\n\n"; MoveFuncDefToDecl factory; - QuickFixTestCase(singleDocument(original, expected), &factory, + QuickFixOperationTest(singleDocument(original, expected), &factory, ProjectPart::HeaderPaths(), 0, "QTCREATORBUG-12314"); } @@ -4005,7 +4016,7 @@ void CppEditorPlugin::test_quickfix_AssignToLocalVariable_templates() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); AssignToLocalVariable factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_typeDeduction_data() @@ -4069,7 +4080,7 @@ void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_typeDeduction() } ExtractLiteralAsParameter factory; - QuickFixTestCase(singleDocument(original, expected), &factory); + QuickFixOperationTest(singleDocument(original, expected), &factory); } void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_freeFunction_separateFiles() @@ -4095,7 +4106,7 @@ void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_freeFunction_separ testFiles << QuickFixTestDocument::create("file.cpp", original, expected); ExtractLiteralAsParameter factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_memberFunction_separateFiles() @@ -4129,7 +4140,7 @@ void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_memberFunction_sep testFiles << QuickFixTestDocument::create("file.cpp", original, expected); ExtractLiteralAsParameter factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_notTriggeringForInvalidCode() @@ -4147,7 +4158,7 @@ void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_notTriggeringForIn testFiles << QuickFixTestDocument::create("file.cpp", original, expected); ExtractLiteralAsParameter factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } void CppEditorPlugin::test_quickfix_ConvertQt4Connect_connectOutOfClass() @@ -4180,7 +4191,7 @@ void CppEditorPlugin::test_quickfix_ConvertQt4Connect_connectOutOfClass() testFiles << QuickFixTestDocument::create("file.cpp", original, expected); ConvertQt4Connect factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } void CppEditorPlugin::test_quickfix_ConvertQt4Connect_connectWithinClass_data() @@ -4227,7 +4238,7 @@ void CppEditorPlugin::test_quickfix_ConvertQt4Connect_connectWithinClass() prefix + expected + suffix); ConvertQt4Connect factory; - QuickFixTestCase(testFiles, &factory); + QuickFixOperationTest(testFiles, &factory); } } // namespace Internal diff --git a/src/plugins/cppeditor/cppquickfix_test.h b/src/plugins/cppeditor/cppquickfix_test.h index 72be61be4d..43119cf94b 100644 --- a/src/plugins/cppeditor/cppquickfix_test.h +++ b/src/plugins/cppeditor/cppquickfix_test.h @@ -44,13 +44,14 @@ namespace CppEditor { namespace Internal { namespace Tests { -/** - * Represents a test document before and after applying the quick fix. - * - * A TestDocument's source may contain an '@' character to denote - * the cursor position. This marker is removed before the Editor reads - * the document. - */ +/// +/// Represents a test document before and after applying the quick fix. +/// +/// A TestDocument's source may contain an '@' character to denote +/// the cursor position. This marker is removed before the Editor reads +/// the document. +/// + class QuickFixTestDocument : public TestDocument { public: @@ -60,37 +61,27 @@ public: const QByteArray &expectedSource); static Ptr create(const QByteArray &fileName, const QByteArray &source, - const QByteArray &expectedSource); + const QByteArray &expectedSource); public: QString m_expectedSource; }; -/** - * Encapsulates the whole process of setting up an editor, getting the - * quick-fix, applying it, and checking the result. - */ -class QuickFixTestCase : public TestCase +class BaseQuickFixTestCase : public TestCase { public: - QuickFixTestCase(const QList<QuickFixTestDocument::Ptr> &theTestFiles, - CppQuickFixFactory *factory, - const CppTools::ProjectPart::HeaderPaths &includePaths = - CppTools::ProjectPart::HeaderPaths(), - int resultIndex = 0, - const QByteArray &expectedFailMessage = QByteArray()); - ~QuickFixTestCase(); - - static void run(const QList<QuickFixTestDocument::Ptr> &theTestFiles, - CppQuickFixFactory *factory, const QString &incPath, int resultIndex = 0); -private: - QSharedPointer<TextEditor::QuickFixOperation> getFix(CppQuickFixFactory *factory, - CppEditorWidget *editorWidget, - int resultIndex = 0); + /// Exactly one QuickFixTestDocument must contain the cursor position marker '@'. + BaseQuickFixTestCase(const QList<QuickFixTestDocument::Ptr> &testDocuments, + const CppTools::ProjectPart::HeaderPaths &headerPaths + = CppTools::ProjectPart::HeaderPaths()); -private: - QList<QuickFixTestDocument::Ptr> m_testFiles; + ~BaseQuickFixTestCase(); +protected: + QuickFixTestDocument::Ptr m_documentWithMarker; + QList<QuickFixTestDocument::Ptr> m_testDocuments; + +private: CppTools::CppCodeStylePreferences *m_cppCodeStylePreferences; QByteArray m_cppCodeStylePreferencesOriginalDelegateId; @@ -98,6 +89,23 @@ private: bool m_restoreHeaderPaths; }; +/// Tests a concrete QuickFixOperation of a given CppQuickFixFactory +class QuickFixOperationTest : public BaseQuickFixTestCase +{ +public: + QuickFixOperationTest(const QList<QuickFixTestDocument::Ptr> &testDocuments, + CppQuickFixFactory *factory, + const CppTools::ProjectPart::HeaderPaths &headerPaths + = CppTools::ProjectPart::HeaderPaths(), + int operationIndex = 0, + const QByteArray &expectedFailMessage = QByteArray()); + + static void run(const QList<QuickFixTestDocument::Ptr> &testDocuments, + CppQuickFixFactory *factory, + const QString &headerPath, + int operationIndex = 0); +}; + QList<QuickFixTestDocument::Ptr> singleDocument(const QByteArray &original, const QByteArray &expected); |