Files
openide/java/java-tests/testSrc/com/intellij/codeInsight/JavaCommentByLineTest.java
Dmitry Jemerov 65270d424e Extract Java and XML specific parts out of CommentByLineTest
GitOrigin-RevId: 37045b21bd20c877ec76670b1ca0097354d1cb94
2022-05-02 16:17:07 +00:00

135 lines
4.5 KiB
Java

// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.codeInsight;
import com.intellij.JavaTestUtil;
import com.intellij.codeInsight.folding.CodeFoldingManager;
import com.intellij.lang.java.JavaLanguage;
import com.intellij.openapi.actionSystem.IdeActions;
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
import com.intellij.testFramework.PlatformTestUtil;
import org.jetbrains.annotations.NotNull;
public class JavaCommentByLineTest extends CommentByLineTestBase {
@Override
protected @NotNull String getTestDataPath() {
return JavaTestUtil.getJavaTestDataPath();
}
public void testJava1() {
doTest();
}
public void testJava2() {
doTest();
}
public void testJava3() {
doTest();
}
public void testJava4() {
getLanguageSettings(JavaLanguage.INSTANCE).LINE_COMMENT_AT_FIRST_COLUMN = false;
doTest();
}
public void testJava5() {
getLanguageSettings(JavaLanguage.INSTANCE).LINE_COMMENT_AT_FIRST_COLUMN = false;
doTest();
}
public void testJava6() {
getLanguageSettings(JavaLanguage.INSTANCE).LINE_COMMENT_AT_FIRST_COLUMN = false;
doTest();
}
public void testJava_MulticaretSingleLine() {
doTest();
}
public void testJava_MulticaretBlock() {
doTest();
}
public void testJava_MulticaretUncommentSeveralBlocks() {
doTest();
}
public void testJava_AddSpace() {
CommonCodeStyleSettings settings = getLanguageSettings(JavaLanguage.INSTANCE);
settings.LINE_COMMENT_AT_FIRST_COLUMN = false;
settings.LINE_COMMENT_ADD_SPACE = true;
doTest();
}
public void testJava_UncommentRemovingSpace() {
getLanguageSettings(JavaLanguage.INSTANCE).LINE_COMMENT_ADD_SPACE = true;
doTest();
}
public void testJava_CommentUncommentDoesNotAddSpacesOnEmptyLine() {
getLanguageSettings(JavaLanguage.INSTANCE).LINE_COMMENT_AT_FIRST_COLUMN = false;
doInvertedTest(1);
}
public void testFoldedOneLineMethod() {
configureFromFileText(getTestName(false) + ".java",
"class C {\n" +
" void m() {\n" +
" <caret>System.out.println();\n" +
" }\n" +
"}");
CodeFoldingManager.getInstance(getProject()).buildInitialFoldings(getEditor());
executeAction(IdeActions.ACTION_COLLAPSE_ALL_REGIONS);
performAction();
checkResultByText("class C {\n" +
"// void m() {\n" +
"// System.out.println();\n" +
"// }\n" +
"}");
}
public void testFoldingAtSelectionEnd() {
configureFromFileText(getTestName(false) + ".java",
"class C {\n" +
"<caret> void m1() {\n" +
" System.out.println();\n" +
" }\n" +
" void m2() {\n" +
" System.out.println();\n" +
" }\n" +
"}");
CodeFoldingManager.getInstance(getProject()).buildInitialFoldings(getEditor());
executeAction(IdeActions.ACTION_COLLAPSE_ALL_REGIONS);
executeAction(IdeActions.ACTION_EDITOR_MOVE_CARET_DOWN_WITH_SELECTION);
performAction();
checkResultByText("class C {\n" +
"// void m1() {\n" +
"// System.out.println();\n" +
"// }\n" +
" void m2() {\n" +
" System.out.println();\n" +
" }\n" +
"}");
}
public void testJava_AlignedWithSmartTabs() {
CommonCodeStyleSettings settings = getLanguageSettings(JavaLanguage.INSTANCE);
settings.LINE_COMMENT_AT_FIRST_COLUMN = false;
settings.getIndentOptions().USE_TAB_CHARACTER = true;
settings.getIndentOptions().SMART_TABS = true;
doTest();
}
public void testUncommentLargeFilePerformance() {
StringBuilder source = new StringBuilder("class C {\n");
for (int i = 0; i < 5000; i++) {
source.append(" int value").append(i).append(";\n");
}
source.append("}");
configureFromFileText(getTestName(false) + ".java", source.toString());
executeAction(IdeActions.ACTION_SELECT_ALL);
PlatformTestUtil.startPerformanceTest("Uncommenting large file", 2000, CommentByLineTestBase::performAction)
.setup(CommentByLineTestBase::performAction)
.assertTiming();
}
}