Files
openide/java/java-tests/testSrc/com/intellij/codeInsight/JavaCommentByBlockTest.java
Tagir Valeev adb060863f Text blocks used
GitOrigin-RevId: 7db538c0a10131a3f946436c85b42fe7d7dc5b10
2022-09-29 12:58:29 +00:00

123 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.application.options.CodeStyle;
import com.intellij.lang.java.JavaLanguage;
import com.intellij.openapi.actionSystem.IdeActions;
import com.intellij.psi.codeStyle.CommonCodeStyleSettings;
import com.intellij.testFramework.EditorTestUtil;
import com.intellij.testFramework.LightPlatformCodeInsightTestCase;
import org.jetbrains.annotations.NotNull;
public class JavaCommentByBlockTest extends LightPlatformCodeInsightTestCase {
@Override
protected @NotNull String getTestDataPath() {
return JavaTestUtil.getJavaTestDataPath();
}
public void testIDEADEV27995() {
configureByFile("/codeInsight/commentByBlock/java/beforeIdeadev27995.java");
performAction();
checkResultByFile("/codeInsight/commentByBlock/java/afterIdeadev27995.java");
}
public void testJava1() {
configureByFile("/codeInsight/commentByBlock/java/before1.java");
performAction();
checkResultByFile("/codeInsight/commentByBlock/java/after1.java");
}
public void testJava2() {
configureByFile("/codeInsight/commentByBlock/java/before2.java");
performAction();
checkResultByFile("/codeInsight/commentByBlock/java/after2.java");
}
public void testJava3() {
configureByFile("/codeInsight/commentByBlock/java/before3.java");
performAction();
checkResultByFile("/codeInsight/commentByBlock/java/after3.java");
}
public void testJava4() {
CommonCodeStyleSettings javaSettings = CodeStyle.getSettings(getProject()).getCommonSettings(JavaLanguage.INSTANCE);
boolean blockCommentAtFirstCol = javaSettings.BLOCK_COMMENT_AT_FIRST_COLUMN;
try {
javaSettings.BLOCK_COMMENT_AT_FIRST_COLUMN = false;
configureByFile("/codeInsight/commentByBlock/java/before4.java");
performAction();
checkResultByFile("/codeInsight/commentByBlock/java/after4.java");
}
finally {
javaSettings.BLOCK_COMMENT_AT_FIRST_COLUMN = blockCommentAtFirstCol;
}
}
public void testJava5() {
CommonCodeStyleSettings javaSettings = CodeStyle.getSettings(getProject()).getCommonSettings(JavaLanguage.INSTANCE);
boolean blockCommentAtFirstCol = javaSettings.BLOCK_COMMENT_AT_FIRST_COLUMN;
try {
javaSettings.BLOCK_COMMENT_AT_FIRST_COLUMN = false;
configureByFile("/codeInsight/commentByBlock/java/before5.java");
performAction();
checkResultByFile("/codeInsight/commentByBlock/java/after5.java");
}
finally {
javaSettings.BLOCK_COMMENT_AT_FIRST_COLUMN = blockCommentAtFirstCol;
}
}
public void testMulticaret() {
configureByFile("/codeInsight/commentByBlock/java/MulticaretBefore.java");
performAction();
checkResultByFile("/codeInsight/commentByBlock/java/MulticaretAfter.java");
}
public void testMulticaretUncomment() {
configureByFile("/codeInsight/commentByBlock/java/MulticaretUncommentBefore.java");
performAction();
checkResultByFile("/codeInsight/commentByBlock/java/MulticaretUncommentAfter.java");
}
public void testCommentStringWithBlockPrefix() {
doTestForText("class C { <selection>String s = \"/*\";<caret></selection> }",
"class C { <selection>/*String s = \"/*\";<caret>*/</selection> }");
}
public void testCommentStringWithBlockSuffix() {
doTestForText("class C { <selection>String s = \"*/\";<caret></selection> }",
"class C { <selection>String s = \"*/\";<caret></selection> }");
}
public void testCommentRangeIntersectingWithExistingComment() {
doTestForText("class C { /* some <selection>comment */ int i = 3;<caret></selection> }",
"class C { /* some <selection>comment */ int i = 3;<caret></selection> }");
}
public void testSelectionContainsJavadoc() {
doTestForText("""
class C {
<selection>int a;
/** doc */
int b;<caret></selection>
}""",
"""
class C {
<selection>/*int a;
*//** doc *//*
int b;*/<caret></selection>
}""");
}
private void doTestForText(String before, String after) {
configureFromFileText(getTestName(true) + ".java", before);
performAction();
checkResultByText(after);
}
private void performAction() {
EditorTestUtil.executeAction(getEditor(), IdeActions.ACTION_COMMENT_BLOCK);
}
}