blob: 52d4cb5efbbd04b45f0f47402cec4274bbd46acd [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.jsdt.core.tests.model;
import java.util.Map;
import junit.framework.Test;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.wst.jsdt.core.*;
import org.eclipse.wst.jsdt.core.search.IJavaScriptSearchScope;
import org.eclipse.wst.jsdt.core.search.SearchEngine;
/**
* Tests the Java search engine in Javadoc comment.
*
* @see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=45518">bug 45518</a>
* @see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=46761">bug 46761</a>
*/
public class JavaSearchJavadocTests extends JavaSearchTests {
Map originalOptions;
/**
* @param name
*/
public JavaSearchJavadocTests(String name) {
super(name);
}
/* (non-Javadoc)
* @see org.eclipse.wst.jsdt.core.tests.model.SuiteOfTestCases#setUpSuite()
*/
protected void setUp() throws Exception {
super.setUp();
this.originalOptions = JAVA_PROJECT.getOptions(true);
JAVA_PROJECT.setOption(JavaScriptCore.COMPILER_DOC_COMMENT_SUPPORT, JavaScriptCore.ENABLED);
this.resultCollector.showAccuracy = true;
this.resultCollector.showInsideDoc = true;
}
/* (non-Javadoc)
* @see org.eclipse.wst.jsdt.core.tests.model.SuiteOfTestCases#tearDownSuite()
*/
public void tearDown() throws Exception {
JAVA_PROJECT.setOptions(originalOptions);
super.tearDown();
}
private void setJavadocOptions() {
JAVA_PROJECT.setOption(JavaScriptCore.COMPILER_PB_INVALID_JAVADOC, JavaScriptCore.WARNING);
JAVA_PROJECT.setOption(JavaScriptCore.COMPILER_PB_MISSING_JAVADOC_COMMENTS, JavaScriptCore.ERROR);
}
private void disableJavadocOptions() {
JAVA_PROJECT.setOption(JavaScriptCore.COMPILER_DOC_COMMENT_SUPPORT, JavaScriptCore.DISABLED);
}
public static Test suite() {
// return buildTestSuite(JavaSearchJavadocTests.class, "testJavadocMethod", null);
return buildModelTestSuite(JavaSearchJavadocTests.class);
}
// Use this static initializer to specify subset for tests
// All specified tests which do not belong to the class are skipped...
static {
// TESTS_NAMES = new String[] { "testGenericFieldReferenceAC04" };
// TESTS_NUMBERS = new int[] { 83285 };
// TESTS_RANGE = new int[] { -1, -1 };
}
/*
* Test search of type declaration in javadoc comments
* ===================================================
*/
public void testJavadocTypeDeclaration() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
search(
type,
DECLARATIONS,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocSearched.java j1.JavadocSearched [JavadocSearched] EXACT_MATCH OUTSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocTypeStringDeclaration() throws CoreException {
search(
"JavadocSearched",
TYPE,
DECLARATIONS,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocSearched.java j1.JavadocSearched [JavadocSearched] EXACT_MATCH OUTSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocTypeDeclarationWithJavadoc() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
setJavadocOptions();
search(
type,
DECLARATIONS,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocSearched.java j1.JavadocSearched [JavadocSearched] EXACT_MATCH OUTSIDE_JAVADOC",
this.resultCollector);
}
/*
* Test search of field declaration in javadoc comments
* ====================================================
*/
public void testJavadocFieldDeclaration() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
IField field = type.getField("javadocSearchedVar");
search(
field,
DECLARATIONS,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocSearched.java j1.JavadocSearched.javadocSearchedVar [javadocSearchedVar] EXACT_MATCH OUTSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocFieldStringDeclaration() throws CoreException {
search(
"javadocSearchedVar",
FIELD,
DECLARATIONS,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocSearched.java j1.JavadocSearched.javadocSearchedVar [javadocSearchedVar] EXACT_MATCH OUTSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocFieldDeclarationWithJavadoc() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
IField field = type.getField("javadocSearchedVar");
setJavadocOptions();
search(
field,
DECLARATIONS,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocSearched.java j1.JavadocSearched.javadocSearchedVar [javadocSearchedVar] EXACT_MATCH OUTSIDE_JAVADOC",
this.resultCollector);
}
/*
* Test search of method declarations in javadoc comments
* ======================================================
*/
public void testJavadocMethodDeclaration() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
IFunction method = type.getFunction("javadocSearchedMethod", null);
search(
method,
DECLARATIONS,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocSearched.java void j1.JavadocSearched.javadocSearchedMethod() [javadocSearchedMethod] EXACT_MATCH OUTSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocMethodArgDeclaration() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
IFunction method = type.getFunction("javadocSearchedMethod", new String[] { "QString;" });
search(
method,
DECLARATIONS,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocSearched.java void j1.JavadocSearched.javadocSearchedMethod(String) [javadocSearchedMethod] EXACT_MATCH OUTSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocMethodStringDeclaration() throws CoreException {
search(
"javadocSearchedMethod",
METHOD,
DECLARATIONS,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocSearched.java void j1.JavadocSearched.javadocSearchedMethod() [javadocSearchedMethod] EXACT_MATCH OUTSIDE_JAVADOC\n" +
"src/j1/JavadocSearched.java void j1.JavadocSearched.javadocSearchedMethod(String) [javadocSearchedMethod] EXACT_MATCH OUTSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocMethodDeclarationWithJavadoc() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
setJavadocOptions();
IFunction method = type.getFunction("javadocSearchedMethod", null);
search(
method,
DECLARATIONS,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocSearched.java void j1.JavadocSearched.javadocSearchedMethod() [javadocSearchedMethod] EXACT_MATCH OUTSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocMethodArgDeclarationWithJavadoc() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
setJavadocOptions();
IFunction method = type.getFunction("javadocSearchedMethod", new String[] { "QString;" });
search(
method,
DECLARATIONS,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocSearched.java void j1.JavadocSearched.javadocSearchedMethod(String) [javadocSearchedMethod] EXACT_MATCH OUTSIDE_JAVADOC",
this.resultCollector);
}
/*
* Test search of type references in javadoc comments
* ==================================================
*/
public void testJavadocTypeReference() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
search(
type,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [j1.JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [j1.JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocTypeStringReference() throws CoreException {
search(
"JavadocSearched",
TYPE,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocTypeReferenceWithJavadoc() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
setJavadocOptions();
search(
type,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [j1.JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [j1.JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocTypeStringReferenceWithJavadoc() throws CoreException {
setJavadocOptions();
search(
"JavadocSearched",
TYPE,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC\n"+
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocTypeStringReferenceWithJavadocDisabled() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
disableJavadocOptions();
search(
type,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults("", this.resultCollector);
}
/*
* Test search of field references in javadoc comments
* ===================================================
*/
public void testJavadocFieldReference() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
IField field = type.getField("javadocSearchedVar");
search(
field,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedVar] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocFieldStringReference() throws CoreException {
search(
"javadocSearchedVar",
FIELD,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedVar] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocFieldReferenceWithJavadoc() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
IField field = type.getField("javadocSearchedVar");
setJavadocOptions();
search(
field,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedVar] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocFieldStringReferenceWithJavadoc() throws CoreException {
setJavadocOptions();
search(
"javadocSearchedVar",
FIELD,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedVar] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedVar] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocFieldStringReferenceWithJavadocDisabled() throws CoreException {
disableJavadocOptions();
search(
"javadocSearchedVar",
FIELD,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults("", this.resultCollector);
}
/*
* Test search of method references in javadoc comments
* ====================================================
*/
public void testJavadocMethodReference() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
IFunction method = type.getFunction("javadocSearchedMethod", null);
search(
method,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod()] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod()] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocMethodArgReference() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
IFunction method = type.getFunction("javadocSearchedMethod", new String[] { "QString;" });
search(
method,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod(int)] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod(String)] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocMethodStringReference() throws CoreException {
search(
"javadocSearchedMethod",
METHOD,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod()] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod(int)] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod()] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod(String)] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocMethodReferenceWithJavadoc() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
setJavadocOptions();
IFunction method = type.getFunction("javadocSearchedMethod", null);
search(
method,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod()] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod()] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocMethodArgReferenceWithJavadoc() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
setJavadocOptions();
IFunction method = type.getFunction("javadocSearchedMethod", new String[] { "QString;" });
search(
method,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod(int)] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod(String)] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocMethodStringReferenceWithJavadoc() throws CoreException {
setJavadocOptions();
search(
"javadocSearchedMethod",
METHOD,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod()] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [javadocSearchedMethod(int)] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod()] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [javadocSearchedMethod(String)] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testJavadocMethodArgReferenceWithJavadocDisabled() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
IFunction method = type.getFunction("javadocSearchedMethod", new String[] { "QString;" });
disableJavadocOptions();
search(
method,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults("", this.resultCollector);
}
/*
* Test search of constructor references in javadoc comments
* ====================================================
*/
public void testJavadocConstructorReference() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
IFunction method = type.getFunction("JavadocSearched", null);
search(
method,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched()] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched()] EXACT_MATCH INSIDE_JAVADOC"
);
}
public void testJavadocConstructorArgReference() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
IFunction method = type.getFunction("JavadocSearched", new String[] { "QString;" });
search(
method,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched()] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched(String)] EXACT_MATCH INSIDE_JAVADOC"
);
}
public void testJavadocConstructorStringReference() throws CoreException {
search(
"JavadocSearched",
CONSTRUCTOR,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched()] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched(int)] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched()] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched(String)] EXACT_MATCH INSIDE_JAVADOC"
);
}
public void testJavadocConstructorReferenceWithJavadoc() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
setJavadocOptions();
IFunction method = type.getFunction("JavadocSearched", null);
search(
method,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched()] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched()] EXACT_MATCH INSIDE_JAVADOC"
);
}
public void testJavadocConstructorArgReferenceWithJavadoc() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
setJavadocOptions();
IFunction method = type.getFunction("JavadocSearched", new String[] { "QString;" });
search(
method,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched()] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched(String)] EXACT_MATCH INSIDE_JAVADOC"
);
}
public void testJavadocConstructorStringReferenceWithJavadoc() throws CoreException {
setJavadocOptions();
search(
"JavadocSearched",
CONSTRUCTOR,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched()] POTENTIAL_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocInvalidRef.java void j1.JavadocInvalidRef.invalid() [JavadocSearched(int)] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched()] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j1/JavadocValidRef.java void j1.JavadocValidRef.valid() [JavadocSearched(String)] EXACT_MATCH INSIDE_JAVADOC"
);
}
public void testJavadocConstructorReferenceWithJavadocDisabled() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j1", "JavadocSearched.js").getType("JavadocSearched");
IFunction method = type.getFunction("JavadocSearched", null);
disableJavadocOptions();
search(
method,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults("");
}
private void setUpJavadocTypeParameterReferences() throws CoreException {
workingCopies = new IJavaScriptUnit[1];
workingCopies[0] = getWorkingCopy("/JavaSearch15/src/b81190/Test.js",
"package b81190;\n" +
"/**\n" +
" * @param <T1> First class type parameter\n" +
" * @param <T2> Second class type parameter\n" +
" * @param <T3> Last class type parameter\n" +
" */\n" +
"public class Test<T1, T2, T3> {\n" +
" /**\n" +
" * @param <U> Method type parameter\n" +
" * @param x Method parameter\n" +
" */\n" +
" <U> void generic(U x, T1 t) {\n" +
" Object o = x;\n" +
" o.toString();\n" +
" }\n" +
"}\n"
);
}
// Local variables references in Javadoc have been fixed while implementing 81190
public void testJavadocParameterReferences01() throws CoreException {
setUpJavadocTypeParameterReferences();
IJavaScriptSearchScope scope = SearchEngine.createJavaSearchScope(workingCopies);
ILocalVariable local = selectLocalVariable(workingCopies[0], "x", 2);
search(local, REFERENCES, scope);
assertSearchResults(
"src/b81190/Test.java void b81190.Test.generic(U, T1) [x] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/b81190/Test.java void b81190.Test.generic(U, T1) [x] EXACT_MATCH OUTSIDE_JAVADOC"
);
}
/**
* Test fix for bug 47909.
* @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47909">47909</a>
* @throws CoreException
*/
public void testBug47909() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j3", "Y.js").getType("Y");
setJavadocOptions();
IFunction method = type.getFunction("Y", new String[] { "I" });
search(
method,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"test47909.jar void j3.X.bar() EXACT_MATCH OUTSIDE_JAVADOC",
this.resultCollector);
}
/**
* Test fix for bug 47968.
* @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47968">47968</a>
* @throws CoreException
*/
public void testBug47968type() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j2", "Bug47968.js").getType("Bug47968");
setJavadocOptions();
search(
type,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
// These matches were not found before...
"src/j2/Bug47968s.java j2.Bug47968s [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java j2.Bug47968s [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java j2.Bug47968s [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java j2.Bug47968s [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" +
// ...end
"src/j2/Bug47968s.java j2.Bug47968s.y [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java j2.Bug47968s.y [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java j2.Bug47968s.y [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java j2.Bug47968s.y [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java j2.Bug47968s() [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java j2.Bug47968s() [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java j2.Bug47968s() [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java j2.Bug47968s() [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java void j2.Bug47968s.bar() [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java void j2.Bug47968s.bar() [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java void j2.Bug47968s.bar() [Bug47968] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java void j2.Bug47968s.bar() [Bug47968] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testBug47968field() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j2", "Bug47968.js").getType("Bug47968");
setJavadocOptions();
IField field = type.getField("x");
search(
field,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j2/Bug47968s.java j2.Bug47968s [x] EXACT_MATCH INSIDE_JAVADOC\n" + // This match was not found before...
"src/j2/Bug47968s.java j2.Bug47968s.y [x] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java j2.Bug47968s() [x] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java void j2.Bug47968s.bar() [x] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testBug47968method() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j2", "Bug47968.js").getType("Bug47968");
setJavadocOptions();
IFunction method = type.getFunction("foo", new String[] { "I" });
search(
method,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j2/Bug47968s.java j2.Bug47968s [foo(int)] EXACT_MATCH INSIDE_JAVADOC\n" + // This match was not found before...
"src/j2/Bug47968s.java j2.Bug47968s.y [foo(int)] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java j2.Bug47968s() [foo(int)] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java void j2.Bug47968s.bar() [foo(int)] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testBug47968constructor() throws CoreException {
IType type = getCompilationUnit("JavaSearch", "src", "j2", "Bug47968.js").getType("Bug47968");
setJavadocOptions();
IFunction method = type.getFunction("Bug47968", new String[] { "QString;" });
search(
method,
REFERENCES,
getJavaSearchScope(),
this.resultCollector);
assertSearchResults(
"src/j2/Bug47968s.java j2.Bug47968s [Bug47968(String)] EXACT_MATCH INSIDE_JAVADOC\n" + // This match was not found before...
"src/j2/Bug47968s.java j2.Bug47968s.y [Bug47968(String)] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java j2.Bug47968s() [Bug47968(String)] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j2/Bug47968s.java void j2.Bug47968s.bar() [Bug47968(String)] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
/**
* Test fix for bug 47209.
* @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47209">47209</a>
* @throws CoreException
*/
public void testBug47209type() throws CoreException {
setJavadocOptions();
IType type = getCompilationUnit("JavaSearch", "src", "j4", "TT47209.js").getType("TT47209");
search(type, REFERENCES, getJavaSearchScope());
type = getCompilationUnit("JavaSearch", "src", "j4", "TF47209.js").getType("TF47209");
search(type, REFERENCES, getJavaSearchScope());
type = getCompilationUnit("JavaSearch", "src", "j4", "TC47209.js").getType("TC47209");
search(type, REFERENCES, getJavaSearchScope());
type = getCompilationUnit("JavaSearch", "src", "j4", "TT47209.js").getType("TM47209");
search(type, REFERENCES, getJavaSearchScope());
assertSearchResults(
"src/j4/TT47209.java j4.TT47209 [TT47209] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j4/TF47209.java j4.TF47209.f47209 [TF47209] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j4/TC47209.java j4.TC47209(String) [TC47209] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j4/TM47209.java void j4.TM47209.m47209(int) [TM47209] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testBug47209field() throws CoreException {
setJavadocOptions();
IType type = getCompilationUnit("JavaSearch", "src", "j4", "FT47209.js").getType("FT47209");
search(type, REFERENCES, getJavaSearchScope());
type = getCompilationUnit("JavaSearch", "src", "j4", "FF47209.js").getType("FF47209");
search(type, REFERENCES, getJavaSearchScope());
type = getCompilationUnit("JavaSearch", "src", "j4", "FC47209.js").getType("FC47209");
search(type, REFERENCES, getJavaSearchScope());
type = getCompilationUnit("JavaSearch", "src", "j4", "FT47209.js").getType("FM47209");
search(type, REFERENCES, getJavaSearchScope());
assertSearchResults(
"src/j4/FT47209.java j4.FT47209 [FT47209] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j4/FF47209.java j4.FF47209.f47209 [FF47209] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j4/FC47209.java j4.FC47209(String) [FC47209] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j4/FM47209.java void j4.FM47209.m47209(int) [FM47209] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testBug47209method() throws CoreException {
setJavadocOptions();
IType type = getCompilationUnit("JavaSearch", "src", "j4", "MT47209.js").getType("MT47209");
search(type, REFERENCES, getJavaSearchScope());
type = getCompilationUnit("JavaSearch", "src", "j4", "MF47209.js").getType("MF47209");
search(type, REFERENCES, getJavaSearchScope());
type = getCompilationUnit("JavaSearch", "src", "j4", "MC47209.js").getType("MC47209");
search(type, REFERENCES, getJavaSearchScope());
type = getCompilationUnit("JavaSearch", "src", "j4", "MT47209.js").getType("MM47209");
search(type, REFERENCES, getJavaSearchScope());
assertSearchResults(
"src/j4/MT47209.java j4.MT47209 [MT47209] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j4/MF47209.java j4.MF47209.f47209 [MF47209] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j4/MC47209.java j4.MC47209(String) [MC47209] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j4/MM47209.java void j4.MM47209.m47209(int) [MM47209] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
public void testBug47209constructor() throws CoreException {
setJavadocOptions();
IType type = getCompilationUnit("JavaSearch", "src", "j4", "CT47209.js").getType("CT47209");
search(type, REFERENCES, getJavaSearchScope());
type = getCompilationUnit("JavaSearch", "src", "j4", "CF47209.js").getType("CF47209");
search(type, REFERENCES, getJavaSearchScope());
type = getCompilationUnit("JavaSearch", "src", "j4", "CC47209.js").getType("CC47209");
search(type, REFERENCES, getJavaSearchScope());
type = getCompilationUnit("JavaSearch", "src", "j4", "CT47209.js").getType("CM47209");
search(type, REFERENCES, getJavaSearchScope());
assertSearchResults(
"src/j4/CT47209.java j4.CT47209 [CT47209] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j4/CF47209.java j4.CF47209.f47209 [CF47209] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j4/CC47209.java j4.CC47209(String) [CC47209] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/j4/CM47209.java void j4.CM47209.m47209(int) [CM47209] EXACT_MATCH INSIDE_JAVADOC",
this.resultCollector);
}
/**
* Test fix for bug 49994.
* @see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=49994">49994</a>
* @throws CoreException
*/
public void testBug49994() throws CoreException {
setJavadocOptions();
IType type = getCompilationUnit("JavaSearch", "src", "j5", "Bug49994.js").getType("Bug49994");
search(type, REFERENCES, getJavaSearchScope());
assertSearchResults("", this.resultCollector);
}
public void testBug49994field() throws CoreException {
setJavadocOptions();
IType type = getCompilationUnit("JavaSearch", "src", "j5", "Bug49994.js").getType("Bug49994");
IField field = type.getField("field");
search(field, REFERENCES, getJavaSearchScope(), this.resultCollector);
assertSearchResults("src/j5/Bug49994.java void j5.Bug49994.foo() [field] EXACT_MATCH INSIDE_JAVADOC", this.resultCollector);
}
public void testBug49994method() throws CoreException {
setJavadocOptions();
IType type = getCompilationUnit("JavaSearch", "src", "j5", "Bug49994.js").getType("Bug49994");
IFunction method = type.getFunction("bar", new String[0]);
search(method, REFERENCES, getJavaSearchScope(), this.resultCollector);
assertSearchResults("src/j5/Bug49994.java void j5.Bug49994.foo() [bar()] EXACT_MATCH INSIDE_JAVADOC", this.resultCollector);
}
public void testBug49994constructor() throws CoreException {
setJavadocOptions();
IType type = getCompilationUnit("JavaSearch", "src", "j5", "Bug49994.js").getType("Bug49994");
IFunction method = type.getFunction("Bug49994", new String[] { "QString;" });
search(method, REFERENCES, getJavaSearchScope(), this.resultCollector);
assertSearchResults("src/j5/Bug49994.java void j5.Bug49994.foo() [Bug49994(String)] EXACT_MATCH INSIDE_JAVADOC", this.resultCollector);
}
/**
* Bug 83285: [javadoc] Javadoc reference to constructor of secondary type has no binding / not found by search
* @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=83285"
*/
public void testBug83285() throws CoreException {
resultCollector.showRule = true;
workingCopies = new IJavaScriptUnit[1];
workingCopies[0] = getWorkingCopy("/JavaSearch/src/b83285/A.js",
"package b83285;\n" +
"class A { }\n" +
"class C {\n" +
" /**\n" +
" * Link {@link #C(String)} was also wrongly warned...\n" +
" */\n" +
" private String fGerman;\n" +
" public C(String german) {\n" +
" fGerman = german;\n" +
" }\n" +
"}"
);
IFunction[] methods = workingCopies[0].getType("C").getFunctions();
assertEquals("Invalid number of methods", 1, methods.length);
search(methods[0], REFERENCES, getJavaSearchScope());
assertSearchResults(
"src/b83285/A.java b83285.C.fGerman [C(String)] EXACT_MATCH INSIDE_JAVADOC"
);
}
public void testBug83285a() throws CoreException {
resultCollector.showRule = true;
workingCopies = new IJavaScriptUnit[1];
workingCopies[0] = getWorkingCopy("/JavaSearch/src/b83285/A.js",
"package b83285;\n" +
"class A {\n" +
" A(char c) {}\n" +
"}\n" +
"class B {\n" +
" B(Exception ex) {}\n" +
" void foo() {} \n" +
" class C { \n" +
" /**\n" +
" * Link {@link #B(Exception)} OK\n" +
" * Link {@link #C(String)} OK\n" +
" * Link {@link #foo()} OK\n" +
" * Link {@link #bar()} OK\n" +
" */\n" +
" public C(String str) {}\n" +
" void bar() {}\n" +
" }\n" +
"}"
);
IFunction[] methods = workingCopies[0].getType("B").getFunctions();
assertEquals("Invalid number of methods", 2, methods.length);
for (int i=0,l=methods.length; i<l; i++) {
search(methods[i], REFERENCES, getJavaSearchScope());
}
assertSearchResults(
"src/b83285/A.java b83285.B$C(String) [B(Exception)] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/b83285/A.java b83285.B$C(String) [foo()] EXACT_MATCH INSIDE_JAVADOC"
);
}
public void testBug83285b() throws CoreException {
resultCollector.showRule = true;
workingCopies = new IJavaScriptUnit[1];
workingCopies[0] = getWorkingCopy("/JavaSearch/src/b83285/A.js",
"package b83285;\n" +
"class A {\n" +
" A(char c) {}\n" +
"}\n" +
"class B {\n" +
" B(Exception ex) {}\n" +
" void foo() {} \n" +
" class C { \n" +
" /**\n" +
" * Link {@link #B(Exception)} OK\n" +
" * Link {@link #C(String)} OK\n" +
" * Link {@link #foo()} OK\n" +
" * Link {@link #bar()} OK\n" +
" */\n" +
" public C(String str) {}\n" +
" void bar() {}\n" +
" }\n" +
"}"
);
IFunction[] methods = workingCopies[0].getType("B").getType("C").getFunctions();
assertEquals("Invalid number of methods", 2, methods.length);
for (int i=0,l=methods.length; i<l; i++) {
search(methods[i], REFERENCES, getJavaSearchScope());
}
assertSearchResults(
"src/b83285/A.java b83285.B$C(String) [C(String)] EXACT_MATCH INSIDE_JAVADOC\n" +
"src/b83285/A.java b83285.B$C(String) [bar()] EXACT_MATCH INSIDE_JAVADOC"
);
}
}