diff options
author | Eike Ziller <eike.ziller@theqtcompany.com> | 2015-04-15 17:45:47 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@theqtcompany.com> | 2015-04-15 17:45:47 +0200 |
commit | 50fe3585a890fdbb5b6b8598bd8ffe97c036b52d (patch) | |
tree | c7b4e55ac4953b344a56f54c0c272d2d324a16c8 /src/plugins/cpptools/cppcompletion_test.cpp | |
parent | 3d6d33f60d666c8cdab0aa7bad2ee417323b2ee0 (diff) | |
parent | bd964ab0be5070c47a2c65813760413596b028e1 (diff) |
Merge remote-tracking branch 'origin/3.4'
Conflicts:
src/libs/timeline/qml/MainView.qml
src/plugins/git/gitclient.cpp
Change-Id: I0b6ec7b9a592014deb0dd2e1145b19dd6753b1c3
Diffstat (limited to 'src/plugins/cpptools/cppcompletion_test.cpp')
-rw-r--r-- | src/plugins/cpptools/cppcompletion_test.cpp | 43 |
1 files changed, 35 insertions, 8 deletions
diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp index 78757e6b15..418027b1be 100644 --- a/src/plugins/cpptools/cppcompletion_test.cpp +++ b/src/plugins/cpptools/cppcompletion_test.cpp @@ -162,6 +162,16 @@ private: IEditor *m_editor; }; +bool isProbablyGlobalCompletion(const QStringList &list) +{ + const int numberOfPrimitivesAndBasicKeywords = (T_LAST_PRIMITIVE - T_FIRST_PRIMITIVE) + + (T_FIRST_OBJC_AT_KEYWORD - T_FIRST_KEYWORD); + + return list.size() >= numberOfPrimitivesAndBasicKeywords + && list.contains(QLatin1String("if")) + && list.contains(QLatin1String("bool")); +} + } // anonymous namespace void CppToolsPlugin::test_completion_basic_1() @@ -329,6 +339,31 @@ void CppToolsPlugin::test_completion() QCOMPARE(actualCompletions, expectedCompletions); } +void CppToolsPlugin::test_global_completion_data() +{ + QTest::addColumn<QByteArray>("code"); + QTest::addColumn<QByteArray>("prefix"); + + // 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") + << _("&"); + QTest::newRow("global completion after & in function argument") + << _("int f() { return @; }\n") + << _("&"); +} + +void CppToolsPlugin::test_global_completion() +{ + QFETCH(QByteArray, code); + QFETCH(QByteArray, prefix); + + CompletionTestCase test(code, prefix); + QVERIFY(test.succeededSoFar()); + QVERIFY(isProbablyGlobalCompletion(test.getCompletions())); +} + static void enumTestCase(const QByteArray &tag, const QByteArray &source, const QByteArray &prefix = QByteArray()) { @@ -2339,14 +2374,6 @@ void CppToolsPlugin::test_completion_data() << QLatin1String("hiddenFunction") << QLatin1String("hiddenSignal")); - QTest::newRow("Qt5 signals: no class name completion if not after 'connect(' 1") - << commonSignalSlotCompletionTestCode - << _("foo(myObject, &") << (QStringList()); - - QTest::newRow("Qt5 signals/slots: no class name completion if not after 'connect(' 2") - << commonSignalSlotCompletionTestCode - << _("&") << (QStringList()); - QTest::newRow("Qt5 signals: fallback to scope completion") << commonSignalSlotCompletionTestCode << _("connect(myObject, &N::") << (QStringList() |