RenameEmailIT: Use Splitter instead of String.split(String)
String.split(String) has surprising behavior, hence using Splitter is
preferred.
Signed-off-by: Edwin Kempin <ekempin@google.com>
Change-Id: I6c540dca79f6de3f2fd1b1c70e4abc7dea352ed9
diff --git a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/RenameEmailIT.java b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/RenameEmailIT.java
index ec0a368..b9e7502 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/RenameEmailIT.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/RenameEmailIT.java
@@ -22,6 +22,8 @@
import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS;
import static com.google.gerrit.testing.GerritJUnit.assertThrows;
+import com.google.common.base.Splitter;
+import com.google.common.collect.Iterables;
import com.google.gerrit.acceptance.TestAccount;
import com.google.gerrit.acceptance.testsuite.account.AccountOperations;
import com.google.gerrit.acceptance.testsuite.project.ProjectOperations;
@@ -527,14 +529,14 @@
// insert comment line at the top of the file
b.append("# top comment\n");
- String[] lines = codeOwnerConfigFileContent.split("\\n");
- b.append(lines[0] + "\n");
+ Iterable<String> lines = Splitter.on('\n').split(codeOwnerConfigFileContent);
+ b.append(Iterables.get(lines, /* position= */ 0) + "\n");
// insert comment line in the middle of the file
b.append("# middle comment\n");
- for (int n = 1; n < lines.length; n++) {
- b.append(lines[n] + "\n");
+ for (String line : Iterables.skip(lines, /* numberToSkip= */ 1)) {
+ b.append(line + "\n");
}
// insert comment line at the bottom of the file
@@ -560,10 +562,11 @@
// verify that the comments are still present
String codeOwnerConfigFileContent =
codeOwnerConfigOperations.codeOwnerConfig(codeOwnerConfigKey).getContent();
- String[] lines = codeOwnerConfigFileContent.split("\\n");
- assertThat(lines[0]).isEqualTo("# top comment");
- assertThat(lines[2]).isEqualTo("# middle comment");
- assertThat(lines[lines.length - 1]).isEqualTo("# bottom comment");
+ Iterable<String> lines = Splitter.on('\n').split(codeOwnerConfigFileContent);
+ assertThat(Iterables.get(lines, /* position= */ 0)).isEqualTo("# top comment");
+ assertThat(Iterables.get(lines, /* position= */ 2)).isEqualTo("# middle comment");
+ assertThat(Iterables.get(lines, /* position= */ Iterables.size(lines) - 2))
+ .isEqualTo("# bottom comment");
}
@Test
@@ -587,7 +590,7 @@
"Insert comments",
(codeOwnerConfigFilePath, codeOwnerConfigFileContent) -> {
StringBuilder b = new StringBuilder();
- for (String line : codeOwnerConfigFileContent.split("\\n")) {
+ for (String line : Splitter.on('\n').split(codeOwnerConfigFileContent)) {
if (line.contains(user.email())) {
b.append(line + "# some comment\n");
continue;
@@ -619,7 +622,7 @@
// verify that the inline comments are still present
String codeOwnerConfigFileContent =
codeOwnerConfigOperations.codeOwnerConfig(codeOwnerConfigKey).getContent();
- for (String line : codeOwnerConfigFileContent.split("\\n")) {
+ for (String line : Splitter.on('\n').split(codeOwnerConfigFileContent)) {
if (line.contains(secondaryEmail)) {
assertThat(line).endsWith("# some comment");
} else if (line.contains(admin.email())) {
@@ -667,7 +670,8 @@
// verify that the comments are still present
String codeOwnerConfigFileContent =
codeOwnerConfigOperations.codeOwnerConfig(codeOwnerConfigKey).getContent();
- assertThat(codeOwnerConfigFileContent.split("\\n")[0])
+ assertThat(
+ Iterables.get(Splitter.on('\n').split(codeOwnerConfigFileContent), /* position= */ 0))
.endsWith("# foo " + secondaryEmail + " bar");
}