/** * Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the Eclipse Public License (EPL). * Please see the license.txt included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package org.python.pydev.editor.codecompletion.revisited.jython; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jface.text.Document; import org.python.pydev.core.IModule; import org.python.pydev.editor.codecompletion.revisited.CompletionCache; import org.python.pydev.editor.codecompletion.revisited.CompletionStateFactory; import org.python.pydev.editor.codecompletion.revisited.javaintegration.JavaDefinition; import org.python.pydev.editor.codecompletion.revisited.javaintegration.JavaZipModule; import org.python.pydev.editor.codecompletion.revisited.modules.AbstractModule; import org.python.pydev.editor.codecompletion.revisited.visitors.Definition; public class JythonFindDefinitionTestWorkbench extends AbstractJythonWorkbenchTests { public void testFind() throws Exception { String d = "" + "from javax import swing\n" + "print swing.JFrame()"; Document doc = new Document(d); IModule module = AbstractModule.createModuleFromDoc("", null, doc, nature, true); Definition[] defs = (Definition[]) module.findDefinition( CompletionStateFactory.getEmptyCompletionState("swing.JFrame", nature, new CompletionCache()), 2, 7, nature); assertEquals(1, defs.length); assertEquals("", defs[0].value); assertTrue(defs[0].module instanceof JavaZipModule); assertTrue(((JavaDefinition) defs[0]).javaElement != null); assertTrue(defs[0] instanceof JavaDefinition); assertEquals("javax.swing.JFrame", defs[0].module.getName()); } public void testFind2() throws Exception { String d = "" + "import java.lang.Class"; Document doc = new Document(d); IModule module = AbstractModule.createModuleFromDoc("", null, doc, nature, true); Definition[] defs = (Definition[]) module.findDefinition( CompletionStateFactory.getEmptyCompletionState("java.lang.Class", nature, new CompletionCache()), 1, 20, nature); assertEquals(1, defs.length); assertEquals("", defs[0].value); assertTrue(defs[0].module instanceof JavaZipModule); IJavaElement javaElement = ((JavaDefinition) defs[0]).javaElement; assertTrue(javaElement != null); assertTrue(defs[0] instanceof JavaDefinition); assertEquals("java.lang.Class", defs[0].module.getName()); assertEquals("Class", javaElement.getElementName()); } public void testFind3() throws Exception { String d = "" + "import java.lang.Class\n" + "java.lang.Class.asSubclass"; Document doc = new Document(d); IModule module = AbstractModule.createModuleFromDoc("", null, doc, nature, true); Definition[] defs = (Definition[]) module.findDefinition(CompletionStateFactory.getEmptyCompletionState( "java.lang.Class.asSubclass", nature, new CompletionCache()), 2, 20, nature); assertEquals(1, defs.length); assertEquals("asSubclass", defs[0].value); assertTrue(defs[0].module instanceof JavaZipModule); IJavaElement javaElement = ((JavaDefinition) defs[0]).javaElement; assertTrue(javaElement != null); assertEquals("asSubclass", javaElement.getElementName()); assertTrue(defs[0] instanceof JavaDefinition); assertEquals("java.lang.Class", defs[0].module.getName()); } }