From 5e36cf30c3ac7cedf286ca6b8804b18edb61d10c Mon Sep 17 00:00:00 2001 From: Ben McIlwain Date: Tue, 30 Jan 2024 12:31:54 -0500 Subject: [PATCH] Don't override existing registrar email address when setting referral email (#2300) The fallback should only apply on creates, not on updates, otherwise it can override an existing value for the email address when only the referral email should be what's updated. This fixes a bug introduced back in commit in 0ead4f8d9d19b938a7f959a70df41cafd9b5c966. BUG= http://b/322026165 --- .../registry/tools/CreateOrUpdateRegistrarCommand.java | 4 ++-- .../google/registry/tools/UpdateRegistrarCommandTest.java | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/google/registry/tools/CreateOrUpdateRegistrarCommand.java b/core/src/main/java/google/registry/tools/CreateOrUpdateRegistrarCommand.java index b81206460..987b1bb54 100644 --- a/core/src/main/java/google/registry/tools/CreateOrUpdateRegistrarCommand.java +++ b/core/src/main/java/google/registry/tools/CreateOrUpdateRegistrarCommand.java @@ -292,8 +292,8 @@ abstract class CreateOrUpdateRegistrarCommand extends MutatingCommand { } if (!isNullOrEmpty(email)) { builder.setEmailAddress(email); - } else if (!isNullOrEmpty( - icannReferralEmail)) { // fall back to ICANN referral email if present + } else if (!isNullOrEmpty(icannReferralEmail) && oldRegistrar == null) { + // On creates, fall back to ICANN referral email (if present). builder.setEmailAddress(icannReferralEmail); } if (url != null) { diff --git a/core/src/test/java/google/registry/tools/UpdateRegistrarCommandTest.java b/core/src/test/java/google/registry/tools/UpdateRegistrarCommandTest.java index 07cc2c845..ec24f22aa 100644 --- a/core/src/test/java/google/registry/tools/UpdateRegistrarCommandTest.java +++ b/core/src/test/java/google/registry/tools/UpdateRegistrarCommandTest.java @@ -637,10 +637,12 @@ class UpdateRegistrarCommandTest extends CommandTestCase @Test void testSuccess_setIcannEmail() throws Exception { - runCommand("--icann_referral_email=foo@bar.test", "--force", "TheRegistrar"); Registrar registrar = loadRegistrar("TheRegistrar"); - assertThat(registrar.getIcannReferralEmail()).isEqualTo("foo@bar.test"); - assertThat(registrar.getEmailAddress()).isEqualTo("foo@bar.test"); + assertThat(registrar.getEmailAddress()).isEqualTo("the.registrar@example.com"); + runCommand("--icann_referral_email=foo@bar.test", "--force", "TheRegistrar"); + Registrar updatedRegistrar = loadRegistrar("TheRegistrar"); + assertThat(updatedRegistrar.getIcannReferralEmail()).isEqualTo("foo@bar.test"); + assertThat(updatedRegistrar.getEmailAddress()).isEqualTo("the.registrar@example.com"); } @Test