From fbecf2f3fd4f81e751a63c16121b5e4dd796c08a Mon Sep 17 00:00:00 2001
From: Orgad Shaneh <orgad.shaneh@audiocodes.com>
Date: Sat, 28 Dec 2013 21:48:41 +0200
Subject: [PATCH] CppTools: Add tests for nested enums

Discarded during merge from 3.0

Task-number: QTCREATORBUG-5456
Change-Id: I0bb4756e3cdf3c87a4c2b0fbfe6953faaa5e1c52
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
---
 src/plugins/cpptools/cppcompletion_test.cpp | 39 +++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp
index da0ef9fa3e3..7b78ac901a5 100644
--- a/src/plugins/cpptools/cppcompletion_test.cpp
+++ b/src/plugins/cpptools/cppcompletion_test.cpp
@@ -303,6 +303,7 @@ void CppToolsPlugin::test_completion()
     actualCompletions.sort();
     expectedCompletions.sort();
 
+    QEXPECT_FAIL("enum_in_function_in_struct_in_function", "doesn't work", Abort);
     QCOMPARE(actualCompletions, expectedCompletions);
 }
 
@@ -1678,6 +1679,44 @@ void CppToolsPlugin::test_completion_data()
             << QLatin1String("e2")
             << QLatin1String("e3"));
 
+    QTest::newRow("enum_inside_function") << _(
+            "void foo()\n"
+            "{\n"
+            "   enum E { val1, val2, val3 };\n"
+            "   @\n"
+            "}\n"
+        ) << _("val") << (QStringList()
+            << QLatin1String("val1")
+            << QLatin1String("val2")
+            << QLatin1String("val3"));
+
+    QTest::newRow("anon_enum_inside_function") << _(
+            "void foo()\n"
+            "{\n"
+            "   enum { val1, val2, val3 };\n"
+            "   @\n"
+            "}\n"
+        ) << _("val") << (QStringList()
+            << QLatin1String("val1")
+            << QLatin1String("val2")
+            << QLatin1String("val3"));
+
+    QTest::newRow("enum_in_function_in_struct_in_function") << _(
+            "void foo()\n"
+            "{\n"
+            "    struct S {\n"
+            "        void fun()\n"
+            "        {\n"
+            "            enum E { val1, val2, val3 };\n"
+            "            @\n"
+            "        }\n"
+            "    };\n"
+            "}\n"
+        ) << _("val") << (QStringList()
+            << QLatin1String("val1")
+            << QLatin1String("val2")
+            << QLatin1String("val3"));
+
     QTest::newRow("enum_inside_function_cxx11_QTCREATORBUG5456") << _(
             "void foo()\n"
             "{\n"
-- 
GitLab