forked from qt-creator/qt-creator
CppEditor: Make insert virtual function tests data-driven
Change-Id: Iffb7e667098050ceb38eab40d4ed7850bf3bea94 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
4c7e0008cc
commit
8000d5e639
@@ -3664,17 +3664,25 @@ void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_memberFunction_sep
|
||||
data.run(&factory);
|
||||
}
|
||||
|
||||
/// Check: Insert only declarations
|
||||
void CppEditorPlugin::test_quickfix_InsertVirtualMethods_onlyDecl()
|
||||
Q_DECLARE_METATYPE(InsertVirtualMethodsDialog::ImplementationMode)
|
||||
|
||||
void CppEditorPlugin::test_quickfix_InsertVirtualMethods_data()
|
||||
{
|
||||
const QByteArray original =
|
||||
QTest::addColumn<InsertVirtualMethodsDialog::ImplementationMode>("implementationMode");
|
||||
QTest::addColumn<bool>("insertVirtualKeyword");
|
||||
QTest::addColumn<QByteArray>("original");
|
||||
QTest::addColumn<QByteArray>("expected");
|
||||
|
||||
// Check: Insert only declarations
|
||||
QTest::newRow("onlyDecl")
|
||||
<< InsertVirtualMethodsDialog::ModeOnlyDeclarations << true << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
"};\n\n"
|
||||
"class Derived : public Bas@eA {\n"
|
||||
"};";
|
||||
const QByteArray expected =
|
||||
"};"
|
||||
) << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
@@ -3684,25 +3692,19 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_onlyDecl()
|
||||
" // BaseA interface\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
"};\n";
|
||||
"};\n"
|
||||
);
|
||||
|
||||
InsertVirtualMethods factory(new InsertVirtualMethodsDialogTest(
|
||||
InsertVirtualMethodsDialog::ModeOnlyDeclarations, true));
|
||||
TestCase data(original, expected);
|
||||
data.run(&factory);
|
||||
}
|
||||
|
||||
/// Check: Insert only declarations vithout virtual keyword
|
||||
void CppEditorPlugin::test_quickfix_InsertVirtualMethods_onlyDeclWithoutVirtual()
|
||||
{
|
||||
const QByteArray original =
|
||||
// Check: Insert only declarations vithout virtual keyword
|
||||
QTest::newRow("onlyDeclWithoutVirtual")
|
||||
<< InsertVirtualMethodsDialog::ModeOnlyDeclarations << false << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
"};\n\n"
|
||||
"class Derived : public Bas@eA {\n"
|
||||
"};";
|
||||
const QByteArray expected =
|
||||
"};"
|
||||
) << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
@@ -3712,18 +3714,12 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_onlyDeclWithoutVirtual(
|
||||
" // BaseA interface\n"
|
||||
"public:\n"
|
||||
" int virtualFuncA();\n"
|
||||
"};\n";
|
||||
"};\n"
|
||||
);
|
||||
|
||||
InsertVirtualMethods factory(new InsertVirtualMethodsDialogTest(
|
||||
InsertVirtualMethodsDialog::ModeOnlyDeclarations, false));
|
||||
TestCase data(original, expected);
|
||||
data.run(&factory);
|
||||
}
|
||||
|
||||
/// Check: Are access specifiers considered
|
||||
void CppEditorPlugin::test_quickfix_InsertVirtualMethods_Access()
|
||||
{
|
||||
const QByteArray original =
|
||||
// Check: Are access specifiers considered
|
||||
QTest::newRow("Access")
|
||||
<< InsertVirtualMethodsDialog::ModeOnlyDeclarations << true << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int a();\n"
|
||||
@@ -3741,8 +3737,8 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_Access()
|
||||
" virtual int g();\n"
|
||||
"};\n\n"
|
||||
"class Der@ived : public BaseA {\n"
|
||||
"};";
|
||||
const QByteArray expected =
|
||||
"};"
|
||||
) << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int a();\n"
|
||||
@@ -3776,18 +3772,12 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_Access()
|
||||
" virtual int f();\n\n"
|
||||
"signals:\n"
|
||||
" virtual int g();\n"
|
||||
"};\n";
|
||||
"};\n"
|
||||
);
|
||||
|
||||
InsertVirtualMethods factory(new InsertVirtualMethodsDialogTest(
|
||||
InsertVirtualMethodsDialog::ModeOnlyDeclarations, true));
|
||||
TestCase data(original, expected);
|
||||
data.run(&factory);
|
||||
}
|
||||
|
||||
/// Check: Is a base class of a base class considered.
|
||||
void CppEditorPlugin::test_quickfix_InsertVirtualMethods_Superclass()
|
||||
{
|
||||
const QByteArray original =
|
||||
// Check: Is a base class of a base class considered.
|
||||
QTest::newRow("Superclass")
|
||||
<< InsertVirtualMethodsDialog::ModeOnlyDeclarations << true << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int a();\n"
|
||||
@@ -3797,8 +3787,8 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_Superclass()
|
||||
" virtual int b();\n"
|
||||
"};\n\n"
|
||||
"class Der@ived : public BaseB {\n"
|
||||
"};";
|
||||
const QByteArray expected =
|
||||
"};"
|
||||
) << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int a();\n"
|
||||
@@ -3816,18 +3806,12 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_Superclass()
|
||||
" // BaseA interface\n"
|
||||
"public:\n"
|
||||
" virtual int a();\n"
|
||||
"};\n";
|
||||
"};\n"
|
||||
);
|
||||
|
||||
InsertVirtualMethods factory(new InsertVirtualMethodsDialogTest(
|
||||
InsertVirtualMethodsDialog::ModeOnlyDeclarations, true));
|
||||
TestCase data(original, expected);
|
||||
data.run(&factory);
|
||||
}
|
||||
|
||||
/// Check: Do not insert reimplemented functions twice.
|
||||
void CppEditorPlugin::test_quickfix_InsertVirtualMethods_SuperclassOverride()
|
||||
{
|
||||
const QByteArray original =
|
||||
// Check: Do not insert reimplemented functions twice.
|
||||
QTest::newRow("SuperclassOverride")
|
||||
<< InsertVirtualMethodsDialog::ModeOnlyDeclarations << true << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int a();\n"
|
||||
@@ -3837,8 +3821,8 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_SuperclassOverride()
|
||||
" virtual int a();\n"
|
||||
"};\n\n"
|
||||
"class Der@ived : public BaseB {\n"
|
||||
"};";
|
||||
const QByteArray expected =
|
||||
"};"
|
||||
) << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int a();\n"
|
||||
@@ -3852,25 +3836,19 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_SuperclassOverride()
|
||||
" // BaseA interface\n"
|
||||
"public:\n"
|
||||
" virtual int a();\n"
|
||||
"};\n";
|
||||
"};\n"
|
||||
);
|
||||
|
||||
InsertVirtualMethods factory(new InsertVirtualMethodsDialogTest(
|
||||
InsertVirtualMethodsDialog::ModeOnlyDeclarations, true));
|
||||
TestCase data(original, expected);
|
||||
data.run(&factory);
|
||||
}
|
||||
|
||||
/// Check: Insert only declarations for pure virtual function
|
||||
void CppEditorPlugin::test_quickfix_InsertVirtualMethods_PureVirtualOnlyDecl()
|
||||
{
|
||||
const QByteArray original =
|
||||
// Check: Insert only declarations for pure virtual function
|
||||
QTest::newRow("PureVirtualOnlyDecl")
|
||||
<< InsertVirtualMethodsDialog::ModeOnlyDeclarations << true << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA() = 0;\n"
|
||||
"};\n\n"
|
||||
"class Derived : public Bas@eA {\n"
|
||||
"};";
|
||||
const QByteArray expected =
|
||||
"};"
|
||||
) << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA() = 0;\n"
|
||||
@@ -3880,25 +3858,19 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_PureVirtualOnlyDecl()
|
||||
" // BaseA interface\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
"};\n";
|
||||
"};\n"
|
||||
);
|
||||
|
||||
InsertVirtualMethods factory(new InsertVirtualMethodsDialogTest(
|
||||
InsertVirtualMethodsDialog::ModeOnlyDeclarations, true));
|
||||
TestCase data(original, expected);
|
||||
data.run(&factory);
|
||||
}
|
||||
|
||||
/// Check: Insert pure virtual functions inside class
|
||||
void CppEditorPlugin::test_quickfix_InsertVirtualMethods_PureVirtualInside()
|
||||
{
|
||||
const QByteArray original =
|
||||
// Check: Insert pure virtual functions inside class
|
||||
QTest::newRow("PureVirtualInside")
|
||||
<< InsertVirtualMethodsDialog::ModeInsideClass << true << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA() = 0;\n"
|
||||
"};\n\n"
|
||||
"class Derived : public Bas@eA {\n"
|
||||
"};";
|
||||
const QByteArray expected =
|
||||
"};"
|
||||
) << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA() = 0;\n"
|
||||
@@ -3910,25 +3882,19 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_PureVirtualInside()
|
||||
" virtual int virtualFuncA()\n"
|
||||
" {\n"
|
||||
" }\n"
|
||||
"};\n";
|
||||
"};\n"
|
||||
);
|
||||
|
||||
InsertVirtualMethods factory(new InsertVirtualMethodsDialogTest(
|
||||
InsertVirtualMethodsDialog::ModeInsideClass, true));
|
||||
TestCase data(original, expected);
|
||||
data.run(&factory);
|
||||
}
|
||||
|
||||
/// Check: Insert inside class
|
||||
void CppEditorPlugin::test_quickfix_InsertVirtualMethods_inside()
|
||||
{
|
||||
const QByteArray original =
|
||||
// Check: Insert inside class
|
||||
QTest::newRow("inside")
|
||||
<< InsertVirtualMethodsDialog::ModeInsideClass << true << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
"};\n\n"
|
||||
"class Derived : public Bas@eA {\n"
|
||||
"};";
|
||||
const QByteArray expected =
|
||||
"};"
|
||||
) << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
@@ -3940,25 +3906,19 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_inside()
|
||||
" virtual int virtualFuncA()\n"
|
||||
" {\n"
|
||||
" }\n"
|
||||
"};\n";
|
||||
"};\n"
|
||||
);
|
||||
|
||||
InsertVirtualMethods factory(new InsertVirtualMethodsDialogTest(
|
||||
InsertVirtualMethodsDialog::ModeInsideClass, true));
|
||||
TestCase data(original, expected);
|
||||
data.run(&factory);
|
||||
}
|
||||
|
||||
/// Check: Insert outside class
|
||||
void CppEditorPlugin::test_quickfix_InsertVirtualMethods_outside()
|
||||
{
|
||||
const QByteArray original =
|
||||
// Check: Insert outside class
|
||||
QTest::newRow("outside")
|
||||
<< InsertVirtualMethodsDialog::ModeOutsideClass << true << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
"};\n\n"
|
||||
"class Derived : public Bas@eA {\n"
|
||||
"};";
|
||||
const QByteArray expected =
|
||||
"};"
|
||||
) << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
@@ -3971,38 +3931,41 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_outside()
|
||||
"};\n\n"
|
||||
"int Derived::virtualFuncA()\n"
|
||||
"{\n"
|
||||
"}\n";
|
||||
"}\n"
|
||||
);
|
||||
|
||||
InsertVirtualMethods factory(new InsertVirtualMethodsDialogTest(
|
||||
InsertVirtualMethodsDialog::ModeOutsideClass, true));
|
||||
TestCase data(original, expected);
|
||||
data.run(&factory);
|
||||
// Check: No trigger: all implemented
|
||||
QTest::newRow("notrigger_allImplemented")
|
||||
<< InsertVirtualMethodsDialog::ModeOutsideClass << true << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
"};\n\n"
|
||||
"class Derived : public Bas@eA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
"};"
|
||||
) << _(
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
"};\n\n"
|
||||
"class Derived : public Bas@eA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
"};\n"
|
||||
);
|
||||
}
|
||||
|
||||
/// Check: No trigger: all implemented
|
||||
void CppEditorPlugin::test_quickfix_InsertVirtualMethods_notrigger_allImplemented()
|
||||
void CppEditorPlugin::test_quickfix_InsertVirtualMethods()
|
||||
{
|
||||
const QByteArray original =
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
"};\n\n"
|
||||
"class Derived : public Bas@eA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
"};";
|
||||
const QByteArray expected =
|
||||
"class BaseA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
"};\n\n"
|
||||
"class Derived : public Bas@eA {\n"
|
||||
"public:\n"
|
||||
" virtual int virtualFuncA();\n"
|
||||
"};\n";
|
||||
QFETCH(InsertVirtualMethodsDialog::ImplementationMode, implementationMode);
|
||||
QFETCH(bool, insertVirtualKeyword);
|
||||
QFETCH(QByteArray, original);
|
||||
QFETCH(QByteArray, expected);
|
||||
|
||||
InsertVirtualMethods factory(new InsertVirtualMethodsDialogTest(
|
||||
InsertVirtualMethodsDialog::ModeOutsideClass, true));
|
||||
InsertVirtualMethods factory(
|
||||
new InsertVirtualMethodsDialogTest(implementationMode, insertVirtualKeyword));
|
||||
TestCase data(original, expected);
|
||||
data.run(&factory);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user