fix Maven test

This commit is contained in:
Maxim.Mossienko
2010-12-29 20:39:48 +03:00
parent 01a838721b
commit c79e2cea2a
3 changed files with 20 additions and 3 deletions
@@ -28,6 +28,7 @@ import com.intellij.openapi.editor.ScrollType;
import com.intellij.openapi.extensions.ExtensionPointName;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.openapi.util.Condition;
import com.intellij.psi.*;
import com.intellij.psi.impl.source.tree.injected.InjectedLanguageUtil;
@@ -135,6 +136,7 @@ public class PsiElementRenameHandler implements RenameHandler {
if (element == null) return;
final RenameDialog dialog = processor.createRenameDialog(project, element, nameSuggestionContext, editor);
if (defaultName == null && ApplicationManager.getApplication().isUnitTestMode()) {
String[] strings = dialog.getSuggestedNames();
if (strings != null && strings.length > 0) {
@@ -144,8 +146,14 @@ public class PsiElementRenameHandler implements RenameHandler {
defaultName = "undefined"; // need to avoid show dialog in test
}
}
if (defaultName != null) {
dialog.performRename(defaultName);
try {
dialog.performRename(defaultName);
} catch (CommonRefactoringUtil.RefactoringErrorHintException testErrorHintException){
dialog.close(DialogWrapper.CANCEL_EXIT_CODE); // to avoid dialog leak
throw testErrorHintException;
}
}
else {
dialog.show();
@@ -59,6 +59,8 @@ import java.util.*;
public class RenameProcessor extends BaseRefactoringProcessor {
private static final Logger LOG = Logger.getInstance("#com.intellij.refactoring.rename.RenameProcessor");
@NonNls public static final String FORCE_RENAME_PROCESSOR_TO_THROW_EXCEPTION_ON_BAD_RENAMEABILITY =
"force.rename.processor.to.throw.exception.on.bad.renameability";
protected final LinkedHashMap<PsiElement, String> myAllRenames = new LinkedHashMap<PsiElement, String>();
@@ -415,7 +417,9 @@ public class RenameProcessor extends BaseRefactoringProcessor {
prepareRenaming(myPrimaryElement, myNewName, myAllRenames);
}
protected boolean inTestsProduceExceptionOnBadRenameabilityStatus() { return false; }
protected boolean inTestsProduceExceptionOnBadRenameabilityStatus() {
return System.getProperty(FORCE_RENAME_PROCESSOR_TO_THROW_EXCEPTION_ON_BAD_RENAMEABILITY) != null;
}
public Collection<String> getNewNames() {
return myAllRenames.values();
@@ -43,6 +43,8 @@ import com.intellij.psi.xml.XmlTag;
import com.intellij.refactoring.rename.PsiElementRenameHandler;
import com.intellij.refactoring.rename.RenameHandler;
import com.intellij.refactoring.rename.RenameHandlerRegistry;
import com.intellij.refactoring.rename.RenameProcessor;
import com.intellij.refactoring.util.CommonRefactoringUtil;
import com.intellij.testFramework.MapDataContext;
import com.intellij.testFramework.fixtures.CodeInsightTestFixture;
import com.intellij.testFramework.fixtures.CodeInsightTestUtil;
@@ -284,12 +286,15 @@ public abstract class MavenDomTestCase extends MavenImportingTestCase {
RenameHandler handler = RenameHandlerRegistry.getInstance().getRenameHandler(context);
if (handler == null) return;
try {
System.getProperties().put(RenameProcessor.FORCE_RENAME_PROCESSOR_TO_THROW_EXCEPTION_ON_BAD_RENAMEABILITY, "");
invokeRename(context, handler);
}
catch (Exception e) {
catch (CommonRefactoringUtil.RefactoringErrorHintException e) {
if (!e.getMessage().startsWith("Cannot perform refactoring.")) {
throw e;
}
} finally {
System.getProperties().remove(RenameProcessor.FORCE_RENAME_PROCESSOR_TO_THROW_EXCEPTION_ON_BAD_RENAMEABILITY);
}
}