import com.intellij.ide.startup.impl.StartupManagerImpl;
import com.intellij.lang.properties.PropertiesReferenceManager;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.fileTypes.FileTypeManager;
import com.intellij.openapi.fileTypes.StdFileTypes;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.module.impl.ModuleManagerImpl;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ex.ProjectManagerEx;
import com.intellij.openapi.startup.StartupManager;
import com.intellij.openapi.util.Computable;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.testFramework.IdeaTestCase;
import com.intellij.testFramework.PsiTestUtil;
import com.perniciouspenguins.ideaz.javadoc.util.PsiUtils;
import java.io.IOException;
/**
* Add
* -Didea.plugins.load=false -Xbootclasspath/p:$IDEA_HOME/lib/boot.jar
* to VM parameters
*
*/
public class JavaDocSyncPluginTest extends IdeaTestCase
{
protected void setUpProject() throws IOException
{
final String root = "D:\\home\\raymond\\Development\\Java\\IntelliJPlugins\\JavaDocManager\\1.0.2";
myProject = createProjectFrom( root );
setUpJdk();
myModule = ModuleManager.getInstance( myProject ).getModules()[0];
}
static Project createProjectFrom( final String root )
{
VirtualFile tempProjectRootDir = prepareProjectDirectory( root );
Project project = loadProjectComponents( tempProjectRootDir );
((ModuleManagerImpl) ModuleManager.getInstance( project )).projectOpened();
PropertiesReferenceManager.getInstance( project ).projectOpened();
((StartupManagerImpl) StartupManager.getInstance( project )).runStartupActivities();
((StartupManagerImpl) StartupManager.getInstance( project )).runPostStartupActivities();
return project;
}
private static Project loadProjectComponents( VirtualFile tempProjectRootDir )
{
Project project = null;
try
{
VirtualFile[] children = tempProjectRootDir.getChildren();
for( VirtualFile virtualFile : children )
{
if( FileTypeManager.getInstance().getFileTypeByFile( virtualFile ) == StdFileTypes.IDEA_PROJECT )
{
project = ProjectManagerEx.getInstanceEx().loadProject( virtualFile.getPath() );
break;
}
}
}
catch( Exception e )
{
LOG.error( e );
}
return project;
}
private static VirtualFile prepareProjectDirectory( final String root )
{
return ApplicationManager.getApplication().runWriteAction( new Computable