[devkit] adjust "Must override ActionGroup.canBePerformed [...]" inspection (IJPL-116447)

GitOrigin-RevId: 02077deb11ed9d0a63dcb064192ed16f1dcff1dd
This commit is contained in:
Yann Cébron
2024-09-12 15:09:31 +02:00
committed by intellij-monorepo-bot
parent dbfdbb4d40
commit 96090e5b02
6 changed files with 75 additions and 20 deletions

View File

@@ -0,0 +1,6 @@
<idea-plugin>
<actions>
<action id="myAction" class="foo.bar.BarAction"/>
<group id="groupWithUseShortcutOf" class="foo.bar.GroupWithoutCanBePerformed" use-shortcut-of="myAction"/>
</actions>
</idea-plugin>

View File

@@ -1,4 +1,4 @@
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package org.jetbrains.idea.devkit.inspections;
import com.intellij.testFramework.TestDataPath;
@@ -11,6 +11,13 @@ public class PluginXmlDomInspectionActionHighlightingTest extends PluginXmlDomIn
return DevkitJavaTestsUtil.TESTDATA_PATH + "inspections/registrationProblems/xml/actions";
}
@Override
protected void setUp() throws Exception {
super.setUp();
setUpActionClasses(!getTestName(false).contains("Without"));
}
public void testActionAbstractClass() {
myFixture.testHighlighting("ActionAbstractClass.xml",
"MyAbstractAction.java");
@@ -29,7 +36,6 @@ public class PluginXmlDomInspectionActionHighlightingTest extends PluginXmlDomIn
myFixture.testHighlighting("ActionWrongClass.xml");
}
@SuppressWarnings("removal")
public void testActionComplexHighlighting() {
myFixture.copyFileToProject("MyBundle.properties");
myFixture.copyFileToProject("AnotherBundle.properties");
@@ -42,14 +48,26 @@ public class PluginXmlDomInspectionActionHighlightingTest extends PluginXmlDomIn
myFixture.addClass("package foo; public class ActionWithDefaultConstructor extends PackagePrivateActionBase {}");
myFixture.addClass("package foo.bar; class BarGroup extends com.intellij.openapi.actionSystem.ActionGroup {}");
myFixture.addClass("""
package foo.bar;
import org.jetbrains.annotations.NotNull;
public class GroupWithCanBePerformed extends com.intellij.openapi.actionSystem.ActionGroup {
@Override
public boolean canBePerformed(@NotNull com.intellij.openapi.actionSystem.DataContext context) { return true; }
}""");
package foo.bar;
import org.jetbrains.annotations.NotNull;
public class GroupWithCanBePerformed extends com.intellij.openapi.actionSystem.ActionGroup {
@Override
public boolean canBePerformed(@NotNull com.intellij.openapi.actionSystem.DataContext context) { return true; }
}""");
myFixture.addFileToProject("keymaps/MyKeymap.xml", "<keymap/>");
myFixture.testHighlighting("ActionComplexHighlighting.xml");
}
public void testActionGroupWithoutCanBePerformed() {
myFixture.addClass("package foo.bar; public class BarAction extends com.intellij.openapi.actionSystem.AnAction {}");
myFixture.addClass("""
package foo.bar;
public class GroupWithoutCanBePerformed extends com.intellij.openapi.actionSystem.ActionGroup {
}
""");
myFixture.testHighlighting("ActionGroupWithoutCanBePerformed.xml");
}
}