diff --git a/java/google/registry/whois/DomainWhoisResponse.java b/java/google/registry/whois/DomainWhoisResponse.java index 0e73e388c..b290fab52 100644 --- a/java/google/registry/whois/DomainWhoisResponse.java +++ b/java/google/registry/whois/DomainWhoisResponse.java @@ -97,12 +97,12 @@ final class DomainWhoisResponse extends WhoisResponseImpl { .emitField("Registrar IANA ID", Objects.toString(registrar.getIanaIdentifier(), "")) // Email address is a required field for registrar contacts. Therefore as long as there // is an abuse contact, we can get an email address from it. - .emitFieldIfDefined( + .emitField( "Registrar Abuse Contact Email", - abuseContact.map(RegistrarContact::getEmailAddress).orElse(null)) - .emitFieldIfDefined( + abuseContact.map(RegistrarContact::getEmailAddress).orElse("")) + .emitField( "Registrar Abuse Contact Phone", - abuseContact.map(RegistrarContact::getPhoneNumber).orElse(null)) + abuseContact.map(RegistrarContact::getPhoneNumber).orElse("")) .emitStatusValues(domain.getStatusValues(), domain.getGracePeriods()) .emitContact("Registrant", Optional.of(domain.getRegistrant()), preferUnicode) .emitContact("Admin", getContactReference(Type.ADMIN), preferUnicode) diff --git a/javatests/google/registry/whois/DomainWhoisResponseTest.java b/javatests/google/registry/whois/DomainWhoisResponseTest.java index f826dbe0c..14d73dfe5 100644 --- a/javatests/google/registry/whois/DomainWhoisResponseTest.java +++ b/javatests/google/registry/whois/DomainWhoisResponseTest.java @@ -58,8 +58,9 @@ public class DomainWhoisResponseTest { HostResource hostResource1; HostResource hostResource2; - ContactResource registrant; + RegistrarContact abuseContact; ContactResource adminContact; + ContactResource registrant; ContactResource techContact; DomainResource domainResource; @@ -76,7 +77,7 @@ public class DomainWhoisResponseTest { .setIanaIdentifier(5555555L) .build()); - persistResource( + abuseContact = persistResource( new RegistrarContact.Builder() .setParent(registrar) .setName("Jake Doe") @@ -263,6 +264,17 @@ public class DomainWhoisResponseTest { .isEqualTo(WhoisResponseResults.create(loadFile("whois_domain.txt"), 1)); } + @Test + public void getPlainTextOutputTest_registrarAbuseInfoMissing() { + persistResource(abuseContact.asBuilder().setVisibleInDomainWhoisAsAbuse(false).build()); + DomainWhoisResponse domainWhoisResponse = + new DomainWhoisResponse(domainResource, false, clock.nowUtc()); + assertThat(domainWhoisResponse.getResponse(false, "Footer")) + .isEqualTo( + WhoisResponseResults.create( + loadFile("whois_domain_registrar_abuse_info_missing.txt"), 1)); + } + @Test public void getPlainTextOutputTest_fullOutput() { DomainWhoisResponse domainWhoisResponse = diff --git a/javatests/google/registry/whois/testdata/whois_domain_registrar_abuse_info_missing.txt b/javatests/google/registry/whois/testdata/whois_domain_registrar_abuse_info_missing.txt new file mode 100644 index 000000000..4537d3048 --- /dev/null +++ b/javatests/google/registry/whois/testdata/whois_domain_registrar_abuse_info_missing.txt @@ -0,0 +1,64 @@ +Domain Name: example.tld +Registry Domain ID: 3-TLD +Registrar WHOIS Server: whois.nic.fakewhois.example +Registrar URL: http://my.fake.url +Updated Date: 2009-05-29T20:13:00Z +Creation Date: 2000-10-08T00:45:00Z +Registry Expiry Date: 2010-10-08T00:44:59Z +Registrar: New Registrar +Registrar IANA ID: 5555555 +Registrar Abuse Contact Email: +Registrar Abuse Contact Phone: +Domain Status: addPeriod https://icann.org/epp#addPeriod +Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited +Domain Status: clientRenewProhibited https://icann.org/epp#clientRenewProhibited +Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited +Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited +Domain Status: transferPeriod https://icann.org/epp#transferPeriod +Registry Registrant ID: REDACTED FOR PRIVACY +Registrant Name: REDACTED FOR PRIVACY +Registrant Organization: Tom & Jerry Corp. +Registrant Street: REDACTED FOR PRIVACY +Registrant City: REDACTED FOR PRIVACY +Registrant State/Province: AP +Registrant Postal Code: REDACTED FOR PRIVACY +Registrant Country: EX +Registrant Phone: REDACTED FOR PRIVACY +Registrant Phone Ext: REDACTED FOR PRIVACY +Registrant Fax: REDACTED FOR PRIVACY +Registrant Fax Ext: REDACTED FOR PRIVACY +Registrant Email: REDACTED FOR PRIVACY +Registry Admin ID: REDACTED FOR PRIVACY +Admin Name: REDACTED FOR PRIVACY +Admin Organization: REDACTED FOR PRIVACY +Admin Street: REDACTED FOR PRIVACY +Admin City: REDACTED FOR PRIVACY +Admin State/Province: REDACTED FOR PRIVACY +Admin Postal Code: REDACTED FOR PRIVACY +Admin Country: REDACTED FOR PRIVACY +Admin Phone: REDACTED FOR PRIVACY +Admin Phone Ext: REDACTED FOR PRIVACY +Admin Fax: REDACTED FOR PRIVACY +Admin Email: REDACTED FOR PRIVACY +Registry Tech ID: REDACTED FOR PRIVACY +Tech Name: REDACTED FOR PRIVACY +Tech Organization: REDACTED FOR PRIVACY +Tech Street: REDACTED FOR PRIVACY +Tech City: REDACTED FOR PRIVACY +Tech State/Province: REDACTED FOR PRIVACY +Tech Postal Code: REDACTED FOR PRIVACY +Tech Country: REDACTED FOR PRIVACY +Tech Phone: REDACTED FOR PRIVACY +Tech Phone Ext: REDACTED FOR PRIVACY +Tech Fax: REDACTED FOR PRIVACY +Tech Fax Ext: REDACTED FOR PRIVACY +Tech Email: REDACTED FOR PRIVACY +Name Server: ns01.exampleregistrar.tld +Name Server: ns02.exampleregistrar.tld +DNSSEC: signedDelegation +URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/ +>>> Last update of WHOIS database: 2009-05-29T20:15:00Z <<< + +For more information on Whois status codes, please visit https://icann.org/epp + +Footer