feat: concat constant strings (#1014)
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
package jadx.tests.integration.others;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import jadx.tests.api.IntegrationTest;
|
||||
|
||||
import static jadx.tests.api.utils.assertj.JadxAssertions.assertThat;
|
||||
|
||||
public class TestConstStringConcat extends IntegrationTest {
|
||||
|
||||
@SuppressWarnings("StringBufferReplaceableByString")
|
||||
public static class TestCls {
|
||||
public String test1(int value) {
|
||||
return new StringBuilder().append("Value").append(" equals ").append(value).toString();
|
||||
}
|
||||
|
||||
public String test2() {
|
||||
return new StringBuilder().append("App ").append("version: ").append(1).append('.').append(2).toString();
|
||||
}
|
||||
|
||||
public String test3(String name, int value) {
|
||||
return "value " + name + " = " + value;
|
||||
}
|
||||
|
||||
public void check() {
|
||||
assertThat(test1(7)).isEqualTo("Value equals 7");
|
||||
assertThat(test2()).isEqualTo("App version: 1.2");
|
||||
assertThat(test3("v", 4)).isEqualTo("value v = 4");
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
noDebugInfo();
|
||||
assertThat(getClassNode(TestCls.class))
|
||||
.code()
|
||||
.containsOne("return \"Value equals \" + ")
|
||||
.containsOne("return \"App version: 1.2\";")
|
||||
.containsOne("return \"value \" + str + \" = \" + i;");
|
||||
}
|
||||
}
|
||||
+3
-2
@@ -14,6 +14,7 @@ import static org.hamcrest.MatcherAssert.assertThat;
|
||||
*
|
||||
* @author Jan Peter Stotz
|
||||
*/
|
||||
@SuppressWarnings("StringBufferReplaceableByString")
|
||||
public class TestStringBuilderElimination2 extends IntegrationTest {
|
||||
|
||||
public static class TestCls1 {
|
||||
@@ -27,7 +28,7 @@ public class TestStringBuilderElimination2 extends IntegrationTest {
|
||||
public void test1() {
|
||||
ClassNode cls = getClassNode(TestStringBuilderElimination2.TestCls1.class);
|
||||
String code = cls.getCode().toString();
|
||||
assertThat(code, containsString("return \"[init]\" + \"a1\" + 'c' + 2 + 0L + 1.0f + 2.0d + true;"));
|
||||
assertThat(code, containsString("return \"[init]a1c201.02.0true\";"));
|
||||
}
|
||||
|
||||
public static class TestCls2 {
|
||||
@@ -49,7 +50,7 @@ public class TestStringBuilderElimination2 extends IntegrationTest {
|
||||
public void test2() {
|
||||
ClassNode cls = getClassNode(TestStringBuilderElimination2.TestCls2.class);
|
||||
String code = cls.getCode().toString();
|
||||
assertThat(code, containsString("return \"[init]\" + \"a1\" + 'c' + 1 + 2L + 1.0f + 2.0d + true;"));
|
||||
assertThat(code, containsString("return \"[init]a1c121.02.0true\";"));
|
||||
}
|
||||
|
||||
public static class TestClsStringUtilsReverse {
|
||||
|
||||
Reference in New Issue
Block a user