JspPrefixRefactoringTest fixed

This commit is contained in:
Dmitry Avdeev
2010-08-11 18:53:02 +04:00
parent 8dfb665829
commit 28b60e99a5
4 changed files with 30 additions and 30 deletions
@@ -22,6 +22,7 @@ import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.Pair;
import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileManager;
import com.intellij.openapi.vfs.VirtualFileWithId;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiFileFactory;
@@ -34,7 +35,6 @@ import com.intellij.psi.util.CachedValueProvider;
import com.intellij.psi.util.CachedValuesManager;
import com.intellij.psi.util.ParameterizedCachedValue;
import com.intellij.psi.util.ParameterizedCachedValueProvider;
import com.intellij.util.ArrayUtil;
import com.intellij.util.Processor;
import com.intellij.util.containers.HashMap;
import com.intellij.util.containers.MultiMap;
@@ -222,7 +222,11 @@ public class FileIncludeManagerImpl extends FileIncludeManager {
public CachedValueProvider.Result<VirtualFile[]> compute(PsiFile param) {
VirtualFile[] value = computeFiles(param, myRuntimeOnly);
// todo: we need "url modification tracker" for VirtualFile
return CachedValueProvider.Result.create(value, ArrayUtil.append(value, param.getVirtualFile()));
Object[] deps = new Object[value.length + 2];
deps[deps.length - 2] = param.getVirtualFile();
deps[deps.length - 1] = VirtualFileManager.getInstance();
return CachedValueProvider.Result.create(value, deps);
}
}
}
@@ -207,7 +207,7 @@ public interface CodeInsightTestFixture extends IdeaProjectTestFixture {
*/
void launchAction(@NotNull IntentionAction action);
void configureByFile(@TestDataFile @NonNls String file);
PsiFile configureByFile(@TestDataFile @NonNls String file);
void configureByFiles(@NonNls String... files);
@@ -305,7 +305,7 @@ public interface CodeInsightTestFixture extends IdeaProjectTestFixture {
void performEditorAction(String actionId);
int configureFromTempProjectFile(String filePath);
PsiFile configureFromTempProjectFile(String filePath);
void configureFromExistingVirtualFile(VirtualFile f);
@@ -661,7 +661,8 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
new WriteCommandAction.Simple(project) {
protected void run() throws Exception {
final int offset = configureByFilesInner(filePath);
configureByFilesInner(filePath);
int offset = myEditor.getCaretModel().getOffset();
final Collection<HighlightInfo> infos = doHighlighting();
for (HighlightInfo info :infos) {
@@ -945,7 +946,7 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
super.tearDown();
}
private int configureByFilesInner(@NonNls String... filePaths) throws IOException {
private PsiFile configureByFilesInner(@NonNls String... filePaths) throws IOException {
assertInitialized();
myFile = null;
myEditor = null;
@@ -955,13 +956,14 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
return configureByFileInner(filePaths[0]);
}
public void configureByFile(final String file) {
public PsiFile configureByFile(final String file) {
assertInitialized();
new WriteCommandAction.Simple(getProject()) {
protected void run() throws Exception {
configureByFilesInner(file);
}
}.execute();
return myFile;
}
public void configureByFiles(@NonNls final String... files) {
@@ -1026,16 +1028,15 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
/**
*
* @param filePath
* @return caret offset or -1 if caret marker does not present
* @throws IOException
*/
private int configureByFileInner(@NonNls String filePath) {
private PsiFile configureByFileInner(@NonNls String filePath) {
assertInitialized();
final VirtualFile file = copyFileToProject(filePath);
return configureByFileInner(file);
}
public int configureFromTempProjectFile(final String filePath) {
public PsiFile configureFromTempProjectFile(final String filePath) {
return configureByFileInner(findFileInTempDir(filePath));
}
@@ -1043,11 +1044,11 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
configureByFileInner(f);
}
private int configureByFileInner(final VirtualFile copy) {
private PsiFile configureByFileInner(final VirtualFile copy) {
return configureInner(copy, SelectionAndCaretMarkupLoader.fromFile(copy, getProject()));
}
private int configureInner(@NotNull final VirtualFile copy, final SelectionAndCaretMarkupLoader loader) {
private PsiFile configureInner(@NotNull final VirtualFile copy, final SelectionAndCaretMarkupLoader loader) {
assertInitialized();
try {
final OutputStream outputStream = copy.getOutputStream(null, 0, 0);
@@ -1077,7 +1078,7 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
}
}
return offset;
return myFile;
}
private static void setContext(final PsiFile file, final PsiElement context) {
@@ -16,7 +16,6 @@
package com.intellij.psi.impl.source.xml;
import com.intellij.codeInsight.lookup.LookupElement;
import com.intellij.openapi.util.NullableLazyValue;
import com.intellij.openapi.util.TextRange;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiReferenceBase;
@@ -36,21 +35,7 @@ import org.jetbrains.annotations.Nullable;
*/
public class SchemaPrefixReference extends PsiReferenceBase<XmlElement> implements PossiblePrefixReference {
private final NullableLazyValue<SchemaPrefix> myPrefix = new NullableLazyValue<SchemaPrefix>() {
@Override
protected SchemaPrefix compute() {
if (myElement instanceof XmlAttribute && (((XmlAttribute)myElement).isNamespaceDeclaration())) {
return new SchemaPrefix((XmlAttribute)myElement, getRangeInElement(), myName);
}
else if (myElement instanceof XmlAttributeValue &&
((XmlAttribute)((XmlAttributeValue)myElement).getParent()).getLocalName().equals("prefix")) {
return SchemaPrefix.createJspPrefix((XmlAttributeValue)SchemaPrefixReference.this.myElement, myName);
}
else {
return resolvePrefix(myElement, myName);
}
}
};
private final SchemaPrefix myPrefix;
private final String myName;
@Nullable
@@ -67,6 +52,16 @@ public class SchemaPrefixReference extends PsiReferenceBase<XmlElement> implemen
super(element, range, true);
myName = name;
myTagNameReference = tagNameReference;
if (myElement instanceof XmlAttribute && (((XmlAttribute)myElement).isNamespaceDeclaration())) {
myPrefix = new SchemaPrefix((XmlAttribute)myElement, getRangeInElement(), myName);
}
else if (myElement instanceof XmlAttributeValue &&
((XmlAttribute)((XmlAttributeValue)myElement).getParent()).getLocalName().equals("prefix")) {
myPrefix = SchemaPrefix.createJspPrefix((XmlAttributeValue)myElement, myName);
}
else {
myPrefix = null;
}
}
public String getNamespacePrefix() {
@@ -74,7 +69,7 @@ public class SchemaPrefixReference extends PsiReferenceBase<XmlElement> implemen
}
public SchemaPrefix resolve() {
return myPrefix.getValue();
return myPrefix == null ? resolvePrefix(myElement, myName) : myPrefix;
}
@NotNull