blob: 7ef0628cb896603c82d7a8bd222c2620bea66ee8 [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 junit.framework.Test;
import org.eclipse.wst.jsdt.core.IJavaScriptElement;
import org.eclipse.wst.jsdt.core.IJavaScriptUnit;
import org.eclipse.wst.jsdt.core.ILocalVariable;
import org.eclipse.wst.jsdt.core.JavaScriptModelException;
import org.eclipse.wst.jsdt.core.WorkingCopyOwner;
public class ResolveTests extends AbstractJavaModelTests {
IJavaScriptUnit wc = null;
WorkingCopyOwner owner = null;
static {
// TESTS_NAMES = new String[] { "testSecondaryTypes" };
}
public static Test suite() {
return buildModelTestSuite(ResolveTests.class);
}
public ResolveTests(String name) {
super(name);
}
public IJavaScriptUnit getWorkingCopy(String path, String source) throws JavaScriptModelException {
return super.getWorkingCopy(path, source, this.owner, null);
}
private IJavaScriptElement[] select(String path, String source, String selection) throws JavaScriptModelException {
this.wc = getWorkingCopy(path, source);
String str = wc.getSource();
int start = str.lastIndexOf(selection);
int length = selection.length();
return wc.codeSelect(start, length, this.owner);
}
public void setUpSuite() throws Exception {
super.setUpSuite();
setUpJavaProject("Resolve");
}
protected void setUp() throws Exception {
super.setUp();
this.owner = new WorkingCopyOwner(){};
}
public void tearDownSuite() throws Exception {
deleteProject("Resolve");
super.tearDownSuite();
}
protected void tearDown() throws Exception {
if(this.wc != null) {
this.wc.discardWorkingCopy();
}
super.tearDown();
}
/**
* Resolve default abstract method
* bugs http://dev.eclipse.org/bugs/show_bug.cgi?id=23594
*/
//public void testAbstractMethod() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveAbstractMethod.js");
// IJavaScriptElement[] elements = codeSelect(cu, "foo", "foo");
// assertElementsEqual(
// "Unexpected elements",
// "foo() [in SuperInterface [in SuperInterface.js [in <default> [in src [in Resolve]]]]]",
// elements
// );
//}
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=165900
public void testAmbiguousMethod1() throws JavaScriptModelException {
this.workingCopies = new IJavaScriptUnit[1];
this.workingCopies[0] = getWorkingCopy(
"/Resolve/src/test/Test.java",
"package test;\n"+
"public class Test {\n" +
" void foo(Test1 t) {}\n" +
" void foo(Test2 t) {}\n" +
" void bar(Object o) {\n" +
" foo(o);\n" +
" }\n" +
"}\n" +
"class Test1 {\n" +
"}\n" +
"class Test2 {\n" +
"}");
String str = this.workingCopies[0].getSource();
int start = str.lastIndexOf("foo(o)");
int length = "foo".length();
IJavaScriptElement[] elements = this.workingCopies[0].codeSelect(start, length, this.wcOwner);
assertElementsEqual(
"Unexpected elements",
"foo(Test1) [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]",
elements
);
}
/**
* Resolve an argument name
*/
public void testArgumentName1() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveArgumentName.js");
IJavaScriptElement[] elements = codeSelect(cu, "var1", "var1");
assertElementsEqual(
"Unexpected elements",
"var1 [in foo(p0, p1) [in ResolveArgumentName.js [in <default> [in src [in Resolve]]]]]",
elements
);
}
/**
* Resolve an argument name with base type
*/
public void testArgumentName2() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveArgumentName.js");
IJavaScriptElement[] elements = codeSelect(cu, "var2", "var2");
assertElementsEqual(
"Unexpected elements",
"var2 [in foo(p0, p1) [in ResolveArgumentName.js [in <default> [in src [in Resolve]]]]]",
elements
);
}
/**
* Resolve the field "length" of an array
*/
public void testArrayLength() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveArrayLength.js");
// IJavaScriptElement[] elements = codeSelect(cu, "length", "length");
// assertElementsEqual(
// "Unexpected elements",
// "",
// elements
// );
assertTrue("implement?",false);
}
/**
* Resolve an argument name inside catch statement
*/
public void testCatchArgumentName1() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveCatchArgumentName.js");
IJavaScriptElement[] elements = codeSelect(cu, "var1", "var1");
assertElementsEqual(
"Unexpected elements",
"var1 [in foo() [in ResolveCatchArgumentName.js [in <default> [in src [in Resolve]]]]]",
elements
);
}
/**
* Resolve an argument name inside catch statement with base type
*/
public void testCatchArgumentName2() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveCatchArgumentName.js");
IJavaScriptElement[] elements = codeSelect(cu, "var2", "var2");
assertElementsEqual(
"Unexpected elements",
"var2 [in foo() [in ResolveCatchArgumentName.js [in <default> [in src [in Resolve]]]]]",
elements
);
}
///**
// * bugs http://dev.eclipse.org/bugs/show_bug.cgi?id=24626
// */
//public void testCatchArgumentType1() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveCatchArgumentType1.js");
// IJavaScriptElement[] elements = codeSelect(cu, "Y1", "Y1");
// assertElementsEqual(
// "Unexpected elements",
// "Y1 [in X1 [in X1.js [in <default> [in src [in Resolve]]]]]",
// elements
// );
//}
///**
// * bugs http://dev.eclipse.org/bugs/show_bug.cgi?id=24626
// */
//public void testCatchArgumentType2() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveCatchArgumentType2.js");
// IJavaScriptElement[] elements = codeSelect(cu, "Y1", "Y1");
// assertElementsEqual(
// "Unexpected elements",
// "Y1 [in X1 [in X1.js [in <default> [in src [in Resolve]]]]]",
// elements
// );
//}
/**
* Resolve the class 'X' (field type).
*/
public void testClass1() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveClass1.js");
// IJavaScriptElement[] elements = codeSelect(cu, "X", "X");
// assertElementsEqual(
// "Unexpected elements",
// "X [in X.js [in p1 [in src [in Resolve]]]]",
// elements
// );
assertTrue("implement?",false);
}
/**
* Resolve the class 'X' (local variable type).
*/
public void testClass2() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveClass2.js");
// IJavaScriptElement[] elements = codeSelect(cu, "X", "X");
// assertElementsEqual(
// "Unexpected elements",
// "X [in X.js [in p1 [in src [in Resolve]]]]",
// elements
// );
assertTrue("implement?",false);
}
/**
* Resolve the class 'X'(array initializer type).
*/
public void testClass3() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveClass3.js");
// IJavaScriptElement[] elements = codeSelect(cu, "X[]{", "X");
// assertElementsEqual(
// "Unexpected elements",
// "X [in X.js [in p1 [in src [in Resolve]]]]",
// elements
// );
assertTrue("implement?",false);
}
/**
* Resolve the class 'X' (return type).
*/
public void testClass4() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveClass4.js");
// IJavaScriptElement[] elements = codeSelect(cu, "X", "X");
// assertElementsEqual(
// "Unexpected elements",
// "X [in X.js [in p1 [in src [in Resolve]]]]",
// elements
// );
assertTrue("implement?",false);
}
/**
* Resolve the class 'X' (method argument).
*/
public void testClass5() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveClass5.js");
// IJavaScriptElement[] elements = codeSelect(cu, "X", "X");
// assertElementsEqual(
// "Unexpected elements",
// "X [in X.js [in p1 [in src [in Resolve]]]]",
// elements
// );
assertTrue("implement?",false);
}
///**
// * Resolve the class 'SuperClass' (super class).
// */
//public void testClass6() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveClass6.js");
// IJavaScriptElement[] elements = codeSelect(cu, "X", "X");
// assertElementsEqual(
// "Unexpected elements",
// "X [in X.js [in p1 [in src [in Resolve]]]]",
// elements
// );
//}
/**
* Resolve a constructor
*/
public void testConstructor() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveConstructor.js");
// IJavaScriptElement[] elements = codeSelect(cu, "ResolveConstructor(\"", "ResolveConstructor");
// assertElementsEqual(
// "Unexpected elements",
// "ResolveConstructor(String) [in ResolveConstructor [in ResolveConstructor.js [in <default> [in src [in Resolve]]]]]",
// elements
// );
assertTrue("implement?",false);
}
///**
// * Resolve a constructor call
// */
//public void testConstructor2() throws JavaScriptModelException {
// IClassFile cf = getClassFile("Resolve", "class-folder", "", "ResolveConstructorCall.class");
// IJavaScriptElement[] elements = codeSelect(cf, "ResolveConstructorCall();", "ResolveConstructorCall");
// assertElementsEqual(
// "Unexpected elements",
// "ResolveConstructorCall() [in ResolveConstructorCall [in ResolveConstructorCall.class [in <default> [in class-folder [in Resolve]]]]]",
// elements
// );
//}
///**
// * Resolve constructor call
// */
//public void testConstructorCallOfMemberType() throws JavaScriptModelException {
// IClassFile cf = getClassFile("Resolve", "class-folder", "", "ResolveConstructorCallOfMemberType.class");
// IJavaScriptElement[] elements = codeSelect(cf, "Inner()", "Inner");
// assertElementsEqual(
// "Unexpected elements",
// "Inner [in ResolveConstructorCallOfMemberType$Inner.class [in <default> [in class-folder [in Resolve]]]]",
// elements
// );
//}
///**
// * Resolve constructor call
// */
////TODO(david) enable this test when https://bugs.eclipse.org/bugs/show_bug.cgi?id=108784 will be fixed.
//public void _testConstructorCallOfMemberType2() throws JavaScriptModelException {
// IClassFile cf = getClassFile("Resolve", "class-folder", "", "ResolveConstructorCallOfMemberType2.class");
// IJavaScriptElement[] elements = codeSelect(cf, "Inner();", "Inner");
// assertElementsEqual(
// "Unexpected elements",
// "Inner(ResolveConstructorCallOfMemberType2) [in Inner [in ResolveConstructorCallOfMemberType2$Inner.class [in <default> [in class-folder [in Resolve]]]]]",
// elements
// );
//}
/**
* Resolve constructor declaration
*/
public void testConstructorDeclaration() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveConstructorDeclaration.js");
// IJavaScriptElement[] elements = codeSelect(cu, "ResolveConstructorDeclaration(i", "ResolveConstructorDeclaration");
// assertElementsEqual(
// "Unexpected elements",
// "ResolveConstructorDeclaration(int) [in ResolveConstructorDeclaration [in ResolveConstructorDeclaration.js [in <default> [in src [in Resolve]]]]]",
// elements
// );
assertTrue("implement?",false);
}
///**
// * Resolve empty selection
// */
//public void testEmptySelection() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveTypeEmptySelection.js");
// IJavaScriptElement[] elements = codeSelect(cu, "ject", "");
// assertElementsEqual(
// "Unexpected elements",
// "Object [in Object.class [in java.lang [in "+ getExternalJCLPathString() + " [in Resolve]]]]",
// elements
// );
//}
///**
// * Resolve empty selection
// */
//public void testEmptySelection2() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveTypeEmptySelection2.js");
// IJavaScriptElement[] elements = codeSelect(cu, "Obj", "");
// assertElementsEqual(
// "Unexpected elements",
// "Object [in Object.class [in java.lang [in "+ getExternalJCLPathString() + " [in Resolve]]]]",
// elements
// );
//}
/**
* Resolve empty selection
*/
public void testEmptySelectionOnMethod() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveEmptySelectionOnMethod.js");
IJavaScriptElement[] elements = codeSelect(cu, "oo();", "");
assertElementsEqual(
"Unexpected elements",
"foo() [in ResolveEmptySelectionOnMethod.js [in <default> [in src [in Resolve]]]]",
elements
);
}
///**
// * Resolse explicit super constructor call
// */
//public void testExplicitSuperConstructorCall() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveExplicitSuperConstructorCall.js");
// IJavaScriptElement[] elements = codeSelect(cu, "super(", "super");
// assertElementsEqual(
// "Unexpected elements",
// "SuperClass(int) [in SuperClass [in SuperClass.js [in <default> [in src [in Resolve]]]]]",
// elements
// );
//}
///**
// * Resolse explicit this constructor call
// */
//public void testExplicitThisConstructorCall() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveExplicitThisConstructorCall.js");
// IJavaScriptElement[] elements = codeSelect(cu, "this(", "this");
// assertElementsEqual(
// "Unexpected elements",
// "ResolveExplicitThisConstructorCall() [in ResolveExplicitThisConstructorCall [in ResolveExplicitThisConstructorCall.js [in <default> [in src [in Resolve]]]]]",
// elements
// );
//}
/**
* Resolve the field "foo"
*/
public void testField() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveField.js");
IJavaScriptElement[] elements = codeSelect(cu, "foo =", "foo");
assertElementsEqual(
"Unexpected elements",
"foo [in ResolveField.js [in <default> [in src [in Resolve]]]]",
elements
);
}
/**
* Resolve the field "foo"
*/
public void testField0() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveField0.js");
// IJavaScriptElement[] elements = codeSelect(cu, "foo =", "foo");
// assertElementsEqual(
// "Unexpected elements",
// "foo [in ResolveField [in ResolveField.js [in <default> [in src [in Resolve]]]]]",
// elements
// );
assertTrue("implement",false);
}
/**
* Resolve field declaration
*/
public void testFieldDeclaration() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveFieldDeclaration.js");
IJavaScriptElement[] elements = codeSelect(cu, "foo", "foo");
assertElementsEqual(
"Unexpected elements",
"foo [in ResolveFieldDeclaration.js [in <default> [in src [in Resolve]]]]",
elements
);
}
///**
// * Resolve in import
// */
//public void testImport() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveImport.js");
// IJavaScriptElement[] elements = codeSelect(cu, "ImportedClass", "ImportedClass");
// assertElementsEqual(
// "Unexpected elements",
// "ImportedClass [in ImportedClass.js [in a.b [in src [in Resolve]]]]",
// elements
// );
//}
///**
// * Tests code resolve on a class file without attached source.
// */
//public void testInClassFileWithoutSource() throws JavaScriptModelException {
// IClassFile cu = getClassFile("Resolve", "p4.jar", "p4", "X.class");
// String selection = "Object";
// int start = 34;
// int length = selection.length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
// assertElementsEqual(
// "Unexpected elements",
// "",
// elements
// );
//}
///**
// * Tests code resolve on a class file with attached source.
// */
//public void testInClassFileWithSource() throws JavaScriptModelException {
// IClassFile cf = getClassFile("Resolve", "p3.jar", "p3", "X.class");
// IJavaScriptElement[] elements = codeSelect(cf, "Object", "Object");
// assertElementsEqual(
// "Unexpected elements",
// "Object [in Object.class [in java.lang [in "+ getExternalJCLPathString() + " [in Resolve]]]]",
// elements
// );
//}
///**
// * bugs http://dev.eclipse.org/bugs/show_bug.cgi?id=25687
// */
//public void testInnerClassAsParamater() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveInnerClassAsParamater.js");
// IJavaScriptElement[] elements = codeSelect(cu, "foo(i)", "foo");
// assertElementsEqual(
// "Unexpected elements",
// "foo(Inner) [in ResolveInnerClassAsParamater [in ResolveInnerClassAsParamater.js [in <default> [in src [in Resolve]]]]]",
// elements
// );
//}
///**
// * Resolve the interface "Y"
// */
//public void testInterface() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveInterface.js");
// IJavaScriptElement[] elements = codeSelect(cu, "Y", "Y");
// assertElementsEqual(
// "Unexpected elements",
// "Y [in Y.js [in p1 [in src [in Resolve]]]]",
// elements
// );
//}
/**
* Attempt to resolve outside of the range of the compilation unit.
*/
public void testInvalidResolve() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "p1", "X.js");
try {
cu.codeSelect(-1, 10);
} catch (JavaScriptModelException e) {
return;
}
assertTrue("Exception should have been thrown for out of bounds resolution", false);
}
///**
// * Resolve the local class 'Y' (field type).
// */
//public void testLocalClass1() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalClass1.js");
// IJavaScriptElement[] elements = codeSelect(cu, "Y[]", "Y");
// assertElementsEqual(
// "Unexpected elements",
// "Y [in foo() [in ResolveLocalClass1 [in ResolveLocalClass1.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
///**
// * Resolve the local class 'Y' (local variable type).
// */
//public void testLocalClass2() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalClass2.js");
// IJavaScriptElement[] elements = codeSelect(cu, "Y y", "Y");
// assertElementsEqual(
// "Unexpected elements",
// "Y [in foo() [in ResolveLocalClass2 [in ResolveLocalClass2.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
///**
// * Resolve the local class 'Y'(array initializer type).
// */
//public void testLocalClass3() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalClass3.js");
// IJavaScriptElement[] elements = codeSelect(cu, "Y[]{", "Y");
// assertElementsEqual(
// "Unexpected elements",
// "Y [in foo() [in ResolveLocalClass3 [in ResolveLocalClass3.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
/////**
//// * Resolve the local class 'Y' (return type).
//// */
////public void testLocalClass4() throws JavaScriptModelException {
//// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalClass4.js");
//// IJavaScriptElement[] elements = codeSelect(cu, "Y bar()", "Y");
//// assertElementsEqual(
//// "Unexpected elements",
//// "Y [in foo() [in ResolveLocalClass4 [in ResolveLocalClass4.js [in <default> [in src [in Resolve]]]]]]",
//// elements
//// );
////}
/////**
//// * Resolve the local class 'Y' (method argument).
//// */
////public void testLocalClass5() throws JavaScriptModelException {
//// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalClass5.js");
//// IJavaScriptElement[] elements = codeSelect(cu, "Y y", "Y");
//// assertElementsEqual(
//// "Unexpected elements",
//// "Y [in foo() [in ResolveLocalClass5 [in ResolveLocalClass5.js [in <default> [in src [in Resolve]]]]]]",
//// elements
//// );
////}
///**
// * Resolve the local class 'SuperClass' (super class).
// */
//public void testLocalClass6() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalClass6.js");
// IJavaScriptElement[] elements = codeSelect(cu, "Y { // superclass", "Y");
// assertElementsEqual(
// "Unexpected elements",
// "Y [in foo() [in ResolveLocalClass6 [in ResolveLocalClass6.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
///*
// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68710
// */
//public void testLocalClass7() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalClass7.js");
// IJavaScriptElement[] elements = codeSelect(cu, "X var", "X");
// assertElementsEqual(
// "Unexpected elements",
// "X [in <anonymous #2> [in foo2() [in ResolveLocalClass7 [in ResolveLocalClass7.js [in <default> [in src [in Resolve]]]]]]]",
// elements
// );
//}
///*
// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=126227
// */
//public void testLocalClass8() throws JavaScriptModelException {
// // select the default constructor of a local class
// IJavaScriptElement[] elements = select(
// "/Resolve/src/test/Test.js",
// "package test;\n" +
// "public class Test\n" +
// " void foo() {\n" +
// " class LocalClass {}\n" +
// " Object o = new LocalClass();\n" +
// " }\n" +
// "}\n",
// "LocalClass");
//
// assertElementsEqual(
// "Unexpected elements",
// "LocalClass [in foo() [in Test [in [Working copy] Test.js [in test [in src [in Resolve]]]]]]",
// elements
// );
//}
///*
// * Resolve the local class in a class file and ensure it is a binary type.
// * (regression test for bug 131459 Java model returns stale resolved source type for binary type
// */
//public void testLocalClass9() throws CoreException, IOException {
// try {
// IJavaScriptProject project = createJavaProject("P");
// addLibrary(
// project,
// "lib.jar",
// "libsrc.zip",
// new String[] {
// "X.js",
// "public class X {\n" +
// " void foo() {\n" +
// " class Y {\n" +
// " }\n" +
// " }\n" +
// "}"
// },
// "1.4");
// IClassFile classFile = getClassFile("P", "/P/lib.jar", "", "X.class");
// IJavaScriptElement[] elements = codeSelect(classFile, "Y", "Y");
// assertTrue("Should be a binary type", ((IType) elements[0]).isBinary());
// } finally {
// deleteProject("P");
// }
//}
/////**
//// * Resolve a local constructor
//// */
////public void testLocalConstructor() throws JavaScriptModelException {
//// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalConstructor.js");
//// IJavaScriptElement[] elements = codeSelect(cu, "Y(\"", "Y");
//// assertElementsEqual(
//// "Unexpected elements",
//// "Y(String) [in Y [in foo() [in ResolveLocalConstructor [in ResolveLocalConstructor.js [in <default> [in src [in Resolve]]]]]]]",
//// elements
//// );
////}
/////**
//// * Resolve local constructor declaration
//// */
////public void testLocalConstructorDeclaration() throws JavaScriptModelException {
//// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalConstructorDeclaration.js");
//// IJavaScriptElement[] elements = codeSelect(cu, "Y(i", "Y");
//// assertElementsEqual(
//// "Unexpected elements",
//// "Y(int) [in Y [in foo() [in ResolveLocalConstructorDeclaration [in ResolveLocalConstructorDeclaration.js [in <default> [in src [in Resolve]]]]]]]",
//// elements
//// );
////}
///**
// * Resolve the local field "fred"
// */
//public void testLocalField() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalField.js");
// IJavaScriptElement[] elements = codeSelect(cu, "fred =", "fred");
// assertElementsEqual(
// "Unexpected elements",
// "fred [in Y [in foo() [in ResolveLocalField [in ResolveLocalField.js [in <default> [in src [in Resolve]]]]]]]",
// elements
// );
//}
///*
// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68710
// */
//public void testLocalField2() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalField2.js");
// IJavaScriptElement[] elements = codeSelect(cu, "var =", "var");
// assertElementsEqual(
// "Unexpected elements",
// "var [in <anonymous #2> [in foo2() [in ResolveLocalField2 [in ResolveLocalField2.js [in <default> [in src [in Resolve]]]]]]]",
// elements
// );
//}
///**
// * Resolve local field declaration
// */
//public void testLocalFieldDeclaration() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalFieldDeclaration.js");
// IJavaScriptElement[] elements = codeSelect(cu, "fred", "fred");
// assertElementsEqual(
// "Unexpected elements",
// "fred [in Y [in foo() [in ResolveLocalFieldDeclaration [in ResolveLocalFieldDeclaration.js [in <default> [in src [in Resolve]]]]]]]",
// elements
// );
//}
///**
// * Resolve local member type declaration
// */
//public void testLocalMemberTypeDeclaration() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalMemberTypeDeclaration1.js");
// IJavaScriptElement[] elements = codeSelect(cu, "Member {", "Member");
// assertElementsEqual(
// "Unexpected elements",
// "Member [in Y [in foo() [in ResolveLocalMemberTypeDeclaration1 [in ResolveLocalMemberTypeDeclaration1.js [in <default> [in src [in Resolve]]]]]]]",
// elements
// );
//}
///**
// * Resolve member type declaration
// */
//public void testLocalMemberTypeDeclaration2() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalMemberTypeDeclaration2.js");
// IJavaScriptElement[] elements = codeSelect(cu, "MemberOfMember", "MemberOfMember");
// assertElementsEqual(
// "Unexpected elements",
// "MemberOfMember [in Member [in Y [in foo() [in ResolveLocalMemberTypeDeclaration2 [in ResolveLocalMemberTypeDeclaration2.js [in <default> [in src [in Resolve]]]]]]]]",
// elements
// );
//}
///**
// * Resolve the method "foo"
// */
//public void testLocalMethod() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalMethod.js");
// IJavaScriptElement[] elements = codeSelect(cu, "foo(\"", "foo");
// assertElementsEqual(
// "Unexpected elements",
// "foo(String) [in Y [in bar() [in ResolveLocalMethod [in ResolveLocalMethod.js [in <default> [in src [in Resolve]]]]]]]",
// elements
// );
//}
///*
// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=68710
// */
//public void testLocalMethod2() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalMethod2.js");
// IJavaScriptElement[] elements = codeSelect(cu, "bar();", "bar");
// assertElementsEqual(
// "Unexpected elements",
// "bar() [in <anonymous #2> [in foo2() [in ResolveLocalMethod2 [in ResolveLocalMethod2.js [in <default> [in src [in Resolve]]]]]]]",
// elements
// );
//}
///**
// * Resolve method declaration
// */
//public void testLocalMethodDeclaration() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalMethodDeclaration.js");
// IJavaScriptElement[] elements = codeSelect(cu, "foo(i", "foo");
// assertElementsEqual(
// "Unexpected elements",
// "foo(int) [in Y [in bar() [in ResolveLocalMethodDeclaration [in ResolveLocalMethodDeclaration.js [in <default> [in src [in Resolve]]]]]]]",
// elements
// );
//}
/**
* Resolve a local declaration name
*/
public void testLocalName1() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalName.js");
IJavaScriptElement[] elements = codeSelect(cu, "var1 = new Object();", "var1");
assertElementsEqual(
"Unexpected elements",
"var1 [in foo() [in ResolveLocalName.js [in <default> [in src [in Resolve]]]]]",
elements
);
}
/**
* Resolve a local declaration name with base type
*/
public void testLocalName2() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalName.js");
IJavaScriptElement[] elements = codeSelect(cu, "var2 = 1;", "var2");
assertElementsEqual(
"Unexpected elements",
"var2 [in foo() [in ResolveLocalName.js [in <default> [in src [in Resolve]]]]]",
elements
);
}
/**
* Resolve a local variable reference
*/
public void testLocalName3() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalName.js");
IJavaScriptElement[] elements = codeSelect(cu, "var1.toString();", "var1");
assertElementsEqual(
"Unexpected elements",
"var1 [in foo() [in ResolveLocalName.js [in <default> [in src [in Resolve]]]]]",
elements
);
}
/**
* Resolve a local variable reference
*/
public void testLocalName4() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalName.js");
IJavaScriptElement[] elements = codeSelect(cu, "var2++;", "var2");
assertElementsEqual(
"Unexpected elements",
"var2 [in foo() [in ResolveLocalName.js [in <default> [in src [in Resolve]]]]]",
elements
);
}
/**
* Resolve a local variable reference
*/
public void testLocalName5() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalName.js");
IJavaScriptElement[] elements = codeSelect(cu, "var3.hashCode();", "var3");
assertElementsEqual(
"Unexpected elements",
"var3 [in foo() [in ResolveLocalName.js [in <default> [in src [in Resolve]]]]]",
elements
);
}
/**
* Resolve a local variable reference
*/
public void testLocalName6() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalName.js");
IJavaScriptElement[] elements = codeSelect(cu, "var3.toString();", "var3");
assertElementsEqual(
"Unexpected elements",
"var3 [in foo() [in ResolveLocalName.js [in <default> [in src [in Resolve]]]]]",
elements
);
}
/**
* Resolve a local variable reference
*/
public void testLocalName7() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalName.js");
IJavaScriptElement[] elements = codeSelect(cu, "var4;", "var4");
assertElementsEqual(
"Unexpected elements",
"var4 [in foo() [in ResolveLocalName.js [in <default> [in src [in Resolve]]]]]",
elements
);
}
/*
* Resolve a local reference and ensure it returns true when asked isStructureKnown().
* (regression test for bug 48422 Calling isStructureKnown() on ILocalVaraible throws JavaModelExceptions)
*/
public void testLocalVarIsStructureKnown() throws JavaScriptModelException {
ILocalVariable localVar = getLocalVariable("/Resolve/src/ResolveLocalName.js", "var1 = new Object();", "var1");
assertTrue(localVar.isStructureKnown());
}
/*
* Resolve a local reference and ensure its type signature is correct.
*/
public void testLocalVarTypeSignature1() throws JavaScriptModelException {
ILocalVariable localVar = getLocalVariable("/Resolve/src/ResolveLocalName.js", "var1 = new Object();", "var1");
assertEquals(
"Unexpected type signature",
"QObject;",
localVar.getTypeSignature());
}
/*
* Resolve a local reference and ensure its type signature is correct.
*/
public void testLocalVarTypeSignature2() throws JavaScriptModelException {
ILocalVariable localVar = getLocalVariable("/Resolve/src/ResolveLocalName.js", "var2 = 1;", "var2");
assertEquals(
"Unexpected type signature",
"I",
localVar.getTypeSignature());
}
///**
// * Resolve member type declaration
// */
//public void testMemberTypeDeclaration() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMemberTypeDeclaration1.js");
// IJavaScriptElement[] elements = codeSelect(cu, "MemberInterface", "MemberInterface");
// assertElementsEqual(
// "Unexpected elements",
// "MemberInterface [in ResolveMemberTypeDeclaration1 [in ResolveMemberTypeDeclaration1.js [in <default> [in src [in Resolve]]]]]",
// elements
// );
//}
///**
// * Resolve member type declaration located in default package
// */
//public void testMemberTypeDeclaration2() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMemberTypeDeclaration2.js");
// IJavaScriptElement[] elements = codeSelect(cu, "MemberOfMember", "MemberOfMember");
// assertElementsEqual(
// "Unexpected elements",
// "MemberOfMember [in Member [in ResolveMemberTypeDeclaration2 [in ResolveMemberTypeDeclaration2.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
/**
* Try to resolve message send on base type.
*/
public void testMessageSendOnBaseType() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMessageSendOnBaseType.js");
IJavaScriptElement[] elements = codeSelect(cu, "hello", "hello");
assertElementsEqual(
"Unexpected elements",
"",
elements
);
}
/**
* Resolve the method "foo"
*/
public void testMethod() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMethod.js");
IJavaScriptElement[] elements = codeSelect(cu, "foo(\"", "foo");
assertElementsEqual(
"Unexpected elements",
"foo(p0) [in ResolveMethod.js [in <default> [in src [in Resolve]]]]",
elements
);
}
/**
* Resolve method declaration
*/
public void testMethodDeclaration() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMethodDeclaration.js");
IJavaScriptElement[] elements = codeSelect(cu, "foo(i", "foo");
assertElementsEqual(
"Unexpected elements",
"foo(p0) [in ResolveMethodDeclaration.js [in <default> [in src [in Resolve]]]]",
elements
);
}
///**
// * Resolve method declaration in anonymous
// * (regression test for bug 45655 exception while editing java file)
// */
//public void testMethodDeclarationInAnonymous() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMethodDeclarationInAnonymous.js");
// IJavaScriptElement[] elements = codeSelect(cu, "bar()", "bar");
// assertElementsEqual(
// "Unexpected elements",
// "bar() [in <anonymous #1> [in foo() [in ResolveMethodDeclarationInAnonymous [in ResolveMethodDeclarationInAnonymous.js [in <default> [in src [in Resolve]]]]]]]",
// elements
// );
//}
///**
// * Resolve method declaration in anonymous
// * (regression test for bug 45786 No selection on method declaration in field initializer)
// */
//public void testMethodDeclarationInAnonymous2() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMethodDeclarationInAnonymous2.js");
// IJavaScriptElement[] elements = codeSelect(cu, "foo()", "foo");
// assertElementsEqual(
// "Unexpected elements",
// "foo() [in <anonymous #1> [in field [in ResolveMethodDeclarationInAnonymous2 [in ResolveMethodDeclarationInAnonymous2.js [in <default> [in src [in Resolve]]]]]]]",
// elements
// );
//}
///**
// * Resolve method declaration in anonymous
// * (regression test for bug 47795 NPE selecting method in anonymous 2 level deep)
// */
//public void testMethodDeclarationInAnonymous3() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMethodDeclarationInAnonymous3.js");
// IJavaScriptElement[] elements = codeSelect(cu, "selectMe(", "selectMe");
// assertElementsEqual(
// "Unexpected elements",
// "selectMe() [in <anonymous #1> [in bar() [in <anonymous #1> [in foo() [in ResolveMethodDeclarationInAnonymous3 [in ResolveMethodDeclarationInAnonymous3.js [in <default> [in src [in Resolve]]]]]]]]]",
// elements
// );
//}
///**
// * Resolve method declaration in anonymous
// * (regression test for bug 47214 Cannot open declaration on a selected method of an anonymous class)
// */
//public void testMethodDeclarationInAnonymous4() throws JavaScriptModelException {
// IClassFile classFile = getClassFile("Resolve", "test47214.jar", "p", "X.class");
// IJavaScriptElement[] elements = codeSelect(classFile, "bar(", "bar");
// assertElementsEqual(
// "Unexpected elements",
// "bar() [in <anonymous> [in X$1.class [in p [in test47214.jar [in Resolve]]]]]",
// elements
// );
//}
/**
* Resolve the method
*/
public void testMethodWithIncorrectParameter() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMethodWithIncorrectParameter.js");
IJavaScriptElement[] elements = codeSelect(cu, "foo(\"String", "foo");
assertElementsEqual(
"Unexpected elements",
"foo(p0) [in ResolveMethodWithIncorrectParameter.js [in <default> [in src [in Resolve]]]]",
elements
);
}
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=126160
public void testMethodWithIncorrectParameter2() throws JavaScriptModelException {
// IJavaScriptElement[] elements = select(
// "/Resolve/src/test/Test.js",
// "package test;\n" +
// "public class Test\n" +
// " void called(String arg) {\n" +
// " }\n" +
// " void foo() {\n" +
// " new Object() {\n" +
// " void bar() {\n" +
// " called(zzz);\n" +
// " }\n" +
// " };\n" +
// " }\n" +
// "}\n",
// "called");
//
// assertElementsEqual(
// "Unexpected elements",
// "called(String) [in Test [in [Working copy] Test.js [in test [in src [in Resolve]]]]]",
// elements
// );
assertTrue("implement",false);
}
///**
// * Resolve method in inner type.
// */
//public void testMethodWithInnerTypeInClassFile() throws JavaScriptModelException {
// IClassFile cf = getClassFile("Resolve", "zzz.jar", "", "MyClass$Inner.class");
// IJavaScriptElement[] elements = codeSelect(cf, "test", "test");
// assertElementsEqual(
// "Unexpected elements",
// "test() [in MyClass [in MyClass.class [in <default> [in zzz.jar [in Resolve]]]]]",
// elements
// );
//}
///**
// * bug 33785
// */
//public void testMethodWithInnerTypeInClassFile2() throws JavaScriptModelException {
// IClassFile cf = getClassFile("Resolve", "zzz.jar", "", "MyClass2$Inner.class");
// IJavaScriptElement[] elements = codeSelect(cf, "method", "method");
// assertElementsEqual(
// "Unexpected elements",
// "method(MyClass2.Inner[]) [in MyClass2 [in MyClass2.class [in <default> [in zzz.jar [in Resolve]]]]]",
// elements
// );
//
// IFunction method = (IFunction) elements[0];
// ISourceRange sourceRange = method.getSourceRange();
// String methodString = "void method(MyClass2.Inner[] arg){}";
// int o = cf.getSource().indexOf(methodString);
// int l = methodString.length();
// assertEquals("Unexpected offset", o, sourceRange.getOffset());
// assertEquals("Unexpected length", l, sourceRange.getLength());
//}
/**
* Tries to resolve the type "lang. \u0053tring" which doesn't exist.
*/
public void testNegativeResolveUnicode() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveUnicode.js");
// IJavaScriptElement[] elements = codeSelect(cu, "lang.\\u0053tring", "lang.\\u0053tring");
// assertElementsEqual(
// "Unexpected elements",
// "String [in String.class [in java.lang [in "+ getExternalJCLPathString() + " [in Resolve]]]]",
// elements
// );
assertTrue("implement",false);
}
///**
// * Resolve the package "java.lang"
// */
//public void testPackage() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolvePackage.js");
// IJavaScriptElement[] elements = codeSelect(cu, "lang", "lang");
// assertElementsEqual(
// "Unexpected elements",
// "java.lang [in " + getExternalJCLPathString() + " [in Resolve]]",
// elements
// );
//}
/**
* Try to resolve the qualified type "lang.Object"
*/
public void testPartiallyQualifiedType() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolvePartiallyQualifiedType.js");
// IJavaScriptElement[] elements = codeSelect(cu, "lang.Object", "lang.Object");
// assertElementsEqual(
// "Unexpected elements",
// "Object [in Object.class [in java.lang [in "+ getExternalJCLPathString() + " [in Resolve]]]]",
// elements
// );
assertTrue("implement",false);
}
///**
// * Resolve the qualified type "java.lang.Object"
// */
//public void testQualifiedType() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveQualifiedType.js");
// IJavaScriptElement[] elements = codeSelect(cu, "java.lang.Object", "java.lang.Object");
// assertElementsEqual(
// "Unexpected elements",
// "Object [in Object.class [in java.lang [in "+ getExternalJCLPathString() + " [in Resolve]]]]",
// elements
// );
//}
///**
// * bugs http://dev.eclipse.org/bugs/show_bug.cgi?id=25888
// */
//public void testStaticClassConstructor() throws JavaScriptModelException {
// IClassFile cu = getClassFile("Resolve", "test25888.jar", "", "ResolveStaticClassConstructor.class");
// IJavaScriptElement[] elements = codeSelect(cu, "StaticInnerClass();", "StaticInnerClass");
// assertElementsEqual(
// "Unexpected elements",
// "StaticInnerClass() [in StaticInnerClass [in ResolveStaticClassConstructor$StaticInnerClass.class [in <default> [in test25888.jar [in Resolve]]]]]",
// elements
// );
//}
/**
* Resolve type declaration
*/
public void testTypeDeclaration() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveTypeDeclaration.js");
// IJavaScriptElement[] elements = codeSelect(cu, "OtherType", "OtherType");
// assertElementsEqual(
// "Unexpected elements",
// "OtherType [in ResolveTypeDeclaration.js [in <default> [in src [in Resolve]]]]",
// elements
// );
//
assertTrue("implement",false);
}
/**
* Resolve type in comment.
*/
public void testTypeInComment() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveTypeInComment.js");
// IJavaScriptElement[] elements = codeSelect(cu, "X */", "X");
// assertElementsEqual(
// "Unexpected elements",
// "X [in X.js [in p2 [in src [in Resolve]]]]",
// elements
// );
assertTrue("implement",false);
}
/**
* Resolve the type "java.lang. \u0053ring"
*/
public void testUnicode() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveUnicode.js");
// IJavaScriptElement[] elements = codeSelect(cu, "java.lang.\\u0053tring", "java.lang.\\u0053tring");
// assertElementsEqual(
// "Unexpected elements",
// "String [in String.class [in java.lang [in "+ getExternalJCLPathString() + " [in Resolve]]]]",
// elements
// );
//
assertTrue("implement",false);
}
///**
// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=47177
// */
//public void testLocalNameForClassFile() throws JavaScriptModelException {
// IClassFile cu = getClassFile("Resolve", "test47177.jar", "", "ResolveLocalName.class");
//
// //Resolve a local declaration name
// IJavaScriptElement[] elements = codeSelect(cu, "var1 = new Object();", "var1");
// assertElementsEqual(
// "Unexpected elements",
// "var1 [in foo() [in ResolveLocalName [in ResolveLocalName.class [in <default> [in test47177.jar [in Resolve]]]]]]",
// elements
// );
//
// // Resolve a local declaration name with base type
// elements = codeSelect(cu, "var2 = 1;", "var2");
// assertElementsEqual(
// "Unexpected elements",
// "var2 [in foo() [in ResolveLocalName [in ResolveLocalName.class [in <default> [in test47177.jar [in Resolve]]]]]]",
// elements
// );
//
// // Resolve a local variable reference
// elements = codeSelect(cu, "var1.toString();", "var1");
// assertElementsEqual(
// "Unexpected elements",
// "var1 [in foo() [in ResolveLocalName [in ResolveLocalName.class [in <default> [in test47177.jar [in Resolve]]]]]]",
// elements
// );
//
// // Resolve a local variable reference
// elements = codeSelect(cu, "var2++;", "var2");
// assertElementsEqual(
// "Unexpected elements",
// "var2 [in foo() [in ResolveLocalName [in ResolveLocalName.class [in <default> [in test47177.jar [in Resolve]]]]]]",
// elements
// );
//
// // Resolve a local variable reference
// elements = codeSelect(cu, "var3.hashCode();", "var3");
// assertElementsEqual(
// "Unexpected elements",
// "var3 [in foo() [in ResolveLocalName [in ResolveLocalName.class [in <default> [in test47177.jar [in Resolve]]]]]]",
// elements
// );
//
// // Resolve a local variable reference
// elements = codeSelect(cu, "var3.toString();", "var3");
// assertElementsEqual(
// "Unexpected elements",
// "var3 [in foo() [in ResolveLocalName [in ResolveLocalName.class [in <default> [in test47177.jar [in Resolve]]]]]]",
// elements
// );
//
// // Resolve a local variable reference
// elements = codeSelect(cu, "var4;", "var4");
// assertElementsEqual(
// "Unexpected elements",
// "var4 [in foo() [in ResolveLocalName [in ResolveLocalName.class [in <default> [in test47177.jar [in Resolve]]]]]]",
// elements
// );
//}
///**
// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=42365
// */
//public void testMethodDeclarationInInterface() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveMethodDeclarationInInterface.js");
// IJavaScriptElement[] elements = codeSelect(cu, "foo", "foo");
// assertElementsEqual(
// "Unexpected elements",
// "foo() [in QI [in QI.class [in <default> [in jj.jar [in Resolve]]]]]",
// elements
// );
//}
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=142303
//public void testMethodInAnonymous1() throws JavaScriptModelException {
// this.workingCopies = new IJavaScriptUnit[2];
// this.workingCopies[0] = getWorkingCopy(
// "/Resolve/src/Test2.java",
// "public class Test2 {\n" +
// "\n" +
// " private void foo(boolean v) {\n" +
// " }\n" +
// "\n" +
// " void function(boolean v) {\n" +
// " new Object() {\n" +
// " public void run() {\n" +
// " if (false) {\n" +
// " } else {\n" +
// " foo(false); // <-- right-click, open declaration fails\n" +
// " }\n" +
// " }\n" +
// " };\n" +
// " new Object() { public void run() { } };\n" +
// " if (v) {}\n" +
// " }\n" +
// "}");
//
// String str = this.workingCopies[0].getSource();
// String selectAt = "foo(false)";
// String selection = "foo";
// int start = str.indexOf(selectAt);
// int length = selection.length();
// IJavaScriptElement[] elements = this.workingCopies[0].codeSelect(start, length, this.wcOwner);
//
// assertElementsEqual(
// "Unexpected elements",
// "foo(boolean) [in Test2 [in [Working copy] Test2.java [in <default> [in src [in Resolve]]]]]",
// elements);
//}
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
public void testDuplicateLocals1() throws JavaScriptModelException {
this.workingCopies = new IJavaScriptUnit[2];
this.workingCopies[0] = getWorkingCopy(
"/Resolve/src/test/Test.java",
"package test;"+
"public class Test {\n" +
" void foo() {\n" +
" int x = 0;\n" +
" TestString x = null;\n" +
" x.bar;\n" +
" }\n" +
"}");
this.workingCopies[1] = getWorkingCopy(
"/Resolve/src/test/TestString.java",
"package test;"+
"public class TestString {\n" +
" public void bar() {\n" +
" }\n" +
"}");
String str = this.workingCopies[0].getSource();
int start = str.lastIndexOf("x");
int length = "x".length();
IJavaScriptElement[] elements = this.workingCopies[0].codeSelect(start, length, this.wcOwner);
assertElementsEqual(
"Unexpected elements",
"x [in foo() [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]]",
elements
);
assertEquals(
"Unexpected type",
"QTestString;",
((ILocalVariable)elements[0]).getTypeSignature());
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
public void testDuplicateLocals2() throws JavaScriptModelException {
this.workingCopies = new IJavaScriptUnit[2];
this.workingCopies[0] = getWorkingCopy(
"/Resolve/src/test/Test.java",
"package test;"+
"public class Test {\n" +
" public static void main(String[] args) {\n" +
" int x = 2;\n" +
" try {\n" +
" \n" +
" } catch(TestException x) {\n" +
" x.bar();\n" +
" } catch(Exception e) {\n" +
" }\n" +
" }\n" +
"}");
this.workingCopies[1] = getWorkingCopy(
"/Resolve/src/test/TestException.java",
"package test;"+
"public class TestException extends Exception {\n" +
" public void bar() {\n" +
" }\n" +
"}");
String str = this.workingCopies[0].getSource();
int start = str.lastIndexOf("x.");
int length = "x".length();
IJavaScriptElement[] elements = this.workingCopies[0].codeSelect(start, length, this.wcOwner);
assertElementsEqual(
"Unexpected elements",
"x [in main(String[]) [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]]",
elements
);
assertEquals(
"Unexpected type",
"QTestException;",
((ILocalVariable)elements[0]).getTypeSignature());
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
public void testDuplicateLocals3() throws JavaScriptModelException {
this.workingCopies = new IJavaScriptUnit[2];
this.workingCopies[0] = getWorkingCopy(
"/Resolve/src/test/Test.java",
"package test;"+
"public class Test {\n" +
" public static void main(String[] args) {\n" +
" int x = x = 0;\n" +
" if (true) {\n" +
" TestString x = x = null;\n" +
" }\n" +
" }\n" +
"}");
this.workingCopies[1] = getWorkingCopy(
"/Resolve/src/test/TestString.java",
"package test;"+
"public class TestString {\n" +
" public void bar() {\n" +
" }\n" +
"}");
String str = this.workingCopies[0].getSource();
int start = str.lastIndexOf("x");
int length = "x".length();
IJavaScriptElement[] elements = this.workingCopies[0].codeSelect(start, length, this.wcOwner);
assertElementsEqual(
"Unexpected elements",
"x [in main(String[]) [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]]",
elements
);
assertEquals(
"Unexpected type",
"QTestString;",
((ILocalVariable)elements[0]).getTypeSignature());
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
public void testDuplicateLocals4() throws JavaScriptModelException {
this.workingCopies = new IJavaScriptUnit[2];
this.workingCopies[0] = getWorkingCopy(
"/Resolve/src/test/Test.java",
"package test;"+
"public class Test {\n" +
" public static void main(String[] args) {\n" +
" for (int x = 0; x < 10; x++) {\n" +
" for (TestString x = null; x.bar() < 5;) {\n" +
" // do something\n" +
" }\n" +
" }\n" +
" }\n" +
"}");
this.workingCopies[1] = getWorkingCopy(
"/Resolve/src/test/TestString.java",
"package test;"+
"public class TestString {\n" +
" public int bar() {\n" +
" return 0;\n" +
" }\n" +
"}");
String str = this.workingCopies[0].getSource();
int start = str.lastIndexOf("x");
int length = "x".length();
IJavaScriptElement[] elements = this.workingCopies[0].codeSelect(start, length, this.wcOwner);
assertElementsEqual(
"Unexpected elements",
"x [in main(String[]) [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]]",
elements
);
assertEquals(
"Unexpected type",
"QTestString;",
((ILocalVariable)elements[0]).getTypeSignature());
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=144858
public void testDuplicateLocals5() throws JavaScriptModelException {
this.workingCopies = new IJavaScriptUnit[2];
this.workingCopies[0] = getWorkingCopy(
"/Resolve/src/test/Test.java",
"package test;"+
"public class Test {\n" +
" public static void main(String[] args) {\n" +
" for (int x = 0; x < 10; x++) {\n" +
" for (TestString x = null; x.bar() < 5;) {\n" +
" x.bar(); // do something\n" +
" }\n" +
" }\n" +
" }\n" +
"}");
this.workingCopies[1] = getWorkingCopy(
"/Resolve/src/test/TestString.java",
"package test;"+
"public class TestString {\n" +
" public int bar() {\n" +
" return 0;\n" +
" }\n" +
"}");
String str = this.workingCopies[0].getSource();
int start = str.lastIndexOf("x");
int length = "x".length();
IJavaScriptElement[] elements = this.workingCopies[0].codeSelect(start, length, this.wcOwner);
assertElementsEqual(
"Unexpected elements",
"x [in main(String[]) [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]]",
elements
);
assertEquals(
"Unexpected type",
"QTestString;",
((ILocalVariable)elements[0]).getTypeSignature());
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165662
public void testDuplicateLocalsType1() throws JavaScriptModelException {
this.workingCopies = new IJavaScriptUnit[2];
this.workingCopies[0] = getWorkingCopy(
"/Resolve/src/test/Test.java",
"package test;"+
"public class Test {\n" +
" void foo() {\n" +
" class Local {\n" +
" public void foo() {}\n" +
" }\n" +
" {\n" +
" class Local {\n" +
" Local(int i) {\n" +
" this.init(i);\n" +
" }\n" +
" void init(int i) {}\n" +
" public void bar() {}\n" +
" }\n" +
" Local l = new Local(0);\n" +
" l.bar();\n" +
" }\n" +
" }\n" +
"}");
this.workingCopies[1] = getWorkingCopy(
"/Resolve/src/test/TestString.java",
"package test;"+
"public class TestString {\n" +
" public int bar() {\n" +
" return 0;\n" +
" }\n" +
"}");
String str = this.workingCopies[0].getSource();
int start = str.lastIndexOf("bar");
int length = "bar".length();
IJavaScriptElement[] elements = this.workingCopies[0].codeSelect(start, length, this.wcOwner);
assertElementsEqual(
"Unexpected elements",
"bar() [in Local#2 [in foo() [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]]]",
elements
);
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=165662
public void testDuplicateLocalsType2() throws JavaScriptModelException {
this.workingCopies = new IJavaScriptUnit[2];
this.workingCopies[0] = getWorkingCopy(
"/Resolve/src/test/Test.java",
"package test;"+
"public class Test {\n" +
" void foo() {\n" +
" class Local {\n" +
" void foo() {\n" +
" }\n" +
" }\n" +
" {\n" +
" class Local {\n" +
" Local(int i) {\n" +
" this.init(i);\n" +
" this.bar();\n" +
" }\n" +
" void init(int i) {}\n" +
" void bar() {\n" +
" }\n" +
" }\n" +
" Local l = new Local(0);\n" +
" }\n" +
" Local l = new Local();\n" +
" l.foo();\n" +
" }\n" +
"}");
this.workingCopies[1] = getWorkingCopy(
"/Resolve/src/test/TestString.java",
"package test;"+
"public class TestString {\n" +
" public int bar() {\n" +
" return 0;\n" +
" }\n" +
"}");
String str = this.workingCopies[0].getSource();
int start = str.lastIndexOf("foo");
int length = "foo".length();
IJavaScriptElement[] elements = this.workingCopies[0].codeSelect(start, length, this.wcOwner);
assertElementsEqual(
"Unexpected elements",
"foo() [in Local [in foo() [in Test [in [Working copy] Test.java [in test [in src [in Resolve]]]]]]]",
elements
);
}
/**
* https://bugs.eclipse.org/bugs/show_bug.cgi?id=57414
*/
public void testEndOfFile() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveEndOfFile.js");
IJavaScriptElement[] elements = codeSelectAt(cu, "zzz");
assertElementsEqual(
"Unexpected elements",
"",
elements
);
}
/**
* https://bugs.eclipse.org/bugs/show_bug.cgi?id=65259
*/
public void testDuplicateMethodDeclaration() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration.js");
String str = cu.getSource();
int start = str.indexOf("foo");
int length = "foo".length();
IJavaScriptElement[] elements = cu.codeSelect(start, length);
assertElementsEqual(
"Unexpected elements",
"foo() [in ResolveDuplicateMethodDeclaration.js [in <default> [in src [in Resolve]]]]",
elements
);
}
/**
* https://bugs.eclipse.org/bugs/show_bug.cgi?id=65259
*/
public void testDuplicateMethodDeclaration2() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration.js");
String str = cu.getSource();
int start = str.lastIndexOf("foo");
int length = "foo".length();
IJavaScriptElement[] elements = cu.codeSelect(start, length);
assertElementsEqual(
"Unexpected elements",
"foo()#2 [in ResolveDuplicateMethodDeclaration.js [in <default> [in src [in Resolve]]]]",
elements
);
}
public void testDuplicateMethodDeclaration3() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration3.js");
String str = cu.getSource();
int start = str.indexOf("foo");
int length = "foo".length();
IJavaScriptElement[] elements = cu.codeSelect(start, length);
assertElementsEqual(
"Unexpected elements",
"foo(p0) [in ResolveDuplicateMethodDeclaration3.js [in <default> [in src [in Resolve]]]]",
elements
);
}
public void testDuplicateMethodDeclaration4() throws JavaScriptModelException {
IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration3.js");
String str = cu.getSource();
int start = str.lastIndexOf("foo");
int length = "foo".length();
IJavaScriptElement[] elements = cu.codeSelect(start, length);
assertElementsEqual(
"Unexpected elements",
"foo(p0)#2 [in ResolveDuplicateMethodDeclaration3.js [in <default> [in src [in Resolve]]]]",
elements
);
}
//public void testDuplicateMethodDeclaration5() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration5.js");
//
// String str = cu.getSource();
// int start = str.indexOf("foo");
// int length = "foo".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "foo(Zork) [in ResolveDuplicateMethodDeclaration5 [in ResolveDuplicateMethodDeclaration5.js [in <default> [in src [in Resolve]]]]]",
// elements
// );
//}
//public void testDuplicateMethodDeclaration6() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration5.js");
//
// String str = cu.getSource();
// int start = str.lastIndexOf("foo");
// int length = "foo".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "foo(Zork)#2 [in ResolveDuplicateMethodDeclaration5 [in ResolveDuplicateMethodDeclaration5.js [in <default> [in src [in Resolve]]]]]",
// elements
// );
//}
//public void testDuplicateMethodDeclaration7() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration7.js");
//
// String str = cu.getSource();
// int start = str.indexOf("foo");
// int length = "foo".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "foo(Zork) [in Inner [in ResolveDuplicateMethodDeclaration7 [in ResolveDuplicateMethodDeclaration7.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
//public void testDuplicateMethodDeclaration8() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration7.js");
//
// String str = cu.getSource();
// int start = str.lastIndexOf("foo");
// int length = "foo".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "foo(Zork)#2 [in Inner [in ResolveDuplicateMethodDeclaration7 [in ResolveDuplicateMethodDeclaration7.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
//public void testDuplicateMethodDeclaration9() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration9.js");
//
// String str = cu.getSource();
// int start = str.indexOf("foo(/*1*/");
// int length = "foo".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "foo(Zork) [in Inner [in ResolveDuplicateMethodDeclaration9 [in ResolveDuplicateMethodDeclaration9.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
//public void testDuplicateMethodDeclaration10() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration9.js");
//
// String str = cu.getSource();
// int start = str.lastIndexOf("foo(/*1*/");
// int length = "foo".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "foo(Zork)#2 [in Inner [in ResolveDuplicateMethodDeclaration9 [in ResolveDuplicateMethodDeclaration9.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
//public void testDuplicateMethodDeclaration11() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration11.js");
//
// String str = cu.getSource();
// int start = str.indexOf("foo(/*2*/");
// int length = "foo".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "foo(Zork) [in Inner#2 [in ResolveDuplicateMethodDeclaration11 [in ResolveDuplicateMethodDeclaration11.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
//public void testDuplicateMethodDeclaration12() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateMethodDeclaration11.js");
//
// String str = cu.getSource();
// int start = str.lastIndexOf("foo(/*2*/");
// int length = "foo".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "foo(Zork)#2 [in Inner#2 [in ResolveDuplicateMethodDeclaration11 [in ResolveDuplicateMethodDeclaration11.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
public void testDuplicateFieldDeclaration() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateFieldDeclaration.js");
//
// String str = cu.getSource();
// int start = str.indexOf("var;/*1*/");
// int length = "var".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "var [in Inner [in ResolveDuplicateFieldDeclaration [in ResolveDuplicateFieldDeclaration.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
assertTrue("implement",false);
}
public void testDuplicateFieldDeclaration2() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateFieldDeclaration.js");
//
// String str = cu.getSource();
// int start = str.lastIndexOf("var;/*1*/");
// int length = "var".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "var#2 [in Inner [in ResolveDuplicateFieldDeclaration [in ResolveDuplicateFieldDeclaration.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
assertTrue("implement",false);
}
//public void testDuplicateFieldDeclaration3() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateFieldDeclaration3.js");
//
// String str = cu.getSource();
// int start = str.indexOf("var;/*2*/");
// int length = "var".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "var [in Inner#2 [in ResolveDuplicateFieldDeclaration3 [in ResolveDuplicateFieldDeclaration3.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
//public void testDuplicateFieldDeclaration4() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateFieldDeclaration3.js");
//
// String str = cu.getSource();
// int start = str.lastIndexOf("var;/*2*/");
// int length = "var".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "var#2 [in Inner#2 [in ResolveDuplicateFieldDeclaration3 [in ResolveDuplicateFieldDeclaration3.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
//public void testDuplicateTypeDeclaration() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateTypeDeclaration.js");
//
// String str = cu.getSource();
// int start = str.indexOf("Inner");
// int length = "Inner".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "Inner [in ResolveDuplicateTypeDeclaration [in ResolveDuplicateTypeDeclaration.js [in <default> [in src [in Resolve]]]]]",
// elements
// );
//}
//public void testDuplicateTypeDeclaration2() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateTypeDeclaration.js");
//
// String str = cu.getSource();
// int start = str.lastIndexOf("Inner");
// int length = "Inner".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "Inner#2 [in ResolveDuplicateTypeDeclaration [in ResolveDuplicateTypeDeclaration.js [in <default> [in src [in Resolve]]]]]",
// elements
// );
//}
//public void testDuplicateTypeDeclaration3() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateTypeDeclaration3.js");
//
// String str = cu.getSource();
// int start = str.indexOf("Inner2/*1*/");
// int length = "Inner2".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "Inner2 [in Inner [in ResolveDuplicateTypeDeclaration3 [in ResolveDuplicateTypeDeclaration3.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
//public void testDuplicateTypeDeclaration4() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateTypeDeclaration3.js");
//
// String str = cu.getSource();
// int start = str.lastIndexOf("Inner2/*1*/");
// int length = "Inner2".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "Inner2#2 [in Inner [in ResolveDuplicateTypeDeclaration3 [in ResolveDuplicateTypeDeclaration3.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
//public void testDuplicateTypeDeclaration5() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateTypeDeclaration5.js");
//
// String str = cu.getSource();
// int start = str.indexOf("Inner2/*2*/");
// int length = "Inner2".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "Inner2 [in Inner#2 [in ResolveDuplicateTypeDeclaration5 [in ResolveDuplicateTypeDeclaration5.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
//public void testDuplicateTypeDeclaration6() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDuplicateTypeDeclaration5.js");
//
// String str = cu.getSource();
// int start = str.lastIndexOf("Inner2/*2*/");
// int length = "Inner2".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "Inner2#2 [in Inner#2 [in ResolveDuplicateTypeDeclaration5 [in ResolveDuplicateTypeDeclaration5.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
//public void testArrayParameterInsideParent1() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveArrayParameterInsideParent1.js");
//
// String str = cu.getSource();
// int start = str.lastIndexOf("var");
// int length = "var".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "var [in test(int[]) [in ResolveArrayParameterInsideParent1 [in ResolveArrayParameterInsideParent1.js [in <default> [in src [in Resolve]]]]]]",
// elements
// );
//}
//public void testDeepLocalVariable() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveDeepLocalVariable.js");
//
// String str = cu.getSource();
// int start = str.lastIndexOf("foo");
// int length = "foo".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
//
// assertElementsEqual(
// "Unexpected elements",
// "foo [in D9() [in D9 [in D8 [in D7 [in D6 [in D5 [in D4 [in D3 [in D2 [in D1 [in ResolveDeepLocalVariable [in ResolveDeepLocalVariable.js [in <default> [in src [in Resolve]]]]]]]]]]]]]]]",
// elements
// );
//}
/*
* https://bugs.eclipse.org/bugs/show_bug.cgi?id=68710
*/
public void testLocalVariable() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveLocalVariable.js");
// IJavaScriptElement[] elements = codeSelect(cu, "var =", "var");
// assertElementsEqual(
// "Unexpected elements",
// "var [in toto() [in <anonymous #2> [in foo2() [in ResolveLocalVariable [in ResolveLocalVariable.js [in <default> [in src [in Resolve]]]]]]]]",
// elements
// );
assertTrue("implement",false);
}
///*
// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78931
// */
//public void testQualifiedName1() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveQualifiedName1.js");
//
// IJavaScriptElement[] elements = codeSelect(cu, "pp.qq.XX.YY.ZZ", "pp.qq.XX.YY.ZZ");
//
// assertElementsEqual(
// "Unexpected elements",
// "ZZ [in YY [in XX [in XX.js [in pp.qq [in src [in Resolve]]]]]]",
// elements
// );
//}
///*
// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78931
// */
//public void testQualifiedName2() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveQualifiedName2.js");
//
// IJavaScriptElement[] elements = codeSelect(cu, "qq.XX.YY.ZZ", "qq.XX.YY.ZZ");
//
// assertElementsEqual(
// "Unexpected elements",
// "ZZ [in YY [in XX [in XX.js [in pp.qq [in src [in Resolve]]]]]]",
// elements
// );
//}
///*
// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78931
// */
//public void testQualifiedName3() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveQualifiedName3.js");
//
// IJavaScriptElement[] elements = codeSelect(cu, "XX.YY.ZZ", "XX.YY.ZZ");
//
// assertElementsEqual(
// "Unexpected elements",
// "ZZ [in YY [in XX [in XX.js [in pp.qq [in src [in Resolve]]]]]]",
// elements
// );
//}
///*
// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78931
// */
//public void testQualifiedName4() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveQualifiedName4.js");
//
// IJavaScriptElement[] elements = codeSelect(cu, "YY.ZZ", "YY.ZZ");
//
// assertElementsEqual(
// "Unexpected elements",
// "ZZ [in YY [in XX [in XX.js [in pp.qq [in src [in Resolve]]]]]]",
// elements
// );
//}
///*
// * https://bugs.eclipse.org/bugs/show_bug.cgi?id=78931
// */
//public void testQualifiedName5() throws JavaScriptModelException {
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "", "ResolveQualifiedName5.js");
//
// IJavaScriptElement[] elements = codeSelect(cu, "YY.ZZ", "YY.ZZ");
//
// assertElementsEqual(
// "Unexpected elements",
// "ZZ [in YY [in XX [in ResolveQualifiedName5 [in ResolveQualifiedName5.js [in <default> [in src [in Resolve]]]]]]]",
// elements
// );
//}
////https://bugs.eclipse.org/bugs/show_bug.cgi?id=84001
//public void testTypeInsideConstructor() throws JavaScriptModelException {
// IJavaScriptUnit imported = null;
// try {
// imported = getWorkingCopy(
// "/Resolve/src/test/AType.js",
// "public class AType {\n" +
// " public class Sub {\n" +
// " }\n" +
// "}\n");
//
// IJavaScriptElement[] elements = select(
// "/Resolve/src/test/Test.js",
// "public class Test<\n" +
// " void foo() {\n" +
// " new Test.Sub();\n" +
// " }\n" +
// "}\n",
// "Test");
//
// assertElementsEqual(
// "Unexpected elements",
// "Test [in [Working copy] Test.js [in test [in src [in Resolve]]]]",
// elements
// );
// } finally {
// if(imported != null) {
// imported.discardWorkingCopy();
// }
// }
//}
////https://bugs.eclipse.org/bugs/show_bug.cgi?id=79309
//public void testMemberTypeInImport() throws JavaScriptModelException {
// IJavaScriptUnit imported = null;
// try {
// imported = getWorkingCopy(
// "/Resolve/src/test/AType.js",
// "public class AType {\n" +
// " public class Sub {\n" +
// " }\n" +
// "}\n");
//
// IJavaScriptElement[] elements = select(
// "/Resolve/src/test/Test.js",
// "import test.AType.Sub;\n" +
// "public class Test\n" +
// "}\n",
// "Sub");
//
// assertElementsEqual(
// "Unexpected elements",
// "Sub [in AType [in [Working copy] AType.js [in test [in src [in Resolve]]]]]",
// elements
// );
// } finally {
// if(imported != null) {
// imported.discardWorkingCopy();
// }
// }
//}
////https://bugs.eclipse.org/bugs/show_bug.cgi?id=99901
//public void testSingleNameInImport() throws JavaScriptModelException {
// IJavaScriptUnit aType = null;
// try {
// aType = getWorkingCopy(
// "/Resolve/src/zzz/AType.js",
// "package zzz;\n" +
// "public class AType {\n" +
// "}\n");
//
// IJavaScriptElement[] elements = select(
// "/Resolve/src/test/Test.js",
// "package test;\n" +
// "import zzz.*;\n" +
// "public class Test\n" +
// "}\n",
// "zzz");
//
// assertElementsEqual(
// "Unexpected elements",
// "zzz [in src [in Resolve]]",
// elements
// );
// } finally {
// if(aType != null) {
// aType.discardWorkingCopy();
// }
// }
//}
///**
// * Bug 120350: [model] Secondary type not found by code resolve
// * @throws JavaScriptModelException
// */
//public void testSecondaryTypes() throws JavaScriptModelException {
// waitUntilIndexesReady();
// IJavaScriptUnit cu = getCompilationUnit("Resolve", "src", "b120350", "X.js");
// String str = cu.getSource();
// int start = str.indexOf("Secondary");
// int length = "Secondary".length();
// IJavaScriptElement[] elements = cu.codeSelect(start, length);
// assertElementsEqual(
// "Unexpected elements",
// "Secondary [in Test.js [in b120350 [in src [in Resolve]]]]",
// elements
// );
//}
}