summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcompletion_test.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@theqtcompany.com>2015-05-07 14:42:46 +0200
committerEike Ziller <eike.ziller@theqtcompany.com>2015-05-07 14:42:46 +0200
commit4058ff6fe96e1a2e049700dfc7a5e7a120f29068 (patch)
tree7106e67beabbf4309b9616475f70b73192d4a867 /src/plugins/cpptools/cppcompletion_test.cpp
parentfa704e0b8430da14ba86015e143a094286835934 (diff)
parent13a947d119c4722461759f1aeb6b61e93e9be210 (diff)
downloadqt-creator-4058ff6fe96e1a2e049700dfc7a5e7a120f29068.tar.gz
Merge remote-tracking branch 'origin/3.4'
Conflicts: src/libs/extensionsystem/pluginview.cpp Change-Id: I410156c1003d5dc81e915110c6d432bcd71da010
Diffstat (limited to 'src/plugins/cpptools/cppcompletion_test.cpp')
-rw-r--r--src/plugins/cpptools/cppcompletion_test.cpp31
1 files changed, 28 insertions, 3 deletions
diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp
index 8bbcd458b3..5e9d09a384 100644
--- a/src/plugins/cpptools/cppcompletion_test.cpp
+++ b/src/plugins/cpptools/cppcompletion_test.cpp
@@ -168,6 +168,8 @@ bool isProbablyGlobalCompletion(const QStringList &list)
+ (T_FIRST_OBJC_AT_KEYWORD - T_FIRST_KEYWORD);
return list.size() >= numberOfPrimitivesAndBasicKeywords
+ && list.contains(QLatin1String("override"))
+ && list.contains(QLatin1String("final"))
&& list.contains(QLatin1String("if"))
&& list.contains(QLatin1String("bool"));
}
@@ -340,25 +342,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,