diff --git a/generators/org/jetbrains/jet/generators/tests/GenerateTests.java b/generators/org/jetbrains/jet/generators/tests/GenerateTests.java index d62108b3ab2..9c1b7a598c4 100644 --- a/generators/org/jetbrains/jet/generators/tests/GenerateTests.java +++ b/generators/org/jetbrains/jet/generators/tests/GenerateTests.java @@ -436,48 +436,7 @@ public class GenerateTests { "idea/tests/", "JetFindUsagesTest", AbstractJetFindUsagesTest.class, - testModelWithFileName( - "idea/testData/findUsages/findClassUsages/javaClassUsages", "Server.kt", "testFindClassJavaUsages" - ), - testModelWithFileName( - "idea/testData/findUsages/findClassUsages/kotlinClassUsages1", "Server.kt", "testFindClassKotlinUsages" - ), - testModelWithFileName( - "idea/testData/findUsages/findClassUsages/kotlinClassUsages2", "Server.kt", "testFindClassKotlinUsages" - ), - testModelWithFileName( - "idea/testData/findUsages/findClassUsages/kotlinClassUsages3", "Server.kt", "testFindClassKotlinUsages" - ), - testModelWithFileName( - "idea/testData/findUsages/findObjectUsages/javaObjectUsages", "Server.kt", "testFindObjectJavaUsages" - ), - testModelWithFileName( - "idea/testData/findUsages/findObjectUsages/kotlinObjectUsages", "Server.kt", "testFindObjectKotlinUsages" - ), - testModelWithFileName( - "idea/testData/findUsages/findMethodUsages/javaMethodUsages", "Server.kt", "testFindMethodJavaUsages" - ), - testModelWithFileName( - "idea/testData/findUsages/findMethodUsages/kotlinMethodUsages", "Server.kt", "testFindMethodKotlinUsages" - ), - testModelWithFileName( - "idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides", "Server.kt", "testFindMethodJavaUsages" - ), - testModelWithFileName( - "idea/testData/findUsages/findMethodUsages/kotlinExtensionAndOverloadUsages", "Server.kt", "testFindMethodKotlinUsages" - ), - testModelWithFileName( - "idea/testData/findUsages/findPropertyUsages/javaPropertyUsages", "Server.kt", "testFindPropertyJavaUsages" - ), - testModelWithFileName( - "idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages", "Server.kt", "testFindPropertyKotlinUsages" - ), - testModelWithFileName( - "idea/testData/findUsages/findWithFilteringImports", "Server.kt", "testFindWithFilteringImports" - ), - testModelWithFileName( - "idea/testData/findUsages/unresolvedAnnotation", "Server.kt", "testFindUsagesUnresolvedAnnotation" - ) + testModelWithPattern("idea/testData/findUsages", "^(.+).0.kt$", "doTest") ); } @@ -497,8 +456,8 @@ public class GenerateTests { return new SimpleTestClassModel(new File(rootPath), false, Pattern.compile("^(.+)$"), methodName); } - private static SimpleTestClassModel testModelWithFileName(@NotNull String rootPath, @NotNull String fileName, @NotNull String methodName) { - return new SimpleTestClassModel(new File(rootPath), true, Pattern.compile("^(.*)" + fileName + "$"), methodName); + private static SimpleTestClassModel testModelWithPattern(@NotNull String rootPath, @NotNull String pattern, @NotNull String methodName) { + return new SimpleTestClassModel(new File(rootPath), true, Pattern.compile(pattern), methodName); } private static SimpleTestClassModel testModel( diff --git a/idea/testData/findUsages/findClassUsages/javaClassUsages.0.kt b/idea/testData/findUsages/findClassUsages/javaClassUsages.0.kt new file mode 100644 index 00000000000..4ab083d87c1 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/javaClassUsages.0.kt @@ -0,0 +1,5 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +package testing + +class Server() { +} diff --git a/idea/testData/findUsages/findClassUsages/javaClassUsages/Client.java b/idea/testData/findUsages/findClassUsages/javaClassUsages.1.java similarity index 100% rename from idea/testData/findUsages/findClassUsages/javaClassUsages/Client.java rename to idea/testData/findUsages/findClassUsages/javaClassUsages.1.java diff --git a/idea/testData/findUsages/findClassUsages/javaClassUsages/results.txt b/idea/testData/findUsages/findClassUsages/javaClassUsages.results.txt similarity index 100% rename from idea/testData/findUsages/findClassUsages/javaClassUsages/results.txt rename to idea/testData/findUsages/findClassUsages/javaClassUsages.results.txt diff --git a/idea/testData/findUsages/findClassUsages/javaClassUsages/Server.kt b/idea/testData/findUsages/findClassUsages/javaClassUsages/Server.kt deleted file mode 100644 index ce3c4c58477..00000000000 --- a/idea/testData/findUsages/findClassUsages/javaClassUsages/Server.kt +++ /dev/null @@ -1,4 +0,0 @@ -package testing; - -class Server() { -} diff --git a/idea/testData/findUsages/findClassUsages/kotlinClassUsages1/Server.kt b/idea/testData/findUsages/findClassUsages/kotlinClassUsages.0.kt similarity index 74% rename from idea/testData/findUsages/findClassUsages/kotlinClassUsages1/Server.kt rename to idea/testData/findUsages/findClassUsages/kotlinClassUsages.0.kt index e8f74cc9821..1ebe7bd4f2d 100644 --- a/idea/testData/findUsages/findClassUsages/kotlinClassUsages1/Server.kt +++ b/idea/testData/findUsages/findClassUsages/kotlinClassUsages.0.kt @@ -1,3 +1,4 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass package server open class Server { diff --git a/idea/testData/findUsages/findClassUsages/kotlinClassUsages1/Client.kt b/idea/testData/findUsages/findClassUsages/kotlinClassUsages.1.kt similarity index 100% rename from idea/testData/findUsages/findClassUsages/kotlinClassUsages1/Client.kt rename to idea/testData/findUsages/findClassUsages/kotlinClassUsages.1.kt diff --git a/idea/testData/findUsages/findClassUsages/kotlinClassUsages1/results.txt b/idea/testData/findUsages/findClassUsages/kotlinClassUsages.results.txt similarity index 100% rename from idea/testData/findUsages/findClassUsages/kotlinClassUsages1/results.txt rename to idea/testData/findUsages/findClassUsages/kotlinClassUsages.results.txt diff --git a/idea/testData/findUsages/findClassUsages/kotlinClassUsages2/Server.kt b/idea/testData/findUsages/findClassUsages/kotlinClassUsages2.0.kt similarity index 51% rename from idea/testData/findUsages/findClassUsages/kotlinClassUsages2/Server.kt rename to idea/testData/findUsages/findClassUsages/kotlinClassUsages2.0.kt index 92281e3ae02..c24f7c8c6f3 100644 --- a/idea/testData/findUsages/findClassUsages/kotlinClassUsages2/Server.kt +++ b/idea/testData/findUsages/findClassUsages/kotlinClassUsages2.0.kt @@ -1,3 +1,4 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass package server annotation class X(val x: String) \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/kotlinClassUsages2/Client.kt b/idea/testData/findUsages/findClassUsages/kotlinClassUsages2.1.kt similarity index 100% rename from idea/testData/findUsages/findClassUsages/kotlinClassUsages2/Client.kt rename to idea/testData/findUsages/findClassUsages/kotlinClassUsages2.1.kt diff --git a/idea/testData/findUsages/findClassUsages/kotlinClassUsages2/results.txt b/idea/testData/findUsages/findClassUsages/kotlinClassUsages2.results.txt similarity index 100% rename from idea/testData/findUsages/findClassUsages/kotlinClassUsages2/results.txt rename to idea/testData/findUsages/findClassUsages/kotlinClassUsages2.results.txt diff --git a/idea/testData/findUsages/findClassUsages/kotlinClassUsages3.0.kt b/idea/testData/findUsages/findClassUsages/kotlinClassUsages3.0.kt new file mode 100644 index 00000000000..6a09805eae1 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinClassUsages3.0.kt @@ -0,0 +1,4 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +package server + +data class Data \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/kotlinClassUsages3/Client.kt b/idea/testData/findUsages/findClassUsages/kotlinClassUsages3.1.kt similarity index 100% rename from idea/testData/findUsages/findClassUsages/kotlinClassUsages3/Client.kt rename to idea/testData/findUsages/findClassUsages/kotlinClassUsages3.1.kt diff --git a/idea/testData/findUsages/findClassUsages/kotlinClassUsages3/results.txt b/idea/testData/findUsages/findClassUsages/kotlinClassUsages3.results.txt similarity index 100% rename from idea/testData/findUsages/findClassUsages/kotlinClassUsages3/results.txt rename to idea/testData/findUsages/findClassUsages/kotlinClassUsages3.results.txt diff --git a/idea/testData/findUsages/findClassUsages/kotlinClassUsages3/Server.kt b/idea/testData/findUsages/findClassUsages/kotlinClassUsages3/Server.kt deleted file mode 100644 index 2b4068b1e88..00000000000 --- a/idea/testData/findUsages/findClassUsages/kotlinClassUsages3/Server.kt +++ /dev/null @@ -1,3 +0,0 @@ -package server - -data class Data \ No newline at end of file diff --git a/idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides/Server.kt b/idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides.0.kt similarity index 90% rename from idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides/Server.kt rename to idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides.0.kt index eef1b48efb5..dc752b1a588 100644 --- a/idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides/Server.kt +++ b/idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides.0.kt @@ -1,3 +1,4 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetNamedFunction // OPTIONS: overrides open class A { open fun foo(t: T) { diff --git a/idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides/Client.java b/idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides.1.java similarity index 100% rename from idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides/Client.java rename to idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides.1.java diff --git a/idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides.results.txt b/idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides.results.txt new file mode 100644 index 00000000000..7892b208db1 --- /dev/null +++ b/idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides.results.txt @@ -0,0 +1,2 @@ +Unclassified usage (29: 18) override fun foo(t: String) { +Unclassified usage (3: 17) public void foo(String s) { \ No newline at end of file diff --git a/idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides/results.txt b/idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides/results.txt deleted file mode 100644 index 15296fd993b..00000000000 --- a/idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides/results.txt +++ /dev/null @@ -1,2 +0,0 @@ -Unclassified usage (28: 18) override fun foo(t: String) { -Unclassified usage (3: 17) public void foo(String s) { \ No newline at end of file diff --git a/idea/testData/findUsages/findMethodUsages/javaMethodUsages/Server.kt b/idea/testData/findUsages/findMethodUsages/javaMethodUsages.0.kt similarity index 64% rename from idea/testData/findUsages/findMethodUsages/javaMethodUsages/Server.kt rename to idea/testData/findUsages/findMethodUsages/javaMethodUsages.0.kt index 31c8f264f7f..290a8f9f624 100644 --- a/idea/testData/findUsages/findMethodUsages/javaMethodUsages/Server.kt +++ b/idea/testData/findUsages/findMethodUsages/javaMethodUsages.0.kt @@ -1,3 +1,4 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetNamedFunction // OPTIONS: usages package testing; diff --git a/idea/testData/findUsages/findMethodUsages/javaMethodUsages/Client.java b/idea/testData/findUsages/findMethodUsages/javaMethodUsages.1.java similarity index 100% rename from idea/testData/findUsages/findMethodUsages/javaMethodUsages/Client.java rename to idea/testData/findUsages/findMethodUsages/javaMethodUsages.1.java diff --git a/idea/testData/findUsages/findMethodUsages/javaMethodUsages/results.txt b/idea/testData/findUsages/findMethodUsages/javaMethodUsages.results.txt similarity index 100% rename from idea/testData/findUsages/findMethodUsages/javaMethodUsages/results.txt rename to idea/testData/findUsages/findMethodUsages/javaMethodUsages.results.txt diff --git a/idea/testData/findUsages/findMethodUsages/kotlinExtensionAndOverloadUsages/results.txt b/idea/testData/findUsages/findMethodUsages/kotlinExtensionAndOverloadUsages/results.txt deleted file mode 100644 index 4166f9275d0..00000000000 --- a/idea/testData/findUsages/findMethodUsages/kotlinExtensionAndOverloadUsages/results.txt +++ /dev/null @@ -1,6 +0,0 @@ -Function call (10: 7) x.foo(1, 2) -Function call (11: 11) a.foo(0, "") -Function call (24: 5) foo(t) -Function call (29: 7) a.foo(1, "") -Function call (34: 9) foo(t) -Function call (3: 18) super.foo(t) \ No newline at end of file diff --git a/idea/testData/findUsages/findMethodUsages/kotlinMethodUsages/Server.kt b/idea/testData/findUsages/findMethodUsages/kotlinMethodUsages.0.kt similarity index 54% rename from idea/testData/findUsages/findMethodUsages/kotlinMethodUsages/Server.kt rename to idea/testData/findUsages/findMethodUsages/kotlinMethodUsages.0.kt index 5312755d6de..3d1e7e6f0f6 100644 --- a/idea/testData/findUsages/findMethodUsages/kotlinMethodUsages/Server.kt +++ b/idea/testData/findUsages/findMethodUsages/kotlinMethodUsages.0.kt @@ -1,3 +1,4 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetNamedFunction // OPTIONS: usages package server; diff --git a/idea/testData/findUsages/findMethodUsages/kotlinMethodUsages/Client.kt b/idea/testData/findUsages/findMethodUsages/kotlinMethodUsages.1.kt similarity index 100% rename from idea/testData/findUsages/findMethodUsages/kotlinMethodUsages/Client.kt rename to idea/testData/findUsages/findMethodUsages/kotlinMethodUsages.1.kt diff --git a/idea/testData/findUsages/findMethodUsages/kotlinMethodUsages/results.txt b/idea/testData/findUsages/findMethodUsages/kotlinMethodUsages.results.txt similarity index 100% rename from idea/testData/findUsages/findMethodUsages/kotlinMethodUsages/results.txt rename to idea/testData/findUsages/findMethodUsages/kotlinMethodUsages.results.txt diff --git a/idea/testData/findUsages/findMethodUsages/kotlinExtensionAndOverloadUsages/Server.kt b/idea/testData/findUsages/findMethodUsages/kotlinOverloadAndExtensionUsages.0.kt similarity index 90% rename from idea/testData/findUsages/findMethodUsages/kotlinExtensionAndOverloadUsages/Server.kt rename to idea/testData/findUsages/findMethodUsages/kotlinOverloadAndExtensionUsages.0.kt index f4f8f01780f..ba672aa62a9 100644 --- a/idea/testData/findUsages/findMethodUsages/kotlinExtensionAndOverloadUsages/Server.kt +++ b/idea/testData/findUsages/findMethodUsages/kotlinOverloadAndExtensionUsages.0.kt @@ -1,3 +1,4 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetNamedFunction // OPTIONS: overloadUsages trait X { } diff --git a/idea/testData/findUsages/findMethodUsages/kotlinExtensionAndOverloadUsages/Client.kt b/idea/testData/findUsages/findMethodUsages/kotlinOverloadAndExtensionUsages.1.kt similarity index 100% rename from idea/testData/findUsages/findMethodUsages/kotlinExtensionAndOverloadUsages/Client.kt rename to idea/testData/findUsages/findMethodUsages/kotlinOverloadAndExtensionUsages.1.kt diff --git a/idea/testData/findUsages/findMethodUsages/kotlinOverloadAndExtensionUsages.results.txt b/idea/testData/findUsages/findMethodUsages/kotlinOverloadAndExtensionUsages.results.txt new file mode 100644 index 00000000000..25e0595e117 --- /dev/null +++ b/idea/testData/findUsages/findMethodUsages/kotlinOverloadAndExtensionUsages.results.txt @@ -0,0 +1,6 @@ +Function call (11: 11) a.foo(0, "") +Function call (11: 7) x.foo(1, 2) +Function call (25: 5) foo(t) +Function call (30: 7) a.foo(1, "") +Function call (35: 9) foo(t) +Function call (3: 18) super.foo(t) \ No newline at end of file diff --git a/idea/testData/findUsages/findObjectUsages/javaObjectUsages.0.kt b/idea/testData/findUsages/findObjectUsages/javaObjectUsages.0.kt new file mode 100644 index 00000000000..ff25227e772 --- /dev/null +++ b/idea/testData/findUsages/findObjectUsages/javaObjectUsages.0.kt @@ -0,0 +1,7 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetObjectDeclarationName +package server; + +object O { + var foo: String = "foo" +} + diff --git a/idea/testData/findUsages/findObjectUsages/javaObjectUsages/Client.java b/idea/testData/findUsages/findObjectUsages/javaObjectUsages.1.java similarity index 100% rename from idea/testData/findUsages/findObjectUsages/javaObjectUsages/Client.java rename to idea/testData/findUsages/findObjectUsages/javaObjectUsages.1.java diff --git a/idea/testData/findUsages/findObjectUsages/javaObjectUsages/results.txt b/idea/testData/findUsages/findObjectUsages/javaObjectUsages.results.txt similarity index 100% rename from idea/testData/findUsages/findObjectUsages/javaObjectUsages/results.txt rename to idea/testData/findUsages/findObjectUsages/javaObjectUsages.results.txt diff --git a/idea/testData/findUsages/findObjectUsages/javaObjectUsages/Server.kt b/idea/testData/findUsages/findObjectUsages/javaObjectUsages/Server.kt deleted file mode 100644 index 52c87b49e49..00000000000 --- a/idea/testData/findUsages/findObjectUsages/javaObjectUsages/Server.kt +++ /dev/null @@ -1,6 +0,0 @@ -package server; - -object O { - var foo: String = "foo" -} - diff --git a/idea/testData/findUsages/findObjectUsages/kotlinObjectUsages.0.kt b/idea/testData/findUsages/findObjectUsages/kotlinObjectUsages.0.kt new file mode 100644 index 00000000000..ff25227e772 --- /dev/null +++ b/idea/testData/findUsages/findObjectUsages/kotlinObjectUsages.0.kt @@ -0,0 +1,7 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetObjectDeclarationName +package server; + +object O { + var foo: String = "foo" +} + diff --git a/idea/testData/findUsages/findObjectUsages/kotlinObjectUsages/Client.kt b/idea/testData/findUsages/findObjectUsages/kotlinObjectUsages.1.kt similarity index 100% rename from idea/testData/findUsages/findObjectUsages/kotlinObjectUsages/Client.kt rename to idea/testData/findUsages/findObjectUsages/kotlinObjectUsages.1.kt diff --git a/idea/testData/findUsages/findObjectUsages/kotlinObjectUsages/results.txt b/idea/testData/findUsages/findObjectUsages/kotlinObjectUsages.results.txt similarity index 100% rename from idea/testData/findUsages/findObjectUsages/kotlinObjectUsages/results.txt rename to idea/testData/findUsages/findObjectUsages/kotlinObjectUsages.results.txt diff --git a/idea/testData/findUsages/findObjectUsages/kotlinObjectUsages/Server.kt b/idea/testData/findUsages/findObjectUsages/kotlinObjectUsages/Server.kt deleted file mode 100644 index 52c87b49e49..00000000000 --- a/idea/testData/findUsages/findObjectUsages/kotlinObjectUsages/Server.kt +++ /dev/null @@ -1,6 +0,0 @@ -package server; - -object O { - var foo: String = "foo" -} - diff --git a/idea/testData/findUsages/findPropertyUsages/javaPropertyUsages/Server.kt b/idea/testData/findUsages/findPropertyUsages/javaPropertyUsages.0.kt similarity index 54% rename from idea/testData/findUsages/findPropertyUsages/javaPropertyUsages/Server.kt rename to idea/testData/findUsages/findPropertyUsages/javaPropertyUsages.0.kt index 388e800f3d2..0b3806272d5 100644 --- a/idea/testData/findUsages/findPropertyUsages/javaPropertyUsages/Server.kt +++ b/idea/testData/findUsages/findPropertyUsages/javaPropertyUsages.0.kt @@ -1,3 +1,4 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetProperty package server; object O { diff --git a/idea/testData/findUsages/findPropertyUsages/javaPropertyUsages/Client.java b/idea/testData/findUsages/findPropertyUsages/javaPropertyUsages.1.java similarity index 100% rename from idea/testData/findUsages/findPropertyUsages/javaPropertyUsages/Client.java rename to idea/testData/findUsages/findPropertyUsages/javaPropertyUsages.1.java diff --git a/idea/testData/findUsages/findPropertyUsages/javaPropertyUsages/results.txt b/idea/testData/findUsages/findPropertyUsages/javaPropertyUsages.results.txt similarity index 100% rename from idea/testData/findUsages/findPropertyUsages/javaPropertyUsages/results.txt rename to idea/testData/findUsages/findPropertyUsages/javaPropertyUsages.results.txt diff --git a/idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages.0.kt b/idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages.0.kt new file mode 100644 index 00000000000..6ebe82c6d11 --- /dev/null +++ b/idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages.0.kt @@ -0,0 +1,5 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetProperty +package server; + +var foo: String = "foo" + diff --git a/idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages/Client.kt b/idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages.1.kt similarity index 100% rename from idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages/Client.kt rename to idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages.1.kt diff --git a/idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages/results.txt b/idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages.results.txt similarity index 100% rename from idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages/results.txt rename to idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages.results.txt diff --git a/idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages/Server.kt b/idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages/Server.kt deleted file mode 100644 index 179159c259c..00000000000 --- a/idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages/Server.kt +++ /dev/null @@ -1,4 +0,0 @@ -package server; - -var foo: String = "foo" - diff --git a/idea/testData/findUsages/findWithFilteringImports/Server.kt b/idea/testData/findUsages/findWithFilteringImports/Server.kt deleted file mode 100644 index 02a9adb6934..00000000000 --- a/idea/testData/findUsages/findWithFilteringImports/Server.kt +++ /dev/null @@ -1,3 +0,0 @@ -package testing - -public class Test diff --git a/idea/testData/findUsages/findWithFilteringImports/findWithFilteringImports.0.kt b/idea/testData/findUsages/findWithFilteringImports/findWithFilteringImports.0.kt new file mode 100644 index 00000000000..c429d44b7e3 --- /dev/null +++ b/idea/testData/findUsages/findWithFilteringImports/findWithFilteringImports.0.kt @@ -0,0 +1,6 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +// FILTERING_RULES: org.jetbrains.jet.plugin.findUsages.JetImportFilteringRule + +package testing + +public class Test diff --git a/idea/testData/findUsages/findWithFilteringImports/Client.kt b/idea/testData/findUsages/findWithFilteringImports/findWithFilteringImports.1.kt similarity index 100% rename from idea/testData/findUsages/findWithFilteringImports/Client.kt rename to idea/testData/findUsages/findWithFilteringImports/findWithFilteringImports.1.kt diff --git a/idea/testData/findUsages/findWithFilteringImports/results.txt b/idea/testData/findUsages/findWithFilteringImports/findWithFilteringImports.results.txt similarity index 100% rename from idea/testData/findUsages/findWithFilteringImports/results.txt rename to idea/testData/findUsages/findWithFilteringImports/findWithFilteringImports.results.txt diff --git a/idea/testData/findUsages/unresolvedAnnotation/Server.kt b/idea/testData/findUsages/unresolvedAnnotation/Server.kt deleted file mode 100644 index c0297935cae..00000000000 --- a/idea/testData/findUsages/unresolvedAnnotation/Server.kt +++ /dev/null @@ -1,3 +0,0 @@ -open class Foo { - vv open val foo = 1 -} \ No newline at end of file diff --git a/idea/testData/findUsages/unresolvedAnnotation/unresolvedAnnotation.0.kt b/idea/testData/findUsages/unresolvedAnnotation/unresolvedAnnotation.0.kt new file mode 100644 index 00000000000..95c1ce43581 --- /dev/null +++ b/idea/testData/findUsages/unresolvedAnnotation/unresolvedAnnotation.0.kt @@ -0,0 +1,4 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +open class Foo { + vv open val foo = 1 +} \ No newline at end of file diff --git a/idea/testData/findUsages/unresolvedAnnotation/Client.java b/idea/testData/findUsages/unresolvedAnnotation/unresolvedAnnotation.1.java similarity index 100% rename from idea/testData/findUsages/unresolvedAnnotation/Client.java rename to idea/testData/findUsages/unresolvedAnnotation/unresolvedAnnotation.1.java diff --git a/idea/testData/findUsages/unresolvedAnnotation/results.txt b/idea/testData/findUsages/unresolvedAnnotation/unresolvedAnnotation.results.txt similarity index 100% rename from idea/testData/findUsages/unresolvedAnnotation/results.txt rename to idea/testData/findUsages/unresolvedAnnotation/unresolvedAnnotation.results.txt diff --git a/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java b/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java index 239eacb6de8..3565b87f174 100644 --- a/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java +++ b/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java @@ -20,7 +20,6 @@ import com.google.common.base.Function; import com.google.common.base.Joiner; import com.google.common.base.Predicates; import com.google.common.collect.Collections2; -import com.google.common.collect.Lists; import com.google.common.collect.Ordering; import com.intellij.find.FindManager; import com.intellij.find.findUsages.FindUsagesHandler; @@ -45,52 +44,58 @@ import com.intellij.util.CommonProcessors; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.InTextDirectivesUtils; -import org.jetbrains.jet.lang.psi.JetClass; -import org.jetbrains.jet.lang.psi.JetFunction; -import org.jetbrains.jet.lang.psi.JetObjectDeclarationName; -import org.jetbrains.jet.lang.psi.JetProperty; +import org.jetbrains.jet.lang.psi.JetNamedFunction; import org.jetbrains.jet.plugin.JetLightProjectDescriptor; import org.jetbrains.jet.plugin.PluginTestCaseBase; -import org.jetbrains.jet.plugin.findUsages.JetImportFilteringRule; import org.jetbrains.jet.plugin.findUsages.options.KotlinMethodFindUsagesOptions; import java.io.File; -import java.io.IOException; +import java.io.FilenameFilter; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; +import java.util.List; public abstract class AbstractJetFindUsagesTest extends LightCodeInsightFixtureTestCase { - private interface OptionsParser { + protected static enum OptionsParser { + METHOD { + @NotNull + @Override + public FindUsagesOptions parse(@NotNull String text, @NotNull Project project) { + KotlinMethodFindUsagesOptions options = new KotlinMethodFindUsagesOptions(project); + options.isUsages = false; + for (String s : InTextDirectivesUtils.findListWithPrefixes(text, "// OPTIONS: ")) { + if (s.equals("usages")) { + options.isUsages = true; + } + + if (s.equals("overrides")) { + options.isOverridingMethods = true; + options.isImplementingMethods = true; + } + + if (s.equals("overloadUsages")) { + options.isIncludeOverloadUsages = true; + options.isUsages = true; + } + } + + return options; + } + }; + @NotNull - FindUsagesOptions parse(@NotNull String text, @NotNull Project project); - } + public abstract FindUsagesOptions parse(@NotNull String text, @NotNull Project project); - private static final OptionsParser METHOD_OPTIONS_PARSER = new OptionsParser() { - @Override - @NotNull - public FindUsagesOptions parse(@NotNull String text, @NotNull Project project) { - KotlinMethodFindUsagesOptions options = new KotlinMethodFindUsagesOptions(project); - options.isUsages = false; - for (String s : InTextDirectivesUtils.findListWithPrefixes(text, "// OPTIONS: ")) { - if (s.equals("usages")) { - options.isUsages = true; - } - - if (s.equals("overrides")) { - options.isOverridingMethods = true; - options.isImplementingMethods = true; - } - - if (s.equals("overloadUsages")) { - options.isIncludeOverloadUsages = true; - options.isUsages = true; - } + @Nullable + public static OptionsParser getParserByPsiElementClass(@NotNull Class klass) { + if (klass == JetNamedFunction.class) { + return METHOD; } - return options; + return null; } - }; + } @NotNull @Override @@ -104,69 +109,51 @@ public abstract class AbstractJetFindUsagesTest extends LightCodeInsightFixtureT myFixture.setTestDataPath(PluginTestCaseBase.getTestDataPathBase() + "/findUsages"); } - public void testFindClassJavaUsages(@NotNull String path) throws Exception { - doTestWithoutFiltering(path, true, JetClass.class, null); - } + protected void doTest(@NotNull String path) throws Exception { + File mainFile = new File(path); + final String mainFileName = mainFile.getName(); + String mainFileText = FileUtil.loadFile(mainFile); + final String prefix = mainFileName.substring(0, mainFileName.indexOf('.') + 1); - public void testFindClassKotlinUsages(@NotNull String path) throws Exception { - doTestWithoutFiltering(path, false, JetClass.class, null); - } + List caretElementClassNames = InTextDirectivesUtils.findLinesWithPrefixesRemoved(mainFileText, "// PSI_ELEMENT: "); + assert caretElementClassNames.size() == 1; + //noinspection unchecked + Class caretElementClass = (Class)Class.forName(caretElementClassNames.get(0)); - public void testFindUsagesUnresolvedAnnotation(@NotNull String path) throws Exception { - doTestWithoutFiltering(path, true, JetClass.class, null); - } + List filteringRuleClassNames = InTextDirectivesUtils.findLinesWithPrefixesRemoved(mainFileText, "// FILTERING_RULES: "); + Collection filters = new ArrayList(); + for (String filteringRuleClassName : filteringRuleClassNames) { + //noinspection unchecked + Class klass = (Class) Class.forName(filteringRuleClassName); + filters.add(klass.newInstance()); + } - public void testFindMethodJavaUsages(@NotNull String path) throws Exception { - doTestWithoutFiltering(path, true, JetFunction.class, METHOD_OPTIONS_PARSER); - } + OptionsParser parser = OptionsParser.getParserByPsiElementClass(caretElementClass); - public void testFindMethodKotlinUsages(@NotNull String path) throws Exception { - doTestWithoutFiltering(path, false, JetFunction.class, METHOD_OPTIONS_PARSER); - } - - public void testFindPropertyJavaUsages(@NotNull String path) throws Exception { - doTestWithoutFiltering(path, true, JetProperty.class, null); - } - - public void testFindPropertyKotlinUsages(@NotNull String path) throws Exception { - doTestWithoutFiltering(path, false, JetProperty.class, null); - } - - public void testFindObjectJavaUsages(@NotNull String path) throws Exception { - doTestWithoutFiltering(path, true, JetObjectDeclarationName.class, null); - } - - public void testFindObjectKotlinUsages(@NotNull String path) throws Exception { - doTestWithoutFiltering(path, false, JetObjectDeclarationName.class, null); - } - - public void testFindWithFilteringImports(@NotNull String path) throws Exception { - doTest(path, false, JetClass.class, Lists.newArrayList(new JetImportFilteringRule()), null); - } - - private void doTestWithoutFiltering( - @NotNull String path, - boolean searchInJava, - @NotNull Class caretElementClass, - @Nullable OptionsParser parser - ) throws Exception { - doTest(path, searchInJava, caretElementClass, Collections.emptyList(), parser); - } - - private void doTest( - @NotNull String path, - boolean searchInJava, - @NotNull Class caretElementClass, - @NotNull Collection filters, - @Nullable OptionsParser parser - ) throws IOException { String rootPath = path.substring(0, path.lastIndexOf("/") + 1); - myFixture.configureByFiles(path, rootPath + "Client." + (searchInJava ? "java" : "kt")); + File rootDir = new File(rootPath); + File[] extraFiles = rootDir.listFiles( + new FilenameFilter() { + @Override + public boolean accept(File dir, String name) { + if (!name.startsWith(prefix) || name.equals(mainFileName)) return false; + + String ext = name.substring(name.lastIndexOf('.') + 1); + return ext.equals("kt") || ext.equals("java"); + } + } + ); + assert extraFiles != null; + for (File file : extraFiles) { + myFixture.configureByFile(rootPath + file.getName()); + } + myFixture.configureByFile(path); + T caretElement = PsiTreeUtil.getParentOfType(myFixture.getElementAtCaret(), caretElementClass, false); assertNotNull(String.format("Element with type '%s' wasn't found at caret position", caretElementClass), caretElement); - FindUsagesOptions options = parser != null ? parser.parse(FileUtil.loadFile(new File(path)), getProject()) : null; + FindUsagesOptions options = parser != null ? parser.parse(mainFileText, getProject()) : null; Collection usageInfos = findUsages(caretElement, options); Collection filteredUsages = getUsageAdapters(filters, usageInfos); @@ -181,7 +168,7 @@ public abstract class AbstractJetFindUsagesTest extends LightCodeInsightFixtureT }; Collection finalUsages = Ordering.natural().sortedCopy(Collections2.transform(filteredUsages, convertToString)); - String expectedText = FileUtil.loadFile(new File(rootPath + "results.txt"), true); + String expectedText = FileUtil.loadFile(new File(rootPath + prefix + "results.txt"), true); assertOrderedEquals(finalUsages, Ordering.natural().sortedCopy(StringUtil.split(expectedText, "\n"))); } diff --git a/idea/tests/org/jetbrains/jet/findUsages/JetFindUsagesTest.java b/idea/tests/org/jetbrains/jet/findUsages/JetFindUsagesTest.java new file mode 100644 index 00000000000..9581ecedb12 --- /dev/null +++ b/idea/tests/org/jetbrains/jet/findUsages/JetFindUsagesTest.java @@ -0,0 +1,169 @@ +/* + * Copyright 2010-2013 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.jet.findUsages; + +import junit.framework.Assert; +import junit.framework.Test; +import junit.framework.TestSuite; + +import java.io.File; +import java.util.regex.Pattern; +import org.jetbrains.jet.JetTestUtils; +import org.jetbrains.jet.test.InnerTestClasses; +import org.jetbrains.jet.test.TestMetadata; + +import org.jetbrains.jet.findUsages.AbstractJetFindUsagesTest; + +/** This class is generated by {@link org.jetbrains.jet.generators.tests.GenerateTests}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("idea/testData/findUsages") +@InnerTestClasses({JetFindUsagesTest.FindClassUsages.class, JetFindUsagesTest.FindMethodUsages.class, JetFindUsagesTest.FindObjectUsages.class, JetFindUsagesTest.FindPropertyUsages.class, JetFindUsagesTest.FindWithFilteringImports.class, JetFindUsagesTest.UnresolvedAnnotation.class}) +public class JetFindUsagesTest extends AbstractJetFindUsagesTest { + public void testAllFilesPresentInFindUsages() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/findUsages"), Pattern.compile("^(.+).0.kt$"), true); + } + + @TestMetadata("idea/testData/findUsages/findClassUsages") + public static class FindClassUsages extends AbstractJetFindUsagesTest { + public void testAllFilesPresentInFindClassUsages() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/findUsages/findClassUsages"), Pattern.compile("^(.+).0.kt$"), true); + } + + @TestMetadata("javaClassUsages.0.kt") + public void testJavaClassUsages() throws Exception { + doTest("idea/testData/findUsages/findClassUsages/javaClassUsages.0.kt"); + } + + @TestMetadata("kotlinClassUsages.0.kt") + public void testKotlinClassUsages() throws Exception { + doTest("idea/testData/findUsages/findClassUsages/kotlinClassUsages.0.kt"); + } + + @TestMetadata("kotlinClassUsages2.0.kt") + public void testKotlinClassUsages2() throws Exception { + doTest("idea/testData/findUsages/findClassUsages/kotlinClassUsages2.0.kt"); + } + + @TestMetadata("kotlinClassUsages3.0.kt") + public void testKotlinClassUsages3() throws Exception { + doTest("idea/testData/findUsages/findClassUsages/kotlinClassUsages3.0.kt"); + } + + } + + @TestMetadata("idea/testData/findUsages/findMethodUsages") + public static class FindMethodUsages extends AbstractJetFindUsagesTest { + public void testAllFilesPresentInFindMethodUsages() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/findUsages/findMethodUsages"), Pattern.compile("^(.+).0.kt$"), true); + } + + @TestMetadata("javaAndKotlinOverrides.0.kt") + public void testJavaAndKotlinOverrides() throws Exception { + doTest("idea/testData/findUsages/findMethodUsages/javaAndKotlinOverrides.0.kt"); + } + + @TestMetadata("javaMethodUsages.0.kt") + public void testJavaMethodUsages() throws Exception { + doTest("idea/testData/findUsages/findMethodUsages/javaMethodUsages.0.kt"); + } + + @TestMetadata("kotlinMethodUsages.0.kt") + public void testKotlinMethodUsages() throws Exception { + doTest("idea/testData/findUsages/findMethodUsages/kotlinMethodUsages.0.kt"); + } + + @TestMetadata("kotlinOverloadAndExtensionUsages.0.kt") + public void testKotlinOverloadAndExtensionUsages() throws Exception { + doTest("idea/testData/findUsages/findMethodUsages/kotlinOverloadAndExtensionUsages.0.kt"); + } + + } + + @TestMetadata("idea/testData/findUsages/findObjectUsages") + public static class FindObjectUsages extends AbstractJetFindUsagesTest { + public void testAllFilesPresentInFindObjectUsages() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/findUsages/findObjectUsages"), Pattern.compile("^(.+).0.kt$"), true); + } + + @TestMetadata("javaObjectUsages.0.kt") + public void testJavaObjectUsages() throws Exception { + doTest("idea/testData/findUsages/findObjectUsages/javaObjectUsages.0.kt"); + } + + @TestMetadata("kotlinObjectUsages.0.kt") + public void testKotlinObjectUsages() throws Exception { + doTest("idea/testData/findUsages/findObjectUsages/kotlinObjectUsages.0.kt"); + } + + } + + @TestMetadata("idea/testData/findUsages/findPropertyUsages") + public static class FindPropertyUsages extends AbstractJetFindUsagesTest { + public void testAllFilesPresentInFindPropertyUsages() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/findUsages/findPropertyUsages"), Pattern.compile("^(.+).0.kt$"), true); + } + + @TestMetadata("javaPropertyUsages.0.kt") + public void testJavaPropertyUsages() throws Exception { + doTest("idea/testData/findUsages/findPropertyUsages/javaPropertyUsages.0.kt"); + } + + @TestMetadata("kotlinPropertyUsages.0.kt") + public void testKotlinPropertyUsages() throws Exception { + doTest("idea/testData/findUsages/findPropertyUsages/kotlinPropertyUsages.0.kt"); + } + + } + + @TestMetadata("idea/testData/findUsages/findWithFilteringImports") + public static class FindWithFilteringImports extends AbstractJetFindUsagesTest { + public void testAllFilesPresentInFindWithFilteringImports() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/findUsages/findWithFilteringImports"), Pattern.compile("^(.+).0.kt$"), true); + } + + @TestMetadata("findWithFilteringImports.0.kt") + public void testFindWithFilteringImports() throws Exception { + doTest("idea/testData/findUsages/findWithFilteringImports/findWithFilteringImports.0.kt"); + } + + } + + @TestMetadata("idea/testData/findUsages/unresolvedAnnotation") + public static class UnresolvedAnnotation extends AbstractJetFindUsagesTest { + public void testAllFilesPresentInUnresolvedAnnotation() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/findUsages/unresolvedAnnotation"), Pattern.compile("^(.+).0.kt$"), true); + } + + @TestMetadata("unresolvedAnnotation.0.kt") + public void testUnresolvedAnnotation() throws Exception { + doTest("idea/testData/findUsages/unresolvedAnnotation/unresolvedAnnotation.0.kt"); + } + + } + + public static Test suite() { + TestSuite suite = new TestSuite("JetFindUsagesTest"); + suite.addTestSuite(JetFindUsagesTest.class); + suite.addTestSuite(FindClassUsages.class); + suite.addTestSuite(FindMethodUsages.class); + suite.addTestSuite(FindObjectUsages.class); + suite.addTestSuite(FindPropertyUsages.class); + suite.addTestSuite(FindWithFilteringImports.class); + suite.addTestSuite(UnresolvedAnnotation.class); + return suite; + } +}