diff options
author | Przemyslaw Gorszkowski <pgorszkowski@gmail.com> | 2012-10-13 15:27:42 +0200 |
---|---|---|
committer | hjk <qthjk@ovi.com> | 2012-11-09 09:47:09 +0100 |
commit | b03ba2bdb1ca4e96fa8be5da5c53fe48d8393c6f (patch) | |
tree | bf47dacb698686bb2783d2bdc168e00ddc799760 | |
parent | 978960904c97d51f45c6cfa98bb77042009cffb3 (diff) | |
download | qt-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.cpp | 46 | ||||
-rw-r--r-- | src/plugins/cpptools/cpptoolsplugin.h | 2 |
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(); |