diff options
Diffstat (limited to 'src/plugins/cpptools/cppcompletion_test.cpp')
-rw-r--r-- | src/plugins/cpptools/cppcompletion_test.cpp | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp index f15950bc71..baa0f784d7 100644 --- a/src/plugins/cpptools/cppcompletion_test.cpp +++ b/src/plugins/cpptools/cppcompletion_test.cpp @@ -341,25 +341,48 @@ void CppToolsPlugin::test_global_completion_data() { QTest::addColumn<QByteArray>("code"); QTest::addColumn<QByteArray>("prefix"); + QTest::addColumn<QStringList>("requiredCompletionItems"); // Check that special completion after '&' for Qt5 signal/slots does not // interfere global completion after '&' QTest::newRow("global completion after & in return expression") << _("void f() { foo(myObject, @); }\n") - << _("&"); + << _("&") + << QStringList(); QTest::newRow("global completion after & in function argument") << _("int f() { return @; }\n") - << _("&"); + << _("&") + << QStringList(); + + // Check global completion after one line comments + const QByteArray codeTemplate = "int myGlobal;\n" + "<REPLACEMENT>\n" + "@\n"; + const QStringList replacements = QStringList() + << QLatin1String("// text") + << QLatin1String("// text.") + << QLatin1String("/// text") + << QLatin1String("/// text.") + ; + foreach (const QString &replacement, replacements) { + QByteArray code = codeTemplate; + code.replace("<REPLACEMENT>", replacement.toUtf8()); + const QByteArray tag = _("completion after comment: ") + replacement.toUtf8(); + QTest::newRow(tag) << code << QByteArray() << QStringList(QLatin1String("myGlobal")); + } } void CppToolsPlugin::test_global_completion() { QFETCH(QByteArray, code); QFETCH(QByteArray, prefix); + QFETCH(QStringList, requiredCompletionItems); CompletionTestCase test(code, prefix); QVERIFY(test.succeededSoFar()); - QVERIFY(isProbablyGlobalCompletion(test.getCompletions())); + const QStringList completions = test.getCompletions(); + QVERIFY(isProbablyGlobalCompletion(completions)); + QVERIFY(completions.toSet().contains(requiredCompletionItems.toSet())); } static void enumTestCase(const QByteArray &tag, const QByteArray &source, |