diff options
Diffstat (limited to 'src/plugins/cpptools/cppcompletion_test.cpp')
-rw-r--r-- | src/plugins/cpptools/cppcompletion_test.cpp | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp index 6f0caaac81..2b218d87e5 100644 --- a/src/plugins/cpptools/cppcompletion_test.cpp +++ b/src/plugins/cpptools/cppcompletion_test.cpp @@ -72,7 +72,7 @@ struct TestCase QTextDocument *doc; }; -static QStringList getCompletions(TestCase &data) +static QStringList getCompletions(TestCase &data, bool *replaceAccessOperator = 0) { QStringList completions; @@ -86,13 +86,16 @@ static QStringList getCompletions(TestCase &data) IAssistProposalModel *model = proposal->model(); if (!model) return completions; - BasicProposalItemListModel *listmodel = dynamic_cast<BasicProposalItemListModel *>(model); + CppAssistProposalModel *listmodel = dynamic_cast<CppAssistProposalModel *>(model); if (!listmodel) return completions; for (int i = 0; i < listmodel->size(); ++i) completions << listmodel->text(i); + if (replaceAccessOperator) + *replaceAccessOperator = listmodel->m_replaceDotForArrow; + return completions; } @@ -1288,3 +1291,30 @@ void CppToolsPlugin::test_completion_instantiate_nested_of_nested_class_when_enc QVERIFY(completions.contains(QLatin1String("Foo"))); QVERIFY(completions.contains(QLatin1String("foo_i"))); } + +void CppToolsPlugin::test_completion_member_access_operator_1() +{ + TestCase data; + data.srcText = "\n" + "struct S { void t(); };\n" + "void f() { S *s;\n" + "@\n" + "}\n" + ; + setup(&data); + + Utils::ChangeSet change; + QString txt = QLatin1String("s."); + change.insert(data.pos, txt); + QTextCursor cursor(data.doc); + change.apply(&cursor); + data.pos += txt.length(); + + bool replaceAccessOperator = false; + QStringList completions = getCompletions(data, &replaceAccessOperator); + + QCOMPARE(completions.size(), 2); + QVERIFY(completions.contains(QLatin1String("S"))); + QVERIFY(completions.contains(QLatin1String("t"))); + QVERIFY(replaceAccessOperator); +} |