Bug 252696

Tests for ITD content assist and getting them to pass.
diff --git "a/org.eclipse.ajdt.core.tests/AllCoreTests - No UI \050Andrew\051.launch" "b/org.eclipse.ajdt.core.tests/AllCoreTests - No UI \050Andrew\051.launch"
index f06faf3..5ed42b5 100644
--- "a/org.eclipse.ajdt.core.tests/AllCoreTests - No UI \050Andrew\051.launch"
+++ "b/org.eclipse.ajdt.core.tests/AllCoreTests - No UI \050Andrew\051.launch"
@@ -12,7 +12,7 @@
 <booleanAttribute key="clearwslog" value="false"/>
 <stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
 <booleanAttribute key="default" value="false"/>
-<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.contribution.xref.ui.tests,org.eclipse.ajdt.ui.tests,org.eclipse.contribution.visualiser.tests,org.eclipse.contribution.xref.core.tests,org.eclipse.ajdt.ui.visual.tests,org.eclipse.ajdt.ui"/>
+<stringAttribute key="deselected_workspace_plugins" value="org.eclipse.contribution.xref.ui.tests,org.eclipse.contribution.visualiser.tests,org.eclipse.ajdt.ui.tests,org.eclipse.contribution.xref.core.tests,org.eclipse.ajdt.ui.visual.tests,org.eclipse.ajdt.ui"/>
 <booleanAttribute key="includeOptional" value="true"/>
 <stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
 <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
@@ -32,7 +32,7 @@
 <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-XX:MaxPermSize=128m -Xmx1024m"/>
 <stringAttribute key="pde.version" value="3.3"/>
 <stringAttribute key="product" value="org.eclipse.equinox.p2.director.app.product"/>
-<stringAttribute key="selected_target_plugins" value="org.eclipse.equinox.p2.extensionlocation.source,org.apache.ant.source,javax.servlet.source,org.eclipse.equinox.frameworkadmin.equinox,org.eclipse.jdt.junit.source,org.apache.commons.el.source,org.eclipse.ui.ide,org.eclipse.equinox.security,org.eclipse.debug.ui.source,org.eclipse.equinox.p2.touchpoint.eclipse.source,org.eclipse.ui.ide.application,org.eclipse.equinox.p2.exemplarysetup.source,org.eclipse.core.expressions,org.eclipse.ant.core.source,org.eclipse.update.ui,org.eclipse.pde.ui.source,org.eclipse.mylyn.commons.core,org.eclipse.help.appserver,javax.servlet,org.eclipse.equinox.preferences.source,org.junit4.source,org.apache.lucene.source,org.eclipse.equinox.common.source,org.eclipse.equinox.p2.console.source,org.eclipse.core.boot,org.eclipse.ant.ui,org.sat4j.pb,org.eclipse.mylyn.monitor.ui,org.eclipse.ui.editors,org.eclipse.ui.browser,org.eclipse.mylyn.java.tasks,org.eclipse.equinox.p2.reconciler.dropins,org.eclipse.debug.core,org.eclipse.jsch.core,org.apache.jasper.source,org.eclipse.equinox.common,org.eclipse.jdt.doc.user,org.eclipse.equinox.p2.metadata.source,org.eclipse.core.commands,org.eclipse.ecf.filetransfer,org.eclipse.equinox.p2.ui,org.junit4,org.eclipse.equinox.registry.source,org.eclipse.equinox.simpleconfigurator.manipulator,org.eclipse.pde.api.tools,org.eclipse.ui.views,org.eclipse.pde.runtime,org.eclipse.help.base.source,org.mortbay.jetty,org.eclipse.search,org.eclipse.equinox.http.jetty,org.eclipse.ecf.identity,org.eclipse.team.core.source,org.eclipse.jdt.junit.runtime.source,org.eclipse.ui.net,org.eclipse.ltk.ui.refactoring.source,org.eclipse.equinox.http.servlet.source,org.eclipse.jdt.debug.ui,org.eclipse.equinox.p2.metadata.generator,org.junit.source,org.eclipse.help.webapp.source,org.eclipse.equinox.frameworkadmin.equinox.source,org.eclipse.equinox.p2.updatesite,org.eclipse.cvs.source,org.eclipse.ui.views.log,org.eclipse.jsch.ui,org.eclipse.equinox.jsp.jasper.registry,org.eclipse.pde,org.eclipse.ecf,org.eclipse.text.source,org.eclipse.osgi.services.source,org.eclipse.core.resources.compatibility.source,org.eclipse.pde.ui.templates,org.objectweb.asm,javax.servlet.jsp.source,org.eclipse.mylyn.resources.ui,org.eclipse.equinox.app,org.eclipse.pde.source,org.eclipse.equinox.p2.director.app.source,org.eclipse.equinox.simpleconfigurator.manipulator.source,org.eclipse.core.net.source,javax.servlet.jsp,com.ibm.icu,org.eclipse.ui.cheatsheets,org.eclipse.mylyn.bugzilla.core,org.eclipse.mylyn.bugzilla.ui,org.eclipse.mylyn.pde.ui,org.eclipse.core.filesystem,org.eclipse.jdt,org.eclipse.pde.api.tools.ui,org.eclipse.core.resources.source,org.objectweb.asm.source,org.eclipse.core.contenttype.source,org.eclipse.equinox.p2.director,org.eclipse.equinox.security.macosx,org.eclipse.ui.source,org.eclipse.cvs,org.eclipse.ui.presentations.r21,org.eclipse.platform.doc.user,org.eclipse.jdt.ui.source,org.eclipse.equinox.p2.console,org.eclipse.equinox.p2.updatesite.source,org.eclipse.equinox.launcher.carbon.macosx,org.eclipse.equinox.p2.exemplarysetup,org.eclipse.ui.workbench,org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.ui.intro.universal,org.eclipse.equinox.p2.jarprocessor,org.eclipse.pde.api.tools.ui.source,org.eclipse.pde.p2.ui.source,org.eclipse.jdt.launching,org.eclipse.ui.console,org.eclipse.equinox.p2.directorywatcher,org.eclipse.equinox.preferences,org.eclipse.ui.net.source,org.eclipse.ui.presentations.r21.source,org.eclipse.pde.doc.user,org.eclipse.mylyn.commons.ui,org.eclipse.swt,org.eclipse.equinox.p2.artifact.repository.source,org.eclipse.equinox.security.ui,org.eclipse.equinox.jsp.jasper,org.eclipse.equinox.registry,org.eclipse.ui,org.eclipse.equinox.security.macosx.source,org.eclipse.platform.doc.isv,org.eclipse.ui.carbon,org.eclipse.ui.views.properties.tabbed.source,org.eclipse.pde.ui,org.eclipse.mylyn.commons.net,org.eclipse.ui.workbench.texteditor.source,org.eclipse.core.databinding.source,org.eclipse.jface.databinding.source,org.eclipse.pde.core.source,org.eclipse.osgi.source,org.eclipse.mylyn.team.ui,org.eclipse.equinox.p2.extensionlocation,org.eclipse.ui.views.log.source,org.eclipse.equinox.p2.core,org.eclipse.equinox.p2.reconciler.dropins.source,org.eclipse.equinox.p2.touchpoint.natives,org.eclipse.core.jobs.source,org.eclipse.equinox.jsp.jasper.source,org.eclipse.help.appserver.source,org.eclipse.ltk.core.refactoring,org.eclipse.swt.carbon.macosx.source,org.eclipse.ui.navigator.source,org.eclipse.equinox.http.servlet,org.eclipse.platform.source,org.eclipse.team.cvs.ssh2,org.eclipse.core.contenttype,org.eclipse.pde.build,org.eclipse.pde.junit.runtime,org.eclipse.help,org.eclipse.compare,org.eclipse.ui.ide.application.source,org.eclipse.debug.ui,org.eclipse.equinox.security.source,org.eclipse.equinox.p2.engine.source,org.eclipse.update.scheduler.source,org.eclipse.update.scheduler,org.eclipse.ui.workbench.source,org.eclipse.mylyn.help.ui,org.eclipse.help.webapp,org.eclipse.team.cvs.ssh2.source,org.eclipse.mylyn.team.cvs,org.eclipse.core.filesystem.macosx,org.eclipse.team.core,org.apache.commons.lang,org.eclipse.jdt.launching.macosx.source,org.junit,org.eclipse.mylyn.tasks.bugs,org.eclipse.osgi.util.source,org.eclipse.equinox.p2.metadata.repository.source,org.eclipse.core.runtime.compatibility.registry.source,org.eclipse.team.ui.source,org.eclipse.equinox.p2.metadata.generator.source,org.eclipse.equinox.p2.ui.sdk,org.apache.lucene.analysis,org.eclipse.jdt.debug.ui.source,org.eclipse.jface.text.source,org.apache.commons.logging.source,org.eclipse.platform,org.eclipse.core.jobs,org.eclipse.ui.editors.source,org.eclipse.compare.source,org.eclipse.update.core.source,org.eclipse.ui.workbench.compatibility,org.eclipse.ui.navigator.resources.source,org.eclipse.jdt.core.source,org.eclipse.mylyn.tasks.ui,org.eclipse.core.filebuffers.source,org.eclipse.ui.views.properties.tabbed,org.eclipse.ui.intro.universal.source,org.eclipse.equinox.p2.engine,org.eclipse.ui.views.source,org.eclipse.equinox.p2.updatechecker.source,org.eclipse.team.cvs.ui,org.mortbay.jetty.source,org.eclipse.ecf.provider.filetransfer,org.eclipse.equinox.p2.artifact.repository,org.eclipse.core.resources,org.eclipse.jdt.core,org.eclipse.core.net,org.eclipse.core.databinding.beans.source,org.eclipse.pde.core,org.eclipse.core.runtime,org.apache.ant,org.apache.lucene,org.eclipse.equinox.p2.core.source,org.eclipse.ui.ide.source,org.eclipse.jdt.doc.isv,org.eclipse.core.runtime.compatibility.registry,org.eclipse.equinox.security.ui.source,org.eclipse.mylyn.ide.ui,org.eclipse.core.databinding,org.eclipse.mylyn.tasks.core,org.eclipse.pde.runtime.source,org.eclipse.core.variables,org.apache.commons.codec,org.eclipse.team.cvs.core,org.eclipse.jdt.core.manipulation.source,org.eclipse.mylyn.compatibility,org.eclipse.equinox.launcher.source,org.eclipse.jdt.junit4.runtime.source,org.eclipse.equinox.app.source,org.apache.commons.httpclient,org.eclipse.ui.navigator,org.eclipse.jdt.debug.source,org.eclipse.core.variables.source,org.eclipse.equinox.p2.directorywatcher.source,org.eclipse.team.ui,org.eclipse.jdt.source,org.eclipse.equinox.launcher,org.eclipse.ant.ui.source,com.ibm.icu.source,org.eclipse.equinox.p2.metadata.repository,org.eclipse.ui.intro,org.eclipse.equinox.p2.garbagecollector,org.eclipse.jsch.core.source,org.eclipse.equinox.p2.metadata,org.eclipse.mylyn.ide.ant,org.apache.commons.logging,org.eclipse.team.cvs.core.source,org.eclipse.jface,org.eclipse.core.runtime.compatibility.source,org.eclipse.sdk,org.eclipse.rcp.source,org.eclipse.ltk.ui.refactoring,org.eclipse.core.runtime.compatibility.auth,org.eclipse.equinox.p2.director.app,org.eclipse.core.commands.source,org.eclipse.core.expressions.source,org.eclipse.ui.intro.source,org.eclipse.team.cvs.ssh.source,org.eclipse.update.core,org.eclipse.core.filebuffers,org.eclipse.core.resources.compatibility,org.eclipse.jdt.launching.macosx,org.eclipse.core.runtime.source,org.eclipse.osgi.util,org.eclipse.mylyn,org.eclipse.ui.workbench.texteditor,org.eclipse.team.cvs.ssh,org.eclipse.mylyn.context.ui,org.eclipse.jdt.core.manipulation,org.eclipse.jdt.junit4.runtime,org.eclipse.equinox.frameworkadmin,org.eclipse.pde.api.tools.source,org.eclipse.equinox.simpleconfigurator,org.eclipse.search.source,org.eclipse.pde.junit.runtime.source,org.eclipse.ui.cheatsheets.source,org.eclipse.swt.carbon.macosx,org.eclipse.update.ui.source,org.eclipse.jdt.debug,com.jcraft.jsch,org.eclipse.ui.browser.source,org.eclipse.pde.p2.ui,org.eclipse.pde.build.source,org.eclipse.equinox.simpleconfigurator.source,org.eclipse.equinox.p2.garbagecollector.source,org.eclipse.equinox.p2.updatechecker,org.eclipse.ui.carbon.source,org.eclipse.team.cvs.ui.source,org.eclipse.mylyn.bugzilla.ide,org.apache.jasper,org.eclipse.ui.workbench.compatibility.source,org.eclipse.ui.externaltools.source,org.eclipse.osgi.services,org.eclipse.help.ui.source,org.apache.lucene.analysis.source,org.eclipse.pde.ui.templates.source,org.eclipse.ui.forms.source,org.eclipse.help.base,org.eclipse.equinox.p2.jarprocessor.source,org.eclipse.core.databinding.beans,org.eclipse.equinox.p2.touchpoint.natives.source,org.eclipse.jface.databinding,org.eclipse.jdt.junit,org.eclipse.equinox.http.jetty.source,org.eclipse.jdt.launching.source,org.eclipse.ant.core,org.eclipse.ui.navigator.resources,org.eclipse.rcp,org.eclipse.osgi,org.eclipse.ecf.provider.filetransfer.ssl,org.eclipse.jsch.ui.source,org.eclipse.core.runtime.compatibility,org.apache.commons.el,org.eclipse.ui.console.source,org.sat4j.core,org.eclipse.equinox.p2.ui.sdk.source,org.eclipse.ltk.core.refactoring.source,org.eclipse.equinox.jsp.jasper.registry.source,org.eclipse.equinox.p2.director.source,org.eclipse.ui.externaltools,org.eclipse.jdt.junit.runtime,org.eclipse.help.ui,org.eclipse.ecf.ssl,org.eclipse.update.configurator,org.eclipse.help.source,org.eclipse.core.runtime.compatibility.auth.source,org.eclipse.jface.text,org.eclipse.equinox.http.registry,org.eclipse.equinox.http.registry.source,org.eclipse.core.filesystem.source,org.eclipse.text,org.eclipse.update.configurator.source,org.eclipse.equinox.frameworkadmin.source,org.eclipse.jdt.ui,org.eclipse.jface.source,org.eclipse.equinox.p2.ui.source,org.eclipse.ui.forms,org.eclipse.debug.core.source"/>
+<stringAttribute key="selected_target_plugins" value="org.eclipse.equinox.app.source,org.eclipse.osgi.util.source,org.eclipse.equinox.frameworkadmin.source,org.eclipse.core.databinding,org.apache.jasper.source,org.eclipse.team.ui,org.eclipse.debug.core,org.eclipse.mylyn.bugzilla.ui,org.eclipse.equinox.p2.engine,org.eclipse.jface.databinding,org.eclipse.pde.api.tools.ui,org.eclipse.help.ui.source,org.eclipse.core.variables.source,org.eclipse.equinox.launcher.carbon.macosx,org.junit,org.eclipse.equinox.frameworkadmin,org.eclipse.osgi,org.eclipse.ui.workbench.compatibility.source,org.eclipse.equinox.launcher,org.eclipse.swt,org.eclipse.mylyn,javax.servlet.jsp.source,org.eclipse.ecf.provider.filetransfer.ssl,org.eclipse.ecf.provider.filetransfer,javax.servlet,org.eclipse.equinox.jsp.jasper,org.eclipse.equinox.security.source,org.eclipse.core.resources.compatibility,org.eclipse.pde.api.tools.ui.source,org.eclipse.equinox.p2.updatechecker,org.eclipse.equinox.p2.garbagecollector,org.eclipse.ui.intro.universal,org.eclipse.pde.source,org.eclipse.jdt.launching.macosx,org.eclipse.core.runtime.compatibility.registry,org.eclipse.platform.doc.user,org.eclipse.equinox.p2.touchpoint.natives.source,org.eclipse.equinox.p2.touchpoint.natives,org.eclipse.mylyn.commons.ui,org.eclipse.mylyn.team.ui,org.eclipse.ui.browser.source,org.eclipse.mylyn.monitor.ui,org.eclipse.core.net,org.eclipse.equinox.p2.core,org.eclipse.core.commands.source,org.eclipse.ui.browser,org.apache.commons.logging,org.eclipse.equinox.security,org.eclipse.equinox.p2.metadata.source,org.eclipse.equinox.simpleconfigurator.source,org.eclipse.core.resources,org.eclipse.osgi.services,org.eclipse.equinox.security.macosx,org.eclipse.equinox.p2.exemplarysetup,org.eclipse.help.source,org.eclipse.help.base,org.eclipse.jsch.ui.source,org.eclipse.equinox.p2.ui.source,org.eclipse.ui.console.source,org.eclipse.rcp.source,org.eclipse.core.jobs,org.eclipse.equinox.p2.director.app,org.eclipse.equinox.p2.metadata.generator,org.eclipse.equinox.p2.console,org.eclipse.core.boot,org.eclipse.equinox.p2.jarprocessor,org.eclipse.equinox.registry.source,org.eclipse.core.resources.compatibility.source,org.eclipse.jdt.ui,org.eclipse.equinox.common,org.eclipse.equinox.http.servlet,org.eclipse.pde.ui.source,org.eclipse.ui.workbench.source,org.sat4j.pb,org.eclipse.ltk.core.refactoring.source,org.eclipse.swt.carbon.macosx,org.eclipse.equinox.p2.reconciler.dropins.source,org.eclipse.mylyn.resources.ui,org.eclipse.ant.core,org.eclipse.ui.navigator.source,org.eclipse.team.cvs.core.source,org.eclipse.ltk.core.refactoring,org.eclipse.ui.ide.source,org.eclipse.ui.views.log,org.eclipse.equinox.http.registry,org.apache.commons.httpclient,org.eclipse.help.appserver,org.eclipse.jface,org.eclipse.core.contenttype.source,org.eclipse.ui.navigator.resources,org.eclipse.ui.views.source,org.eclipse.equinox.security.ui.source,org.eclipse.mylyn.java.tasks,org.eclipse.equinox.p2.updatesite.source,javax.servlet.jsp,org.apache.commons.logging.source,org.eclipse.ui.intro.universal.source,org.eclipse.ui.source,org.apache.lucene,org.eclipse.pde.build,org.eclipse.ecf.identity,org.eclipse.pde.ui.templates,org.eclipse.equinox.p2.updatechecker.source,org.eclipse.update.ui.source,org.eclipse.core.filesystem.source,org.eclipse.update.scheduler.source,org.apache.lucene.analysis.source,org.eclipse.core.runtime.compatibility.source,org.eclipse.team.cvs.core,org.eclipse.text,org.eclipse.core.filesystem,org.eclipse.mylyn.commons.core,org.eclipse.ui.net,org.eclipse.equinox.registry,org.apache.lucene.analysis,org.eclipse.ui.workbench.compatibility,org.eclipse.pde.junit.runtime.source,org.eclipse.equinox.p2.ui,org.eclipse.ui.workbench.texteditor,org.eclipse.equinox.simpleconfigurator.manipulator,org.eclipse.equinox.http.jetty,org.eclipse.equinox.preferences,org.eclipse.pde.runtime.source,org.eclipse.ui.intro,org.eclipse.equinox.launcher.source,org.eclipse.mylyn.compatibility,org.eclipse.ui.workbench.texteditor.source,org.eclipse.equinox.preferences.source,org.eclipse.equinox.p2.ui.sdk,org.eclipse.core.net.source,org.eclipse.mylyn.help.ui,org.eclipse.core.runtime.source,org.eclipse.equinox.p2.ui.sdk.source,org.eclipse.ui.navigator,org.eclipse.swt.carbon.macosx.source,org.eclipse.team.core,org.eclipse.equinox.jsp.jasper.registry,org.eclipse.jdt.debug.ui.source,org.eclipse.ecf.ssl,org.eclipse.team.cvs.ui,org.eclipse.osgi.util,org.eclipse.equinox.p2.touchpoint.eclipse.source,org.eclipse.equinox.jsp.jasper.registry.source,org.apache.commons.el.source,org.eclipse.ui.cheatsheets.source,org.eclipse.core.databinding.beans,org.eclipse.mylyn.tasks.ui,org.eclipse.equinox.p2.metadata.repository.source,org.eclipse.update.configurator,org.eclipse.jdt.junit4.runtime.source,org.eclipse.mylyn.pde.ui,org.eclipse.cvs,org.eclipse.equinox.p2.directorywatcher,org.eclipse.equinox.p2.exemplarysetup.source,org.eclipse.equinox.security.ui,org.eclipse.pde.p2.ui,org.eclipse.core.filebuffers,org.eclipse.ui.externaltools.source,org.eclipse.rcp,org.eclipse.core.filesystem.macosx,org.eclipse.equinox.p2.metadata.generator.source,org.eclipse.ui.views.properties.tabbed,org.eclipse.core.runtime.compatibility,org.eclipse.core.resources.source,org.eclipse.platform.doc.isv,org.apache.ant.source,org.eclipse.ui,com.jcraft.jsch,org.apache.jasper,org.eclipse.pde.ui,org.eclipse.core.runtime,org.eclipse.equinox.http.servlet.source,org.eclipse.debug.ui.source,org.eclipse.core.jobs.source,org.eclipse.jdt.junit.runtime,org.eclipse.pde.build.source,org.eclipse.search,org.eclipse.help.webapp,org.eclipse.equinox.p2.director.app.source,org.eclipse.pde,org.eclipse.ui.ide.application.source,org.eclipse.equinox.p2.artifact.repository,org.apache.commons.lang,org.eclipse.equinox.p2.extensionlocation.source,org.apache.lucene.source,org.eclipse.core.runtime.compatibility.registry.source,org.eclipse.jdt.launching.macosx.source,org.eclipse.team.cvs.ssh2,org.eclipse.equinox.http.jetty.source,org.sat4j.core,org.eclipse.mylyn.bugzilla.ide,org.eclipse.help.webapp.source,org.eclipse.pde.ui.templates.source,org.eclipse.equinox.p2.reconciler.dropins,org.eclipse.equinox.p2.updatesite,org.eclipse.ant.ui,org.eclipse.ui.ide,org.eclipse.core.runtime.compatibility.auth,org.eclipse.jface.source,org.eclipse.jface.text.source,org.eclipse.ant.core.source,org.eclipse.osgi.services.source,org.eclipse.equinox.p2.extensionlocation,org.eclipse.jdt.core.manipulation.source,org.objectweb.asm.source,org.eclipse.ecf.filetransfer,org.eclipse.help,org.eclipse.ui.presentations.r21.source,org.eclipse.jdt.debug,org.eclipse.search.source,org.eclipse.ui.console,org.eclipse.team.cvs.ssh2.source,org.eclipse.jdt,org.eclipse.equinox.p2.core.source,org.eclipse.sdk,org.eclipse.team.ui.source,org.eclipse.equinox.p2.artifact.repository.source,org.eclipse.jsch.core.source,org.eclipse.ui.editors.source,org.eclipse.update.configurator.source,org.eclipse.jface.databinding.source,org.eclipse.core.expressions.source,org.eclipse.equinox.p2.jarprocessor.source,org.eclipse.text.source,org.eclipse.equinox.http.registry.source,org.eclipse.ui.intro.source,org.junit4,org.eclipse.equinox.p2.directorywatcher.source,org.eclipse.pde.core,org.eclipse.debug.ui,org.eclipse.equinox.simpleconfigurator.manipulator.source,org.eclipse.equinox.jsp.jasper.source,org.eclipse.mylyn.context.ui,org.apache.commons.codec,org.mortbay.jetty.source,org.eclipse.equinox.p2.metadata,org.eclipse.equinox.app,org.eclipse.update.ui,org.eclipse.jdt.ui.source,org.eclipse.ant.ui.source,org.eclipse.ui.carbon.source,org.eclipse.jface.text,org.eclipse.pde.p2.ui.source,org.eclipse.ltk.ui.refactoring,org.eclipse.team.cvs.ssh.source,org.eclipse.equinox.frameworkadmin.equinox.source,org.eclipse.pde.api.tools,org.eclipse.core.commands,com.ibm.icu,org.eclipse.equinox.frameworkadmin.equinox,org.eclipse.jdt.junit.source,org.eclipse.ui.externaltools,org.eclipse.ltk.ui.refactoring.source,com.ibm.icu.source,org.eclipse.core.contenttype,org.eclipse.equinox.common.source,org.eclipse.equinox.simpleconfigurator,org.eclipse.core.databinding.source,org.eclipse.jsch.core,org.eclipse.jdt.doc.isv,org.eclipse.jdt.junit4.runtime,org.eclipse.debug.core.source,org.eclipse.jdt.debug.source,org.junit4.source,org.eclipse.compare.source,org.eclipse.jdt.core.source,org.eclipse.jdt.core,org.eclipse.core.filebuffers.source,org.eclipse.ui.forms.source,org.eclipse.equinox.p2.touchpoint.eclipse,org.eclipse.equinox.p2.director,org.eclipse.jdt.launching,org.eclipse.mylyn.ide.ui,org.eclipse.core.runtime.compatibility.auth.source,org.apache.commons.el,org.eclipse.ui.presentations.r21,org.eclipse.jsch.ui,org.eclipse.help.base.source,org.junit.source,org.eclipse.osgi.source,org.eclipse.core.variables,org.eclipse.core.expressions,org.eclipse.mylyn.bugzilla.core,org.apache.ant,org.eclipse.equinox.p2.garbagecollector.source,org.eclipse.platform.source,org.eclipse.team.core.source,org.eclipse.update.core,org.objectweb.asm,org.eclipse.jdt.core.manipulation,org.eclipse.pde.core.source,org.eclipse.ui.editors,org.eclipse.ui.navigator.resources.source,org.eclipse.equinox.p2.metadata.repository,org.eclipse.pde.runtime,org.eclipse.update.scheduler,org.eclipse.jdt.junit,org.eclipse.core.databinding.beans.source,org.eclipse.team.cvs.ui.source,org.eclipse.ecf,org.eclipse.equinox.security.macosx.source,org.eclipse.jdt.junit.runtime.source,org.eclipse.jdt.doc.user,org.eclipse.update.core.source,org.eclipse.help.appserver.source,org.eclipse.pde.doc.user,org.eclipse.ui.ide.application,org.eclipse.equinox.p2.director.source,org.eclipse.cvs.source,org.eclipse.jdt.launching.source,org.eclipse.platform,org.eclipse.mylyn.ide.ant,org.eclipse.team.cvs.ssh,org.eclipse.ui.views.properties.tabbed.source,org.eclipse.pde.junit.runtime,org.eclipse.compare,org.eclipse.equinox.p2.engine.source,javax.servlet.source,org.eclipse.mylyn.tasks.core,org.eclipse.help.ui,org.eclipse.ui.views.log.source,org.eclipse.jdt.debug.ui,org.eclipse.ui.carbon,org.eclipse.mylyn.team.cvs,org.eclipse.mylyn.commons.net,org.eclipse.jdt.source,org.eclipse.equinox.p2.console.source,org.eclipse.ui.forms,org.eclipse.ui.views,org.eclipse.ui.net.source,org.eclipse.pde.api.tools.source,org.eclipse.ui.workbench,org.mortbay.jetty,org.eclipse.ui.cheatsheets,org.eclipse.mylyn.tasks.bugs"/>
 <booleanAttribute key="show_selected_only" value="false"/>
 <booleanAttribute key="tracing" value="false"/>
 <booleanAttribute key="useDefaultConfig" value="true"/>
diff --git a/org.eclipse.ajdt.core.tests/src/org/eclipse/ajdt/core/tests/AllCoreTests.java b/org.eclipse.ajdt.core.tests/src/org/eclipse/ajdt/core/tests/AllCoreTests.java
index add4ad8..644ec34 100644
--- a/org.eclipse.ajdt.core.tests/src/org/eclipse/ajdt/core/tests/AllCoreTests.java
+++ b/org.eclipse.ajdt.core.tests/src/org/eclipse/ajdt/core/tests/AllCoreTests.java
@@ -26,6 +26,7 @@
 import org.eclipse.ajdt.core.tests.builder.CoreOutputLocationManagerTest;
 import org.eclipse.ajdt.core.tests.codeconversion.AspectsConvertingParserTest;
 import org.eclipse.ajdt.core.tests.codeconversion.CodeCheckerTest;
+import org.eclipse.ajdt.core.tests.contentassist.ContentAssistTests;
 import org.eclipse.ajdt.core.tests.dom.rewrite.ASTRewritingPointcutDeclTest;
 import org.eclipse.ajdt.core.tests.javaelements.AspectElementTests;
 import org.eclipse.ajdt.core.tests.model.AJCodeElementTest;
@@ -110,7 +111,7 @@
 		// commenting out for now
 //        suite.addTest(new TestSuite(ProblemFinderTests.class));
 //        suite.addTest(new TestSuite(ProblemFinderTests2.class));
-		
+		suite.addTest(new TestSuite(ContentAssistTests.class));
 		return suite;
 	}
 }
diff --git a/org.eclipse.ajdt.core.tests/src/org/eclipse/ajdt/core/tests/codeconversion/AspectsConvertingParserTest.java b/org.eclipse.ajdt.core.tests/src/org/eclipse/ajdt/core/tests/codeconversion/AspectsConvertingParserTest.java
index 457e11e..cd11020 100644
--- a/org.eclipse.ajdt.core.tests/src/org/eclipse/ajdt/core/tests/codeconversion/AspectsConvertingParserTest.java
+++ b/org.eclipse.ajdt.core.tests/src/org/eclipse/ajdt/core/tests/codeconversion/AspectsConvertingParserTest.java
@@ -11,12 +11,9 @@
  *******************************************************************************/
 package org.eclipse.ajdt.core.tests.codeconversion;
 
-import java.util.List;
-
 import org.eclipse.ajdt.core.codeconversion.AspectsConvertingParser;
 import org.eclipse.ajdt.core.codeconversion.ConversionOptions;
 import org.eclipse.ajdt.core.tests.AJDTCoreTestCase;
-import org.eclipse.jdt.core.IType;
 
 public class AspectsConvertingParserTest extends AJDTCoreTestCase {
 
diff --git a/org.eclipse.ajdt.core.tests/src/org/eclipse/ajdt/core/tests/contentassist/ContentAssistTests.java b/org.eclipse.ajdt.core.tests/src/org/eclipse/ajdt/core/tests/contentassist/ContentAssistTests.java
new file mode 100644
index 0000000..31c4e82
--- /dev/null
+++ b/org.eclipse.ajdt.core.tests/src/org/eclipse/ajdt/core/tests/contentassist/ContentAssistTests.java
@@ -0,0 +1,221 @@
+package org.eclipse.ajdt.core.tests.contentassist;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.ajdt.core.AspectJCore;
+import org.eclipse.ajdt.core.javaelements.AJCompilationUnit;
+import org.eclipse.ajdt.core.tests.AJDTCoreTestCase;
+import org.eclipse.ajdt.internal.core.AJWorkingCopyOwner;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.CompletionProposal;
+import org.eclipse.jdt.core.CompletionRequestor;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.internal.core.JavaModelManager;
+
+/**
+ * Tests a whole bunch of ways that ITDs can show up in content assist
+ * @author andrew
+ *
+ */
+public class ContentAssistTests extends AJDTCoreTestCase {
+    AJCompilationUnit hasITDsUnit;
+    AJCompilationUnit usesITDsUnit;
+    
+    String hasITDsContents;
+    String usesITDsContents;
+    
+    protected void setUp() throws Exception {
+        super.setUp();
+        IProject proj = createPredefinedProject("ITDContentAssist");
+        
+        hasITDsUnit = (AJCompilationUnit) AspectJCore.create(proj.getFile("src/hasitds/HasITDs.aj"));
+        hasITDsUnit.becomeWorkingCopy(null);
+        JavaModelManager.getJavaModelManager().getPerWorkingCopyInfo(hasITDsUnit, true, false, null);
+        
+        usesITDsUnit = (AJCompilationUnit) AspectJCore.create(proj.getFile("src/uses/UsesITDs.aj"));
+        usesITDsUnit.becomeWorkingCopy(null);
+        JavaModelManager.getJavaModelManager().getPerWorkingCopyInfo(usesITDsUnit, true, false, null);
+        
+        hasITDsUnit.requestOriginalContentMode();
+        hasITDsContents = new String(hasITDsUnit.getContents());
+        hasITDsUnit.discardOriginalContentMode();
+
+        usesITDsUnit.requestOriginalContentMode();
+        usesITDsContents = new String(usesITDsUnit.getContents());
+        usesITDsUnit.discardOriginalContentMode();
+    }
+    
+    public void testITDField() throws Exception {
+        MockCompletionRequestor requestor = new MockCompletionRequestor();
+        int offset = hasITDsContents.indexOf("this.lis") + "this.lis".length();
+        hasITDsUnit.codeComplete(offset, requestor, AJWorkingCopyOwner.INSTANCE);
+        
+        assertEquals("Should have 1 proposal, but found:\n" + requestor.toString(), 1, requestor.accepted.size());
+        assertEquals("Proposal should have been the 'list' field", 
+                "list", new String(((CompletionProposal) requestor.accepted.get(0)).getName())); 
+    }
+    
+    public void testITDFieldInField() throws Exception {
+        MockCompletionRequestor requestor = new MockCompletionRequestor();
+        int offset = hasITDsContents.indexOf("this.list.addAll") + "this.list.addAll".length();
+        hasITDsUnit.codeComplete(offset, requestor, AJWorkingCopyOwner.INSTANCE);
+        
+        assertEquals("Should have 2 proposals, but found:\n" + requestor.toString(), 2, requestor.accepted.size());
+        assertEquals("Proposal should have been the 'addAll' method\n" + requestor.accepted.get(0), 
+                "addAll", new String(((CompletionProposal) requestor.accepted.get(0)).getName())); 
+        assertEquals("Proposal should have been the 'addAll' method\n" + requestor.accepted.get(1), 
+                "addAll", new String(((CompletionProposal) requestor.accepted.get(1)).getName())); 
+    }
+    
+    public void testITDMethod() throws Exception {
+        MockCompletionRequestor requestor = new MockCompletionRequestor();
+        int offset = hasITDsContents.indexOf("this.makeL") + "this.makeL".length();
+        hasITDsUnit.codeComplete(offset, requestor, AJWorkingCopyOwner.INSTANCE);
+        
+        assertEquals("Should have 1 proposal, but found:\n" + requestor.toString(), 1, requestor.accepted.size());
+        assertEquals("Proposal should have been the 'makeList' method\n" + requestor.accepted.get(0),
+                "makeList", new String(((CompletionProposal) requestor.accepted.get(0)).getName())); 
+    }
+    
+    public void testITDConstructor() throws Exception {
+        MockCompletionRequestor requestor = new MockCompletionRequestor();
+        int offset = hasITDsContents.indexOf("new HasITDs(") + "new HasITDs(".length();
+        hasITDsUnit.codeComplete(offset, requestor, AJWorkingCopyOwner.INSTANCE);
+        
+        assertEquals("Should have 2 proposals, but found:\n" + requestor.toString(), 2, requestor.accepted.size());
+
+        // the anonymous class decl
+        assertEquals("Signature of proposal should have been the 'HasITDs' constructor\n" + requestor.accepted.get(0), 
+                "HasITDs", new String(((CompletionProposal) requestor.accepted.get(0)).getName())); 
+        // the constructor
+        assertEquals("Proposal should have been the 'HasITDs' constructor\n" + requestor.accepted.get(1), 
+                "Lhasitds.HasITDs;", new String(((CompletionProposal) requestor.accepted.get(1)).getDeclarationSignature()));
+    }
+    
+    public void testFromDeclareParent() throws Exception {
+        MockCompletionRequestor requestor = new MockCompletionRequestor();
+        int offset = hasITDsContents.indexOf("this.insid") + "this.insid".length();
+        hasITDsUnit.codeComplete(offset, requestor, AJWorkingCopyOwner.INSTANCE);
+        
+        assertEquals("Should have 1 proposal, but found:\n" + requestor.toString(), 1, requestor.accepted.size());
+
+        assertEquals("Signature of proposal should have been the 'Foo.inside' field\n" + requestor.accepted.get(0), 
+                "inside", new String(((CompletionProposal) requestor.accepted.get(0)).getName())); 
+    }
+
+    public void testFromITDOnDeclareParent() throws Exception {
+        MockCompletionRequestor requestor = new MockCompletionRequestor();
+        int offset = hasITDsContents.indexOf("this.valu") + "this.valu".length();
+        hasITDsUnit.codeComplete(offset, requestor, AJWorkingCopyOwner.INSTANCE);
+        
+        assertEquals("Should have 1 proposal, but found:\n" + requestor.toString(), 1, requestor.accepted.size());
+
+        assertEquals("Signature of proposal should have been the 'Foo.value' field\n" + requestor.accepted.get(0), 
+                "value", new String(((CompletionProposal) requestor.accepted.get(0)).getName())); 
+    }
+    
+    
+    // the remaining tests try the same thing, but in a different class
+
+    public void testITDFieldInOtherClass() throws Exception {
+        MockCompletionRequestor requestor = new MockCompletionRequestor();
+        int offset = usesITDsContents.indexOf("h.lis") + "h.lis".length();
+        usesITDsUnit.codeComplete(offset, requestor, AJWorkingCopyOwner.INSTANCE);
+        
+        assertEquals("Should have 1 proposal, but found:\n" + requestor.toString(), 1, requestor.accepted.size());
+        assertEquals("Proposal should have been the 'list' field", 
+                "list", new String(((CompletionProposal) requestor.accepted.get(0)).getName())); 
+    }
+    
+    public void testITDFieldInFieldInOtherClass() throws Exception {
+        MockCompletionRequestor requestor = new MockCompletionRequestor();
+        int offset = usesITDsContents.indexOf("h.list.addAl") + "h.list.addAl".length();
+        usesITDsUnit.codeComplete(offset, requestor, AJWorkingCopyOwner.INSTANCE);
+        
+        assertEquals("Should have 2 proposals, but found:\n" + requestor.toString(), 2, requestor.accepted.size());
+        assertEquals("Proposal should have been the 'addAll' method\n" + requestor.accepted.get(0), 
+                "addAll", new String(((CompletionProposal) requestor.accepted.get(0)).getName())); 
+        assertEquals("Proposal should have been the 'addAll' method\n" + requestor.accepted.get(1), 
+                "addAll", new String(((CompletionProposal) requestor.accepted.get(1)).getName())); 
+    }
+    
+    public void testITDMethodInOtherClass() throws Exception {
+        MockCompletionRequestor requestor = new MockCompletionRequestor();
+        int offset = usesITDsContents.indexOf("h.makeL") + "h.makeL".length();
+        usesITDsUnit.codeComplete(offset, requestor, AJWorkingCopyOwner.INSTANCE);
+        
+        assertEquals("Should have 1 proposal, but found:\n" + requestor.toString(), 1, requestor.accepted.size());
+        assertEquals("Proposal should have been the 'makeList' method\n" + requestor.accepted.get(0),
+                "makeList", new String(((CompletionProposal) requestor.accepted.get(0)).getName())); 
+    }
+    
+    public void testITDConstructorInOtherClass() throws Exception {
+        MockCompletionRequestor requestor = new MockCompletionRequestor();
+        int offset = usesITDsContents.indexOf("new HasITDs(") + "new HasITDs(".length();
+        usesITDsUnit.codeComplete(offset, requestor, AJWorkingCopyOwner.INSTANCE);
+        
+        assertEquals("Should have 2 proposals, but found:\n" + requestor.toString(), 2, requestor.accepted.size());
+
+        // the anonymous class decl
+        assertEquals("Signature of proposal should have been the 'HasITDs' constructor\n" + requestor.accepted.get(0), 
+                "HasITDs", new String(((CompletionProposal) requestor.accepted.get(0)).getName())); 
+        // the constructor
+        assertEquals("Proposal should have been the 'HasITDs' constructor\n" + requestor.accepted.get(1), 
+                "Lhasitds.HasITDs;", new String(((CompletionProposal) requestor.accepted.get(1)).getDeclarationSignature()));
+    }
+    
+    public void testFromDeclareParentInOtherClass() throws Exception {
+        MockCompletionRequestor requestor = new MockCompletionRequestor();
+        int offset = usesITDsContents.indexOf("h.insid") + "h.insid".length();
+        usesITDsUnit.codeComplete(offset, requestor, AJWorkingCopyOwner.INSTANCE);
+        
+        assertEquals("Should have 1 proposal, but found:\n" + requestor.toString(), 1, requestor.accepted.size());
+
+        assertEquals("Signature of proposal should have been the 'Foo.inside' field\n" + requestor.accepted.get(0), 
+                "inside", new String(((CompletionProposal) requestor.accepted.get(0)).getName())); 
+    }
+
+    public void testFromITDOnDeclareParentInOtherClass() throws Exception {
+        MockCompletionRequestor requestor = new MockCompletionRequestor();
+        int offset = usesITDsContents.indexOf("h.valu") + "h.valu".length();
+        usesITDsUnit.codeComplete(offset, requestor, AJWorkingCopyOwner.INSTANCE);
+        
+        assertEquals("Should have 1 proposal, but found:\n" + requestor.toString(), 1, requestor.accepted.size());
+
+        assertEquals("Signature of proposal should have been the 'Foo.value' field\n" + requestor.accepted.get(0), 
+                "value", new String(((CompletionProposal) requestor.accepted.get(0)).getName())); 
+    }
+
+}
+
+class MockCompletionRequestor extends CompletionRequestor {
+    
+    List accepted = new LinkedList();
+    
+    public void accept(CompletionProposal proposal) {
+        accepted.add(proposal);
+    }
+    
+    public List getAccepted() {
+        return accepted;
+    }
+    
+    public String toString() {
+        StringBuffer sb = new StringBuffer();
+        sb.append("Accepted completion proposals:\n");
+        if (accepted.size() > 0) {
+            for (Iterator iterator = accepted.iterator(); iterator.hasNext();) {
+                CompletionProposal proposal = (CompletionProposal) iterator.next();
+                sb.append("\t" + proposal.toString() + "\n");
+            }
+        } else {
+            sb.append("\t<none>\n");
+        }
+        return sb.toString();
+    }
+    
+}
\ No newline at end of file
diff --git a/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/.classpath b/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/.classpath
new file mode 100644
index 0000000..9424d31
--- /dev/null
+++ b/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.ajdt.core.ASPECTJRT_CONTAINER"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/.cvsignore b/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/.cvsignore
new file mode 100644
index 0000000..ba077a4
--- /dev/null
+++ b/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/.cvsignore
@@ -0,0 +1 @@
+bin
diff --git a/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/.project b/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/.project
new file mode 100644
index 0000000..0944d00
--- /dev/null
+++ b/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/.project
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ITDContentAssist</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.ajdt.core.ajbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.ajdt.ui.ajnature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/src/hasitds/HasITDs.aj b/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/src/hasitds/HasITDs.aj
new file mode 100644
index 0000000..a58f7de
--- /dev/null
+++ b/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/src/hasitds/HasITDs.aj
@@ -0,0 +1,15 @@
+package hasitds;
+
+import itds.ITDAspect;
+import java.util.List;
+
+public class HasITDs {
+
+	public void tryItOut() {
+		this.list.addAll(null);
+		this.makeList(4);
+		new HasITDs(6);
+		this.value = 9;
+		this.inside = 9; 
+	} 
+}
diff --git a/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/src/itds/ITDAspect.aj b/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/src/itds/ITDAspect.aj
new file mode 100644
index 0000000..15d6b86
--- /dev/null
+++ b/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/src/itds/ITDAspect.aj
@@ -0,0 +1,25 @@
+package itds;
+import java.util.ArrayList;
+import java.util.List;
+import hasitds.HasITDs;
+
+
+
+public aspect ITDAspect {
+	public List<String> HasITDs.list;
+	public java.util.List<String> HasITDs.makeList(int size) {
+		return new ArrayList<String>();
+	}
+	public HasITDs.new(int x) {
+		this();
+		list = new ArrayList<String>(); 
+	} 
+	 
+	public static class Super {
+		public int inside =9;
+	}
+	
+	public int Super.value = 7;
+	
+	declare parents : HasITDs extends Super;
+}
\ No newline at end of file
diff --git a/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/src/uses/UsesITDs.aj b/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/src/uses/UsesITDs.aj
new file mode 100644
index 0000000..7b2fa31
--- /dev/null
+++ b/org.eclipse.ajdt.core.tests/workspace/ITDContentAssist/src/uses/UsesITDs.aj
@@ -0,0 +1,14 @@
+package uses;
+
+import hasitds.HasITDs;
+import java.util.List;
+
+class UsesITDs {
+	public void tryItOut() {
+		HasITDs h = new HasITDs(6);
+		h.list.addAll(null);
+		h.makeList(4);
+		h.value = 9;
+		h.inside = 9; 
+	} 
+}