/******************************************************************************* * 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 v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * 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 // ); //} }