From 836db69fb893e452a418d3c81670f13da9b12b1b Mon Sep 17 00:00:00 2001 From: Nathan Ridge Date: Sat, 14 Jul 2018 02:48:52 -0400 Subject: [PATCH] Bug 537031 - Test case for cursor position after completing zero-argument function Change-Id: I55a4580c0746534c391300346df53ad2d0784abe --- .../tests/text/contentassist2/CompletionTestBase.java | 10 ++++++++++ .../ui/tests/text/contentassist2/CompletionTests.java | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTestBase.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTestBase.java index 0cd20b5ca74..1bea398c406 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTestBase.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTestBase.java @@ -13,6 +13,7 @@ import static org.eclipse.cdt.ui.tests.text.contentassist2.AbstractContentAssist import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.jface.preference.IPreferenceStore; +import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.cdt.internal.ui.text.contentassist.ContentAssistPreference; @@ -70,6 +71,15 @@ public class CompletionTestBase extends AbstractContentAssistTest { assertContentAssistResults(fCursorOffset, expected, AbstractContentAssistTest.DEFAULT_FLAGS, CONTEXT); } + protected void assertCursorPositionsAfterReplacement(int[] expected) throws Exception { + Object[] results = invokeContentAssist(fCursorOffset, 0, true, false, true).results; + assertEquals(expected.length, results.length); + for (int i = 0; i < results.length; ++i) { + assertInstance(results[i], ICompletionProposal.class); + assertEquals(expected[i], ((ICompletionProposal) results[i]).getSelection(getDocument()).x); + } + } + protected void assertDotReplacedWithArrow() throws Exception { assertEquals("->", getDocument().get(fCursorOffset - 1, 2)); } diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java index 59cf69b2312..79631403f26 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist2/CompletionTests.java @@ -2040,4 +2040,15 @@ public class CompletionTests extends CompletionTestBase { public void testNonTypeTemplateParameterCompletion_522010() throws Exception { assertCompletionResults(new String[] { "TestParam" }); } + + // void find(); + // void waldo() { + // fin/*cursor*/ + // } + public void testCursorPositionForZeroArgFunction_537031() throws Exception { + // Test that the cursor ends up after the closing parenthesis. + // The 6 below is 4 for "find" + 2 for opening AND closing parentheses. + int expectedPos = getDocument().get().lastIndexOf("fin") + 6; + assertCursorPositionsAfterReplacement(new int[] { expectedPos }); + } }