json/yaml with schema: fix and unbomb quick fix tests

GitOrigin-RevId: 1124f231f384cb1f4078ddcc650deec0de5d09b8
This commit is contained in:
Anton Lobov
2019-09-12 18:17:19 +02:00
committed by intellij-monorepo-bot
parent e9bf58c9b2
commit eae715139f
4 changed files with 29 additions and 37 deletions

View File

@@ -20,6 +20,7 @@ import com.intellij.openapi.util.Ref;
import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.impl.source.tree.LeafPsiElement;
@@ -77,6 +78,7 @@ public class AddMissingPropertyFix implements LocalQuickFix, BatchQuickFix<Commo
WriteAction.run(() -> editor.getCaretModel().moveToOffset(newElement.getTextRange().getEndOffset()));
return;
}
PsiDocumentManager.getInstance(project).doPostponedOperationsAndUnblockDocument(editor.getDocument());
TemplateManager templateManager = TemplateManager.getInstance(project);
TemplateBuilderImpl builder = new TemplateBuilderImpl(newElement);
String text = value.getText();

View File

@@ -2,16 +2,12 @@
package com.jetbrains.jsonSchema.fixes;
import com.intellij.codeInspection.InspectionProfileEntry;
import com.intellij.idea.Bombed;
import com.intellij.json.JsonLanguage;
import com.intellij.openapi.fileTypes.LanguageFileType;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.containers.Predicate;
import com.jetbrains.jsonSchema.impl.inspections.JsonSchemaComplianceInspection;
import java.util.Calendar;
@Bombed(user = "Anton.Lobov", month = Calendar.NOVEMBER, day = 1)
public class JsonSchemaQuickFixTest extends JsonSchemaQuickFixTestBase {
@Override
protected String getTestFileName() {

View File

@@ -2,8 +2,14 @@
package com.jetbrains.jsonSchema.fixes;
import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.codeInsight.intention.impl.ShowIntentionActionsHandler;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.psi.PsiFile;
import com.intellij.psi.stubs.StubTextInconsistencyException;
import com.intellij.testFramework.PlatformTestUtil;
import com.intellij.testFramework.PsiTestUtil;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.ui.UIUtil;
import com.jetbrains.jsonSchema.JsonSchemaHighlightingTestBase;
import org.intellij.lang.annotations.Language;
import org.jetbrains.annotations.NotNull;
@@ -17,28 +23,20 @@ public abstract class JsonSchemaQuickFixTestBase extends JsonSchemaHighlightingT
return PlatformTestUtil.getCommunityPath() + "/json/tests/testData/jsonSchema/highlighting";
}
protected void doTest(@Language("JSON") @NotNull String schema, @NotNull String text, String fixName, String afterFix) throws Exception {
configureInitially(schema, text, "json");
myFixture.doHighlighting();
protected void doTest(@Language("JSON") @NotNull String schema, @NotNull String text, String fixName, String afterFix) {
PsiFile psiFile = configureInitially(schema, text, "json");
myFixture.checkHighlighting();
List<IntentionAction> intentions = myFixture.getAvailableIntentions();
IntentionAction action = ContainerUtil.find(intentions, o -> fixName.equals(o.getFamilyName()));
action.invoke(getProject(), myFixture.getEditor(), myFixture.getFile());
String fileText = myFixture.getFile().getText();
int caretIndex = afterFix.indexOf("<caret>");
if (caretIndex >= 0) {
int caretOffset = myFixture.getEditor().getCaretModel().getOffset();
fileText = fileText.substring(0, caretOffset - 1) + "<caret>" + fileText.substring(caretOffset - 1);
}
assertEquals(afterFix, fileText);
ApplicationManager.getApplication().invokeLater(() -> {
try {
ShowIntentionActionsHandler.chooseActionAndInvoke(psiFile, myFixture.getEditor(), action, action.getText());
}
catch (StubTextInconsistencyException e) {
PsiTestUtil.compareStubTexts(e);
}
});
UIUtil.dispatchAllInvocationEvents();
myFixture.checkResult(afterFix);
}
/*
@Override
@NotNull
protected PsiFile configureInitially(@NotNull String schema,
@NotNull String text,
@NotNull String schemaExt) {
myFixture.enableInspections(getInspectionProfile());
registerProvider(schema, schemaExt);
return myFixture.addFileToProject("json_schema_test_r/" + getTestFileName(), text);
}*/
}

View File

@@ -2,16 +2,12 @@
package org.jetbrains.yaml.schema;
import com.intellij.codeInspection.InspectionProfileEntry;
import com.intellij.idea.Bombed;
import com.intellij.openapi.fileTypes.LanguageFileType;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.containers.Predicate;
import com.jetbrains.jsonSchema.fixes.JsonSchemaQuickFixTestBase;
import org.jetbrains.yaml.YAMLLanguage;
import java.util.Calendar;
@Bombed(user = "Anton.Lobov", month = Calendar.NOVEMBER, day = 1)
public class YamlByJsonSchemaQuickFixTest extends JsonSchemaQuickFixTestBase {
@Override
protected String getTestFileName() {
@@ -29,7 +25,7 @@ public class YamlByJsonSchemaQuickFixTest extends JsonSchemaQuickFixTestBase {
YAMLLanguage.INSTANCE);
}
public void testAddMissingProperty() throws Exception {
public void testAddMissingProperty() {
doTest("{\n" +
" \"properties\": {\n" +
" \"a\": {\n" +
@@ -42,18 +38,18 @@ public class YamlByJsonSchemaQuickFixTest extends JsonSchemaQuickFixTestBase {
"c: 5");
}
public void testRemoveProhibitedProperty() throws Exception {
public void testRemoveProhibitedProperty() {
doTest("{\n" +
" \"properties\": {\n" +
" \"a\": {},\n" +
" \"c\": {}\n" +
" },\n" +
" \"additionalProperties\": false\n" +
"}", "a: 5\n<warning>b: 6</warning>\nc: 7", "Remove prohibited property 'b'", "a: 5\n" +
"}", "a: 5\n<warning>b: 6<caret></warning>\nc: 7", "Remove prohibited property 'b'", "a: 5\n" +
"c: 7");
}
public void testEmptyFile() throws Exception {
public void testEmptyFile() {
doTest("{\n" +
" \"type\": \"object\",\n" +
"\n" +
@@ -67,7 +63,7 @@ public class YamlByJsonSchemaQuickFixTest extends JsonSchemaQuickFixTestBase {
" - ");
}
public void testEmptyObject() throws Exception {
public void testEmptyObject() {
doTest("{\n" +
" \"type\": \"object\",\n" +
"\n" +
@@ -84,12 +80,12 @@ public class YamlByJsonSchemaQuickFixTest extends JsonSchemaQuickFixTestBase {
" },\n" +
" \"required\": [\"versionAsStringArray\"]\n" +
"}", "versionAsStringArray:\n" +
"<warning> </warning>", "Add missing property 'xxx'", "versionAsStringArray:\n" +
"<warning> <caret></warning>", "Add missing property 'xxx'", "versionAsStringArray:\n" +
" xxx:\n" +
" - ");
}
public void testEmptyObjectMultipleProps() throws Exception {
public void testEmptyObjectMultipleProps() {
doTest("{\n" +
" \"type\": \"object\",\n" +
"\n" +
@@ -112,7 +108,7 @@ public class YamlByJsonSchemaQuickFixTest extends JsonSchemaQuickFixTestBase {
" },\n" +
" \"required\": [\"versionAsStringArray\"]\n" +
"}", "versionAsStringArray:\n" +
"<warning> </warning>","Add missing properties 'xxx', 'yyy', 'zzz'", "versionAsStringArray:\n" +
"<warning> <caret></warning>","Add missing properties 'xxx', 'yyy', 'zzz'", "versionAsStringArray:\n" +
" xxx: 0\n" +
" yyy:\n" +
" zzz: 0");