Added test for KT-6132

This commit is contained in:
Valentin Kipyatkov
2014-10-24 17:10:11 +04:00
committed by Svetlana Isakova
parent de6cdf19ac
commit d4275e1110
7 changed files with 150 additions and 60 deletions
@@ -129,6 +129,7 @@ import org.jetbrains.k2js.test.semantics.AbstractBridgeTest
import org.jetbrains.jet.j2k.test.AbstractJavaToKotlinConverterMultiFileTest
import org.jetbrains.jet.j2k.test.AbstractJavaToKotlinConverterForWebDemoTest
import org.jetbrains.jet.plugin.decompiler.textBuilder.AbstractDecompiledTextTest
import org.jetbrains.jet.completion.AbstractMultiFileSmartCompletionTest
fun main(args: Array<String>) {
System.setProperty("java.awt.headless", "true")
@@ -361,6 +362,13 @@ fun main(args: Array<String>) {
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>()) {
model("navigation/gotoSuper", extension = "test")
}
@@ -605,10 +613,6 @@ fun main(args: Array<String>) {
model("stubs", extension = "kt")
}
testClass(javaClass<AbstractMultiFileJvmBasicCompletionTest>()) {
model("completion/basic/multifile", extension = null, recursive = false)
}
testClass(javaClass<AbstractMultiFileHighlightingTest>()) {
model("multiFileHighlighting", recursive = false)
}
@@ -0,0 +1,3 @@
class JavaClass {
public static void search(X x) { }
}
@@ -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);
}
}