mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
new project wizard: preparing test infrastructure
This commit is contained in:
@@ -17,6 +17,7 @@ package com.intellij.ide.actions;
|
||||
|
||||
import com.intellij.ide.impl.NewProjectUtil;
|
||||
import com.intellij.ide.util.PropertiesComponent;
|
||||
import com.intellij.ide.util.newProjectWizard.AbstractProjectWizard;
|
||||
import com.intellij.ide.util.newProjectWizard.AddModuleWizard;
|
||||
import com.intellij.ide.util.projectWizard.ProjectBuilder;
|
||||
import com.intellij.openapi.actionSystem.AnAction;
|
||||
@@ -68,9 +69,9 @@ public class ImportModuleAction extends AnAction {
|
||||
return createFromWizard(project, wizard);
|
||||
}
|
||||
|
||||
public static List<Module> createFromWizard(Project project, AddModuleWizard wizard) {
|
||||
public static List<Module> createFromWizard(Project project, AbstractProjectWizard wizard) {
|
||||
if (project == null && wizard.getStepCount() > 0) {
|
||||
Project newProject = NewProjectUtil.createFromWizard(wizard, project);
|
||||
Project newProject = NewProjectUtil.createFromWizard(wizard, null);
|
||||
return newProject == null ? Collections.<Module>emptyList() : Arrays.asList(ModuleManager.getInstance(newProject).getModules());
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.ide.util.newProjectWizard;
|
||||
|
||||
import com.intellij.ide.highlighter.ModuleFileType;
|
||||
import com.intellij.ide.highlighter.ProjectFileType;
|
||||
import com.intellij.ide.util.projectWizard.ProjectBuilder;
|
||||
import com.intellij.ide.util.projectWizard.WizardContext;
|
||||
@@ -30,6 +31,7 @@ import com.intellij.openapi.util.text.StringUtil;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.annotations.TestOnly;
|
||||
|
||||
import java.awt.*;
|
||||
import java.io.File;
|
||||
@@ -114,4 +116,23 @@ public abstract class AbstractProjectWizard<T extends Step> extends AbstractWiza
|
||||
}
|
||||
return path;
|
||||
}
|
||||
|
||||
public void doNextAction() {
|
||||
super.doNextAction();
|
||||
}
|
||||
|
||||
@TestOnly
|
||||
public void doOk() {
|
||||
doOKAction();
|
||||
}
|
||||
|
||||
@TestOnly
|
||||
public boolean isLast() {
|
||||
return isLastStep();
|
||||
}
|
||||
|
||||
@NonNls
|
||||
public String getModuleFilePath() {
|
||||
return myWizardContext.getProjectFileDirectory() + File.separator + myWizardContext.getProjectName() + ModuleFileType.DOT_DEFAULT_EXTENSION;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
package com.intellij.ide.util.newProjectWizard;
|
||||
|
||||
import com.intellij.ide.IdeBundle;
|
||||
import com.intellij.ide.highlighter.ModuleFileType;
|
||||
import com.intellij.ide.util.newProjectWizard.modes.CreateFromTemplateMode;
|
||||
import com.intellij.ide.util.newProjectWizard.modes.ImportMode;
|
||||
import com.intellij.ide.util.newProjectWizard.modes.WizardMode;
|
||||
@@ -42,14 +41,12 @@ import com.intellij.projectImport.ProjectImportBuilder;
|
||||
import com.intellij.projectImport.ProjectImportProvider;
|
||||
import com.intellij.ui.IdeBorderFactory;
|
||||
import com.intellij.util.Function;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.annotations.TestOnly;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.io.File;
|
||||
|
||||
public class AddModuleWizard extends AbstractProjectWizard<ModuleWizardStep> {
|
||||
private static final String ADD_MODULE_TITLE = IdeBundle.message("title.add.module");
|
||||
@@ -303,11 +300,6 @@ public class AddModuleWizard extends AbstractProjectWizard<ModuleWizardStep> {
|
||||
return myWizardContext;
|
||||
}
|
||||
|
||||
@NonNls
|
||||
public String getModuleFilePath() {
|
||||
return myWizardContext.getProjectFileDirectory() + File.separator + myWizardContext.getProjectName() + ModuleFileType.DOT_DEFAULT_EXTENSION;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getDimensionServiceKey() {
|
||||
return "NewModule_or_Project.wizard";
|
||||
@@ -335,16 +327,6 @@ public class AddModuleWizard extends AbstractProjectWizard<ModuleWizardStep> {
|
||||
return false;
|
||||
}
|
||||
|
||||
@TestOnly
|
||||
public void doOk() {
|
||||
doOKAction();
|
||||
}
|
||||
|
||||
@TestOnly
|
||||
public boolean isLast() {
|
||||
return isLastStep();
|
||||
}
|
||||
|
||||
@TestOnly
|
||||
public void commit() {
|
||||
commitStepData(getCurrentStepObject());
|
||||
|
||||
+2
-1
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.openapi.roots.ui.configuration.actions;
|
||||
|
||||
import com.intellij.ide.util.newProjectWizard.AbstractProjectWizard;
|
||||
import com.intellij.ide.util.newProjectWizard.AddModuleWizard;
|
||||
import com.intellij.ide.util.newProjectWizard.AddModuleWizardPro;
|
||||
import com.intellij.ide.util.projectWizard.ModuleBuilder;
|
||||
@@ -68,7 +69,7 @@ public class NewModuleAction extends AnAction implements DumbAware {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Module createModuleFromWizard(Project project, @Nullable Object dataFromContext, AddModuleWizard wizard) {
|
||||
public Module createModuleFromWizard(Project project, @Nullable Object dataFromContext, AbstractProjectWizard wizard) {
|
||||
final ProjectBuilder builder = wizard.getProjectBuilder();
|
||||
if (builder instanceof ModuleBuilder) {
|
||||
final ModuleBuilder moduleBuilder = (ModuleBuilder)builder;
|
||||
|
||||
@@ -2,10 +2,11 @@ package com.intellij.ide.projectWizard;
|
||||
|
||||
import com.intellij.ide.actions.ImportModuleAction;
|
||||
import com.intellij.ide.impl.NewProjectUtil;
|
||||
import com.intellij.ide.util.newProjectWizard.AbstractProjectWizard;
|
||||
import com.intellij.ide.util.newProjectWizard.AddModuleWizard;
|
||||
import com.intellij.ide.util.newProjectWizard.SelectTemplateSettings;
|
||||
import com.intellij.ide.util.newProjectWizard.SelectTemplateStep;
|
||||
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
|
||||
import com.intellij.ide.wizard.Step;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -38,14 +39,15 @@ import java.util.List;
|
||||
* @author Dmitry Avdeev
|
||||
* Date: 10/29/12
|
||||
*/
|
||||
public abstract class ProjectWizardTestCase extends PlatformTestCase {
|
||||
@SuppressWarnings("unchecked")
|
||||
public abstract class ProjectWizardTestCase<T extends AbstractProjectWizard<? extends Step>> extends PlatformTestCase {
|
||||
|
||||
protected final List<Sdk> mySdks = new ArrayList<Sdk>();
|
||||
protected AddModuleWizard myWizard;
|
||||
protected T myWizard;
|
||||
@Nullable
|
||||
private Project myCreatedProject;
|
||||
|
||||
protected Project createProjectFromTemplate(String group, String name, @Nullable Consumer<ModuleWizardStep> adjuster) throws IOException {
|
||||
protected Project createProjectFromTemplate(String group, String name, @Nullable Consumer<Step> adjuster) throws IOException {
|
||||
runWizard(group, name, null, adjuster);
|
||||
try {
|
||||
myCreatedProject = NewProjectUtil.createFromWizard(myWizard, null);
|
||||
@@ -68,7 +70,7 @@ public abstract class ProjectWizardTestCase extends PlatformTestCase {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
protected Module createModuleFromTemplate(String group, String name, @Nullable Consumer<ModuleWizardStep> adjuster) throws IOException {
|
||||
protected Module createModuleFromTemplate(String group, String name, @Nullable Consumer<Step> adjuster) throws IOException {
|
||||
runWizard(group, name, getProject(), adjuster);
|
||||
return createModuleFromWizard();
|
||||
}
|
||||
@@ -77,7 +79,7 @@ public abstract class ProjectWizardTestCase extends PlatformTestCase {
|
||||
return new NewModuleAction().createModuleFromWizard(myProject, null, myWizard);
|
||||
}
|
||||
|
||||
protected void runWizard(String group, String name, Project project, @Nullable Consumer<ModuleWizardStep> adjuster) throws IOException {
|
||||
protected void runWizard(String group, String name, Project project, @Nullable Consumer<Step> adjuster) throws IOException {
|
||||
|
||||
createWizard(project);
|
||||
SelectTemplateStep step = (SelectTemplateStep)myWizard.getCurrentStepObject();
|
||||
@@ -98,11 +100,15 @@ public abstract class ProjectWizardTestCase extends PlatformTestCase {
|
||||
protected void createWizard(Project project) throws IOException {
|
||||
File directory = FileUtil.createTempDirectory(getName(), "new", false);
|
||||
myFilesToDelete.add(directory);
|
||||
myWizard = new AddModuleWizard(project, DefaultModulesProvider.createForProject(project), directory.getPath());
|
||||
myWizard = createWizard(project, directory);
|
||||
UIUtil.dispatchAllInvocationEvents(); // to make default selection applied
|
||||
}
|
||||
|
||||
protected void runWizard(Consumer<ModuleWizardStep> adjuster) {
|
||||
protected T createWizard(Project project, File directory) {
|
||||
return (T)new AddModuleWizard(project, DefaultModulesProvider.createForProject(project), directory.getPath());
|
||||
}
|
||||
|
||||
protected void runWizard(Consumer<Step> adjuster) {
|
||||
while (!myWizard.isLast()) {
|
||||
myWizard.doNextAction();
|
||||
if (adjuster != null) {
|
||||
@@ -157,7 +163,7 @@ public abstract class ProjectWizardTestCase extends PlatformTestCase {
|
||||
return importFrom(path, getProject(), null, provider);
|
||||
}
|
||||
|
||||
protected Module importProjectFrom(String path, Consumer<ModuleWizardStep> adjuster, ProjectImportProvider... providers) {
|
||||
protected Module importProjectFrom(String path, Consumer<Step> adjuster, ProjectImportProvider... providers) {
|
||||
Module module = importFrom(path, null, adjuster, providers);
|
||||
if (module != null) {
|
||||
myCreatedProject = module.getProject();
|
||||
@@ -166,13 +172,14 @@ public abstract class ProjectWizardTestCase extends PlatformTestCase {
|
||||
}
|
||||
|
||||
private Module importFrom(String path,
|
||||
@Nullable Project project, Consumer<ModuleWizardStep> adjuster,
|
||||
@Nullable Project project, Consumer<Step> adjuster,
|
||||
final ProjectImportProvider... providers) {
|
||||
VirtualFile file = LocalFileSystem.getInstance().refreshAndFindFileByPath(path);
|
||||
assertNotNull("Can't find " + path, file);
|
||||
assertTrue(providers[0].canImport(file, project));
|
||||
|
||||
myWizard = ImportModuleAction.createImportWizard(project, null, file, providers);
|
||||
myWizard = (T)ImportModuleAction.createImportWizard(project, null, file, providers);
|
||||
assertNotNull(myWizard);
|
||||
if (myWizard.getStepCount() > 0) {
|
||||
runWizard(adjuster);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user