diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2013-01-30 09:58:09 +0100 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@digia.com> | 2013-01-30 10:29:12 +0100 |
commit | cede29478875e127dd6a809313abdbbb334c95a7 (patch) | |
tree | a1b2d1817790d8590551a1a1f09a758d1731ea54 /src/plugins/cpptools/cppcompletion_test.cpp | |
parent | 8f4817152c5f18c3f14f6d3bdf4b104ca259062d (diff) | |
download | qt-creator-cede29478875e127dd6a809313abdbbb334c95a7.tar.gz |
C++: add test-case for member access replacement in completion.
Change-Id: Id5fe00b94a6622178db9bd26f54d29efe88970f7
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
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); +} |