diff --git a/core/org.eclipse.cdt.ui.tests/ChangeLog b/core/org.eclipse.cdt.ui.tests/ChangeLog index 766383078ee..0027735a143 100644 --- a/core/org.eclipse.cdt.ui.tests/ChangeLog +++ b/core/org.eclipse.cdt.ui.tests/ChangeLog @@ -1,3 +1,6 @@ +2004-01-21 Hoda Amer + Added more JUnit tests for Content Assist + 2004-01-19 Hoda Amer Added a JUnit test case for completion on Macros with function style. diff --git a/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart.h b/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart.h index ca74e6b65aa..50004a771f3 100644 --- a/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart.h +++ b/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart.h @@ -1,7 +1,11 @@ #define AMacro(x) x+1 +#define XMacro(x,y) x+y + +int aVariable; +int xVariable; -int aVariable = 0; bool aFunction(); +bool xFunction(); enum anEnumeration { aFirstEnum, @@ -9,27 +13,54 @@ enum anEnumeration { aThirdEnum }; +enum xEnumeration { + xFirstEnum, + xSecondEnum, + xThirdEnum +}; + struct AStruct{ int aStructField; }; +struct XStruct{ + int xStructField; +}; + void anotherFunction(){ int aLocalDeclaration = 1; } +void xOtherFunction(){ + int xLocalDeclaration = 1; +} + class aClass { public: int aField; + float xAClassField; int aMethod(); -} + void xAClassMethod(int x); +}; class anotherClass { public: int anotherField; void anotherMethod(); -} +}; + +class xOtherClass { +public: + int xOtherField; + void xOtherMethod(); +}; namespace aNamespace { void aNamespaceFunction(){ } }; + +namespace xNamespace { + void xNamespaceFunction(){ + } +}; diff --git a/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart10.cpp b/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart10.cpp new file mode 100644 index 00000000000..26d5d6f57e8 --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart10.cpp @@ -0,0 +1,7 @@ +#include "CompletionTestStart.h" + +void anotherClass::anotherMethod() +{ + aClass* c = new aClass(); + c-> +} diff --git a/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart11.cpp b/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart11.cpp new file mode 100644 index 00000000000..60434778568 --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart11.cpp @@ -0,0 +1,3 @@ +#include "CompletionTestStart.h" + + diff --git a/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart12.h b/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart12.h new file mode 100644 index 00000000000..29e593e9a8e --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart12.h @@ -0,0 +1,6 @@ +#include "CompletionTestStart.h" + +class aThirdClass { + int x; + +}; diff --git a/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart4.cpp b/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart4.h similarity index 88% rename from core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart4.cpp rename to core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart4.h index ecae6a283d9..d09cc7c4d10 100644 --- a/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart4.cpp +++ b/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart4.h @@ -2,4 +2,4 @@ class aThirdClass { a -} +}; diff --git a/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart9.cpp b/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart9.cpp new file mode 100644 index 00000000000..6fa0e57c1ab --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/resources/contentassist/CompletionTestStart9.cpp @@ -0,0 +1,7 @@ +#include "CompletionTestStart.h" + +void anotherClass::anotherMethod() +{ + aClass c; + c. +} diff --git a/core/org.eclipse.cdt.ui.tests/resources/contentassist/failedtests/CompletionFailedTestStart3.h b/core/org.eclipse.cdt.ui.tests/resources/contentassist/failedtests/CompletionFailedTestStart3.h new file mode 100644 index 00000000000..b41aa044f55 --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/resources/contentassist/failedtests/CompletionFailedTestStart3.h @@ -0,0 +1,5 @@ +#include "CompletionTestStart.h" + +class aThirdClass { + +}; diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/AutomatedSuite.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/AutomatedSuite.java index a0237ecdea1..a6ef2df618f 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/AutomatedSuite.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/AutomatedSuite.java @@ -44,10 +44,15 @@ public class AutomatedSuite extends TestSuite { addTest(CompletionProposalsTest6.suite()); addTest(CompletionProposalsTest7.suite()); addTest(CompletionProposalsTest8.suite()); + addTest(CompletionProposalsTest9.suite()); + addTest(CompletionProposalsTest10.suite()); + addTest(CompletionProposalsTest11.suite()); + addTest(CompletionProposalsTest12.suite()); // Failed Tests addTest(CompletionProposalsFailedTest1.suite()); addTest(CompletionProposalsFailedTest2.suite()); + addTest(CompletionProposalsFailedTest3.suite()); } diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest10.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest10.java new file mode 100644 index 00000000000..66b21ccf238 --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest10.java @@ -0,0 +1,119 @@ +/********************************************************************** + * Copyright (c) 2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.ui.tests.text.contentassist; +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind; + +/** + * @author hamer + * + * Testing Function/Method scope, a class context, with NO prefix + * After an -> + * + */ + +public class CompletionProposalsTest10 extends CompletionProposalsBaseTest{ + private final String fileName = "CompletionTestStart10.cpp"; + private final String fileFullPath ="resources/contentassist/" + fileName; + private final String headerFileName = "CompletionTestStart.h"; + private final String headerFileFullPath ="resources/contentassist/" + headerFileName; + private final String expectedScopeName = "ASTMethod"; + private final String expectedContextName = "ASTClassSpecifier"; + private final CompletionKind expectedKind = CompletionKind.MEMBER_REFERENCE; + private final String expectedPrefix = ""; + private final String[] expectedResults = { + "aField : int", + "xAClassField : float", + "aMethod() int", + "xAClassMethod(int) void" + }; + + public CompletionProposalsTest10(String name) { + super(name); + } + + public static Test suite() { + TestSuite suite= new TestSuite(CompletionProposalsTest10.class.getName()); + suite.addTest(new CompletionProposalsTest10("testCompletionProposals")); + return suite; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getCompletionPosition() + */ + protected int getCompletionPosition() { + return getBuffer().indexOf(" c-> ") + 4; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedScope() + */ + protected String getExpectedScopeClassName() { + return expectedScopeName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedContext() + */ + protected String getExpectedContextClassName() { + return expectedContextName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedKind() + */ + protected CompletionKind getExpectedKind() { + return expectedKind; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedPrefix() + */ + protected String getExpectedPrefix() { + return expectedPrefix; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedResultsValues() + */ + protected String[] getExpectedResultsValues() { + return expectedResults; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getFileName() + */ + protected String getFileName() { + return fileName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getFileFullPath() + */ + protected String getFileFullPath() { + return fileFullPath; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getHeaderFileFullPath() + */ + protected String getHeaderFileFullPath() { + return headerFileFullPath; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getHeaderFileName() + */ + protected String getHeaderFileName() { + return headerFileName; + } + +} diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest11.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest11.java new file mode 100644 index 00000000000..1b70ab003e1 --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest11.java @@ -0,0 +1,113 @@ +/********************************************************************** + * Copyright (c) 2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.ui.tests.text.contentassist; +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind; + +/** + * @author hamer + * + * Testing Global scope, declaration start, with NO prefix + * + */ +public class CompletionProposalsTest11 extends CompletionProposalsBaseTest{ + private final String fileName = "CompletionTestStart11.cpp"; + private final String fileFullPath ="resources/contentassist/" + fileName; + private final String headerFileName = "CompletionTestStart.h"; + private final String headerFileFullPath ="resources/contentassist/" + headerFileName; + private final String expectedScopeName = "ASTCompilationUnit"; + private final String expectedContextName = "null"; + private final CompletionKind expectedKind = CompletionKind.VARIABLE_TYPE; + private final String expectedPrefix = ""; + private final String[] expectedResults = { + }; + + public CompletionProposalsTest11(String name) { + super(name); + } + + public static Test suite() { + TestSuite suite= new TestSuite(CompletionProposalsTest11.class.getName()); + suite.addTest(new CompletionProposalsTest11("testCompletionProposals")); + return suite; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getCompletionPosition() + */ + protected int getCompletionPosition() { + return getBuffer().indexOf(" ") + 2; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedScope() + */ + protected String getExpectedScopeClassName() { + return expectedScopeName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedContext() + */ + protected String getExpectedContextClassName() { + return expectedContextName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedKind() + */ + protected CompletionKind getExpectedKind() { + return expectedKind; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedPrefix() + */ + protected String getExpectedPrefix() { + return expectedPrefix; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedResultsValues() + */ + protected String[] getExpectedResultsValues() { + return expectedResults; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getFileName() + */ + protected String getFileName() { + return fileName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getFileFullPath() + */ + protected String getFileFullPath() { + return fileFullPath; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getHeaderFileFullPath() + */ + protected String getHeaderFileFullPath() { + return headerFileFullPath; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getHeaderFileName() + */ + protected String getHeaderFileName() { + return headerFileName; + } + +} diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest12.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest12.java new file mode 100644 index 00000000000..bc6489f2fe2 --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest12.java @@ -0,0 +1,114 @@ +/********************************************************************** + * Copyright (c) 2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.ui.tests.text.contentassist; + +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind; + +/** + * @author hamer + * + * Testing Class scope, declaration start, with NO prefix + * + */ +public class CompletionProposalsTest12 extends CompletionProposalsBaseTest{ + private final String fileName = "CompletionTestStart12.h"; + private final String fileFullPath ="resources/contentassist/" + fileName; + private final String headerFileName = "CompletionTestStart.h"; + private final String headerFileFullPath ="resources/contentassist/" + headerFileName; + private final String expectedScopeName = "ASTClassSpecifier"; + private final String expectedContextName = "null"; + private final CompletionKind expectedKind = CompletionKind.FIELD_TYPE; + private final String expectedPrefix = ""; + private final String[] expectedResults = { + }; + + public CompletionProposalsTest12(String name) { + super(name); + } + + public static Test suite() { + TestSuite suite= new TestSuite(CompletionProposalsTest12.class.getName()); + suite.addTest(new CompletionProposalsTest12("testCompletionProposals")); + return suite; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getCompletionPosition() + */ + protected int getCompletionPosition() { + return getBuffer().indexOf(" ") + 2; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedScope() + */ + protected String getExpectedScopeClassName() { + return expectedScopeName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedContext() + */ + protected String getExpectedContextClassName() { + return expectedContextName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedKind() + */ + protected CompletionKind getExpectedKind() { + return expectedKind; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedPrefix() + */ + protected String getExpectedPrefix() { + return expectedPrefix; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedResultsValues() + */ + protected String[] getExpectedResultsValues() { + return expectedResults; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getFileName() + */ + protected String getFileName() { + return fileName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getFileFullPath() + */ + protected String getFileFullPath() { + return fileFullPath; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getHeaderFileFullPath() + */ + protected String getHeaderFileFullPath() { + return headerFileFullPath; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getHeaderFileName() + */ + protected String getHeaderFileName() { + return headerFileName; + } + +} diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest3.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest3.java index e173d3c5a00..057778bbffc 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest3.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest3.java @@ -32,9 +32,9 @@ public class CompletionProposalsTest3 extends CompletionProposalsBaseTest{ private final String[] expectedResults = { "aClass", "anotherClass", + "aNamespace", "anEnumeration", - "AStruct", - "AMacro(x)" + "AStruct" }; public CompletionProposalsTest3(String name) { @@ -42,15 +42,15 @@ public class CompletionProposalsTest3 extends CompletionProposalsBaseTest{ } public static Test suite() { - TestSuite suite= new TestSuite(CompletionProposalsTest2.class.getName()); - suite.addTest(new CompletionProposalsTest2("testCompletionProposals")); + TestSuite suite= new TestSuite(CompletionProposalsTest3.class.getName()); + suite.addTest(new CompletionProposalsTest3("testCompletionProposals")); return suite; } /* (non-Javadoc) * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getCompletionPosition() */ protected int getCompletionPosition() { - return getBuffer().indexOf(" c.a ") + 4; + return getBuffer().indexOf(" a ") + 2; } /* (non-Javadoc) diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest4.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest4.java index 003010f8b94..7dabd804eb8 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest4.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest4.java @@ -21,7 +21,7 @@ import org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind; * */ public class CompletionProposalsTest4 extends CompletionProposalsBaseTest{ - private final String fileName = "CompletionTestStart4.cpp"; + private final String fileName = "CompletionTestStart4.h"; private final String fileFullPath ="resources/contentassist/" + fileName; private final String headerFileName = "CompletionTestStart.h"; private final String headerFileFullPath ="resources/contentassist/" + headerFileName; diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest9.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest9.java new file mode 100644 index 00000000000..0ccaf242b58 --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/CompletionProposalsTest9.java @@ -0,0 +1,118 @@ +/********************************************************************** + * Copyright (c) 2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.ui.tests.text.contentassist; +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind; + +/** + * @author hamer + * + * Testing Function/Method scope, a class context, with NO prefix + * After a . + * + */ +public class CompletionProposalsTest9 extends CompletionProposalsBaseTest{ + private final String fileName = "CompletionTestStart9.cpp"; + private final String fileFullPath ="resources/contentassist/" + fileName; + private final String headerFileName = "CompletionTestStart.h"; + private final String headerFileFullPath ="resources/contentassist/" + headerFileName; + private final String expectedScopeName = "ASTMethod"; + private final String expectedContextName = "ASTClassSpecifier"; + private final CompletionKind expectedKind = CompletionKind.MEMBER_REFERENCE; + private final String expectedPrefix = ""; + private final String[] expectedResults = { + "aField : int", + "xAClassField : float", + "aMethod() int", + "xAClassMethod(int) void" + }; + + public CompletionProposalsTest9(String name) { + super(name); + } + + public static Test suite() { + TestSuite suite= new TestSuite(CompletionProposalsTest9.class.getName()); + suite.addTest(new CompletionProposalsTest9("testCompletionProposals")); + return suite; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getCompletionPosition() + */ + protected int getCompletionPosition() { + return getBuffer().indexOf(" c. ") + 3; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedScope() + */ + protected String getExpectedScopeClassName() { + return expectedScopeName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedContext() + */ + protected String getExpectedContextClassName() { + return expectedContextName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedKind() + */ + protected CompletionKind getExpectedKind() { + return expectedKind; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedPrefix() + */ + protected String getExpectedPrefix() { + return expectedPrefix; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedResultsValues() + */ + protected String[] getExpectedResultsValues() { + return expectedResults; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getFileName() + */ + protected String getFileName() { + return fileName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getFileFullPath() + */ + protected String getFileFullPath() { + return fileFullPath; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getHeaderFileFullPath() + */ + protected String getHeaderFileFullPath() { + return headerFileFullPath; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getHeaderFileName() + */ + protected String getHeaderFileName() { + return headerFileName; + } + +} diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/failedtests/CompletionProposalsFailedTest3.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/failedtests/CompletionProposalsFailedTest3.java new file mode 100644 index 00000000000..a592bf7a4de --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/contentassist/failedtests/CompletionProposalsFailedTest3.java @@ -0,0 +1,117 @@ +/********************************************************************** + * Copyright (c) 2004 Rational Software Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v0.5 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v05.html + * + * Contributors: + * IBM Rational Software - Initial API and implementation +***********************************************************************/ +package org.eclipse.cdt.ui.tests.text.contentassist.failedtests; +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.eclipse.cdt.core.parser.ast.IASTCompletionNode.CompletionKind; +import org.eclipse.cdt.ui.tests.text.contentassist.CompletionProposalsBaseTest; + +/** + * @author hamer + * + * Testing Class scope, declaration start, with NO prefix + * Bug#50344 :Wrong completion in Class scope if before the first declaration + * + */ +public class CompletionProposalsFailedTest3 extends CompletionProposalsBaseTest{ + + private final String fileName = "CompletionFailedTestStart3.h"; + private final String fileFullPath ="resources/contentassist/failedtests/" + fileName; + private final String headerFileName = "CompletionTestStart.h"; + private final String headerFileFullPath ="resources/contentassist/" + headerFileName; + private final String expectedScopeName = "ASTCompilationUnit"; // should be "ASTClassSpecifier"; + private final String expectedContextName = "null"; + private final CompletionKind expectedKind =CompletionKind.USER_SPECIFIED_NAME; // should be CompletionKind.FIELD_TYPE; + private final String expectedPrefix = ""; + private final String[] expectedResults = { + }; + + public CompletionProposalsFailedTest3(String name) { + super(name); + } + + public static Test suite() { + TestSuite suite= new TestSuite(CompletionProposalsFailedTest3.class.getName()); + suite.addTest(new CompletionProposalsFailedTest3("testCompletionProposals")); + return suite; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getCompletionPosition() + */ + protected int getCompletionPosition() { + return getBuffer().indexOf(" ") + 3; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedScope() + */ + protected String getExpectedScopeClassName() { + return expectedScopeName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedContext() + */ + protected String getExpectedContextClassName() { + return expectedContextName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedKind() + */ + protected CompletionKind getExpectedKind() { + return expectedKind; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedPrefix() + */ + protected String getExpectedPrefix() { + return expectedPrefix; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getExpectedResultsValues() + */ + protected String[] getExpectedResultsValues() { + return expectedResults; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getFileName() + */ + protected String getFileName() { + return fileName; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getFileFullPath() + */ + protected String getFileFullPath() { + return fileFullPath; + } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getHeaderFileFullPath() + */ + protected String getHeaderFileFullPath() { + return headerFileFullPath; + } + + /* (non-Javadoc) + * @see org.eclipse.cdt.core.codeassist.tests.CompletionProposalsTest#getHeaderFileName() + */ + protected String getHeaderFileName() { + return headerFileName; + } + +} diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index 83c725d83dc..da259d79bc4 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -1,3 +1,6 @@ +2004-01-21 Hoda Amer + -Fixed bug#49854 : Enumerator code complete fails when no character provided + 2004-01-20 Alain Magloire Remove the hardcode "objdump" in the EditorUtility. diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java index 6d63881a3cb..8c5172c940b 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/text/contentassist/CompletionEngine.java @@ -495,7 +495,11 @@ public class CompletionEngine implements RelevanceConstants{ // instead of only fields and methods IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1]; kinds[0] = IASTNode.LookupKind.THIS; - + result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext()); + addToCompletions(result); + + kinds = new IASTNode.LookupKind[1]; + kinds[0] = IASTNode.LookupKind.LOCAL_VARIABLES; result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext()); addToCompletions(result); } @@ -540,13 +544,13 @@ public class CompletionEngine implements RelevanceConstants{ // 1. basic completion on all types completionOnTypeReference(completionNode); // 2. Get the search scope node - IASTScope searchNode = completionNode.getCompletionScope(); - - IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1]; - kinds[0] = IASTNode.LookupKind.NAMESPACES; - ILookupResult result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext()); - addToCompletions(result); - + if(completionNode.getCompletionPrefix().length() > 0) { + IASTScope searchNode = completionNode.getCompletionScope(); + IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1]; + kinds[0] = IASTNode.LookupKind.NAMESPACES; + ILookupResult result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext()); + addToCompletions(result); + } // TODO // 3. provide a template for constructor/ destructor // 4. lookup methods @@ -562,13 +566,16 @@ public class CompletionEngine implements RelevanceConstants{ private void completionOnVariableType(IASTCompletionNode completionNode){ // 1. basic completion on all types completionOnTypeReference(completionNode); - - IASTScope searchNode = completionNode.getCompletionScope(); - IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1]; - kinds[0] = IASTNode.LookupKind.NAMESPACES; - ILookupResult result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext()); - addToCompletions(result); + // look for namespaces only if you have a prefix + if(completionNode.getCompletionPrefix().length() > 0){ + IASTScope searchNode = completionNode.getCompletionScope(); + IASTNode.LookupKind[] kinds = new IASTNode.LookupKind[1]; + kinds[0] = IASTNode.LookupKind.NAMESPACES; + ILookupResult result = lookup(searchNode, completionNode.getCompletionPrefix(), kinds, completionNode.getCompletionContext()); + addToCompletions(result); + } } + private void completionOnSingleNameReference(IASTCompletionNode completionNode){ // 1. Get the search scope node // the search node is the code scope inwhich completion is requested