blob: 43bc929f2ee68590d24a105e250b08495e134621 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2020 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
* Tom Eicher <eclipse@tom.eicher.name> - [content assist] prefix complete casted method proposals - https://bugs.eclipse.org/bugs/show_bug.cgi?id=247547
*******************************************************************************/
package org.eclipse.jdt.text.tests.contentassist;
import org.junit.Test;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.ui.PreferenceConstants;
/**
*
* @since 3.2
*/
public class MethodInsertCompletionTest extends AbstractCompletionTest {
@Test
public void testThisMethod() throws Exception {
assertMethodBodyProposal("this.|", "hashCode(", "this.hashCode()|");
}
@Test
public void testMethod() throws Exception {
assertMethodBodyProposal("h", "hashCode(", "hashCode()");
}
@Test
public void testMethodWithParam() throws Exception {
assertMethodBodyProposal("e", "equals(", "equals(|)");
}
/* inserting */
@Test
public void testInsertThisMethod() throws Exception {
assertMethodBodyProposal("this.|class", "hashCode(", "this.hashCode()|class");
}
@Test
public void testInsertMethod() throws Exception {
assertMethodBodyProposal("h|foobar", "hashCode(", "hashCode()|foobar");
}
@Test
public void testInsertMethodWithParam() throws Exception {
assertMethodBodyProposal("e|foobar", "equals(", "equals(|)foobar");
}
@Test
public void testFieldThisQualification() throws Exception {
addMembers("private String qqqString;");
addLocalVariables("String qqqString;");
assertMethodBodyProposal("q|", "this.qqqString", "this.qqqString|");
}
@Test
public void testCastMethod() throws Exception {
// bug 208540
addLocalVariables("Object o;");
assertMethodBodyProposal("if (o instanceof Integer) o.get|", "getInteger", "if (o instanceof Integer) ((Integer) o).getInteger(|)");
}
@Test
public void testCastMethodIncremental() throws Exception {
// bug 208540
getJDTUIPrefs().setValue(PreferenceConstants.CODEASSIST_PREFIX_COMPLETION, true);
getJDTUIPrefs().setValue(PreferenceConstants.CODEASSIST_AUTOINSERT, true);
addLocalVariables("Object o;");
assertMethodBodyIncrementalCompletion("if (o instanceof Integer) o.ge|", "if (o instanceof Integer) o.get|");
}
/* camel case */
@Test
public void testCamelCase() throws Exception {
setCoreOption(JavaCore.CODEASSIST_CAMEL_CASE_MATCH, JavaCore.ENABLED);
assertMethodBodyProposal("hC", "hashCode(", "hashCode()");
}
@Test
public void testCamelCaseWithEmptyPrefix() throws Exception {
setCoreOption(JavaCore.CODEASSIST_CAMEL_CASE_MATCH, JavaCore.ENABLED);
assertMethodBodyProposal("", "hashCode(", "hashCode()");
}
/* Insert common prefixes automatically */
@Test
public void test1() throws Exception {
getJDTUIPrefs().setValue(PreferenceConstants.CODEASSIST_PREFIX_COMPLETION, true);
getJDTUIPrefs().setValue(PreferenceConstants.CODEASSIST_AUTOINSERT, true);
addLocalVariables("String s;");
assertMethodBodyIncrementalCompletion("s.ind|", "s.indexOf|");
}
@Test
public void test2() throws Exception {
getJDTUIPrefs().setValue(PreferenceConstants.CODEASSIST_PREFIX_COMPLETION, true);
getJDTUIPrefs().setValue(PreferenceConstants.CODEASSIST_AUTOINSERT, true);
addLocalVariables("String s;");
assertMethodBodyIncrementalCompletion("s.su|", "s.sub|");
}
@Test
public void test3() throws Exception {
getJDTUIPrefs().setValue(PreferenceConstants.CODEASSIST_PREFIX_COMPLETION, true);
getJDTUIPrefs().setValue(PreferenceConstants.CODEASSIST_AUTOINSERT, true);
addLocalVariables("String s;");
assertMethodBodyIncrementalCompletion("s.tar|", "s.tartsWith|");
}
@Test
public void test4() throws Exception {
getJDTUIPrefs().setValue(PreferenceConstants.CODEASSIST_PREFIX_COMPLETION, true);
getJDTUIPrefs().setValue(PreferenceConstants.CODEASSIST_AUTOINSERT, true);
addLocalVariables("String s;");
assertMethodBodyIncrementalCompletion("s.Po|", "s.Point|");
}
@Test
public void test5() throws Exception {
getJDTUIPrefs().setValue(PreferenceConstants.CODEASSIST_PREFIX_COMPLETION, true);
getJDTUIPrefs().setValue(PreferenceConstants.CODEASSIST_AUTOINSERT, true);
addLocalVariables("String s;");
assertMethodBodyIncrementalCompletion("s.ubs|", "s.ubs|");
}
@Test
public void test6() throws Exception {
getJDTUIPrefs().setValue(PreferenceConstants.CODEASSIST_PREFIX_COMPLETION, true);
getJDTUIPrefs().setValue(PreferenceConstants.CODEASSIST_AUTOINSERT, true);
addLocalVariables("String s;");
assertMethodBodyIncrementalCompletion("s.Su|", "s.sub|");
}
}