Add multi-file tests for primitive completion

- This is required to test/debug correct completion from imports
This commit is contained in:
Roman Golyshev
2020-07-13 12:06:17 +03:00
committed by Ilya Kirillov
parent 1b3a1a662f
commit ebf20c9706
9 changed files with 72 additions and 1 deletions
@@ -1185,6 +1185,10 @@ fun main(args: Array<String>) {
model("basic/multifile", extension = null, recursive = false)
}
testClass<AbstractMultiFileJvmBasicCompletionTest>("MultiFilePrimitiveJvmBasicCompletionTestGenerated") {
model("basic/multifilePrimitive", extension = null, recursive = false)
}
testClass<AbstractMultiFileSmartCompletionTest> {
model("smartMultiFile", extension = null, recursive = false)
}
@@ -1099,6 +1099,10 @@ fun main(args: Array<String>) {
model("basic/multifile", extension = null, recursive = false)
}
testClass<AbstractMultiFileJvmBasicCompletionTest>("MultiFilePrimitiveJvmBasicCompletionTestGenerated") {
model("basic/multifilePrimitive", extension = null, recursive = false)
}
testClass<AbstractMultiFileSmartCompletionTest> {
model("smartMultiFile", extension = null, recursive = false)
}
@@ -966,6 +966,10 @@ fun main(args: Array<String>) {
model("basic/multifile", extension = null, recursive = false)
}
testClass<AbstractMultiFileJvmBasicCompletionTest>("MultiFilePrimitiveJvmBasicCompletionTestGenerated") {
model("basic/multifilePrimitive", extension = null, recursive = false)
}
testClass<AbstractMultiFileSmartCompletionTest> {
model("smartMultiFile", extension = null, recursive = false)
}
@@ -1002,6 +1002,10 @@ fun main(args: Array<String>) {
model("basic/multifile", extension = null, recursive = false)
}
testClass<AbstractMultiFileJvmBasicCompletionTest>("MultiFilePrimitiveJvmBasicCompletionTestGenerated") {
model("basic/multifilePrimitive", extension = null, recursive = false)
}
testClass<AbstractMultiFileSmartCompletionTest> {
model("smartMultiFile", extension = null, recursive = false)
}
@@ -1002,6 +1002,10 @@ fun main(args: Array<String>) {
model("basic/multifile", extension = null, recursive = false)
}
testClass<AbstractMultiFileJvmBasicCompletionTest>("MultiFilePrimitiveJvmBasicCompletionTestGenerated") {
model("basic/multifilePrimitive", extension = null, recursive = false)
}
testClass<AbstractMultiFileSmartCompletionTest> {
model("smartMultiFile", extension = null, recursive = false)
}
@@ -0,0 +1,7 @@
package dependency
class TopLevelClass {
class NestedClass
inner class InnerClass
}
@@ -0,0 +1,8 @@
import dependency.TopLevelClass.*
fun usage() {
<caret>
}
// EXIST: NestedClass
// EXIST: InnerClass
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.idea.completion.test
import com.intellij.codeInsight.completion.CompletionType
import org.jetbrains.kotlin.idea.test.AstAccessControl
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
import org.jetbrains.kotlin.test.KotlinTestUtils
abstract class AbstractMultiFileJvmBasicCompletionTest : KotlinCompletionTestCase() {
protected fun doTest(testPath: String) {
@@ -23,6 +24,6 @@ abstract class AbstractMultiFileJvmBasicCompletionTest : KotlinCompletionTestCas
}
override fun getTestDataPath(): String {
return COMPLETION_TEST_DATA_BASE_PATH + "/basic/multifile/" + getTestName(false) + "/"
return KotlinTestUtils.getTestsRoot(this::class.java) + "/" + getTestName(false) + "/"
}
}
@@ -0,0 +1,35 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.idea.completion.test;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;
import java.io.File;
import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("idea/idea-completion/testData/basic/multifilePrimitive")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public class MultiFilePrimitiveJvmBasicCompletionTestGenerated extends AbstractMultiFileJvmBasicCompletionTest {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
}
public void testAllFilesPresentInMultifilePrimitive() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/idea-completion/testData/basic/multifilePrimitive"), Pattern.compile("^([^\\.]+)$"), null, false);
}
@TestMetadata("NestedClassImport")
public void testNestedClassImport() throws Exception {
runTest("idea/idea-completion/testData/basic/multifilePrimitive/NestedClassImport/");
}
}