From 796611702ca31126b6586debb3741200a05fb6b8 Mon Sep 17 00:00:00 2001 From: Ilya Ryzhenkov Date: Wed, 19 Mar 2014 12:49:35 +0400 Subject: [PATCH] Test indentation on new line in scripts. --- .../ScriptAfterExpression.kts | 4 ++ .../ScriptAfterExpression_after.kts | 5 ++ .../indentationOnNewline/ScriptAfterFun.kts | 5 ++ .../ScriptAfterFun_after.kts | 6 ++ .../ScriptAfterImport.kts | 3 + .../ScriptAfterImport_after.kts | 4 ++ .../indentationOnNewline/ScriptInsideFun.kts | 6 ++ .../ScriptInsideFun_after.kts | 7 +++ .../JetScriptTypingIndentationTest.java | 30 +++++++++ .../formatter/JetTypingIndentationTest.java | 52 +--------------- .../JetTypingIndentationTestBase.java | 62 +++++++++++++++++++ 11 files changed, 134 insertions(+), 50 deletions(-) create mode 100644 idea/testData/indentationOnNewline/ScriptAfterExpression.kts create mode 100644 idea/testData/indentationOnNewline/ScriptAfterExpression_after.kts create mode 100644 idea/testData/indentationOnNewline/ScriptAfterFun.kts create mode 100644 idea/testData/indentationOnNewline/ScriptAfterFun_after.kts create mode 100644 idea/testData/indentationOnNewline/ScriptAfterImport.kts create mode 100644 idea/testData/indentationOnNewline/ScriptAfterImport_after.kts create mode 100644 idea/testData/indentationOnNewline/ScriptInsideFun.kts create mode 100644 idea/testData/indentationOnNewline/ScriptInsideFun_after.kts create mode 100644 idea/tests/org/jetbrains/jet/formatter/JetScriptTypingIndentationTest.java create mode 100644 idea/tests/org/jetbrains/jet/formatter/JetTypingIndentationTestBase.java diff --git a/idea/testData/indentationOnNewline/ScriptAfterExpression.kts b/idea/testData/indentationOnNewline/ScriptAfterExpression.kts new file mode 100644 index 00000000000..ebd77e8bde2 --- /dev/null +++ b/idea/testData/indentationOnNewline/ScriptAfterExpression.kts @@ -0,0 +1,4 @@ +package a.b.c + +var x = 1 +x = x + 1 \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/ScriptAfterExpression_after.kts b/idea/testData/indentationOnNewline/ScriptAfterExpression_after.kts new file mode 100644 index 00000000000..8bf92306092 --- /dev/null +++ b/idea/testData/indentationOnNewline/ScriptAfterExpression_after.kts @@ -0,0 +1,5 @@ +package a.b.c + +var x = 1 +x = x + 1 + \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/ScriptAfterFun.kts b/idea/testData/indentationOnNewline/ScriptAfterFun.kts new file mode 100644 index 00000000000..bd4ca22e7ed --- /dev/null +++ b/idea/testData/indentationOnNewline/ScriptAfterFun.kts @@ -0,0 +1,5 @@ +package a.b.c + +fun fn() { + +} \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/ScriptAfterFun_after.kts b/idea/testData/indentationOnNewline/ScriptAfterFun_after.kts new file mode 100644 index 00000000000..4cedbdc38d9 --- /dev/null +++ b/idea/testData/indentationOnNewline/ScriptAfterFun_after.kts @@ -0,0 +1,6 @@ +package a.b.c + +fun fn() { + +} + \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/ScriptAfterImport.kts b/idea/testData/indentationOnNewline/ScriptAfterImport.kts new file mode 100644 index 00000000000..19e4e622115 --- /dev/null +++ b/idea/testData/indentationOnNewline/ScriptAfterImport.kts @@ -0,0 +1,3 @@ +package a.b.c + +import x.y.z \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/ScriptAfterImport_after.kts b/idea/testData/indentationOnNewline/ScriptAfterImport_after.kts new file mode 100644 index 00000000000..7fc156eb5f0 --- /dev/null +++ b/idea/testData/indentationOnNewline/ScriptAfterImport_after.kts @@ -0,0 +1,4 @@ +package a.b.c + +import x.y.z + \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/ScriptInsideFun.kts b/idea/testData/indentationOnNewline/ScriptInsideFun.kts new file mode 100644 index 00000000000..0fa26d37fb0 --- /dev/null +++ b/idea/testData/indentationOnNewline/ScriptInsideFun.kts @@ -0,0 +1,6 @@ +package a.b.c + +var x = 2 +fun fn() { + x = x + 1 +} \ No newline at end of file diff --git a/idea/testData/indentationOnNewline/ScriptInsideFun_after.kts b/idea/testData/indentationOnNewline/ScriptInsideFun_after.kts new file mode 100644 index 00000000000..856dc4a5a03 --- /dev/null +++ b/idea/testData/indentationOnNewline/ScriptInsideFun_after.kts @@ -0,0 +1,7 @@ +package a.b.c + +var x = 2 +fun fn() { + x = x + 1 + +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/formatter/JetScriptTypingIndentationTest.java b/idea/tests/org/jetbrains/jet/formatter/JetScriptTypingIndentationTest.java new file mode 100644 index 00000000000..3da15c8b07d --- /dev/null +++ b/idea/tests/org/jetbrains/jet/formatter/JetScriptTypingIndentationTest.java @@ -0,0 +1,30 @@ +package org.jetbrains.jet.formatter; + +public class JetScriptTypingIndentationTest extends JetTypingIndentationTestBase { + public void testScriptAfterFun() { + doFileNewlineTest(); + } + + public void testScriptAfterImport() { + doFileNewlineTest(); + } + + public void testScriptAfterExpression() { + doFileNewlineTest(); + } + + public void testScriptInsideFun() { + doFileNewlineTest(); + } + + @Override + public String getBeforeFileName() { + return getTestName(false) + ".kts"; + } + + @Override + public String getAfterFileName() { + return getTestName(false) + "_after.kts"; + } + +} diff --git a/idea/tests/org/jetbrains/jet/formatter/JetTypingIndentationTest.java b/idea/tests/org/jetbrains/jet/formatter/JetTypingIndentationTest.java index 35ad026342f..ef9dc9cbadb 100644 --- a/idea/tests/org/jetbrains/jet/formatter/JetTypingIndentationTest.java +++ b/idea/tests/org/jetbrains/jet/formatter/JetTypingIndentationTest.java @@ -26,8 +26,7 @@ import org.jetbrains.jet.testing.SettingsConfigurator; import java.io.File; -public class JetTypingIndentationTest extends LightCodeInsightTestCase { - +public class JetTypingIndentationTest extends JetTypingIndentationTestBase { public void testAfterCatch() { doFileNewlineTest(); } @@ -87,52 +86,5 @@ public class JetTypingIndentationTest extends LightCodeInsightTestCase { public void testWhile() { doFileNewlineTest(); } - - public void doFileNewlineTest() { - doNewlineTest(getBeforeFileName(), getAfterFileName()); - } - - public String getBeforeFileName() { - return getTestName(false) + ".kt"; - } - - public String getAfterFileName() { - return getTestName(false) + "_after.kt"; - } - - public String getInvertedAfterFileName() { - return getTestName(false) + "_after_inv.kt"; - } - - public void doFileSettingNewLineTest() throws Exception { - String originalFileText = FileUtil.loadFile(new File(getTestDataPath(), getBeforeFileName()), true); - - SettingsConfigurator configurator = JetFormatSettingsUtil.createConfigurator(originalFileText); - - configurator.configureSettings(); - doNewlineTest(getBeforeFileName(), getAfterFileName()); - - configurator.configureInvertedSettings(); - doNewlineTest(getBeforeFileName(), getInvertedAfterFileName()); - - getSettings().clearCodeStyleSettings(); - } - - private void doNewlineTest(String beforeFileName, String afterFileName) { - configureByFile(beforeFileName); - type('\n'); - checkResultByFile(afterFileName); - } - - public static CodeStyleSettings getSettings() { - return CodeStyleSettingsManager.getSettings(getProject()); - } - - @NotNull - @Override - protected String getTestDataPath() { - String testRelativeDir = "indentationOnNewline"; - return new File(PluginTestCaseBase.getTestDataPathBase(), testRelativeDir).getPath() + - File.separator; - } } + diff --git a/idea/tests/org/jetbrains/jet/formatter/JetTypingIndentationTestBase.java b/idea/tests/org/jetbrains/jet/formatter/JetTypingIndentationTestBase.java new file mode 100644 index 00000000000..56aa937097c --- /dev/null +++ b/idea/tests/org/jetbrains/jet/formatter/JetTypingIndentationTestBase.java @@ -0,0 +1,62 @@ +package org.jetbrains.jet.formatter; + +import com.intellij.openapi.util.io.FileUtil; +import com.intellij.psi.codeStyle.CodeStyleSettings; +import com.intellij.psi.codeStyle.CodeStyleSettingsManager; +import com.intellij.testFramework.LightCodeInsightTestCase; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.plugin.PluginTestCaseBase; +import org.jetbrains.jet.testing.SettingsConfigurator; + +import java.io.File; + +public abstract class JetTypingIndentationTestBase extends LightCodeInsightTestCase { + + public void doFileNewlineTest() { + doNewlineTest(getBeforeFileName(), getAfterFileName()); + } + + public String getBeforeFileName() { + return getTestName(false) + ".kt"; + } + + public String getAfterFileName() { + return getTestName(false) + "_after.kt"; + } + + public String getInvertedAfterFileName() { + return getTestName(false) + "_after_inv.kt"; + } + + public void doFileSettingNewLineTest() throws Exception { + String originalFileText = FileUtil.loadFile(new File(getTestDataPath(), getBeforeFileName()), true); + + SettingsConfigurator configurator = JetFormatSettingsUtil.createConfigurator(originalFileText); + + configurator.configureSettings(); + doNewlineTest(getBeforeFileName(), getAfterFileName()); + + configurator.configureInvertedSettings(); + doNewlineTest(getBeforeFileName(), getInvertedAfterFileName()); + + getSettings().clearCodeStyleSettings(); + } + + private void doNewlineTest(String beforeFileName, String afterFileName) { + configureByFile(beforeFileName); + type('\n'); + checkResultByFile(afterFileName); + } + + public static CodeStyleSettings getSettings() { + return CodeStyleSettingsManager.getSettings(getProject()); + } + + @NotNull + @Override + protected String getTestDataPath() { + String testRelativeDir = "indentationOnNewline"; + return new File(PluginTestCaseBase.getTestDataPathBase(), testRelativeDir).getPath() + + File.separator; + } +}