Convert AbstractTypingIndentationTestBase to Kotlin
This commit is contained in:
+10
@@ -0,0 +1,10 @@
|
||||
/*
|
||||
* 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.test
|
||||
|
||||
import com.intellij.testFramework.LightPlatformCodeInsightTestCase
|
||||
|
||||
abstract class KotlinLightPlatformCodeInsightTestCase : LightPlatformCodeInsightTestCase()
|
||||
@@ -1,68 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2019 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.formatter;
|
||||
|
||||
import com.intellij.application.options.CodeStyle;
|
||||
import com.intellij.openapi.editor.CaretModel;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.testFramework.EditorTestUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightTestCase;
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||
import org.jetbrains.kotlin.test.SettingsConfigurator;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public abstract class AbstractTypingIndentationTestBase extends KotlinLightCodeInsightTestCase {
|
||||
public void doNewlineTest(String afterFilePath) throws Exception {
|
||||
doNewlineTest(afterFilePath, false);
|
||||
}
|
||||
|
||||
public void doNewlineTestWithInvert(String afterInvFilePath) throws Exception {
|
||||
doNewlineTest(afterInvFilePath, true);
|
||||
}
|
||||
|
||||
public void doNewlineTest(String afterFilePath, boolean inverted) throws Exception {
|
||||
String testFileName = afterFilePath.substring(0, afterFilePath.indexOf("."));
|
||||
String testFileExtension = afterFilePath.substring(afterFilePath.lastIndexOf("."));
|
||||
|
||||
String originFilePath = testFileName + testFileExtension;
|
||||
String originalFileText = FileUtil.loadFile(new File(originFilePath), true);
|
||||
|
||||
try {
|
||||
SettingsConfigurator configurator = FormatSettingsUtil.createConfigurator(originalFileText, CodeStyle.getSettings(getProject_()));
|
||||
if (!inverted) {
|
||||
configurator.configureSettings();
|
||||
}
|
||||
else {
|
||||
configurator.configureInvertedSettings();
|
||||
}
|
||||
|
||||
doNewlineTest(originFilePath, afterFilePath);
|
||||
}
|
||||
finally {
|
||||
CodeStyle.getSettings(getProject_()).clearCodeStyleSettings();
|
||||
}
|
||||
}
|
||||
|
||||
private void doNewlineTest(String beforeFilePath, String afterFilePath) {
|
||||
configureByFile(beforeFilePath);
|
||||
type('\n');
|
||||
|
||||
CaretModel caretModel = getEditor().getCaretModel();
|
||||
int offset = caretModel.getOffset();
|
||||
String actualTextWithCaret = new StringBuilder(getEditor().getDocument().getText()).insert(offset, EditorTestUtil.CARET_TAG).toString();
|
||||
|
||||
KotlinTestUtils.assertEqualsToFile(new File(afterFilePath), actualTextWithCaret);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected String getTestDataPath() {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Copyright 2010-2019 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.formatter
|
||||
|
||||
import com.intellij.application.options.CodeStyle
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.testFramework.EditorTestUtil
|
||||
import org.jetbrains.kotlin.idea.test.KotlinLightPlatformCodeInsightTestCase
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
import java.io.File
|
||||
|
||||
abstract class AbstractTypingIndentationTestBase : KotlinLightPlatformCodeInsightTestCase() {
|
||||
fun doNewlineTestWithInvert(afterInvFilePath: String) {
|
||||
doNewlineTest(afterInvFilePath, true)
|
||||
}
|
||||
|
||||
@JvmOverloads
|
||||
fun doNewlineTest(afterFilePath: String, inverted: Boolean = false) {
|
||||
val testFileName = afterFilePath.substring(0, afterFilePath.indexOf("."))
|
||||
val testFileExtension = afterFilePath.substring(afterFilePath.lastIndexOf("."))
|
||||
val originFilePath = testFileName + testFileExtension
|
||||
val originalFileText = FileUtil.loadFile(File(originFilePath), true)
|
||||
try {
|
||||
val configurator = FormatSettingsUtil.createConfigurator(originalFileText, CodeStyle.getSettings(project))
|
||||
if (!inverted) {
|
||||
configurator.configureSettings()
|
||||
} else {
|
||||
configurator.configureInvertedSettings()
|
||||
}
|
||||
|
||||
doNewlineTest(originFilePath, afterFilePath)
|
||||
} finally {
|
||||
CodeStyle.getSettings(project).clearCodeStyleSettings()
|
||||
}
|
||||
}
|
||||
|
||||
private fun doNewlineTest(beforeFilePath: String, afterFilePath: String) {
|
||||
configureByFile(beforeFilePath)
|
||||
type('\n')
|
||||
val caretModel = editor.caretModel
|
||||
val offset = caretModel.offset
|
||||
val actualTextWithCaret = StringBuilder(editor.document.text).insert(offset, EditorTestUtil.CARET_TAG).toString()
|
||||
KotlinTestUtils.assertEqualsToFile(File(afterFilePath), actualTextWithCaret)
|
||||
}
|
||||
|
||||
override fun getTestDataPath(): String = ""
|
||||
}
|
||||
Reference in New Issue
Block a user