From c37ce75491222a898fd59918bd2d7697298fdf37 Mon Sep 17 00:00:00 2001 From: Mikhail Pyltsin Date: Wed, 15 Jan 2025 11:29:08 +0100 Subject: [PATCH] [java-inspections] IDEA-340624 IJ-CR-152872 Optimize imports quick fixes do nothing - more tests GitOrigin-RevId: 0b9e4bbfad412a65179ec94f936e866fdcb77572 --- ...ptimizeImportNotOnTheFlyInvalidImport.java | 4 ++ ...timizeImportNotOnTheFlyInvalidImport2.java | 6 +++ ...ImportNotOnTheFlyInvalidImport2_after.java | 5 +++ ...rtNotOnTheFlyInvalidImportNoIntention.java | 5 +++ ...mportNotOnTheFlyInvalidImportOnDemand.java | 6 +++ ...heFlyInvalidImportOnDemandNoIntention.java | 5 +++ ...otOnTheFlyInvalidImportOnDemand_after.java | 5 +++ ...eImportNotOnTheFlyInvalidImport_after.java | 2 + .../java/psi/OptimizeImportsTest.java | 38 +++++++++++++++++-- 9 files changed, 72 insertions(+), 4 deletions(-) create mode 100644 java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport.java create mode 100644 java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport2.java create mode 100644 java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport2_after.java create mode 100644 java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportNoIntention.java create mode 100644 java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportOnDemand.java create mode 100644 java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportOnDemandNoIntention.java create mode 100644 java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportOnDemand_after.java create mode 100644 java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport_after.java diff --git a/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport.java b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport.java new file mode 100644 index 000000000000..ef2965d2e8a7 --- /dev/null +++ b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport.java @@ -0,0 +1,4 @@ +import foo.bar.Baz; + +class Foo { +} \ No newline at end of file diff --git a/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport2.java b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport2.java new file mode 100644 index 000000000000..8a6c1d755602 --- /dev/null +++ b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport2.java @@ -0,0 +1,6 @@ +import foo.bar.Baz; +import java.util.List; + +class Foo { + void test(Baz baz) {} +} \ No newline at end of file diff --git a/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport2_after.java b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport2_after.java new file mode 100644 index 000000000000..c1e8fbb70329 --- /dev/null +++ b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport2_after.java @@ -0,0 +1,5 @@ +import foo.bar.Baz; + +class Foo { + void test(Baz baz) {} +} \ No newline at end of file diff --git a/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportNoIntention.java b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportNoIntention.java new file mode 100644 index 000000000000..51e29cb8ea97 --- /dev/null +++ b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportNoIntention.java @@ -0,0 +1,5 @@ +import foo.bar.Baz; + +class Foo { + void test(Baz baz) {} +} \ No newline at end of file diff --git a/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportOnDemand.java b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportOnDemand.java new file mode 100644 index 000000000000..68285cf8b71e --- /dev/null +++ b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportOnDemand.java @@ -0,0 +1,6 @@ +import foo.bar.*; +import static java.util.Arrays.asList; + +class Foo { + void test(Baz baz) {} +} \ No newline at end of file diff --git a/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportOnDemandNoIntention.java b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportOnDemandNoIntention.java new file mode 100644 index 000000000000..c8010c4cd765 --- /dev/null +++ b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportOnDemandNoIntention.java @@ -0,0 +1,5 @@ +import foo.bar.*; + +class Foo { + void test(Baz baz) {} +} \ No newline at end of file diff --git a/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportOnDemand_after.java b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportOnDemand_after.java new file mode 100644 index 000000000000..223ea38a4714 --- /dev/null +++ b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImportOnDemand_after.java @@ -0,0 +1,5 @@ +import foo.bar.*; + +class Foo { + void test(Baz baz) {} +} \ No newline at end of file diff --git a/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport_after.java b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport_after.java new file mode 100644 index 000000000000..d7607d58d239 --- /dev/null +++ b/java/java-tests/testData/psi/optimizeImports/OptimizeImportNotOnTheFlyInvalidImport_after.java @@ -0,0 +1,2 @@ +class Foo { +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/psi/OptimizeImportsTest.java b/java/java-tests/testSrc/com/intellij/java/psi/OptimizeImportsTest.java index ef691f3c3120..8e8550e52294 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/OptimizeImportsTest.java +++ b/java/java-tests/testSrc/com/intellij/java/psi/OptimizeImportsTest.java @@ -328,7 +328,7 @@ public class OptimizeImportsTest extends OptimizeImportsTestCase { package one; public interface Super { class Result {} - + Result x(); } """); @@ -412,7 +412,7 @@ public class OptimizeImportsTest extends OptimizeImportsTestCase { } } - public void testNoStubPsiMismatchOnRecordInsideImportList() throws Exception { + public void testNoStubPsiMismatchOnRecordInsideImportList() { myFixture.enableInspections(new UnusedImportInspection()); myFixture.configureByText("a.java", """ import java.util.List; @@ -446,14 +446,44 @@ public class OptimizeImportsTest extends OptimizeImportsTestCase { } public void testOptimizeImportNotOnTheFly() { + checkOptimizeImport(); + } + + public void testOptimizeImportNotOnTheFlyInvalidImport() { + checkOptimizeImport(); + } + + public void testOptimizeImportNotOnTheFlyInvalidImport2() { + checkOptimizeImport(); + } + + public void testOptimizeImportNotOnTheFlyInvalidImportNoIntention() { + checkOptimizeImportNoIntention(); + } + + public void testOptimizeImportNotOnTheFlyInvalidImportOnDemand() { + checkOptimizeImport(); + } + + public void testOptimizeImportNotOnTheFlyInvalidImportOnDemandNoIntention() { + checkOptimizeImportNoIntention(); + } + + private void checkOptimizeImport() { myFixture.enableInspections(new MissortedImportsInspection(), new UnusedImportInspection()); myFixture.testHighlighting(getTestName(false) + ".java"); IntentionAction intention = myFixture.findSingleIntention(QuickFixBundle.message("optimize.imports.fix")); - assertNotNull(intention); myFixture.launchAction(intention); myFixture.checkResultByFile(getTestName(false) + "_after.java"); } + private void checkOptimizeImportNoIntention() { + myFixture.enableInspections(new MissortedImportsInspection(), new UnusedImportInspection()); + myFixture.testHighlighting(getTestName(false) + ".java"); + IntentionAction intention = myFixture.getAvailableIntention(QuickFixBundle.message("optimize.imports.fix")); + assertNull(intention); + } + public void testRemovingAllUnusedImports() throws Exception { myFixture.enableInspections(new UnusedImportInspection()); myFixture.configureByText("a.java", """ @@ -669,7 +699,7 @@ public class OptimizeImportsTest extends OptimizeImportsTestCase { package one; public interface Super { class List {} - + List x(); } """);