summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPrzemyslaw Gorszkowski <pgorszkowski@gmail.com>2012-10-13 15:27:42 +0200
committerhjk <qthjk@ovi.com>2012-11-09 09:47:09 +0100
commitb03ba2bdb1ca4e96fa8be5da5c53fe48d8393c6f (patch)
treebf47dacb698686bb2783d2bdc168e00ddc799760
parent978960904c97d51f45c6cfa98bb77042009cffb3 (diff)
downloadqt-creator-b03ba2bdb1ca4e96fa8be5da5c53fe48d8393c6f.tar.gz
Unit tests for code completion
Unit tests for code completion for nested class when enclosing is a template Change-Id: I409f742923468db23dd9a8e4c18cbb21b1e52dd9 Reviewed-by: hjk <qthjk@ovi.com>
-rw-r--r--src/plugins/cpptools/cppcompletion_test.cpp46
-rw-r--r--src/plugins/cpptools/cpptoolsplugin.h2
2 files changed, 47 insertions, 1 deletions
diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp
index f36ac54a6c..1ebf2282df 100644
--- a/src/plugins/cpptools/cppcompletion_test.cpp
+++ b/src/plugins/cpptools/cppcompletion_test.cpp
@@ -812,7 +812,6 @@ void CppToolsPlugin::test_completion_base_class_has_name_the_same_as_derived_dat
}
-
void CppToolsPlugin::test_completion_cyclic_inheritance()
{
test_completion();
@@ -970,3 +969,48 @@ void CppToolsPlugin::test_completion_cyclic_inheritance_data()
<< code << completions;
}
+
+void CppToolsPlugin::test_completion_enclosing_template_class()
+{
+ test_completion();
+}
+
+void CppToolsPlugin::test_completion_enclosing_template_class_data()
+{
+ QTest::addColumn<QByteArray>("code");
+ QTest::addColumn<QStringList>("expectedCompletions");
+
+ QByteArray code;
+ QStringList completions;
+
+ code = "\n"
+ "template<typename T>\n"
+ "struct Enclosing\n"
+ "{\n"
+ " struct Nested { int int_nested; }; \n"
+ " int int_enclosing;\n"
+ "};\n"
+ "\n"
+ "Enclosing<int>::Nested c;"
+ "@\n";
+ completions.append("Nested");
+ completions.append("int_nested");
+ QTest::newRow("case: nested class with enclosing template class")
+ << code << completions;
+
+ completions.clear();
+
+ code = "\n"
+ "template<typename T>\n"
+ "struct Enclosing\n"
+ "{\n"
+ " template<typename T> struct Nested { int int_nested; }; \n"
+ " int int_enclosing;\n"
+ "};\n"
+ "\n"
+ "Enclosing<int>::Nested<int> c;"
+ "@\n";
+ completions.append("Nested");
+ completions.append("int_nested");
+ QTest::newRow("case: nested template class with enclosing template class")
+ << code << completions;}
diff --git a/src/plugins/cpptools/cpptoolsplugin.h b/src/plugins/cpptools/cpptoolsplugin.h
index 3acba5359b..68d91ca529 100644
--- a/src/plugins/cpptools/cpptoolsplugin.h
+++ b/src/plugins/cpptools/cpptoolsplugin.h
@@ -104,6 +104,8 @@ private slots:
void test_completion_base_class_has_name_the_same_as_derived_data();
void test_completion_cyclic_inheritance();
void test_completion_cyclic_inheritance_data();
+ void test_completion_enclosing_template_class();
+ void test_completion_enclosing_template_class_data();
private:
void test_completion();