Skip to content

Commit eaa1c36

Browse files
committed
Fix indent for empty string, add tests
1 parent 0023483 commit eaa1c36

File tree

2 files changed

+20
-3
lines changed
  • user
    • super/com/google/gwt/emul/java/lang
    • test-super/com/google/gwt/emultest/super/com/google/gwt/emultest/java17/lang

2 files changed

+20
-3
lines changed

user/super/com/google/gwt/emul/java/lang/String.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -815,11 +815,13 @@ private int getTrailingWhitespaceLength() {
815815
}
816816

817817
public String indent(int spaces) {
818-
if (spaces == 0) {
819-
return this;
818+
if (isEmpty()) {
819+
return "";
820820
}
821821
Stream<String> indentedLines;
822-
if (spaces > 0) {
822+
if (spaces == 0) {
823+
indentedLines = lines();
824+
} else if (spaces > 0) {
823825
String spaceString = " ".repeat(spaces);
824826
indentedLines = lines().map(line -> spaceString + line);
825827
} else {

user/test-super/com/google/gwt/emultest/super/com/google/gwt/emultest/java17/lang/StringTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,23 @@ public void testTransform() {
2828
}
2929

3030
public void testIndent() {
31+
assertEquals("", hideFromCompiler("").indent(0));
32+
assertEquals("", hideFromCompiler("").indent(2));
33+
assertEquals("", hideFromCompiler("").indent(-2));
34+
assertEquals(" \n", hideFromCompiler(" ").indent(0));
35+
assertEquals(" \n", hideFromCompiler(" ").indent(2));
36+
assertEquals("\n", hideFromCompiler(" ").indent(-2));
37+
assertEquals("x\n", hideFromCompiler("x").indent(0));
3138
assertEquals(" x\n", hideFromCompiler("x").indent(2));
39+
assertEquals("x\n", hideFromCompiler("x").indent(-2));
40+
assertEquals(" x \n", hideFromCompiler(" x ").indent(0));
41+
assertEquals(" x \n", hideFromCompiler(" x ").indent(2));
42+
assertEquals("x \n", hideFromCompiler(" x ").indent(-2));
3243
assertEquals("x\n", hideFromCompiler(" x").indent(-2));
44+
assertEquals(" x \n", hideFromCompiler(" \t x ").indent(-2));
45+
assertEquals("x\ny\n", hideFromCompiler("x\ny").indent(0));
46+
assertEquals("x\ny\n", hideFromCompiler("x\r\ny").indent(0));
47+
assertEquals("x\ny\n", hideFromCompiler("x\ry").indent(0));
3348
assertEquals(" x\n y\n", hideFromCompiler("x\ny").indent(2));
3449
assertEquals(" x\n y\n", hideFromCompiler("x\r\ny").indent(2));
3550
assertEquals(" x\n y\n", hideFromCompiler("x\ry").indent(2));

0 commit comments

Comments
 (0)