diff options
author | Sergey Shambir <sergey.shambir.auto@gmail.com> | 2013-04-04 11:27:06 +0400 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@digia.com> | 2013-04-10 11:55:06 +0200 |
commit | a2730a4570641c5a803eca78236842e4ca97376b (patch) | |
tree | c9437ac944e15eb13e1667f9e670988835c44f41 /src/plugins/cpptools/cppcompletion_test.cpp | |
parent | adda69278f249491348fc04651ac6184e929bb60 (diff) | |
download | qt-creator-a2730a4570641c5a803eca78236842e4ca97376b.tar.gz |
CppTools: added template function params to completions
Change-Id: I67e9685406a0bf9a7cc358ce24f0e862d7938be6
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'src/plugins/cpptools/cppcompletion_test.cpp')
-rw-r--r-- | src/plugins/cpptools/cppcompletion_test.cpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp index 5096262a3c..657b6397aa 100644 --- a/src/plugins/cpptools/cppcompletion_test.cpp +++ b/src/plugins/cpptools/cppcompletion_test.cpp @@ -1185,6 +1185,64 @@ void CppToolsPlugin::test_completion_cyclic_inheritance_data() << code << completions; } +void CppToolsPlugin::test_completion_template_function() +{ + QFETCH(QByteArray, code); + QFETCH(QStringList, expectedCompletions); + + TestData data; + data.srcText = code; + setup(&data); + + QStringList actualCompletions = getCompletions(data); + actualCompletions.sort(); + expectedCompletions.sort(); + + QString errorPattern(QLatin1String("Completion not found: %1")); + foreach (const QString &completion, expectedCompletions) { + QByteArray errorMessage = errorPattern.arg(completion).toUtf8(); + QVERIFY2(actualCompletions.contains(completion), errorMessage.data()); + } +} + +void CppToolsPlugin::test_completion_template_function_data() +{ + QTest::addColumn<QByteArray>("code"); + QTest::addColumn<QStringList>("expectedCompletions"); + + QByteArray code; + QStringList completions; + + code = "\n" + "template <class tclass, typename tname, int tint>\n" + "tname Hello(const tclass &e)\n" + "{\n" + " tname e2 = e;\n" + " @\n" + "}"; + + completions.append(QLatin1String("tclass")); + completions.append(QLatin1String("tname")); + completions.append(QLatin1String("tint")); + QTest::newRow("case: template parameters in template function body") + << code << completions; + + completions.clear(); + + code = "\n" + "template <class tclass, typename tname, int tint>\n" + "tname Hello(const tclass &e, @)\n" + "{\n" + " tname e2 = e;\n" + "}"; + + completions.append(QLatin1String("tclass")); + completions.append(QLatin1String("tname")); + completions.append(QLatin1String("tint")); + QTest::newRow("case: template parameters in template function parameters list") + << code << completions; +} + void CppToolsPlugin::test_completion_enclosing_template_class() { test_completion(); |