diff --git a/src/plugins/cppeditor/cppquickfix_test.cpp b/src/plugins/cppeditor/cppquickfix_test.cpp
index 914240dda7a5c5b1636e019199b6f4182f755a3e..a45aebbfd6f5665dda3ea4228ca658858067c7a2 100644
--- a/src/plugins/cppeditor/cppquickfix_test.cpp
+++ b/src/plugins/cppeditor/cppquickfix_test.cpp
@@ -609,60 +609,6 @@ void CppEditorPlugin::test_quickfix_GenerateGetterSetter_basicGetterWithPrefixAn
     data.run(&factory);
 }
 
-/// Checks: In addition to test_quickfix_GenerateGetterSetter_basicGetterWithPrefix
-/// generated definitions should fit in the namespace.
-void CppEditorPlugin::test_quickfix_GenerateGetterSetter_basicGetterWithPrefixAndNamespaceToCpp()
-{
-    QList<TestDocumentPtr> testFiles;
-    QByteArray original;
-    QByteArray expected;
-
-    // Header File
-    original =
-        "namespace SomeNamespace {\n"
-        "class Something\n"
-        "{\n"
-        "    int @it;\n"
-        "};\n"
-        "}\n";
-    expected =
-        "namespace SomeNamespace {\n"
-        "class Something\n"
-        "{\n"
-        "    int it;\n"
-        "\n"
-        "public:\n"
-        "    int getIt() const;\n"
-        "    void setIt(int value);\n"
-        "};\n"
-        "}\n\n";
-    testFiles << TestDocument::create(original, expected, QLatin1String("file.h"));
-
-    // Source File
-    original =
-        "#include \"file.h\"\n"
-        "namespace SomeNamespace {\n"
-        "}\n";
-    expected =
-        "#include \"file.h\"\n"
-        "namespace SomeNamespace {\n"
-        "int Something::getIt() const\n"
-        "{\n"
-        "    return it;\n"
-        "}\n"
-        "\n"
-        "void Something::setIt(int value)\n"
-        "{\n"
-        "    it = value;\n"
-        "}\n\n"
-        "}\n\n";
-    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
-
-    GenerateGetterSetter factory;
-    TestCase data(testFiles);
-    data.run(&factory);
-}
-
 /// Checks:
 /// 1. Getter: "get" prefix is not necessary.
 /// 2. Setter: Parameter name is base name.
@@ -1175,194 +1121,527 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_basic()
     data.run(&factory);
 }
 
-/// Check if definition is inserted right after class for insert definition outside
-void CppEditorPlugin::test_quickfix_InsertDefFromDecl_afterClass()
-{
-    QList<TestDocumentPtr> testFiles;
-    QByteArray original;
-    QByteArray expected;
-
-    // Header File
-    original =
-        "class Foo\n"
-        "{\n"
-        "    Foo();\n"
-        "    void a@();\n"
-        "};\n"
-        "\n"
-        "class Bar {};\n";
-    expected =
-        "class Foo\n"
-        "{\n"
-        "    Foo();\n"
-        "    void a();\n"
-        "};\n"
-        "\n"
-        "void Foo::a()\n"
-        "{\n\n}\n"
-        "\n"
-        "class Bar {};\n\n";
-    testFiles << TestDocument::create(original, expected, QLatin1String("file.h"));
-
-    // Source File
-    original =
-        "#include \"file.h\"\n"
-        "\n"
-        "Foo::Foo()\n"
-        "{\n\n"
-        "}\n";
-    expected = original + "\n";
-    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
-
-    InsertDefFromDecl factory;
-    TestCase data(testFiles);
-    data.run(&factory, 1);
-}
-
-/// Check from header file: If there is a source file, insert the definition in the source file.
-/// Case: Source file is empty.
-void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_basic1()
+void CppEditorPlugin::test_quickfix_InsertDefFromDecl_freeFunction()
 {
-    QList<TestDocumentPtr> testFiles;
-
-    QByteArray original;
-    QByteArray expected;
-
-    // Header File
-    original =
-        "struct Foo\n"
-        "{\n"
-        "    Foo()@;\n"
-        "};\n";
-    expected = original + "\n";
-    testFiles << TestDocument::create(original, expected, QLatin1String("file.h"));
-
-    // Source File
-    original.resize(0);
-    expected =
-        "\n"
-        "Foo::Foo()\n"
+    const QByteArray original = "void free()@;\n";
+    const QByteArray expected =
+        "void free()\n"
         "{\n\n"
         "}\n"
         "\n"
         ;
-    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
 
     InsertDefFromDecl factory;
-    TestCase data(testFiles);
+    TestCase data(original, expected);
     data.run(&factory);
 }
 
-/// Check from header file: If there is a source file, insert the definition in the source file.
-/// Case: Source file is not empty.
-void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_basic2()
+/// Check not triggering when it is a statement
+void CppEditorPlugin::test_quickfix_InsertDefFromDecl_notTriggeringStatement()
 {
-    QList<TestDocumentPtr> testFiles;
-
-    QByteArray original;
-    QByteArray expected;
-
-    // Header File
-    original = "void f()@;\n";
-    expected = original + "\n";
-    testFiles << TestDocument::create(original, expected, QLatin1String("file.h"));
-
-    // Source File
-    original =
-            "#include \"file.h\"\n"
-            "\n"
-            "int x;\n"
-            ;
-    expected =
-            "#include \"file.h\"\n"
-            "\n"
-            "int x;\n"
-            "\n"
-            "\n"
-            "void f()\n"
-            "{\n"
-            "\n"
-            "}\n"
-            "\n"
-            ;
-    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
+    const QByteArray original =
+            "class Foo {\n"
+            "public:\n"
+            "    Foo() {}\n"
+            "};\n"
+            "void freeFunc() {\n"
+            "    Foo @f();"
+            "}\n";
+    const QByteArray expected = original + "\n";
 
     InsertDefFromDecl factory;
-    TestCase data(testFiles);
+    TestCase data(original, expected);
     data.run(&factory);
 }
 
-/// Check from source file: Insert in source file, not header file.
-void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_basic3()
+/// Check: Add local variable for a free function.
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_freeFunction()
 {
-    QList<TestDocumentPtr> testFiles;
-
-    QByteArray original;
-    QByteArray expected;
-
-    // Empty Header File
-    testFiles << TestDocument::create("", "\n", QLatin1String("file.h"));
-
-    // Source File
-    original =
-        "struct Foo\n"
-        "{\n"
-        "    Foo()@;\n"
-        "};\n";
-    expected = original +
-        "\n"
-        "\n"
-        "Foo::Foo()\n"
-        "{\n\n"
-        "}\n"
-        "\n"
-        ;
-    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
+    const QByteArray original =
+        "int foo() {return 1;}\n"
+        "void bar() {fo@o();}";
+    const QByteArray expected =
+        "int foo() {return 1;}\n"
+        "void bar() {int localFoo = foo();}\n";
 
-    InsertDefFromDecl factory;
-    TestCase data(testFiles);
+    AssignToLocalVariable factory;
+    TestCase data(original, expected);
     data.run(&factory);
 }
 
-/// Check from header file: If the class is in a namespace, the added function definition
-/// name must be qualified accordingly.
-void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_namespace1()
+/// Check: Add local variable for a member function.
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_memberFunction()
 {
-    QList<TestDocumentPtr> testFiles;
-
-    QByteArray original;
-    QByteArray expected;
-
-    // Header File
-    original =
-        "namespace N {\n"
-        "struct Foo\n"
-        "{\n"
-        "    Foo()@;\n"
-        "};\n"
+    const QByteArray original =
+        "class Foo {public: int* fooFunc();}\n"
+        "void bar() {\n"
+        "    Foo *f = new Foo;\n"
+        "    @f->fooFunc();\n"
+        "}";
+    const QByteArray expected =
+        "class Foo {public: int* fooFunc();}\n"
+        "void bar() {\n"
+        "    Foo *f = new Foo;\n"
+        "    int *localFooFunc = f->fooFunc();\n"
         "}\n";
-    expected = original + "\n";
-    testFiles << TestDocument::create(original, expected, QLatin1String("file.h"));
-
-    // Source File
-    original.resize(0);
-    expected =
-        "\n"
-        "N::Foo::Foo()\n"
-        "{\n\n"
-        "}\n"
-        "\n"
-        ;
-    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
 
-    InsertDefFromDecl factory;
-    TestCase data(testFiles);
+    AssignToLocalVariable factory;
+    TestCase data(original, expected);
     data.run(&factory);
 }
 
-/// Check from header file: If the class is in namespace N and the source file has a
-/// "using namespace N" line, the function definition name must be qualified accordingly.
-void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_namespace2()
+/// Check: Add local variable for a static member function.
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_staticMemberFunction()
+{
+    const QByteArray original =
+        "class Foo {public: static int* fooFunc();}\n"
+        "void bar() {\n"
+        "    Foo::fooF@unc();\n"
+        "}";
+    const QByteArray expected =
+        "class Foo {public: static int* fooFunc();}\n"
+        "void bar() {\n"
+        "    int *localFooFunc = Foo::fooFunc();\n"
+        "}\n";
+
+    AssignToLocalVariable factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: Add local variable for a new Expression.
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_newExpression()
+{
+    const QByteArray original =
+        "class Foo {}\n"
+        "void bar() {\n"
+        "    new Fo@o;\n"
+        "}";
+    const QByteArray expected =
+        "class Foo {}\n"
+        "void bar() {\n"
+        "    Foo *localFoo = new Foo;\n"
+        "}\n";
+
+    AssignToLocalVariable factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: No trigger for function inside member initialization list.
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noInitializationList()
+{
+    const QByteArray original =
+        "class Foo\n"
+        "{\n"
+        "    public: Foo : m_i(fooF@unc()) {}\n"
+        "    int fooFunc() {return 2;}\n"
+        "    int m_i;\n"
+        "};";
+    const QByteArray expected = original + "\n";
+
+    AssignToLocalVariable factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: No trigger for void functions.
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noVoidFunction()
+{
+    const QByteArray original =
+        "void foo() {}\n"
+        "void bar() {fo@o();}";
+    const QByteArray expected = original + "\n";
+
+    AssignToLocalVariable factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: No trigger for void member functions.
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noVoidMemberFunction()
+{
+    const QByteArray original =
+        "class Foo {public: void fooFunc();}\n"
+        "void bar() {\n"
+        "    Foo *f = new Foo;\n"
+        "    @f->fooFunc();\n"
+        "}";
+    const QByteArray expected = original + "\n";
+
+    AssignToLocalVariable factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: No trigger for void static member functions.
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noVoidStaticMemberFunction()
+{
+    const QByteArray original =
+        "class Foo {public: static void fooFunc();}\n"
+        "void bar() {\n"
+        "    Foo::fo@oFunc();\n"
+        "}";
+    const QByteArray expected = original + "\n";
+
+    AssignToLocalVariable factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: No trigger for functions in expressions.
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noFunctionInExpression()
+{
+    const QByteArray original =
+        "int foo(int a) {return a;}\n"
+        "int bar() {return 1;}"
+        "void baz() {foo(@bar() + bar());}";
+    const QByteArray expected = original + "\n";
+
+    AssignToLocalVariable factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: No trigger for functions in functions. (QTCREATORBUG-9510)
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noFunctionInFunction()
+{
+    const QByteArray original =
+        "int foo(int a, int b) {return a + b;}\n"
+        "int bar(int a) {return a;}\n"
+        "void baz() {\n"
+        "    int a = foo(ba@r(), bar());\n"
+        "}\n";
+    const QByteArray expected = original + "\n";
+
+    AssignToLocalVariable factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: No trigger for functions in return statements (classes).
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noReturnClass1()
+{
+    const QByteArray original =
+        "class Foo {public: static void fooFunc();}\n"
+        "Foo* bar() {\n"
+        "    return new Fo@o;\n"
+        "}";
+    const QByteArray expected = original + "\n";
+
+    AssignToLocalVariable factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: No trigger for functions in return statements (classes). (QTCREATORBUG-9525)
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noReturnClass2()
+{
+    const QByteArray original =
+        "class Foo {public: int fooFunc();}\n"
+        "int bar() {\n"
+        "    return (new Fo@o)->fooFunc();\n"
+        "}";
+    const QByteArray expected = original + "\n";
+
+    AssignToLocalVariable factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: No trigger for functions in return statements (functions).
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noReturnFunc1()
+{
+    const QByteArray original =
+        "class Foo {public: int fooFunc();}\n"
+        "int bar() {\n"
+        "    return Foo::fooFu@nc();\n"
+        "}";
+    const QByteArray expected = original + "\n";
+
+    AssignToLocalVariable factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: No trigger for functions in return statements (functions). (QTCREATORBUG-9525)
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noReturnFunc2()
+{
+    const QByteArray original =
+        "int bar() {\n"
+        "    return list.firs@t().foo;\n"
+        "}\n";
+    const QByteArray expected = original + "\n";
+
+    AssignToLocalVariable factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: No trigger for functions which does not match in signature.
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noSignatureMatch()
+{
+    const QByteArray original =
+        "int someFunc(int);\n"
+        "\n"
+        "void f()\n"
+        "{\n"
+        "    some@Func();\n"
+        "}";
+    const QByteArray expected = original + "\n";
+
+    AssignToLocalVariable factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_freeFunction()
+{
+    const QByteArray original =
+        "void foo(const char *a, long b = 1)\n"
+        "{return 1@56 + 123 + 156;}";
+    const QByteArray expected =
+        "void foo(const char *a, long b = 1, int newParameter = 156)\n"
+        "{return newParameter + 123 + newParameter;}\n";
+
+    ExtractLiteralAsParameter factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_memberFunction()
+{
+    const QByteArray original =
+        "class Narf {\n"
+        "public:\n"
+        "    int zort();\n"
+        "};\n\n"
+        "int Narf::zort()\n"
+        "{ return 15@5 + 1; }";
+    const QByteArray expected =
+        "class Narf {\n"
+        "public:\n"
+        "    int zort(int newParameter = 155);\n"
+        "};\n\n"
+        "int Narf::zort(int newParameter)\n"
+        "{ return newParameter + 1; }\n";
+
+    ExtractLiteralAsParameter factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_memberFunctionInline()
+{
+    const QByteArray original =
+        "class Narf {\n"
+        "public:\n"
+        "    int zort()\n"
+        "    { return 15@5 + 1; }\n"
+        "};";
+    const QByteArray expected =
+        "class Narf {\n"
+        "public:\n"
+        "    int zort(int newParameter = 155)\n"
+        "    { return newParameter + 1; }\n"
+        "};\n";
+
+    ExtractLiteralAsParameter factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: optimize postcrement
+void CppEditorPlugin::test_quickfix_OptimizeForLoop_postcrement()
+{
+    const QByteArray original = "void foo() {f@or (int i = 0; i < 3; i++) {}}\n";
+    const QByteArray expected = "void foo() {for (int i = 0; i < 3; ++i) {}}\n\n";
+    OptimizeForLoop factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: optimize condition
+void CppEditorPlugin::test_quickfix_OptimizeForLoop_condition()
+{
+    const QByteArray original = "void foo() {f@or (int i = 0; i < 3 + 5; ++i) {}}\n";
+    const QByteArray expected = "void foo() {for (int i = 0, total = 3 + 5; i < total; ++i) {}}\n\n";
+    OptimizeForLoop factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: optimize fliped condition
+void CppEditorPlugin::test_quickfix_OptimizeForLoop_flipedCondition()
+{
+    const QByteArray original = "void foo() {f@or (int i = 0; 3 + 5 > i; ++i) {}}\n";
+    const QByteArray expected = "void foo() {for (int i = 0, total = 3 + 5; total > i; ++i) {}}\n\n";
+    OptimizeForLoop factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: if "total" used, create other name.
+void CppEditorPlugin::test_quickfix_OptimizeForLoop_alterVariableName()
+{
+    const QByteArray original = "void foo() {f@or (int i = 0, total = 0; i < 3 + 5; ++i) {}}\n";
+    const QByteArray expected = "void foo() {for (int i = 0, total = 0, totalX = 3 + 5; i < totalX; ++i) {}}\n\n";
+    OptimizeForLoop factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: optimize postcrement and condition
+void CppEditorPlugin::test_quickfix_OptimizeForLoop_optimizeBoth()
+{
+    const QByteArray original = "void foo() {f@or (int i = 0; i < 3 + 5; i++) {}}\n";
+    const QByteArray expected = "void foo() {for (int i = 0, total = 3 + 5; i < total; ++i) {}}\n\n";
+    OptimizeForLoop factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: empty initializier
+void CppEditorPlugin::test_quickfix_OptimizeForLoop_emptyInitializer()
+{
+    const QByteArray original = "int i; void foo() {f@or (; i < 3 + 5; ++i) {}}\n";
+    const QByteArray expected = "int i; void foo() {for (int total = 3 + 5; i < total; ++i) {}}\n\n";
+    OptimizeForLoop factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: wrong initializier type -> no trigger
+void CppEditorPlugin::test_quickfix_OptimizeForLoop_wrongInitializer()
+{
+    const QByteArray original = "int i; void foo() {f@or (double a = 0; i < 3 + 5; ++i) {}}\n";
+    const QByteArray expected = "int i; void foo() {f@or (double a = 0; i < 3 + 5; ++i) {}}\n\n";
+    OptimizeForLoop factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: No trigger when numeric
+void CppEditorPlugin::test_quickfix_OptimizeForLoop_noTriggerNumeric1()
+{
+    const QByteArray original = "void foo() {fo@r (int i = 0; i < 3; ++i) {}}\n";
+    const QByteArray expected = original + "\n";
+    OptimizeForLoop factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Check: No trigger when numeric
+void CppEditorPlugin::test_quickfix_OptimizeForLoop_noTriggerNumeric2()
+{
+    const QByteArray original = "void foo() {fo@r (int i = 0; i < -3; ++i) {}}\n";
+    const QByteArray expected = original + "\n";
+    OptimizeForLoop factory;
+    TestCase data(original, expected);
+    data.run(&factory);
+}
+
+/// Checks: In addition to test_quickfix_GenerateGetterSetter_basicGetterWithPrefix
+/// generated definitions should fit in the namespace.
+void CppEditorPlugin::test_quickfix_GenerateGetterSetter_basicGetterWithPrefixAndNamespaceToCpp()
+{
+    QList<TestDocumentPtr> testFiles;
+    QByteArray original;
+    QByteArray expected;
+
+    // Header File
+    original =
+        "namespace SomeNamespace {\n"
+        "class Something\n"
+        "{\n"
+        "    int @it;\n"
+        "};\n"
+        "}\n";
+    expected =
+        "namespace SomeNamespace {\n"
+        "class Something\n"
+        "{\n"
+        "    int it;\n"
+        "\n"
+        "public:\n"
+        "    int getIt() const;\n"
+        "    void setIt(int value);\n"
+        "};\n"
+        "}\n\n";
+    testFiles << TestDocument::create(original, expected, QLatin1String("file.h"));
+
+    // Source File
+    original =
+        "#include \"file.h\"\n"
+        "namespace SomeNamespace {\n"
+        "}\n";
+    expected =
+        "#include \"file.h\"\n"
+        "namespace SomeNamespace {\n"
+        "int Something::getIt() const\n"
+        "{\n"
+        "    return it;\n"
+        "}\n"
+        "\n"
+        "void Something::setIt(int value)\n"
+        "{\n"
+        "    it = value;\n"
+        "}\n\n"
+        "}\n\n";
+    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
+
+    GenerateGetterSetter factory;
+    TestCase data(testFiles);
+    data.run(&factory);
+}
+
+/// Check if definition is inserted right after class for insert definition outside
+void CppEditorPlugin::test_quickfix_InsertDefFromDecl_afterClass()
+{
+    QList<TestDocumentPtr> testFiles;
+    QByteArray original;
+    QByteArray expected;
+
+    // Header File
+    original =
+        "class Foo\n"
+        "{\n"
+        "    Foo();\n"
+        "    void a@();\n"
+        "};\n"
+        "\n"
+        "class Bar {};\n";
+    expected =
+        "class Foo\n"
+        "{\n"
+        "    Foo();\n"
+        "    void a();\n"
+        "};\n"
+        "\n"
+        "void Foo::a()\n"
+        "{\n\n}\n"
+        "\n"
+        "class Bar {};\n\n";
+    testFiles << TestDocument::create(original, expected, QLatin1String("file.h"));
+
+    // Source File
+    original =
+        "#include \"file.h\"\n"
+        "\n"
+        "Foo::Foo()\n"
+        "{\n\n"
+        "}\n";
+    expected = original + "\n";
+    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
+
+    InsertDefFromDecl factory;
+    TestCase data(testFiles);
+    data.run(&factory, 1);
+}
+
+/// Check from header file: If there is a source file, insert the definition in the source file.
+/// Case: Source file is empty.
+void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_basic1()
 {
     QList<TestDocumentPtr> testFiles;
 
@@ -1371,25 +1650,58 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_namespace2()
 
     // Header File
     original =
-        "namespace N {\n"
         "struct Foo\n"
         "{\n"
         "    Foo()@;\n"
-        "};\n"
-        "}\n";
+        "};\n";
+    expected = original + "\n";
+    testFiles << TestDocument::create(original, expected, QLatin1String("file.h"));
+
+    // Source File
+    original.resize(0);
+    expected =
+        "\n"
+        "Foo::Foo()\n"
+        "{\n\n"
+        "}\n"
+        "\n"
+        ;
+    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
+
+    InsertDefFromDecl factory;
+    TestCase data(testFiles);
+    data.run(&factory);
+}
+
+/// Check from header file: If there is a source file, insert the definition in the source file.
+/// Case: Source file is not empty.
+void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_basic2()
+{
+    QList<TestDocumentPtr> testFiles;
+
+    QByteArray original;
+    QByteArray expected;
+
+    // Header File
+    original = "void f()@;\n";
     expected = original + "\n";
     testFiles << TestDocument::create(original, expected, QLatin1String("file.h"));
 
     // Source File
     original =
             "#include \"file.h\"\n"
-            "using namespace N;\n"
+            "\n"
+            "int x;\n"
             ;
-    expected = original +
+    expected =
+            "#include \"file.h\"\n"
             "\n"
+            "int x;\n"
+            "\n"
+            "\n"
+            "void f()\n"
+            "{\n"
             "\n"
-            "Foo::Foo()\n"
-            "{\n\n"
             "}\n"
             "\n"
             ;
@@ -1400,18 +1712,111 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_namespace2()
     data.run(&factory);
 }
 
-void CppEditorPlugin::test_quickfix_InsertDefFromDecl_freeFunction()
+/// Check from source file: Insert in source file, not header file.
+void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_basic3()
 {
-    const QByteArray original = "void free()@;\n";
-    const QByteArray expected =
-        "void free()\n"
+    QList<TestDocumentPtr> testFiles;
+
+    QByteArray original;
+    QByteArray expected;
+
+    // Empty Header File
+    testFiles << TestDocument::create("", "\n", QLatin1String("file.h"));
+
+    // Source File
+    original =
+        "struct Foo\n"
+        "{\n"
+        "    Foo()@;\n"
+        "};\n";
+    expected = original +
+        "\n"
+        "\n"
+        "Foo::Foo()\n"
+        "{\n\n"
+        "}\n"
+        "\n"
+        ;
+    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
+
+    InsertDefFromDecl factory;
+    TestCase data(testFiles);
+    data.run(&factory);
+}
+
+/// Check from header file: If the class is in a namespace, the added function definition
+/// name must be qualified accordingly.
+void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_namespace1()
+{
+    QList<TestDocumentPtr> testFiles;
+
+    QByteArray original;
+    QByteArray expected;
+
+    // Header File
+    original =
+        "namespace N {\n"
+        "struct Foo\n"
+        "{\n"
+        "    Foo()@;\n"
+        "};\n"
+        "}\n";
+    expected = original + "\n";
+    testFiles << TestDocument::create(original, expected, QLatin1String("file.h"));
+
+    // Source File
+    original.resize(0);
+    expected =
+        "\n"
+        "N::Foo::Foo()\n"
         "{\n\n"
         "}\n"
         "\n"
         ;
+    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
+
+    InsertDefFromDecl factory;
+    TestCase data(testFiles);
+    data.run(&factory);
+}
+
+/// Check from header file: If the class is in namespace N and the source file has a
+/// "using namespace N" line, the function definition name must be qualified accordingly.
+void CppEditorPlugin::test_quickfix_InsertDefFromDecl_headerSource_namespace2()
+{
+    QList<TestDocumentPtr> testFiles;
+
+    QByteArray original;
+    QByteArray expected;
+
+    // Header File
+    original =
+        "namespace N {\n"
+        "struct Foo\n"
+        "{\n"
+        "    Foo()@;\n"
+        "};\n"
+        "}\n";
+    expected = original + "\n";
+    testFiles << TestDocument::create(original, expected, QLatin1String("file.h"));
+
+    // Source File
+    original =
+            "#include \"file.h\"\n"
+            "using namespace N;\n"
+            ;
+    expected = original +
+            "\n"
+            "\n"
+            "Foo::Foo()\n"
+            "{\n\n"
+            "}\n"
+            "\n"
+            ;
+    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
 
     InsertDefFromDecl factory;
-    TestCase data(original, expected);
+    TestCase data(testFiles);
     data.run(&factory);
 }
 
@@ -1449,24 +1854,6 @@ void CppEditorPlugin::test_quickfix_InsertDefFromDecl_notTriggeringWhenDefinitio
     data.run(&factory, 1);
 }
 
-/// Check not triggering when it is a statement
-void CppEditorPlugin::test_quickfix_InsertDefFromDecl_notTriggeringStatement()
-{
-    const QByteArray original =
-            "class Foo {\n"
-            "public:\n"
-            "    Foo() {}\n"
-            "};\n"
-            "void freeFunc() {\n"
-            "    Foo @f();"
-            "}\n";
-    const QByteArray expected = original + "\n";
-
-    InsertDefFromDecl factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
 /// Find right implementation file.
 void CppEditorPlugin::test_quickfix_InsertDefFromDecl_findRightImplementationFile()
 {
@@ -3358,316 +3745,75 @@ void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_CtorWithInitialization()
         "Foo::F@oo() : a(42), b(3.141) {}"
         ;
     expected ="#include \"file.h\"\n\n\n";
-    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
-
-    MoveFuncDefToDecl factory;
-    TestCase data(testFiles);
-    data.run(&factory);
-}
-
-/// Check: Definition should not be placed behind the variable. QTCREATORBUG-10303
-void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_structWithAssignedVariable()
-{
-    QByteArray original =
-        "struct Foo\n"
-        "{\n"
-        "    void foo();\n"
-        "} bar;\n\n"
-        "void Foo::fo@o()\n"
-        "{\n"
-        "    return;\n"
-        "}";
-
-    QByteArray expected =
-        "struct Foo\n"
-        "{\n"
-        "    void foo()\n"
-        "    {\n"
-        "        return;\n"
-        "    }\n"
-        "} bar;\n\n\n";
-
-    MoveFuncDefToDecl factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: Add local variable for a free function.
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_freeFunction()
-{
-    const QByteArray original =
-        "int foo() {return 1;}\n"
-        "void bar() {fo@o();}";
-    const QByteArray expected =
-        "int foo() {return 1;}\n"
-        "void bar() {int localFoo = foo();}\n";
-
-    AssignToLocalVariable factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: Add local variable for a member function.
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_memberFunction()
-{
-    const QByteArray original =
-        "class Foo {public: int* fooFunc();}\n"
-        "void bar() {\n"
-        "    Foo *f = new Foo;\n"
-        "    @f->fooFunc();\n"
-        "}";
-    const QByteArray expected =
-        "class Foo {public: int* fooFunc();}\n"
-        "void bar() {\n"
-        "    Foo *f = new Foo;\n"
-        "    int *localFooFunc = f->fooFunc();\n"
-        "}\n";
-
-    AssignToLocalVariable factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: Add local variable for a static member function.
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_staticMemberFunction()
-{
-    const QByteArray original =
-        "class Foo {public: static int* fooFunc();}\n"
-        "void bar() {\n"
-        "    Foo::fooF@unc();\n"
-        "}";
-    const QByteArray expected =
-        "class Foo {public: static int* fooFunc();}\n"
-        "void bar() {\n"
-        "    int *localFooFunc = Foo::fooFunc();\n"
-        "}\n";
-
-    AssignToLocalVariable factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: Add local variable for a new Expression.
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_newExpression()
-{
-    const QByteArray original =
-        "class Foo {}\n"
-        "void bar() {\n"
-        "    new Fo@o;\n"
-        "}";
-    const QByteArray expected =
-        "class Foo {}\n"
-        "void bar() {\n"
-        "    Foo *localFoo = new Foo;\n"
-        "}\n";
-
-    AssignToLocalVariable factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_templates()
-{
-
-    QList<TestDocumentPtr> testFiles;
-    QByteArray original;
-    QByteArray expected;
-
-    // Header File
-    original =
-        "template <typename T>\n"
-        "class List {\n"
-        "public:\n"
-        "    T first();"
-        "};\n"
-        ;
-    expected = original + "\n";
-    testFiles << TestDocument::create(original, expected, QLatin1String("file.h"));
-
-    // Source File
-    original =
-        "#include \"file.h\"\n"
-        "void foo() {\n"
-        "    List<int> list;\n"
-        "    li@st.first();\n"
-        "}";
-    expected =
-        "#include \"file.h\"\n"
-        "void foo() {\n"
-        "    List<int> list;\n"
-        "    int localFirst = list.first();\n"
-        "}\n";
-    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
-
-    AssignToLocalVariable factory;
-    TestCase data(testFiles);
-    data.run(&factory);
-}
-
-/// Check: No trigger for function inside member initialization list.
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noInitializationList()
-{
-    const QByteArray original =
-        "class Foo\n"
-        "{\n"
-        "    public: Foo : m_i(fooF@unc()) {}\n"
-        "    int fooFunc() {return 2;}\n"
-        "    int m_i;\n"
-        "};";
-    const QByteArray expected = original + "\n";
-
-    AssignToLocalVariable factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: No trigger for void functions.
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noVoidFunction()
-{
-    const QByteArray original =
-        "void foo() {}\n"
-        "void bar() {fo@o();}";
-    const QByteArray expected = original + "\n";
-
-    AssignToLocalVariable factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: No trigger for void member functions.
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noVoidMemberFunction()
-{
-    const QByteArray original =
-        "class Foo {public: void fooFunc();}\n"
-        "void bar() {\n"
-        "    Foo *f = new Foo;\n"
-        "    @f->fooFunc();\n"
-        "}";
-    const QByteArray expected = original + "\n";
-
-    AssignToLocalVariable factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: No trigger for void static member functions.
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noVoidStaticMemberFunction()
-{
-    const QByteArray original =
-        "class Foo {public: static void fooFunc();}\n"
-        "void bar() {\n"
-        "    Foo::fo@oFunc();\n"
-        "}";
-    const QByteArray expected = original + "\n";
-
-    AssignToLocalVariable factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: No trigger for functions in expressions.
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noFunctionInExpression()
-{
-    const QByteArray original =
-        "int foo(int a) {return a;}\n"
-        "int bar() {return 1;}"
-        "void baz() {foo(@bar() + bar());}";
-    const QByteArray expected = original + "\n";
-
-    AssignToLocalVariable factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: No trigger for functions in functions. (QTCREATORBUG-9510)
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noFunctionInFunction()
-{
-    const QByteArray original =
-        "int foo(int a, int b) {return a + b;}\n"
-        "int bar(int a) {return a;}\n"
-        "void baz() {\n"
-        "    int a = foo(ba@r(), bar());\n"
-        "}\n";
-    const QByteArray expected = original + "\n";
+    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
 
-    AssignToLocalVariable factory;
-    TestCase data(original, expected);
+    MoveFuncDefToDecl factory;
+    TestCase data(testFiles);
     data.run(&factory);
 }
 
-/// Check: No trigger for functions in return statements (classes).
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noReturnClass1()
+/// Check: Definition should not be placed behind the variable. QTCREATORBUG-10303
+void CppEditorPlugin::test_quickfix_MoveFuncDefToDecl_structWithAssignedVariable()
 {
-    const QByteArray original =
-        "class Foo {public: static void fooFunc();}\n"
-        "Foo* bar() {\n"
-        "    return new Fo@o;\n"
+    QByteArray original =
+        "struct Foo\n"
+        "{\n"
+        "    void foo();\n"
+        "} bar;\n\n"
+        "void Foo::fo@o()\n"
+        "{\n"
+        "    return;\n"
         "}";
-    const QByteArray expected = original + "\n";
-
-    AssignToLocalVariable factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
 
-/// Check: No trigger for functions in return statements (classes). (QTCREATORBUG-9525)
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noReturnClass2()
-{
-    const QByteArray original =
-        "class Foo {public: int fooFunc();}\n"
-        "int bar() {\n"
-        "    return (new Fo@o)->fooFunc();\n"
-        "}";
-    const QByteArray expected = original + "\n";
+    QByteArray expected =
+        "struct Foo\n"
+        "{\n"
+        "    void foo()\n"
+        "    {\n"
+        "        return;\n"
+        "    }\n"
+        "} bar;\n\n\n";
 
-    AssignToLocalVariable factory;
+    MoveFuncDefToDecl factory;
     TestCase data(original, expected);
     data.run(&factory);
 }
 
-/// Check: No trigger for functions in return statements (functions).
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noReturnFunc1()
+void CppEditorPlugin::test_quickfix_AssignToLocalVariable_templates()
 {
-    const QByteArray original =
-        "class Foo {public: int fooFunc();}\n"
-        "int bar() {\n"
-        "    return Foo::fooFu@nc();\n"
-        "}";
-    const QByteArray expected = original + "\n";
-
-    AssignToLocalVariable factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
 
-/// Check: No trigger for functions in return statements (functions). (QTCREATORBUG-9525)
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noReturnFunc2()
-{
-    const QByteArray original =
-        "int bar() {\n"
-        "    return list.firs@t().foo;\n"
-        "}\n";
-    const QByteArray expected = original + "\n";
+    QList<TestDocumentPtr> testFiles;
+    QByteArray original;
+    QByteArray expected;
 
-    AssignToLocalVariable factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
+    // Header File
+    original =
+        "template <typename T>\n"
+        "class List {\n"
+        "public:\n"
+        "    T first();"
+        "};\n"
+        ;
+    expected = original + "\n";
+    testFiles << TestDocument::create(original, expected, QLatin1String("file.h"));
 
-/// Check: No trigger for functions which does not match in signature.
-void CppEditorPlugin::test_quickfix_AssignToLocalVariable_noSignatureMatch()
-{
-    const QByteArray original =
-        "int someFunc(int);\n"
-        "\n"
-        "void f()\n"
-        "{\n"
-        "    some@Func();\n"
+    // Source File
+    original =
+        "#include \"file.h\"\n"
+        "void foo() {\n"
+        "    List<int> list;\n"
+        "    li@st.first();\n"
         "}";
-    const QByteArray expected = original + "\n";
+    expected =
+        "#include \"file.h\"\n"
+        "void foo() {\n"
+        "    List<int> list;\n"
+        "    int localFirst = list.first();\n"
+        "}\n";
+    testFiles << TestDocument::create(original, expected, QLatin1String("file.cpp"));
 
     AssignToLocalVariable factory;
-    TestCase data(original, expected);
+    TestCase data(testFiles);
     data.run(&factory);
 }
 
@@ -3736,20 +3882,6 @@ void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_typeDeduction()
     data.run(&factory);
 }
 
-void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_freeFunction()
-{
-    const QByteArray original =
-        "void foo(const char *a, long b = 1)\n"
-        "{return 1@56 + 123 + 156;}";
-    const QByteArray expected =
-        "void foo(const char *a, long b = 1, int newParameter = 156)\n"
-        "{return newParameter + 123 + newParameter;}\n";
-
-    ExtractLiteralAsParameter factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
 void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_freeFunction_separateFiles()
 {
     QList<TestDocumentPtr> testFiles;
@@ -3777,28 +3909,6 @@ void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_freeFunction_separ
     data.run(&factory);
 }
 
-void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_memberFunction()
-{
-    const QByteArray original =
-        "class Narf {\n"
-        "public:\n"
-        "    int zort();\n"
-        "};\n\n"
-        "int Narf::zort()\n"
-        "{ return 15@5 + 1; }";
-    const QByteArray expected =
-        "class Narf {\n"
-        "public:\n"
-        "    int zort(int newParameter = 155);\n"
-        "};\n\n"
-        "int Narf::zort(int newParameter)\n"
-        "{ return newParameter + 1; }\n";
-
-    ExtractLiteralAsParameter factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
 void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_memberFunction_separateFiles()
 {
     QList<TestDocumentPtr> testFiles;
@@ -3834,26 +3944,6 @@ void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_memberFunction_sep
     data.run(&factory);
 }
 
-void CppEditorPlugin::test_quickfix_ExtractLiteralAsParameter_memberFunctionInline()
-{
-    const QByteArray original =
-        "class Narf {\n"
-        "public:\n"
-        "    int zort()\n"
-        "    { return 15@5 + 1; }\n"
-        "};";
-    const QByteArray expected =
-        "class Narf {\n"
-        "public:\n"
-        "    int zort(int newParameter = 155)\n"
-        "    { return newParameter + 1; }\n"
-        "};\n";
-
-    ExtractLiteralAsParameter factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
 /// Check: Insert only declarations
 void CppEditorPlugin::test_quickfix_InsertVirtualMethods_onlyDecl()
 {
@@ -4296,93 +4386,3 @@ void CppEditorPlugin::test_quickfix_InsertVirtualMethods_BaseClassInNamespace()
     TestCase data(testFiles);
     data.run(&factory);
 }
-
-/// Check: optimize postcrement
-void CppEditorPlugin::test_quickfix_OptimizeForLoop_postcrement()
-{
-    const QByteArray original = "void foo() {f@or (int i = 0; i < 3; i++) {}}\n";
-    const QByteArray expected = "void foo() {for (int i = 0; i < 3; ++i) {}}\n\n";
-    OptimizeForLoop factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: optimize condition
-void CppEditorPlugin::test_quickfix_OptimizeForLoop_condition()
-{
-    const QByteArray original = "void foo() {f@or (int i = 0; i < 3 + 5; ++i) {}}\n";
-    const QByteArray expected = "void foo() {for (int i = 0, total = 3 + 5; i < total; ++i) {}}\n\n";
-    OptimizeForLoop factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: optimize fliped condition
-void CppEditorPlugin::test_quickfix_OptimizeForLoop_flipedCondition()
-{
-    const QByteArray original = "void foo() {f@or (int i = 0; 3 + 5 > i; ++i) {}}\n";
-    const QByteArray expected = "void foo() {for (int i = 0, total = 3 + 5; total > i; ++i) {}}\n\n";
-    OptimizeForLoop factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: if "total" used, create other name.
-void CppEditorPlugin::test_quickfix_OptimizeForLoop_alterVariableName()
-{
-    const QByteArray original = "void foo() {f@or (int i = 0, total = 0; i < 3 + 5; ++i) {}}\n";
-    const QByteArray expected = "void foo() {for (int i = 0, total = 0, totalX = 3 + 5; i < totalX; ++i) {}}\n\n";
-    OptimizeForLoop factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: optimize postcrement and condition
-void CppEditorPlugin::test_quickfix_OptimizeForLoop_optimizeBoth()
-{
-    const QByteArray original = "void foo() {f@or (int i = 0; i < 3 + 5; i++) {}}\n";
-    const QByteArray expected = "void foo() {for (int i = 0, total = 3 + 5; i < total; ++i) {}}\n\n";
-    OptimizeForLoop factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: empty initializier
-void CppEditorPlugin::test_quickfix_OptimizeForLoop_emptyInitializer()
-{
-    const QByteArray original = "int i; void foo() {f@or (; i < 3 + 5; ++i) {}}\n";
-    const QByteArray expected = "int i; void foo() {for (int total = 3 + 5; i < total; ++i) {}}\n\n";
-    OptimizeForLoop factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: wrong initializier type -> no trigger
-void CppEditorPlugin::test_quickfix_OptimizeForLoop_wrongInitializer()
-{
-    const QByteArray original = "int i; void foo() {f@or (double a = 0; i < 3 + 5; ++i) {}}\n";
-    const QByteArray expected = "int i; void foo() {f@or (double a = 0; i < 3 + 5; ++i) {}}\n\n";
-    OptimizeForLoop factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: No trigger when numeric
-void CppEditorPlugin::test_quickfix_OptimizeForLoop_noTriggerNumeric1()
-{
-    const QByteArray original = "void foo() {fo@r (int i = 0; i < 3; ++i) {}}\n";
-    const QByteArray expected = original + "\n";
-    OptimizeForLoop factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}
-
-/// Check: No trigger when numeric
-void CppEditorPlugin::test_quickfix_OptimizeForLoop_noTriggerNumeric2()
-{
-    const QByteArray original = "void foo() {fo@r (int i = 0; i < -3; ++i) {}}\n";
-    const QByteArray expected = original + "\n";
-    OptimizeForLoop factory;
-    TestCase data(original, expected);
-    data.run(&factory);
-}