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(); } """);