Added test for KT-6132
This commit is contained in:
committed by
Svetlana Isakova
parent
de6cdf19ac
commit
d4275e1110
@@ -129,6 +129,7 @@ import org.jetbrains.k2js.test.semantics.AbstractBridgeTest
|
|||||||
import org.jetbrains.jet.j2k.test.AbstractJavaToKotlinConverterMultiFileTest
|
import org.jetbrains.jet.j2k.test.AbstractJavaToKotlinConverterMultiFileTest
|
||||||
import org.jetbrains.jet.j2k.test.AbstractJavaToKotlinConverterForWebDemoTest
|
import org.jetbrains.jet.j2k.test.AbstractJavaToKotlinConverterForWebDemoTest
|
||||||
import org.jetbrains.jet.plugin.decompiler.textBuilder.AbstractDecompiledTextTest
|
import org.jetbrains.jet.plugin.decompiler.textBuilder.AbstractDecompiledTextTest
|
||||||
|
import org.jetbrains.jet.completion.AbstractMultiFileSmartCompletionTest
|
||||||
|
|
||||||
fun main(args: Array<String>) {
|
fun main(args: Array<String>) {
|
||||||
System.setProperty("java.awt.headless", "true")
|
System.setProperty("java.awt.headless", "true")
|
||||||
@@ -361,6 +362,13 @@ fun main(args: Array<String>) {
|
|||||||
model("completion/basic/codeFragments", extension = "kt")
|
model("completion/basic/codeFragments", extension = "kt")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testClass(javaClass<AbstractMultiFileJvmBasicCompletionTest>()) {
|
||||||
|
model("completion/basic/multifile", extension = null, recursive = false)
|
||||||
|
}
|
||||||
|
testClass(javaClass<AbstractMultiFileSmartCompletionTest>()) {
|
||||||
|
model("completion/smartMultiFile", extension = null, recursive = false)
|
||||||
|
}
|
||||||
|
|
||||||
testClass(javaClass<AbstractGotoSuperTest>()) {
|
testClass(javaClass<AbstractGotoSuperTest>()) {
|
||||||
model("navigation/gotoSuper", extension = "test")
|
model("navigation/gotoSuper", extension = "test")
|
||||||
}
|
}
|
||||||
@@ -605,10 +613,6 @@ fun main(args: Array<String>) {
|
|||||||
model("stubs", extension = "kt")
|
model("stubs", extension = "kt")
|
||||||
}
|
}
|
||||||
|
|
||||||
testClass(javaClass<AbstractMultiFileJvmBasicCompletionTest>()) {
|
|
||||||
model("completion/basic/multifile", extension = null, recursive = false)
|
|
||||||
}
|
|
||||||
|
|
||||||
testClass(javaClass<AbstractMultiFileHighlightingTest>()) {
|
testClass(javaClass<AbstractMultiFileHighlightingTest>()) {
|
||||||
model("multiFileHighlighting", recursive = false)
|
model("multiFileHighlighting", recursive = false)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
class JavaClass {
|
||||||
|
public static void search(X x) { }
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
trait X
|
||||||
|
|
||||||
|
fun foo(x: X) {
|
||||||
|
JavaClass.search(<caret>)
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXIST: x
|
||||||
@@ -1,56 +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;
|
|
||||||
|
|
||||||
import com.intellij.codeInsight.lookup.LookupElement;
|
|
||||||
import kotlin.Function0;
|
|
||||||
import kotlin.Function1;
|
|
||||||
import kotlin.Unit;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.jet.completion.util.UtilPackage;
|
|
||||||
import org.jetbrains.jet.plugin.KotlinCompletionTestCase;
|
|
||||||
import org.jetbrains.jet.plugin.PluginTestCaseBase;
|
|
||||||
import org.jetbrains.jet.plugin.project.TargetPlatform;
|
|
||||||
import org.jetbrains.jet.plugin.stubs.AstAccessControl;
|
|
||||||
|
|
||||||
public abstract class AbstractMultiFileJvmBasicCompletionTest extends KotlinCompletionTestCase {
|
|
||||||
protected void doTest(@NotNull String testPath) throws Exception {
|
|
||||||
configureByFile(getTestName(false) + ".kt", "");
|
|
||||||
boolean shouldFail = testPath.contains("NoSpecifiedType");
|
|
||||||
AstAccessControl.INSTANCE$.testWithControlledAccessToAst(
|
|
||||||
shouldFail, getFile().getVirtualFile(), getProject(), getTestRootDisposable(),
|
|
||||||
new Function0<Unit>() {
|
|
||||||
@Override
|
|
||||||
public Unit invoke() {
|
|
||||||
UtilPackage.testCompletion(getFile().getText(), TargetPlatform.JVM, new Function1<Integer, LookupElement[]>() {
|
|
||||||
@Override
|
|
||||||
public LookupElement[] invoke(Integer invocationCount) {
|
|
||||||
complete(invocationCount);
|
|
||||||
return myItems;
|
|
||||||
}
|
|
||||||
}, 0);
|
|
||||||
return Unit.INSTANCE$;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected String getTestDataPath() {
|
|
||||||
return PluginTestCaseBase.getTestDataPathBase() + "/completion/basic/multifile/" + getTestName(false) + "/";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
* 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 com.intellij.codeInsight.lookup.LookupElement
|
||||||
|
import kotlin.Function0
|
||||||
|
import kotlin.Function1
|
||||||
|
import kotlin.Unit
|
||||||
|
import org.jetbrains.jet.completion.util.*
|
||||||
|
import org.jetbrains.jet.plugin.KotlinCompletionTestCase
|
||||||
|
import org.jetbrains.jet.plugin.PluginTestCaseBase
|
||||||
|
import org.jetbrains.jet.plugin.project.TargetPlatform
|
||||||
|
import org.jetbrains.jet.plugin.stubs.AstAccessControl
|
||||||
|
|
||||||
|
public abstract class AbstractMultiFileJvmBasicCompletionTest : KotlinCompletionTestCase() {
|
||||||
|
protected fun doTest(testPath: String) {
|
||||||
|
configureByFile(getTestName(false) + ".kt", "")
|
||||||
|
val shouldFail = testPath.contains("NoSpecifiedType")
|
||||||
|
AstAccessControl.testWithControlledAccessToAst(shouldFail, getFile().getVirtualFile(), getProject(), getTestRootDisposable(), {
|
||||||
|
testCompletion(getFile().getText(), TargetPlatform.JVM, { invocationCount ->
|
||||||
|
complete(invocationCount)
|
||||||
|
myItems
|
||||||
|
}, 0)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getTestDataPath(): String {
|
||||||
|
return PluginTestCaseBase.getTestDataPathBase() + "/completion/basic/multifile/" + getTestName(false) + "/"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* 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 org.jetbrains.jet.completion.util.*
|
||||||
|
import org.jetbrains.jet.plugin.KotlinCompletionTestCase
|
||||||
|
import org.jetbrains.jet.plugin.PluginTestCaseBase
|
||||||
|
import org.jetbrains.jet.plugin.project.TargetPlatform
|
||||||
|
import org.jetbrains.jet.plugin.stubs.AstAccessControl
|
||||||
|
import com.intellij.codeInsight.completion.CompletionType
|
||||||
|
|
||||||
|
public abstract class AbstractMultiFileSmartCompletionTest : KotlinCompletionTestCase() {
|
||||||
|
override fun setUp() {
|
||||||
|
super.setUp()
|
||||||
|
setType(CompletionType.SMART)
|
||||||
|
}
|
||||||
|
|
||||||
|
protected fun doTest(testPath: String) {
|
||||||
|
configureByFile(getTestName(false) + ".kt", "")
|
||||||
|
AstAccessControl.testWithControlledAccessToAst(false, getFile().getVirtualFile(), getProject(), getTestRootDisposable(), {
|
||||||
|
testCompletion(getFile().getText(), TargetPlatform.JVM, { invocationCount ->
|
||||||
|
complete(invocationCount)
|
||||||
|
myItems
|
||||||
|
}, 1)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getTestDataPath(): String {
|
||||||
|
return PluginTestCaseBase.getTestDataPathBase() + "/completion/smartMultiFile/" + getTestName(false) + "/"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
* 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 com.intellij.testFramework.TestDataPath;
|
||||||
|
import org.jetbrains.jet.JUnit3RunnerWithInners;
|
||||||
|
import org.jetbrains.jet.JetTestUtils;
|
||||||
|
import org.jetbrains.jet.test.TestMetadata;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
/** This class is generated by {@link org.jetbrains.jet.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
|
||||||
|
@SuppressWarnings("all")
|
||||||
|
@TestMetadata("idea/testData/completion/smartMultiFile")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public class MultiFileSmartCompletionTestGenerated extends AbstractMultiFileSmartCompletionTest {
|
||||||
|
public void testAllFilesPresentInSmartMultiFile() throws Exception {
|
||||||
|
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/completion/smartMultiFile"), Pattern.compile("^([^\\.]+)$"), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("JavaStaticMethodArgument")
|
||||||
|
public void testJavaStaticMethodArgument() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/smartMultiFile/JavaStaticMethodArgument/");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user