IDEA-149752 IJ does not fetch schema

This commit is contained in:
Dmitry Avdeev
2015-12-29 13:51:01 +03:00
parent f5ad942a0d
commit 195b2dd048
@@ -15,13 +15,17 @@
*/
package com.intellij.codeInsight.daemon.quickFix;
import com.intellij.codeInsight.daemon.impl.HighlightInfo;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.javaee.ExternalResourceManager;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase;
import com.intellij.xml.XmlBundle;
import java.util.List;
/**
* @author Dmitry Avdeev
*/
@@ -36,10 +40,28 @@ public class RealFetchTest extends LightPlatformCodeInsightFixtureTestCase {
assertNotNull(intention);
intention.invoke(getProject(), myFixture.getEditor(), myFixture.getFile());
assertNotSame(url, ExternalResourceManager.getInstance().getResourceLocation(url, getProject()));
ApplicationManager.getApplication().runWriteAction(new Runnable() {
public void run() {
ExternalResourceManager.getInstance().removeResource(url);
}
ApplicationManager.getApplication().runWriteAction(() -> {
ExternalResourceManager.getInstance().removeResource(url);
});
}
public void testOverwriteFetchDtd() throws Exception {
final String url = "http://helpserver.labs.intellij.net/help/images.dtd";
VirtualFile virtualFile = myFixture.getTempDirFixture().createFile("images.dtd", "");
ApplicationManager.getApplication().runWriteAction(() -> {
ExternalResourceManager.getInstance().addResource(url, virtualFile.getPath());
});
myFixture.configureByText(XmlFileType.INSTANCE, "<!DOCTYPE images SYSTEM \"<error descr=\"Resource registered by this uri is not recognized (Settings | Languages & Frameworks | Schemas and DTDs)\">http://helpserver.labs.intellij.net/help/ima<caret>ges.dtd</error>\"><images> </images>");
myFixture.testHighlighting();
IntentionAction intention = myFixture.getAvailableIntention(XmlBundle.message("fetch.external.resource"));
assertNotNull(intention);
intention.invoke(getProject(), myFixture.getEditor(), myFixture.getFile());
List<HighlightInfo> infos = myFixture.doHighlighting();
assertEmpty(infos);
ApplicationManager.getApplication().runWriteAction(() -> {
ExternalResourceManager.getInstance().removeResource(url);
});
}