Moved tests from deprecated to generated test fixture

This commit is contained in:
Valentin Kipyatkov
2015-06-04 18:29:41 +03:00
parent 560b7dae75
commit 7eec200887
27 changed files with 171 additions and 80 deletions
@@ -1,5 +0,0 @@
fun <T> Array<T>.filter(predicate : (T) -> Boolean) : java.util.List<T> = throw UnsupportedOperationException()
fun main(args: Array<String>) {
args.fil<caret>
}
@@ -1,5 +0,0 @@
fun <T> Array<T>.filter(predicate : (T) -> Boolean) : java.util.List<T> = throw UnsupportedOperationException()
fun main(args: Array<String>) {
args.filter {<caret>}
}
@@ -1,7 +0,0 @@
fun <T> Array<T>.filter(predicate : (T) -> Boolean) : java.util.List<T> = throw UnsupportedOperationException()
fun <T> Array<T>.filterNot(predicate : (T) -> Boolean) : java.util.List<T> = throw UnsupportedOperationException()
fun main(args: Array<String>) {
args.filter<caret> {it != ""}
}
@@ -1,7 +0,0 @@
fun <T> Array<T>.filter(predicate : (T) -> Boolean) : java.util.List<T> = throw UnsupportedOperationException()
fun <T> Array<T>.filterNot(predicate : (T) -> Boolean) : java.util.List<T> = throw UnsupportedOperationException()
fun main(args: Array<String>) {
args.filterNot {<caret>it != ""}
}
@@ -6,3 +6,6 @@ fun other() = 12
fun test() {
som<caret>other()
}
// ELEMENT: some
// CHAR: '\t'
@@ -6,3 +6,6 @@ fun other() = 12
fun test() {
some(<caret>)
}
// ELEMENT: some
// CHAR: '\t'
@@ -1,7 +1,10 @@
class Some
fun <T> Some.filter(predicate : (T) -> Boolean) = throw UnsupportedOperationException()
fun main(args: Array<String>) {
Some().fil<caret>
}
// ELEMENT: filter
// CHAR: ' '
@@ -1,7 +1,10 @@
class Some
fun <T> Some.filter(predicate : (T) -> Boolean) = throw UnsupportedOperationException()
fun main(args: Array<String>) {
Some().filter { <caret> }
}
// ELEMENT: filter
// CHAR: ' '
@@ -0,0 +1,7 @@
// INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD: false
fun main(args: Array<String>) {
args.fil<caret>
}
// ELEMENT: filter
@@ -0,0 +1,7 @@
// INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD: false
fun main(args: Array<String>) {
args.filter {<caret>}
}
// ELEMENT: filter
@@ -3,3 +3,5 @@ fun <T> Array<T>.filter(predicate : (T) -> Boolean) : java.util.List<T> = throw
fun main(args: Array<String>) {
args.fil<caret>
}
// ELEMENT: *
@@ -3,3 +3,5 @@ fun <T> Array<T>.filter(predicate : (T) -> Boolean) : java.util.List<T> = throw
fun main(args: Array<String>) {
args.filter { <caret> }
}
// ELEMENT: *
@@ -0,0 +1,5 @@
fun main(args: Array<String>) {
args.filter<caret> {it != ""}
}
// ELEMENT: filterNot
@@ -0,0 +1,5 @@
fun main(args: Array<String>) {
args.filterNot {<caret>it != ""}
}
// ELEMENT: filterNot
@@ -3,3 +3,6 @@ fun foo(p : (String, Char) -> Boolean){}
fun main(args: Array<String>) {
fo<caret>
}
// ELEMENT: foo
// TAIL_TEXT: " { String, Char -> ... } (<root>)"
@@ -3,3 +3,6 @@ fun foo(p : (String, Char) -> Boolean){}
fun main(args: Array<String>) {
foo { s, c -> <caret> }
}
// ELEMENT: foo
// TAIL_TEXT: " { String, Char -> ... } (<root>)"
@@ -3,3 +3,6 @@ fun foo(p : (String, Char) -> Boolean){}
fun main(args: Array<String>) {
fo<caret>
}
// ELEMENT: foo
// TAIL_TEXT: "(p: (String, Char) -> Boolean) (<root>)"
@@ -3,3 +3,6 @@ fun foo(p : (String, Char) -> Boolean){}
fun main(args: Array<String>) {
foo(<caret>)
}
// ELEMENT: foo
// TAIL_TEXT: "(p: (String, Char) -> Boolean) (<root>)"
@@ -4,3 +4,7 @@ fun foo(p : (String, Boolean) -> Boolean){}
fun main(args: Array<String>) {
fo<caret>
}
// ELEMENT: foo
// TAIL_TEXT: " { String, Char -> ... } (<root>)"
@@ -4,3 +4,7 @@ fun foo(p : (String, Boolean) -> Boolean){}
fun main(args: Array<String>) {
foo { s: String, c: Char -> <caret> }
}
// ELEMENT: foo
// TAIL_TEXT: " { String, Char -> ... } (<root>)"
@@ -2,4 +2,7 @@ fun some(f: () -> Unit) { f() }
fun test() {
some<caret>
}
}
// ELEMENT: some
// CHAR: {
@@ -2,4 +2,7 @@ fun some(f: () -> Unit) { f() }
fun test() {
some { <caret> }
}
}
// ELEMENT: some
// CHAR: {
@@ -18,6 +18,8 @@ package org.jetbrains.kotlin.idea.completion.test.handlers
import com.intellij.codeInsight.completion.CompletionType
import com.intellij.openapi.util.io.FileUtil
import com.intellij.psi.codeStyle.CodeStyleSettingsManager
import org.jetbrains.kotlin.idea.core.formatter.JetCodeStyleSettings
import org.jetbrains.kotlin.idea.test.JetWithJdkAndRuntimeLightProjectDescriptor
import org.jetbrains.kotlin.test.InTextDirectivesUtils
import java.io.File
@@ -29,32 +31,45 @@ public abstract class AbstractCompletionHandlerTest(private val defaultCompletio
private val TAIL_TEXT_PREFIX = "TAIL_TEXT:"
private val COMPLETION_CHAR_PREFIX = "CHAR:"
private val COMPLETION_TYPE_PREFIX = "COMPLETION_TYPE:"
private val INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD = "INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD:"
protected open fun doTest(testPath: String) {
setUpFixture(testPath)
val fileText = FileUtil.loadFile(File(testPath))
val invocationCount = InTextDirectivesUtils.getPrefixedInt(fileText, INVOCATION_COUNT_PREFIX) ?: 1
val lookupString = InTextDirectivesUtils.findStringWithPrefixes(fileText, LOOKUP_STRING_PREFIX)
val itemText = InTextDirectivesUtils.findStringWithPrefixes(fileText, ELEMENT_TEXT_PREFIX)
val tailText = InTextDirectivesUtils.findStringWithPrefixes(fileText, TAIL_TEXT_PREFIX)
val settingManager = CodeStyleSettingsManager.getInstance()
val tempSettings = settingManager.getCurrentSettings().clone()
settingManager.setTemporarySettings(tempSettings)
try {
val fileText = FileUtil.loadFile(File(testPath))
val invocationCount = InTextDirectivesUtils.getPrefixedInt(fileText, INVOCATION_COUNT_PREFIX) ?: 1
val lookupString = InTextDirectivesUtils.findStringWithPrefixes(fileText, LOOKUP_STRING_PREFIX)
val itemText = InTextDirectivesUtils.findStringWithPrefixes(fileText, ELEMENT_TEXT_PREFIX)
val tailText = InTextDirectivesUtils.findStringWithPrefixes(fileText, TAIL_TEXT_PREFIX)
val completionCharString = InTextDirectivesUtils.findStringWithPrefixes(fileText, COMPLETION_CHAR_PREFIX)
val completionChar = when(completionCharString) {
"\\n", null -> '\n'
"\\t" -> '\t'
else -> completionCharString.singleOrNull() ?: error("Incorrect completion char: \"$completionCharString\"")
val completionCharString = InTextDirectivesUtils.findStringWithPrefixes(fileText, COMPLETION_CHAR_PREFIX)
val completionChar = when(completionCharString) {
"\\n", null -> '\n'
"\\t" -> '\t'
else -> completionCharString.singleOrNull() ?: error("Incorrect completion char: \"$completionCharString\"")
}
val completionTypeString = InTextDirectivesUtils.findStringWithPrefixes(fileText, COMPLETION_TYPE_PREFIX)
val completionType = when (completionTypeString) {
"BASIC" -> CompletionType.BASIC
"SMART" -> CompletionType.SMART
null -> defaultCompletionType
else -> error("Unknown completion type: $completionTypeString")
}
InTextDirectivesUtils.getPrefixedBoolean(fileText, INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD)?.let {
JetCodeStyleSettings.getInstance(getProject()).INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD = it
}
doTestWithTextLoaded(completionType, invocationCount, lookupString, itemText, tailText, completionChar, testPath + ".after")
}
val completionTypeString = InTextDirectivesUtils.findStringWithPrefixes(fileText, COMPLETION_TYPE_PREFIX)
val completionType = when (completionTypeString) {
"BASIC" -> CompletionType.BASIC
"SMART" -> CompletionType.SMART
null -> defaultCompletionType
else -> error("Unknown completion type: $completionTypeString")
finally {
settingManager.dropTemporarySettings()
}
doTestWithTextLoaded(completionType, invocationCount, lookupString, itemText, tailText, completionChar, testPath + ".after")
}
protected open fun setUpFixture(testPath: String) {
@@ -83,24 +83,10 @@ public class BasicCompletionHandlerTest : CompletionHandlerTestBase(){
fun testExtFunction() = doTest()
fun testFunctionLiteralInsertOnSpace() = doTest(2, null, null, ' ')
fun testInsertImportOnTab() = doTest(2, "ArrayList", null, '\t')
fun testHigherOrderFunction() = doTest()
fun testInsertFqnForJavaClass() = doTest(2, "SortedSet", "<E> (java.util)", '\n')
fun testHigherOrderFunctionWithArg() = doTest(2, "filterNot", null, '\n')
fun testHigherOrderFunctionWithArgs1() = doTest(1, "foo", "foo", " { String, Char -> ... } (<root>)", '\n')
fun testHigherOrderFunctionWithArgs2() = doTest(1, "foo", "foo", "(p: (String, Char) -> Boolean) (<root>)", '\n')
fun testHigherOrderFunctionWithArgs3() = doTest(1, "foo", "foo", " { String, Char -> ... } (<root>)", '\n')
fun testForceParenthesisForTabChar() = doTest(0, "some", null, '\t')
fun testTabInsertAtTheFileEnd() = doTest(0, "vvvvv", null, '\t')
fun testTabInsertBeforeBraces() = doTest(0, "vvvvv", null, '\t')
@@ -121,8 +107,6 @@ public class BasicCompletionHandlerTest : CompletionHandlerTestBase(){
fun testTabInsertInSimpleName() = doTest(0, "vvvvv", null, '\t')
fun testInsertFunctionWithSingleParameterWithBrace() = doTest(0, "some", null, '{')
fun testTabReplaceIdentifier() = doTest(1, "sss", null, '\t')
fun testTabReplaceIdentifier2() = doTest(1, "sss", null, '\t')
fun testTabReplaceThis() = doTest(1, "sss", null, '\t')
@@ -142,19 +126,6 @@ public class BasicCompletionHandlerTest : CompletionHandlerTestBase(){
checkResult()
}
fun testFunctionLiteralInsertWhenNoSpacesForBraces() {
val settings = CodeStyleSettingsManager.getSettings(getProject())
val jetSettings = settings.getCustomSettings(javaClass<JetCodeStyleSettings>())!!
try {
jetSettings.INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD = false
doTest()
}
finally {
jetSettings.INSERT_WHITESPACES_IN_SIMPLE_ONE_LINE_METHOD = true
}
}
fun testObject() = doTest()
fun testEnumMember() = doTest(1, "A", null, '\n')
@@ -119,12 +119,6 @@ public class BasicCompletionHandlerTestGenerated extends AbstractBasicCompletion
doTest(fileName);
}
@TestMetadata("ReplaceByLambdaTemplateNoClosingParenth.kt")
public void testReplaceByLambdaTemplateNoClosingParenth() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/basic/ReplaceByLambdaTemplateNoClosingParenth.kt");
doTest(fileName);
}
@TestMetadata("ReplaceFunctionCallByProperty.kt")
public void testReplaceFunctionCallByProperty() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/basic/ReplaceFunctionCallByProperty.kt");
@@ -155,6 +149,75 @@ public class BasicCompletionHandlerTestGenerated extends AbstractBasicCompletion
doTest(fileName);
}
@TestMetadata("idea/idea-completion/testData/handlers/basic/highOrderFunctions")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class HighOrderFunctions extends AbstractBasicCompletionHandlerTest {
public void testAllFilesPresentInHighOrderFunctions() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/idea-completion/testData/handlers/basic/highOrderFunctions"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("ForceParenthesisForTabChar.kt")
public void testForceParenthesisForTabChar() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/basic/highOrderFunctions/ForceParenthesisForTabChar.kt");
doTest(fileName);
}
@TestMetadata("FunctionLiteralInsertOnSpace.kt")
public void testFunctionLiteralInsertOnSpace() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/basic/highOrderFunctions/FunctionLiteralInsertOnSpace.kt");
doTest(fileName);
}
@TestMetadata("FunctionLiteralInsertWhenNoSpacesForBraces.kt")
public void testFunctionLiteralInsertWhenNoSpacesForBraces() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/basic/highOrderFunctions/FunctionLiteralInsertWhenNoSpacesForBraces.kt");
doTest(fileName);
}
@TestMetadata("HigherOrderFunction.kt")
public void testHigherOrderFunction() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/basic/highOrderFunctions/HigherOrderFunction.kt");
doTest(fileName);
}
@TestMetadata("HigherOrderFunctionWithArg.kt")
public void testHigherOrderFunctionWithArg() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/basic/highOrderFunctions/HigherOrderFunctionWithArg.kt");
doTest(fileName);
}
@TestMetadata("HigherOrderFunctionWithArgs1.kt")
public void testHigherOrderFunctionWithArgs1() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/basic/highOrderFunctions/HigherOrderFunctionWithArgs1.kt");
doTest(fileName);
}
@TestMetadata("HigherOrderFunctionWithArgs2.kt")
public void testHigherOrderFunctionWithArgs2() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/basic/highOrderFunctions/HigherOrderFunctionWithArgs2.kt");
doTest(fileName);
}
@TestMetadata("HigherOrderFunctionWithArgs3.kt")
public void testHigherOrderFunctionWithArgs3() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/basic/highOrderFunctions/HigherOrderFunctionWithArgs3.kt");
doTest(fileName);
}
@TestMetadata("InsertFunctionWithSingleParameterWithBrace.kt")
public void testInsertFunctionWithSingleParameterWithBrace() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/basic/highOrderFunctions/InsertFunctionWithSingleParameterWithBrace.kt");
doTest(fileName);
}
@TestMetadata("ReplaceByLambdaTemplateNoClosingParenth.kt")
public void testReplaceByLambdaTemplateNoClosingParenth() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/handlers/basic/highOrderFunctions/ReplaceByLambdaTemplateNoClosingParenth.kt");
doTest(fileName);
}
}
@TestMetadata("idea/idea-completion/testData/handlers/basic/stringTemplate")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)