diff --git a/compiler/tests/org/jetbrains/jet/jetTestUtils.kt b/compiler/tests/org/jetbrains/jet/jetTestUtils.kt index 505061a0d17..9acc5e7de04 100644 --- a/compiler/tests/org/jetbrains/jet/jetTestUtils.kt +++ b/compiler/tests/org/jetbrains/jet/jetTestUtils.kt @@ -16,4 +16,22 @@ package org.jetbrains.jet.test.util -fun String.removeTrailingWhitespacesFromEachLine() = split('\n') map { it.trimTrailing() } makeString ("\n") \ No newline at end of file +import com.intellij.testFramework.fixtures.CodeInsightTestFixture +import com.intellij.openapi.util.io.FileUtil +import java.io.File + +public fun String.removeTrailingWhitespacesFromEachLine(): String = split('\n') map { it.trimTrailing() } makeString ("\n") + +public fun CodeInsightTestFixture.configureWithExtraFile(path: String, extraNamePart: String = ".Data") { + val noExtensionPath = FileUtil.getNameWithoutExtension(path) + val extraPath = array("kt", "java").stream() + .map { ext -> "$noExtensionPath$extraNamePart.$ext" } + .firstOrNull { extraPath -> File(extraPath).exists() } + + if (extraPath != null) { + configureByFiles(path, extraPath) + } + else { + configureByFile(path) + } +} diff --git a/idea/tests/org/jetbrains/jet/completion/weighers/AbstractCompletionWeigherTest.kt b/idea/tests/org/jetbrains/jet/completion/weighers/AbstractCompletionWeigherTest.kt index 249e6455061..0747e008c26 100644 --- a/idea/tests/org/jetbrains/jet/completion/weighers/AbstractCompletionWeigherTest.kt +++ b/idea/tests/org/jetbrains/jet/completion/weighers/AbstractCompletionWeigherTest.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2013 JetBrains s.r.o. + * 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. @@ -23,30 +23,19 @@ import org.jetbrains.jet.plugin.PluginTestCaseBase import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase import org.testng.Assert import com.intellij.openapi.util.io.FileUtil +import org.jetbrains.jet.test.util.configureWithExtraFile public abstract class AbstractCompletionWeigherTest() : LightCodeInsightFixtureTestCase() { fun doTest(path: String) { - val fixture = myFixture!! + myFixture.configureWithExtraFile(path) - val testFile = File(path) - - val dataFileName = FileUtil.getNameWithoutExtension(testFile) + ".Data.kt" - val dataFile = File(testFile.getParent(), dataFileName) - - if (dataFile.exists()) { - fixture.configureByFiles(path, FileUtil.toSystemIndependentName(dataFile.getPath())) - } - else { - fixture.configureByFile(path) - } - - val text = fixture.getEditor()!!.getDocument().getText() + val text = myFixture.getEditor().getDocument().getText() val items = InTextDirectivesUtils.findArrayWithPrefixes(text, "// ORDER:") Assert.assertTrue(!items.isEmpty(), """Some items should be defined with "// ORDER:" directive""") - fixture.complete(CompletionType.BASIC, InTextDirectivesUtils.getPrefixedInt(text, "// INVOCATION_COUNT:") ?: 1) - fixture.assertPreferredCompletionItems(InTextDirectivesUtils.getPrefixedInt(text, "// SELECTED:") ?: 0, *items) + myFixture.complete(CompletionType.BASIC, InTextDirectivesUtils.getPrefixedInt(text, "// INVOCATION_COUNT:") ?: 1) + myFixture.assertPreferredCompletionItems(InTextDirectivesUtils.getPrefixedInt(text, "// SELECTED:") ?: 0, *items) } protected override fun getTestDataPath() : String? { diff --git a/idea/tests/org/jetbrains/jet/editor/quickDoc/AbstractJetQuickDocProviderTest.java b/idea/tests/org/jetbrains/jet/editor/quickDoc/AbstractJetQuickDocProviderTest.java index adae2ae4e21..8884706d44d 100644 --- a/idea/tests/org/jetbrains/jet/editor/quickDoc/AbstractJetQuickDocProviderTest.java +++ b/idea/tests/org/jetbrains/jet/editor/quickDoc/AbstractJetQuickDocProviderTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2013 JetBrains s.r.o. + * 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. @@ -34,6 +34,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.InTextDirectivesUtils; import org.jetbrains.jet.plugin.ProjectDescriptorWithStdlibSources; +import org.jetbrains.jet.test.util.UtilPackage; import java.io.File; import java.util.Collection; @@ -41,7 +42,7 @@ import java.util.List; public abstract class AbstractJetQuickDocProviderTest extends LightCodeInsightFixtureTestCase { public void doTest(@NotNull String path) throws Exception { - myFixture.configureByFiles(ArrayUtil.toStringArray(getTestFiles(path))); + UtilPackage.configureWithExtraFile(myFixture, path, "_Data"); PsiElement element = myFixture.getFile().findElementAt(myFixture.getEditor().getCaretModel().getOffset()); assertNotNull("Can't find element at caret in file: " + path, element); @@ -85,29 +86,4 @@ public abstract class AbstractJetQuickDocProviderTest extends LightCodeInsightFi protected LightProjectDescriptor getProjectDescriptor() { return ProjectDescriptorWithStdlibSources.INSTANCE; } - - @Nullable - private static Collection getTestFiles(@NotNull String path) { - File testFile = new File(path); - String testFileName = FileUtil.getNameWithoutExtension(testFile); - - List filePaths = Lists.newArrayList(); - - filePaths.add(path); - - filePaths.add(checkDataFileWithSuffix(testFile, testFileName, "_Data.kt")); - filePaths.add(checkDataFileWithSuffix(testFile, testFileName, "_Data.java")); - - return Collections2.filter(filePaths, Predicates.notNull()); - } - - private static String checkDataFileWithSuffix(File testFile, String testFileName, String dataFileSuffix) { - String ktDataFileName = testFileName + dataFileSuffix; - File ktDataFile = new File(testFile.getParent(), ktDataFileName); - if (ktDataFile.exists()) { - return FileUtil.normalize(ktDataFile.getPath()); - } - - return null; - } } diff --git a/idea/tests/org/jetbrains/jet/resolve/AbstractReferenceResolveTest.java b/idea/tests/org/jetbrains/jet/resolve/AbstractReferenceResolveTest.java index 0922c109981..7b7716223d1 100644 --- a/idea/tests/org/jetbrains/jet/resolve/AbstractReferenceResolveTest.java +++ b/idea/tests/org/jetbrains/jet/resolve/AbstractReferenceResolveTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2010-2013 JetBrains s.r.o. + * 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. @@ -30,6 +30,7 @@ import junit.framework.Assert; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.InTextDirectivesUtils; import org.jetbrains.jet.plugin.JetWithJdkAndRuntimeLightProjectDescriptor; +import org.jetbrains.jet.test.util.UtilPackage; import org.jetbrains.jet.testing.ReferenceUtils; import java.io.File; @@ -65,14 +66,7 @@ public abstract class AbstractReferenceResolveTest extends LightPlatformCodeInsi protected void doTest(String path) { assert path.endsWith(".kt") : path; - String extraFile = path.replace(".kt", ".Data.kt"); - if (new File(extraFile).exists()) { - myFixture.configureByFiles(path, extraFile); - } - else { - myFixture.configureByFile(path); - } - + UtilPackage.configureWithExtraFile(myFixture, path, ".Data"); performChecks(); }