summaryrefslogtreecommitdiff
path: root/src/plugins/cppeditor/cppquickfix_test.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cppeditor/cppquickfix_test.h')
-rw-r--r--src/plugins/cppeditor/cppquickfix_test.h66
1 files changed, 37 insertions, 29 deletions
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);