diff --git a/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt b/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt index 2f9bfa1d8fe..73359bfc92f 100644 --- a/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt +++ b/generators/src/org/jetbrains/jet/generators/tests/GenerateTests.kt @@ -103,6 +103,7 @@ import org.jetbrains.jet.plugin.debugger.AbstractSmartStepIntoTest import org.jetbrains.jet.plugin.stubs.AbstractStubBuilderTest import org.jetbrains.jet.plugin.codeInsight.AbstractJetInspectionTest import org.jetbrains.jet.plugin.debugger.AbstractKotlinSteppingTest +import org.jetbrains.jet.completion.AbstractMultiFileJvmBasicCompletionTest fun main(args: Array) { System.setProperty("java.awt.headless", "true") @@ -549,6 +550,10 @@ fun main(args: Array) { testClass(javaClass()) { model("stubs", extension = "kt") } + + testClass(javaClass()) { + model("completion/basic/multifile", pattern = """^([^\.]+)\.kt$""") + } } testGroup("j2k/tests/test", "j2k/tests/testData") { diff --git a/idea/testData/completion/basic/multifile/CompleteImportedFunction-2.kt b/idea/testData/completion/basic/multifile/CompleteImportedFunction.dependency.kt similarity index 100% rename from idea/testData/completion/basic/multifile/CompleteImportedFunction-2.kt rename to idea/testData/completion/basic/multifile/CompleteImportedFunction.dependency.kt diff --git a/idea/testData/completion/basic/multifile/CompleteImportedFunction-1.kt b/idea/testData/completion/basic/multifile/CompleteImportedFunction.kt similarity index 100% rename from idea/testData/completion/basic/multifile/CompleteImportedFunction-1.kt rename to idea/testData/completion/basic/multifile/CompleteImportedFunction.kt diff --git a/idea/testData/completion/basic/multifile/CompletionOnImportedFunction-2.kt b/idea/testData/completion/basic/multifile/CompletionOnImportedFunction.dependency.kt similarity index 100% rename from idea/testData/completion/basic/multifile/CompletionOnImportedFunction-2.kt rename to idea/testData/completion/basic/multifile/CompletionOnImportedFunction.dependency.kt diff --git a/idea/testData/completion/basic/multifile/CompletionOnImportedFunction-1.kt b/idea/testData/completion/basic/multifile/CompletionOnImportedFunction.kt similarity index 100% rename from idea/testData/completion/basic/multifile/CompletionOnImportedFunction-1.kt rename to idea/testData/completion/basic/multifile/CompletionOnImportedFunction.kt diff --git a/idea/testData/completion/basic/multifile/DoNotCompleteWithConstraints-2.kt b/idea/testData/completion/basic/multifile/DoNotCompleteWithConstraints.dependency.kt similarity index 100% rename from idea/testData/completion/basic/multifile/DoNotCompleteWithConstraints-2.kt rename to idea/testData/completion/basic/multifile/DoNotCompleteWithConstraints.dependency.kt diff --git a/idea/testData/completion/basic/multifile/DoNotCompleteWithConstraints-1.kt b/idea/testData/completion/basic/multifile/DoNotCompleteWithConstraints.kt similarity index 100% rename from idea/testData/completion/basic/multifile/DoNotCompleteWithConstraints-1.kt rename to idea/testData/completion/basic/multifile/DoNotCompleteWithConstraints.kt diff --git a/idea/testData/completion/basic/multifile/ExtensionFunction-2.kt b/idea/testData/completion/basic/multifile/ExtensionFunction.dependency.kt similarity index 100% rename from idea/testData/completion/basic/multifile/ExtensionFunction-2.kt rename to idea/testData/completion/basic/multifile/ExtensionFunction.dependency.kt diff --git a/idea/testData/completion/basic/multifile/ExtensionFunction-1.kt b/idea/testData/completion/basic/multifile/ExtensionFunction.kt similarity index 100% rename from idea/testData/completion/basic/multifile/ExtensionFunction-1.kt rename to idea/testData/completion/basic/multifile/ExtensionFunction.kt diff --git a/idea/testData/completion/basic/multifile/ExtensionFunctionOnImportedFunction-2.kt b/idea/testData/completion/basic/multifile/ExtensionFunctionOnImportedFunction-2.kt deleted file mode 100644 index 4d5180866da..00000000000 --- a/idea/testData/completion/basic/multifile/ExtensionFunctionOnImportedFunction-2.kt +++ /dev/null @@ -1,9 +0,0 @@ -package second - -class Some - -// Two function to prevent automatic insert -fun Some.extensionFunction1() = 12 -fun Some.extensionFunction2() = 12 - -fun foo() = Some() \ No newline at end of file diff --git a/idea/testData/completion/basic/multifile/ExtensionFunctionOnImportedFunction.dependency.kt b/idea/testData/completion/basic/multifile/ExtensionFunctionOnImportedFunction.dependency.kt new file mode 100644 index 00000000000..781fcb2982b --- /dev/null +++ b/idea/testData/completion/basic/multifile/ExtensionFunctionOnImportedFunction.dependency.kt @@ -0,0 +1,9 @@ +package second + +class Some + +// Two function to prevent automatic insert +fun Some.extensionFunction1(): Int = 12 +fun Some.extensionFunction2(): Int = 12 + +fun foo(): Some = Some() \ No newline at end of file diff --git a/idea/testData/completion/basic/multifile/ExtensionFunctionOnImportedFunction-1.kt b/idea/testData/completion/basic/multifile/ExtensionFunctionOnImportedFunction.kt similarity index 100% rename from idea/testData/completion/basic/multifile/ExtensionFunctionOnImportedFunction-1.kt rename to idea/testData/completion/basic/multifile/ExtensionFunctionOnImportedFunction.kt diff --git a/idea/testData/completion/basic/multifile/ExtensionFunctionOnUnresolved-1.kt b/idea/testData/completion/basic/multifile/ExtensionFunctionOnUnresolved-1.kt deleted file mode 100644 index 784ac599a7a..00000000000 --- a/idea/testData/completion/basic/multifile/ExtensionFunctionOnUnresolved-1.kt +++ /dev/null @@ -1,11 +0,0 @@ -package first - -fun firstFun() { - val a = SomeUnknownClass() - a.hello -} - -// ABSENT: helloFun -// ABSENT: helloFunPreventAutoInsert -// ABSENT: helloWithParams -// NUMBER: 0 \ No newline at end of file diff --git a/idea/testData/completion/basic/multifile/ExtensionFunctionOnUnresolved-2.kt b/idea/testData/completion/basic/multifile/ExtensionFunctionOnUnresolved-2.kt deleted file mode 100644 index 26ba80640b4..00000000000 --- a/idea/testData/completion/basic/multifile/ExtensionFunctionOnUnresolved-2.kt +++ /dev/null @@ -1,11 +0,0 @@ -package second - -fun String.helloFun() { -} - -fun String.helloWithParams(i : Int) : String { - return "" -} - -fun String.helloFunPreventAutoInsert() { -} \ No newline at end of file diff --git a/idea/testData/completion/basic/multifile/ExtensionOnNullable-2.kt b/idea/testData/completion/basic/multifile/ExtensionOnNullable.dependency.kt similarity index 100% rename from idea/testData/completion/basic/multifile/ExtensionOnNullable-2.kt rename to idea/testData/completion/basic/multifile/ExtensionOnNullable.dependency.kt diff --git a/idea/testData/completion/basic/multifile/ExtensionOnNullable-1.kt b/idea/testData/completion/basic/multifile/ExtensionOnNullable.kt similarity index 100% rename from idea/testData/completion/basic/multifile/ExtensionOnNullable-1.kt rename to idea/testData/completion/basic/multifile/ExtensionOnNullable.kt diff --git a/idea/testData/completion/basic/multifile/ExtensionProperty-1.kt b/idea/testData/completion/basic/multifile/ExtensionProperty-1.kt deleted file mode 100644 index 45b5e8b4acc..00000000000 --- a/idea/testData/completion/basic/multifile/ExtensionProperty-1.kt +++ /dev/null @@ -1,12 +0,0 @@ -package first - -import second.SomeTestClass - -fun firstFun() { - SomeTestClass().some -} - -// EXIST: someProperty -// EXIST: someOtherProperty -// EXIST: someSelfProperty -// NUMBER: 3 \ No newline at end of file diff --git a/idea/testData/completion/basic/multifile/ExtensionProperty-2.kt b/idea/testData/completion/basic/multifile/ExtensionProperty-2.kt deleted file mode 100644 index a8e890a7fa3..00000000000 --- a/idea/testData/completion/basic/multifile/ExtensionProperty-2.kt +++ /dev/null @@ -1,8 +0,0 @@ -package second - -class SomeTestClass() { -} - -val SomeTestClass.someProperty = 12 -var SomeTestClass.someOtherProperty = "" -val SomeTestClass.someSelfProperty = SomeTestClass() \ No newline at end of file diff --git a/idea/testData/completion/basic/multifile/InImportedFunctionLiteralParameter-2.kt b/idea/testData/completion/basic/multifile/InImportedFunctionLiteralParameter.dependency.kt similarity index 73% rename from idea/testData/completion/basic/multifile/InImportedFunctionLiteralParameter-2.kt rename to idea/testData/completion/basic/multifile/InImportedFunctionLiteralParameter.dependency.kt index 761296cd307..af0561ff259 100644 --- a/idea/testData/completion/basic/multifile/InImportedFunctionLiteralParameter-2.kt +++ b/idea/testData/completion/basic/multifile/InImportedFunctionLiteralParameter.dependency.kt @@ -6,4 +6,4 @@ class Some { fun testFunction2() : Int = 12 } -fun someWithLiteral(body: (Some) -> Unit) = 12 \ No newline at end of file +fun someWithLiteral(body: (Some) -> Unit): Int = 12 \ No newline at end of file diff --git a/idea/testData/completion/basic/multifile/InImportedFunctionLiteralParameter-1.kt b/idea/testData/completion/basic/multifile/InImportedFunctionLiteralParameter.kt similarity index 100% rename from idea/testData/completion/basic/multifile/InImportedFunctionLiteralParameter-1.kt rename to idea/testData/completion/basic/multifile/InImportedFunctionLiteralParameter.kt diff --git a/idea/testData/completion/basic/multifile/JavaInnerClasses-1.kt b/idea/testData/completion/basic/multifile/JavaInnerClasses.kt similarity index 100% rename from idea/testData/completion/basic/multifile/JavaInnerClasses-1.kt rename to idea/testData/completion/basic/multifile/JavaInnerClasses.kt diff --git a/idea/testData/completion/basic/multifile/NotImportedExtensionFunction-2.kt b/idea/testData/completion/basic/multifile/NotImportedExtensionFunction.dependency.kt similarity index 100% rename from idea/testData/completion/basic/multifile/NotImportedExtensionFunction-2.kt rename to idea/testData/completion/basic/multifile/NotImportedExtensionFunction.dependency.kt diff --git a/idea/testData/completion/basic/multifile/NotImportedExtensionFunction-1.kt b/idea/testData/completion/basic/multifile/NotImportedExtensionFunction.kt similarity index 100% rename from idea/testData/completion/basic/multifile/NotImportedExtensionFunction-1.kt rename to idea/testData/completion/basic/multifile/NotImportedExtensionFunction.kt diff --git a/idea/testData/completion/basic/multifile/NotImportedJavaClass-1.kt b/idea/testData/completion/basic/multifile/NotImportedJavaClass.kt similarity index 100% rename from idea/testData/completion/basic/multifile/NotImportedJavaClass-1.kt rename to idea/testData/completion/basic/multifile/NotImportedJavaClass.kt diff --git a/idea/testData/completion/basic/multifile/NotImportedObject-2.kt b/idea/testData/completion/basic/multifile/NotImportedObject.dependency.kt similarity index 100% rename from idea/testData/completion/basic/multifile/NotImportedObject-2.kt rename to idea/testData/completion/basic/multifile/NotImportedObject.dependency.kt diff --git a/idea/testData/completion/basic/multifile/NotImportedObject-1.kt b/idea/testData/completion/basic/multifile/NotImportedObject.kt similarity index 100% rename from idea/testData/completion/basic/multifile/NotImportedObject-1.kt rename to idea/testData/completion/basic/multifile/NotImportedObject.kt diff --git a/idea/testData/completion/basic/multifile/TopLevelFunction-2.kt b/idea/testData/completion/basic/multifile/TopLevelFunction.dependency.kt similarity index 100% rename from idea/testData/completion/basic/multifile/TopLevelFunction-2.kt rename to idea/testData/completion/basic/multifile/TopLevelFunction.dependency.kt diff --git a/idea/testData/completion/basic/multifile/TopLevelFunction-1.kt b/idea/testData/completion/basic/multifile/TopLevelFunction.kt similarity index 100% rename from idea/testData/completion/basic/multifile/TopLevelFunction-1.kt rename to idea/testData/completion/basic/multifile/TopLevelFunction.kt diff --git a/idea/tests/org/jetbrains/jet/completion/JetCompletionMultiTestBase.java b/idea/tests/org/jetbrains/jet/completion/AbstractMultiFileJvmBasicCompletionTest.java similarity index 74% rename from idea/tests/org/jetbrains/jet/completion/JetCompletionMultiTestBase.java rename to idea/tests/org/jetbrains/jet/completion/AbstractMultiFileJvmBasicCompletionTest.java index 49d085997b1..5b616fef3ae 100644 --- a/idea/tests/org/jetbrains/jet/completion/JetCompletionMultiTestBase.java +++ b/idea/tests/org/jetbrains/jet/completion/AbstractMultiFileJvmBasicCompletionTest.java @@ -27,34 +27,31 @@ import java.io.File; import java.util.Collections; import java.util.List; -public abstract class JetCompletionMultiTestBase extends JetFixtureCompletionBaseTestCase { +public abstract class AbstractMultiFileJvmBasicCompletionTest extends JetFixtureCompletionBaseTestCase { - public static final String JAVA_FILE = "JAVA_FILE:"; - - protected void doTest() { - doTest(getTestName(false)); - } + private static final String JAVA_FILE = "JAVA_FILE:"; @Override protected void setUpFixture(@NotNull String testPath) { - myFixture.configureByFiles(getFileNameList(testPath)); + String[] kotlinTestFiles = getKotlinFiles(testPath); + myFixture.configureByFiles(kotlinTestFiles); PsiFile testFile = myFixture.getFile(); String text = testFile.getText(); String javaFilePath = InTextDirectivesUtils.findStringWithPrefixes(text, JAVA_FILE); if (javaFilePath != null) { myFixture.configureByFile(javaFilePath); - myFixture.configureByFiles(getFileNameList(testPath)); + myFixture.configureByFiles(kotlinTestFiles); } } @NotNull - private String[] getFileNameList(@NotNull String testPath) { - String baseFile = testPath + "-1.kt"; - String secondaryFile = testPath + "-2.kt"; + private String[] getKotlinFiles(@NotNull String testPath) { + String testFileName = testPath.substring(testPath.lastIndexOf("/") + 1, testPath.length()); + String secondaryFile = testFileName.replace(".kt", ".dependency.kt"); if (new File(getTestDataPath() + "/" + secondaryFile).exists()) { - return new String[] {baseFile, secondaryFile}; + return new String[] {testFileName, secondaryFile}; } - return new String[] {baseFile}; + return new String[] {testFileName}; } @Override diff --git a/idea/tests/org/jetbrains/jet/completion/JetMultifileBasicCompletionTest.java b/idea/tests/org/jetbrains/jet/completion/JetMultifileBasicCompletionTest.java deleted file mode 100644 index 9ee56c875cb..00000000000 --- a/idea/tests/org/jetbrains/jet/completion/JetMultifileBasicCompletionTest.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * 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.completion; - -public class JetMultifileBasicCompletionTest extends JetCompletionMultiTestBase { - public void testCompleteImportedFunction() { - doTest(); - } - - public void testCompletionOnImportedFunction() { - doTest(); - } - - public void testDoNotCompleteWithConstraints() { - doTest(); - } - - public void testTopLevelFunction() throws Exception { - doTest(); - } - - public void testExtensionFunctionOnImportedFunction() throws Exception { - doTest(); - } - - public void todotestExtensionFunctionOnUnresolved() throws Exception { - doTest(); - } - - public void testExtensionOnNullable() throws Exception { - doTest(); - } - - public void todotestExtensionProperty() throws Exception { - doTest(); - } - - public void testNotImportedJavaClass() throws Exception { - doTest(); - } - - public void testInImportedFunctionLiteralParameter() throws Exception { - doTest(); - } - - public void testJavaInnerClasses() throws Exception { - doTest(); - } - - public void testNotImportedExtensionFunction() throws Exception { - doTest(); - } - - public void testExtensionFunction() throws Exception { - doTest(); - } - - public void testNotImportedObject() throws Exception { - doTest(); - } -} diff --git a/idea/tests/org/jetbrains/jet/completion/MultiFileJvmBasicCompletionTestGenerated.java b/idea/tests/org/jetbrains/jet/completion/MultiFileJvmBasicCompletionTestGenerated.java new file mode 100644 index 00000000000..60f50a90d7b --- /dev/null +++ b/idea/tests/org/jetbrains/jet/completion/MultiFileJvmBasicCompletionTestGenerated.java @@ -0,0 +1,105 @@ +/* + * Copyright 2010-2014 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.completion; + +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.completion.AbstractMultiFileJvmBasicCompletionTest; + +/** This class is generated by {@link org.jetbrains.jet.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("idea/testData/completion/basic/multifile") +@InnerTestClasses({}) +public class MultiFileJvmBasicCompletionTestGenerated extends AbstractMultiFileJvmBasicCompletionTest { + public void testAllFilesPresentInMultifile() throws Exception { + JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/completion/basic/multifile"), Pattern.compile("^([^\\.]+)\\.kt$"), true); + } + + @TestMetadata("CompleteImportedFunction.kt") + public void testCompleteImportedFunction() throws Exception { + doTest("idea/testData/completion/basic/multifile/CompleteImportedFunction.kt"); + } + + @TestMetadata("CompletionOnImportedFunction.kt") + public void testCompletionOnImportedFunction() throws Exception { + doTest("idea/testData/completion/basic/multifile/CompletionOnImportedFunction.kt"); + } + + @TestMetadata("DoNotCompleteWithConstraints.kt") + public void testDoNotCompleteWithConstraints() throws Exception { + doTest("idea/testData/completion/basic/multifile/DoNotCompleteWithConstraints.kt"); + } + + @TestMetadata("ExtensionFunction.kt") + public void testExtensionFunction() throws Exception { + doTest("idea/testData/completion/basic/multifile/ExtensionFunction.kt"); + } + + @TestMetadata("ExtensionFunctionOnImportedFunction.kt") + public void testExtensionFunctionOnImportedFunction() throws Exception { + doTest("idea/testData/completion/basic/multifile/ExtensionFunctionOnImportedFunction.kt"); + } + + @TestMetadata("ExtensionOnNullable.kt") + public void testExtensionOnNullable() throws Exception { + doTest("idea/testData/completion/basic/multifile/ExtensionOnNullable.kt"); + } + + @TestMetadata("InImportedFunctionLiteralParameter.kt") + public void testInImportedFunctionLiteralParameter() throws Exception { + doTest("idea/testData/completion/basic/multifile/InImportedFunctionLiteralParameter.kt"); + } + + @TestMetadata("JavaInnerClasses.kt") + public void testJavaInnerClasses() throws Exception { + doTest("idea/testData/completion/basic/multifile/JavaInnerClasses.kt"); + } + + @TestMetadata("NotImportedExtensionFunction.kt") + public void testNotImportedExtensionFunction() throws Exception { + doTest("idea/testData/completion/basic/multifile/NotImportedExtensionFunction.kt"); + } + + @TestMetadata("NotImportedJavaClass.kt") + public void testNotImportedJavaClass() throws Exception { + doTest("idea/testData/completion/basic/multifile/NotImportedJavaClass.kt"); + } + + @TestMetadata("NotImportedObject.kt") + public void testNotImportedObject() throws Exception { + doTest("idea/testData/completion/basic/multifile/NotImportedObject.kt"); + } + + @TestMetadata("TopLevelFunction.kt") + public void testTopLevelFunction() throws Exception { + doTest("idea/testData/completion/basic/multifile/TopLevelFunction.kt"); + } + + public static Test suite() { + TestSuite suite = new TestSuite("MultiFileJvmBasicCompletionTestGenerated"); + suite.addTestSuite(MultiFileJvmBasicCompletionTestGenerated.class); + return suite; + } +}