From 580302898da3006abf110c9a070ccc987efd48d0 Mon Sep 17 00:00:00 2001 From: mcilwain Date: Thu, 10 Jan 2019 12:09:14 -0800 Subject: [PATCH] Delete end-date sunrise, landrush, and sunrush phases This also deletes the associated commands and domain application specific entities. We haven't used any of these TLD phases since early 2015 and have no intent to do so in the future, so it makes sense to delete them now so we don't have to carry them through the Registry 3.0 migration. Note that, while there are data model changes, there should be no required data migrations. The fields and entities being removed will simply remain as orphans. I confirmed that the removed types (such as the SUNRUSH_ADD GracePeriodType) are no longer used in production data, and left types that are still used, e.g. BillingEvent.Flag.LANDRUSH or HistoryEntry.Type.ALLOCATE. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=228752843 --- docs/flows.md | 229 --- gradle/core/build.gradle | 3 - .../batch/DeleteContactsAndHostsAction.java | 8 +- .../batch/DeleteProberDataAction.java | 11 +- .../registry/env/common/tools/WEB-INF/web.xml | 6 - java/google/registry/flows/EppException.java | 8 - java/google/registry/flows/FlowComponent.java | 15 - java/google/registry/flows/FlowModule.java | 20 - .../flows/custom/CustomLogicFactory.java | 5 - .../flows/custom/CustomLogicModule.java | 9 - ...omainApplicationCreateFlowCustomLogic.java | 221 -- .../custom/DomainPricingCustomLogic.java | 40 - .../flows/domain/DomainAllocateFlow.java | 424 ---- .../domain/DomainApplicationCreateFlow.java | 420 ---- .../domain/DomainApplicationDeleteFlow.java | 125 -- .../domain/DomainApplicationInfoFlow.java | 167 -- .../domain/DomainApplicationUpdateFlow.java | 263 --- .../flows/domain/DomainCheckFlow.java | 23 +- .../flows/domain/DomainClaimsCheckFlow.java | 12 - .../flows/domain/DomainCreateFlow.java | 45 +- .../flows/domain/DomainFlowUtils.java | 67 +- .../flows/domain/DomainPricingLogic.java | 21 - .../flows/domain/DomainUpdateFlow.java | 63 - .../registry/flows/picker/FlowPicker.java | 81 - .../registry/flows/poll/PollRequestFlow.java | 1 - .../inputs/EppResourceBaseReader.java | 3 +- java/google/registry/model/EntityClasses.java | 4 - java/google/registry/model/EppResource.java | 2 +- .../registry/model/EppResourceUtils.java | 17 - .../registry/model/OteAccountBuilder.java | 7 +- java/google/registry/model/OteStats.java | 6 - .../registry/model/billing/BillingEvent.java | 3 + .../model/domain/DomainApplication.java | 151 -- .../registry/model/domain/DomainBase.java | 3 +- .../registry/model/domain/DomainResource.java | 37 +- .../registry/model/domain/GracePeriod.java | 7 +- .../allocate/AllocateCreateExtension.java | 83 - .../model/domain/allocate/package-info.java | 30 - .../launch/ApplicationIdTargetExtension.java | 23 - .../domain/launch/ApplicationStatus.java | 58 - .../domain/launch/LaunchCreateExtension.java | 3 + .../launch/LaunchCreateResponseExtension.java | 31 - .../domain/launch/LaunchDeleteExtension.java | 3 +- .../model/domain/launch/LaunchExtension.java | 15 +- .../domain/launch/LaunchInfoExtension.java | 3 +- .../launch/LaunchInfoResponseExtension.java | 56 - .../model/domain/launch/LaunchPhase.java | 63 +- .../domain/launch/LaunchUpdateExtension.java | 3 +- .../model/domain/rgp/GracePeriodStatus.java | 15 - .../model/eppcommon/ProtocolDefinition.java | 2 - .../registry/model/eppcommon/StatusValue.java | 19 +- .../registry/model/eppinput/EppInput.java | 3 - .../registry/model/eppoutput/EppResponse.java | 4 - .../model/index/DomainApplicationIndex.java | 137 -- .../registry/model/poll/PollMessage.java | 49 +- .../StaticPremiumListPricingEngine.java | 4 +- .../registry/model/registry/Registry.java | 42 +- .../model/reporting/HistoryEntry.java | 12 +- .../module/tools/ToolsRequestComponent.java | 2 - .../registry/rdap/RdapJsonFormatter.java | 2 - java/google/registry/tmch/LordnTaskUtils.java | 22 +- .../registry/tools/AllocateDomainCommand.java | 190 -- .../registry/tools/CommandUtilities.java | 25 +- .../tools/CreateOrUpdateTldCommand.java | 7 - .../tools/DomainApplicationInfoCommand.java | 68 - .../GenerateApplicationsReportCommand.java | 176 -- .../tools/GenerateAuctionDataCommand.java | 259 --- .../registry/tools/GetApplicationCommand.java | 37 - .../tools/GetApplicationIdsCommand.java | 67 - .../tools/GetAppliedLabelsCommand.java | 92 - .../tools/GetHistoryEntriesCommand.java | 2 +- java/google/registry/tools/GtechTool.java | 6 - java/google/registry/tools/RegistryTool.java | 10 - .../registry/tools/RegistryToolComponent.java | 1 - .../tools/ResaveEppResourceCommand.java | 2 +- .../tools/UpdateApplicationStatusCommand.java | 176 -- .../tools/UpdateClaimsNoticeCommand.java | 119 -- .../registry/tools/UpdateSmdCommand.java | 124 -- .../KillAllDomainApplicationsAction.java | 116 -- .../server/KillAllEppResourcesAction.java | 9 +- .../registry/tools/soy/DomainAllocate.soy | 89 - .../tools/soy/DomainApplicationInfo.soy | 43 - .../google/registry/ui/js/registrar/domain.js | 63 +- .../registry/ui/soy/registrar/Domain.soy | 25 +- .../registry/ui/soy/registrar/DomainEpp.soy | 105 +- .../RefreshDnsOnHostRenameActionTest.java | 7 - .../export/ExportDomainListsActionTest.java | 14 - .../google/registry/export/backup_kinds.txt | 1 - .../registry/export/reporting_kinds.txt | 1 - .../EppLifecycleDomainApplicationTest.java | 96 - .../flows/EppLifecycleDomainTest.java | 62 +- .../google/registry/flows/FlowTestCase.java | 5 +- .../registry/flows/ResourceFlowTestCase.java | 20 +- .../custom/TestDomainPricingCustomLogic.java | 12 - .../flows/domain/DomainAllocateFlowTest.java | 715 ------- .../DomainApplicationCreateFlowTest.java | 1771 ----------------- .../DomainApplicationDeleteFlowTest.java | 345 ---- .../domain/DomainApplicationInfoFlowTest.java | 380 ---- .../DomainApplicationUpdateFlowTest.java | 932 --------- .../flows/domain/DomainCheckFlowTest.java | 94 +- .../domain/DomainClaimsCheckFlowTest.java | 17 +- .../flows/domain/DomainCreateFlowTest.java | 272 --- .../flows/domain/DomainDeleteFlowTest.java | 6 - .../flows/domain/DomainInfoFlowTest.java | 5 - .../flows/domain/DomainUpdateFlowTest.java | 193 -- .../flows/domain/testdata/domain_allocate.xml | 28 - .../testdata/domain_allocate_11_years.xml | 24 - .../domain_allocate_13_nameservers.xml | 39 - .../domain_allocate_bad_application_roid.xml | 28 - .../domain_allocate_claims_notice.xml | 33 - .../testdata/domain_allocate_collision.xml | 28 - .../testdata/domain_allocate_dsdata.xml | 37 - .../domain_allocate_dsdata_8_records.xml | 80 - .../domain/testdata/domain_allocate_idn.xml | 28 - .../domain_allocate_no_nameservers.xml | 24 - .../testdata/domain_allocate_premium.xml | 28 - .../testdata/domain_allocate_reserved.xml | 28 - .../testdata/domain_allocate_response.xml | 19 - .../testdata/domain_allocate_smd_id.xml | 29 - .../testdata/domain_create_landrush.xml | 28 - .../domain_create_landrush_11_years.xml | 29 - ...omain_create_landrush_allowedinsunrise.xml | 28 - .../domain_create_landrush_claim_notice.xml | 32 - .../testdata/domain_create_landrush_fee.xml | 32 - .../domain_create_landrush_fee_applied.xml | 32 - .../domain_create_landrush_fee_bad_scale.xml | 32 - .../domain_create_landrush_fee_defaults.xml | 32 - ...omain_create_landrush_fee_grace_period.xml | 32 - .../domain_create_landrush_fee_refundable.xml | 32 - .../domain_create_landrush_fee_response.xml | 29 - .../domain_create_landrush_months.xml | 29 - .../domain_create_landrush_premium.xml | 28 - ...omain_create_landrush_premium_response.xml | 25 - .../domain_create_landrush_response.xml | 25 - ...domain_create_landrush_response_claims.xml | 25 - .../domain_create_landrush_signed_mark.xml | 33 - .../domain_create_landrush_two_years.xml | 29 - .../domain_create_registration_landrush.xml | 30 - ...omain_create_registration_qlp_landrush.xml | 34 - ...egistration_qlp_landrush_claims_notice.xml | 37 - ...ation_qlp_landrush_encoded_signed_mark.xml | 35 - ...domain_create_registration_qlp_sunrise.xml | 32 - ...registration_qlp_sunrise_claims_notice.xml | 37 - ...ration_qlp_sunrise_encoded_signed_mark.xml | 35 - ...domain_create_registration_qlp_sunrush.xml | 34 - ...registration_qlp_sunrush_claims_notice.xml | 37 - ...ration_qlp_sunrush_encoded_signed_mark.xml | 35 - .../domain_create_registration_sunrush.xml | 30 - .../domain_create_sunrise_bad_encoded_xml.xml | 34 - .../domain_create_sunrise_bad_encoding.xml | 133 -- .../domain_create_sunrise_code_with_mark.xml | 57 - ...omain_create_sunrise_duplicate_contact.xml | 34 - ...eate_sunrise_empty_encoded_signed_mark.xml | 32 - ...e_sunrise_encoded_signed_mark_no_hosts.xml | 30 - ...e_sunrise_encoded_signed_mark_response.xml | 25 - ...se_encoded_signed_mark_with_whitespace.xml | 128 -- .../domain_create_sunrise_hex_encoding.xml | 34 - ...in_create_sunrise_missing_contact_type.xml | 33 - ...omain_create_sunrise_no_matching_marks.xml | 34 - .../domain_create_sunrise_signed_mark.xml | 137 -- ..._create_sunrise_signed_mark_and_notice.xml | 142 -- ...in_create_sunrise_signed_mark_reserved.xml | 33 - ..._sunrise_signed_mark_reserved_response.xml | 25 - ...n_create_sunrise_signed_mark_uppercase.xml | 33 - ...create_sunrise_signed_mark_with_secdns.xml | 42 - ...rise_signed_mark_with_secdns_8_records.xml | 84 - ...rise_signed_mark_with_secdns_9_records.xml | 90 - ...domain_create_sunrise_two_signed_marks.xml | 245 --- ..._create_sunrise_with_secdns_maxsiglife.xml | 43 - .../domain_create_sunrise_without_marks.xml | 29 - .../domain_create_sunrise_wrong_extension.xml | 44 - .../domain/testdata/domain_create_sunrush.xml | 28 - .../domain_create_sunrush_13_nameservers.xml | 39 - .../domain_create_sunrush_14_nameservers.xml | 40 - ...domain_create_sunrush_allowedinsunrise.xml | 34 - ...eate_sunrush_allowedinsunrise_response.xml | 25 - ...eate_sunrush_bad_checksum_claim_notice.xml | 32 - .../domain_create_sunrush_bad_idn_minna.xml | 27 - ...domain_create_sunrush_bad_validator_id.xml | 32 - .../domain_create_sunrush_claim_notice.xml | 32 - ...ain_create_sunrush_encoded_signed_mark.xml | 34 - ...ncoded_signed_mark_certificate_corrupt.xml | 34 - ...te_sunrush_encoded_signed_mark_corrupt.xml | 34 - ...e_sunrush_encoded_signed_mark_response.xml | 25 - ...nrush_encoded_signed_mark_revoked_cert.xml | 136 -- ..._encoded_signed_mark_signature_corrupt.xml | 138 -- ...create_sunrush_malformed_claim_notice1.xml | 32 - ...create_sunrush_malformed_claim_notice2.xml | 32 - .../domain_create_sunrush_response.xml | 25 - .../domain_create_sunrush_response_claims.xml | 25 - .../testdata/domain_delete_application.xml | 19 - .../domain_delete_application_landrush.xml | 19 - .../domain_delete_application_sunrush.xml | 18 - ...ain_delete_application_wrong_extension.xml | 30 - .../domain/testdata/domain_info_sunrise.xml | 19 - .../domain_info_sunrise_all_hosts.xml | 20 - .../domain_info_sunrise_allocated.xml | 46 - .../domain_info_sunrise_delegated_hosts.xml | 20 - .../domain_info_sunrise_flags_none.xml | 19 - .../domain_info_sunrise_flags_two.xml | 19 - .../domain_info_sunrise_include_marks.xml | 20 - .../domain_info_sunrise_no_application_id.xml | 19 - .../testdata/domain_info_sunrise_no_marks.xml | 20 - .../domain_info_sunrise_none_hosts.xml | 20 - .../testdata/domain_info_sunrise_response.xml | 46 - .../domain_info_sunrise_response_dsdata.xml | 54 - ...n_info_sunrise_response_no_nameservers.xml | 42 - ...domain_info_sunrise_response_with_mark.xml | 89 - .../domain/testdata/domain_update_sunrise.xml | 38 - .../domain_update_sunrise_add_nameserver.xml | 24 - ...update_sunrise_add_remove_same_contact.xml | 31 - ...in_update_sunrise_add_remove_same_host.xml | 35 - .../domain_update_sunrise_authinfo.xml | 22 - .../domain_update_sunrise_dsdata_add.xml | 30 - .../domain_update_sunrise_dsdata_add_rem.xml | 38 - ...ain_update_sunrise_dsdata_add_rem_same.xml | 38 - .../domain_update_sunrise_dsdata_empty.xml | 22 - .../domain_update_sunrise_dsdata_rem.xml | 30 - .../domain_update_sunrise_dsdata_rem_all.xml | 25 - ...in_update_sunrise_dsdata_rem_all_false.xml | 25 - .../domain_update_sunrise_dsdata_urgent.xml | 33 - ...omain_update_sunrise_duplicate_contact.xml | 40 - .../testdata/domain_update_sunrise_fee.xml | 31 - .../domain_update_sunrise_maxsiglife.xml | 25 - ...in_update_sunrise_missing_contact_type.xml | 38 - ...omain_update_sunrise_prohibited_status.xml | 36 - ...main_update_sunrise_registrant_to_tech.xml | 26 - .../domain_update_sunrise_remove_admin.xml | 20 - .../domain_update_sunrise_remove_contact.xml | 37 - ...pdate_sunrise_remove_multiple_contacts.xml | 30 - ...omain_update_sunrise_remove_nameserver.xml | 35 - .../domain_update_sunrise_remove_tech.xml | 20 - .../domain_update_sunrise_wrong_extension.xml | 28 - .../flows/host/HostDeleteFlowTest.java | 13 - .../domain_allocate_response_testvalidate.xml | 19 - .../testdata/domain_allocate_testvalidate.xml | 28 - ...date_sunrise_encoded_mark_wrong_phase.xml} | 10 +- .../domain_create_sunrise_encoded_mark.xml | 2 +- ...e_sunrise_encoded_signed_mark_response.xml | 25 - .../inputs/EppResourceInputsTest.java | 44 +- .../registry/model/OteAccountBuilderTest.java | 34 +- .../google/registry/model/OteStatsTest.java | 10 - .../registry/model/OteStatsTestHelper.java | 6 +- .../model/domain/DomainApplicationTest.java | 155 -- .../model/domain/DomainCommandTest.java | 15 - .../model/domain/DomainResourceTest.java | 3 +- .../model/domain/GracePeriodTest.java | 8 - .../testdata/domain_create_landrush.xml | 24 - .../domain/testdata/domain_info_landrush.xml | 19 - .../domain/testdata/domain_info_sunrise.xml | 28 +- .../domain_info_sunrise_no_application_id.xml | 19 - .../index/DomainApplicationIndexTest.java | 143 -- .../registry/model/registry/RegistryTest.java | 88 +- .../google/registry/model/testdata/schema.txt | 155 -- .../module/tools/testdata/tools_routing.txt | 43 +- .../registry/testing/DatastoreHelper.java | 82 +- .../testing/DomainApplicationSubject.java | 84 - .../registry/tmch/LordnTaskUtilsTest.java | 38 +- .../registry/tmch/NordnUploadActionTest.java | 21 +- .../tools/AllocateDomainCommandTest.java | 158 -- .../registry/tools/CreateTldCommandTest.java | 28 +- .../DomainApplicationInfoCommandTest.java | 101 - .../tools/GenerateAuctionDataCommandTest.java | 336 ---- .../tools/GetApplicationCommandTest.java | 103 - .../tools/GetApplicationIdsCommandTest.java | 98 - .../registry/tools/SetupOteCommandTest.java | 50 +- .../UpdateApplicationStatusCommandTest.java | 294 --- .../tools/UpdateClaimsNoticeCommandTest.java | 174 -- .../registry/tools/UpdateSmdCommandTest.java | 179 -- .../registry/tools/UpdateTldCommandTest.java | 58 +- .../tools/params/EnumParameterTest.java | 4 +- .../server/GenerateZoneFilesActionTest.java | 8 +- .../KillAllDomainApplicationsActionTest.java | 117 -- .../server/KillAllEppResourcesActionTest.java | 5 - .../tools/server/testdata/allocate_domain.xml | 48 - .../server/testdata/allocate_domain2.xml | 48 - .../server/testdata/domain_create_sunrush.xml | 29 - .../testdata/domain_create_sunrush2.xml | 29 - .../server/testdata/domain_info_landrush.xml | 19 - .../server/testdata/domain_info_sunrush.xml | 19 - .../otesetup/ConsoleOteSetupActionTest.java | 1 - .../server/registrar/OteStatusActionTest.java | 4 +- 282 files changed, 344 insertions(+), 17634 deletions(-) delete mode 100644 java/google/registry/flows/custom/DomainApplicationCreateFlowCustomLogic.java delete mode 100644 java/google/registry/flows/domain/DomainAllocateFlow.java delete mode 100644 java/google/registry/flows/domain/DomainApplicationCreateFlow.java delete mode 100644 java/google/registry/flows/domain/DomainApplicationDeleteFlow.java delete mode 100644 java/google/registry/flows/domain/DomainApplicationInfoFlow.java delete mode 100644 java/google/registry/flows/domain/DomainApplicationUpdateFlow.java delete mode 100644 java/google/registry/model/domain/DomainApplication.java delete mode 100644 java/google/registry/model/domain/allocate/AllocateCreateExtension.java delete mode 100644 java/google/registry/model/domain/allocate/package-info.java delete mode 100644 java/google/registry/model/domain/launch/ApplicationIdTargetExtension.java delete mode 100644 java/google/registry/model/domain/launch/ApplicationStatus.java delete mode 100644 java/google/registry/model/domain/launch/LaunchCreateResponseExtension.java delete mode 100644 java/google/registry/model/domain/launch/LaunchInfoResponseExtension.java delete mode 100644 java/google/registry/model/index/DomainApplicationIndex.java delete mode 100644 java/google/registry/tools/AllocateDomainCommand.java delete mode 100644 java/google/registry/tools/DomainApplicationInfoCommand.java delete mode 100644 java/google/registry/tools/GenerateApplicationsReportCommand.java delete mode 100644 java/google/registry/tools/GenerateAuctionDataCommand.java delete mode 100644 java/google/registry/tools/GetApplicationCommand.java delete mode 100644 java/google/registry/tools/GetApplicationIdsCommand.java delete mode 100644 java/google/registry/tools/GetAppliedLabelsCommand.java delete mode 100644 java/google/registry/tools/UpdateApplicationStatusCommand.java delete mode 100644 java/google/registry/tools/UpdateClaimsNoticeCommand.java delete mode 100644 java/google/registry/tools/UpdateSmdCommand.java delete mode 100644 java/google/registry/tools/server/KillAllDomainApplicationsAction.java delete mode 100644 java/google/registry/tools/soy/DomainAllocate.soy delete mode 100644 java/google/registry/tools/soy/DomainApplicationInfo.soy delete mode 100644 javatests/google/registry/flows/EppLifecycleDomainApplicationTest.java delete mode 100644 javatests/google/registry/flows/domain/DomainAllocateFlowTest.java delete mode 100644 javatests/google/registry/flows/domain/DomainApplicationCreateFlowTest.java delete mode 100644 javatests/google/registry/flows/domain/DomainApplicationDeleteFlowTest.java delete mode 100644 javatests/google/registry/flows/domain/DomainApplicationInfoFlowTest.java delete mode 100644 javatests/google/registry/flows/domain/DomainApplicationUpdateFlowTest.java delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_allocate.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_allocate_11_years.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_allocate_13_nameservers.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_allocate_bad_application_roid.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_allocate_claims_notice.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_allocate_collision.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_allocate_dsdata.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_allocate_dsdata_8_records.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_allocate_idn.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_allocate_no_nameservers.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_allocate_premium.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_allocate_reserved.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_allocate_response.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_allocate_smd_id.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_11_years.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_allowedinsunrise.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_claim_notice.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_applied.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_bad_scale.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_defaults.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_grace_period.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_refundable.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_response.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_months.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_premium.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_premium_response.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_response.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_response_claims.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_signed_mark.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_landrush_two_years.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_registration_landrush.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_landrush.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_landrush_claims_notice.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_landrush_encoded_signed_mark.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrise.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrise_claims_notice.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrise_encoded_signed_mark.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrush.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrush_claims_notice.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrush_encoded_signed_mark.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_registration_sunrush.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_bad_encoded_xml.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_bad_encoding.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_code_with_mark.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_duplicate_contact.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_empty_encoded_signed_mark.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_encoded_signed_mark_no_hosts.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_encoded_signed_mark_response.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_encoded_signed_mark_with_whitespace.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_hex_encoding.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_missing_contact_type.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_no_matching_marks.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_and_notice.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_reserved.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_reserved_response.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_uppercase.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_with_secdns.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_with_secdns_8_records.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_with_secdns_9_records.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_two_signed_marks.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_with_secdns_maxsiglife.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_without_marks.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrise_wrong_extension.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_13_nameservers.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_14_nameservers.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_allowedinsunrise.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_allowedinsunrise_response.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_bad_checksum_claim_notice.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_bad_idn_minna.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_bad_validator_id.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_claim_notice.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_certificate_corrupt.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_corrupt.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_response.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_revoked_cert.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_signature_corrupt.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_malformed_claim_notice1.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_malformed_claim_notice2.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_response.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_create_sunrush_response_claims.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_delete_application.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_delete_application_landrush.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_delete_application_sunrush.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_delete_application_wrong_extension.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_info_sunrise.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_info_sunrise_all_hosts.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_info_sunrise_allocated.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_info_sunrise_delegated_hosts.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_info_sunrise_flags_none.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_info_sunrise_flags_two.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_info_sunrise_include_marks.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_info_sunrise_no_application_id.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_info_sunrise_no_marks.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_info_sunrise_none_hosts.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response_dsdata.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response_no_nameservers.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response_with_mark.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_add_nameserver.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_add_remove_same_contact.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_add_remove_same_host.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_authinfo.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_add.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_add_rem.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_add_rem_same.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_empty.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_rem.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_rem_all.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_rem_all_false.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_urgent.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_duplicate_contact.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_fee.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_maxsiglife.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_missing_contact_type.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_prohibited_status.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_registrant_to_tech.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_admin.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_contact.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_multiple_contacts.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_nameserver.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_tech.xml delete mode 100644 javatests/google/registry/flows/domain/testdata/domain_update_sunrise_wrong_extension.xml delete mode 100644 javatests/google/registry/flows/testdata/domain_allocate_response_testvalidate.xml delete mode 100644 javatests/google/registry/flows/testdata/domain_allocate_testvalidate.xml rename javatests/google/registry/flows/{domain/testdata/domain_create_sunrise_encoded_signed_mark.xml => testdata/domain_create_start_date_sunrise_encoded_mark_wrong_phase.xml} (97%) delete mode 100644 javatests/google/registry/flows/testdata/domain_create_sunrise_encoded_signed_mark_response.xml delete mode 100644 javatests/google/registry/model/domain/DomainApplicationTest.java delete mode 100644 javatests/google/registry/model/domain/testdata/domain_create_landrush.xml delete mode 100644 javatests/google/registry/model/domain/testdata/domain_info_landrush.xml delete mode 100644 javatests/google/registry/model/domain/testdata/domain_info_sunrise_no_application_id.xml delete mode 100644 javatests/google/registry/model/index/DomainApplicationIndexTest.java delete mode 100644 javatests/google/registry/testing/DomainApplicationSubject.java delete mode 100644 javatests/google/registry/tools/AllocateDomainCommandTest.java delete mode 100644 javatests/google/registry/tools/DomainApplicationInfoCommandTest.java delete mode 100644 javatests/google/registry/tools/GenerateAuctionDataCommandTest.java delete mode 100644 javatests/google/registry/tools/GetApplicationCommandTest.java delete mode 100644 javatests/google/registry/tools/GetApplicationIdsCommandTest.java delete mode 100644 javatests/google/registry/tools/UpdateApplicationStatusCommandTest.java delete mode 100644 javatests/google/registry/tools/UpdateClaimsNoticeCommandTest.java delete mode 100644 javatests/google/registry/tools/UpdateSmdCommandTest.java delete mode 100644 javatests/google/registry/tools/server/KillAllDomainApplicationsActionTest.java delete mode 100644 javatests/google/registry/tools/server/testdata/allocate_domain.xml delete mode 100644 javatests/google/registry/tools/server/testdata/allocate_domain2.xml delete mode 100644 javatests/google/registry/tools/server/testdata/domain_create_sunrush.xml delete mode 100644 javatests/google/registry/tools/server/testdata/domain_create_sunrush2.xml delete mode 100644 javatests/google/registry/tools/server/testdata/domain_info_landrush.xml delete mode 100644 javatests/google/registry/tools/server/testdata/domain_info_sunrush.xml diff --git a/docs/flows.md b/docs/flows.md index 1b6e1d6a3..d69a5caa1 100644 --- a/docs/flows.md +++ b/docs/flows.md @@ -225,227 +225,6 @@ An EPP flow that updates a contact. * Cannot add and remove the same value. * Declining contact disclosure is disallowed by server policy. -## DomainAllocateFlow - -### Description - -An EPP flow that allocates a new domain resource from a domain application. - -Note that this flow is only run by superusers. - - -### Errors - -* 2004 - * New registration period exceeds maximum number of years. -* 2201 - * Only a superuser can allocate domains. -* 2302 - * Resource with this id already exists. -* 2303 - * Domain application with specific ROID does not exist. -* 2304 - * Domain application already has a final status. - * Registrant is not whitelisted for this TLD. - * Nameservers are not whitelisted for this domain. - * Nameservers are not whitelisted for this TLD. - * Nameservers not specified for domain with nameserver-restricted - reservation. - * Nameservers not specified for domain on TLD with nameserver whitelist. - -## DomainApplicationCreateFlow - -### Description - -An EPP flow that creates a new application for a domain resource. - - -### Errors - -* 2002 - * A notice cannot be specified when using a signed mark. - * Sunrise applications are disallowed during landrush. - * Command is not allowed in the current registry phase. -* 2003 - * Landrush applications are disallowed during sunrise. - * Fees must be explicitly acknowledged when performing any operations on a - premium name. - * The provided mark does not match the desired domain label. -* 2004 - * The acceptance time specified in the claim notice is more than 48 hours - in the past. - * New registration period exceeds maximum number of years. - * The expiration time specified in the claim notice has elapsed. - * The fees passed in the transform command do not match the fees that will - be charged. - * Domain label is not allowed by IDN table. - * The checksum in the specified TCNID does not validate. - * Domain name is under tld which doesn't exist. -* 2005 - * Domain name must have exactly one part above the TLD. - * Domain name must not equal an existing multi-part TLD. - * The requested fee is expressed in a scale that is invalid for the given - currency. - * The specified TCNID is invalid. - * Signed mark data is improperly encoded. - * Error while parsing encoded signed mark data. -* 2102 - * The 'maxSigLife' setting is not supported. - * The 'grace-period', 'applied' and 'refundable' fields are disallowed by - server policy. -* 2103 - * Specified extension is not implemented. -* 2201 - * Registrar is not authorized to access this TLD. - * Registrar must be active in order to perform this operation. -* 2302 - * Resource with this id already exists. - * This name has already been claimed by a sunrise applicant. -* 2303 - * Resource linked to this domain does not exist. -* 2304 - * The claims period for this TLD has ended. - * Requested domain is reserved. - * Requested domain requires a claims notice. - * Nameservers are not whitelisted for this domain. - * Nameservers are not whitelisted for this TLD. - * Nameservers not specified for domain with nameserver-restricted - reservation. - * Nameservers not specified for domain on TLD with nameserver whitelist. - * The requested domain name is on the premium price list, and this - registrar has blocked premium registrations. - * Registrant is not whitelisted for this TLD. - * Requested domain does not require a claims notice. -* 2306 - * Domain names can only contain a-z, 0-9, '.' and '-'. - * Periods for domain registrations must be specified in years. - * Encoded signed marks must use base64 encoding. - * The requested fees cannot be provided in the requested currency. - * Non-IDN domain names cannot contain hyphens in the third or fourth - position. - * Domain labels cannot be longer than 63 characters. - * More than one contact for a given role is not allowed. - * No part of a domain name can be empty. - * Domain name starts with xn-- but is not a valid IDN. - * The specified trademark validator is not supported. - * Declared launch extension phase does not match the current registry - phase. - * Domain labels cannot begin with a dash. - * Missing type attribute for contact. - * The provided mark is not yet valid. - * The provided mark has expired. - * Signed marks must be encoded. - * Certificate used in signed mark signature has expired. - * Certificate parsing error, or possibly a bad provider or algorithm. - * Certificate used in signed mark signature has expired. - * Certificate used in signed mark signature was revoked by ICANN. - * Invalid signature on a signed mark. - * Signed mark data is revoked. - * Invalid signature on a signed mark. - * Too many DS records set on a domain. - * Too many nameservers set on this domain. - * Only one signed mark is allowed per application. - * Domain labels cannot end with a dash. - * Only encoded signed marks are supported. - -## DomainApplicationDeleteFlow - -### Description - -An EPP flow that deletes a domain application. - - -### Errors - -* 2002 - * Command is not allowed in the current registry phase. -* 2103 - * Specified extension is not implemented. -* 2201 - * The specified resource belongs to another client. - * Registrar is not authorized to access this TLD. -* 2303 - * Resource with this id does not exist. -* 2304 - * A sunrise application cannot be deleted during landrush. -* 2306 - * Application referenced does not match specified domain name. - * Declared launch extension phase does not match the current registry - phase. - -## DomainApplicationInfoFlow - -### Description - -An EPP flow that returns information about a domain application. - -Only the registrar that owns the application can see its info. The flow can -optionally include delegated hosts in its response. - - -### Errors - -* 2003 - * Application id is required. -* 2201 - * The specified resource belongs to another client. -* 2303 - * Resource with this id does not exist. -* 2306 - * Application referenced does not match specified domain name. - * Declared launch extension phase does not match phase of the application. - -## DomainApplicationUpdateFlow - -### Description - -An EPP flow that updates a domain application. - -Updates can change contacts, nameservers and delegation signer data of an -application. Updates cannot change the domain name that is being applied for. - - -### Errors - -* 2003 - * At least one of 'add' or 'rem' is required on a secDNS update. - * Admin contact is required. - * Technical contact is required. -* 2004 - * The specified status value cannot be set by clients. - * The fees passed in the transform command do not match the fees that will - be charged. -* 2102 - * Changing 'maxSigLife' is not supported. - * The 'urgent' attribute is not supported. -* 2103 - * Specified extension is not implemented. -* 2201 - * The specified resource belongs to another client. - * Registrar is not authorized to access this TLD. -* 2303 - * Resource with this id does not exist. - * Resource linked to this domain does not exist. -* 2304 - * This resource has clientUpdateProhibited on it, and the update does not - clear that status. - * Resource status prohibits this operation. - * Nameservers are not whitelisted for this TLD. - * Nameservers not specified for domain on TLD with nameserver whitelist. - * Nameservers are not whitelisted for this domain. - * Nameservers not specified for domain with nameserver-restricted - reservation. - * Registrant is not whitelisted for this TLD. - * Application status prohibits this domain update. -* 2306 - * Cannot add and remove the same value. - * Application referenced does not match specified domain name. - * More than one contact for a given role is not allowed. - * Missing type attribute for contact. - * The secDNS:all element must have value 'true' if present. - * Too many DS records set on a domain. - * Too many nameservers set on this domain. - ## DomainCheckFlow ### Description @@ -498,7 +277,6 @@ An EPP flow that checks whether domain labels are trademarked. * 2002 * Command is not allowed in the current registry phase. - * Claims checks are not allowed during sunrise. * Claims checks are not allowed with allocation tokens. * 2004 * Domain name is under tld which doesn't exist. @@ -564,7 +342,6 @@ An EPP flow that creates a new domain resource. * 2303 * Resource linked to this domain does not exist. * 2304 - * There is an open application for this domain. * The claims period for this TLD has ended. * Requested domain does not have nameserver-restricted reservation for a TLD that requires such a reservation to create domains. @@ -945,12 +722,6 @@ applied by the superuser. As such, adding or removing these statuses incurs a billing event. There will be only one charge per update, even if several such statuses are updated at once. -If a domain was created during the sunrise or landrush phases of a TLD, is still -within the sunrushAddGracePeriod and has not yet been delegated in DNS, then it -will not yet have been billed for. Any update that causes the name to be -delegated (such * as adding nameservers or removing a hold status) will cause -the domain to convert to a normal create and be billed for accordingly. - ### Errors diff --git a/gradle/core/build.gradle b/gradle/core/build.gradle index 61a13daff..70472fd70 100644 --- a/gradle/core/build.gradle +++ b/gradle/core/build.gradle @@ -15,9 +15,6 @@ def outcastTestPatterns = [ "google/registry/batch/RefreshDnsOnHostRenameActionTest.*", "google/registry/flows/CheckApiActionTest.*", "google/registry/flows/EppLifecycleHostTest.*", - "google/registry/flows/domain/DomainAllocateFlowTest.*", - "google/registry/flows/domain/DomainApplicationCreateFlowTest.*", - "google/registry/flows/domain/DomainApplicationUpdateFlowTest.*", "google/registry/flows/domain/DomainCreateFlowTest.*", "google/registry/flows/domain/DomainUpdateFlowTest.*", "google/registry/tools/CreateDomainCommandTest.*", diff --git a/java/google/registry/batch/DeleteContactsAndHostsAction.java b/java/google/registry/batch/DeleteContactsAndHostsAction.java index c19455cb7..e62245f9d 100644 --- a/java/google/registry/batch/DeleteContactsAndHostsAction.java +++ b/java/google/registry/batch/DeleteContactsAndHostsAction.java @@ -106,13 +106,9 @@ import org.joda.time.Duration; /** * A mapreduce that processes batch asynchronous deletions of contact and host resources by mapping - * over all domains and domain applications and checking for any references to the contacts/hosts in - * pending deletion. + * over all domains and checking for any references to the contacts/hosts in pending deletion. */ -@Action( - path = "/_dr/task/deleteContactsAndHosts", - auth = Auth.AUTH_INTERNAL_ONLY -) +@Action(path = "/_dr/task/deleteContactsAndHosts", auth = Auth.AUTH_INTERNAL_ONLY) public class DeleteContactsAndHostsAction implements Runnable { static final String KIND_CONTACT = getKind(ContactResource.class); diff --git a/java/google/registry/batch/DeleteProberDataAction.java b/java/google/registry/batch/DeleteProberDataAction.java index 7d537a919..5bfcbf38c 100644 --- a/java/google/registry/batch/DeleteProberDataAction.java +++ b/java/google/registry/batch/DeleteProberDataAction.java @@ -41,7 +41,6 @@ import google.registry.dns.DnsQueue; import google.registry.mapreduce.MapreduceRunner; import google.registry.mapreduce.inputs.EppResourceInputs; import google.registry.model.EppResourceUtils; -import google.registry.model.domain.DomainApplication; import google.registry.model.domain.DomainBase; import google.registry.model.domain.DomainResource; import google.registry.model.index.EppResourceIndex; @@ -167,23 +166,17 @@ public class DeleteProberDataAction implements Runnable { } private void deleteDomain(final Key domainKey) { - final DomainBase domainBase = ofy().load().key(domainKey).now(); + final DomainResource domain = (DomainResource) ofy().load().key(domainKey).now(); DateTime now = DateTime.now(UTC); - if (domainBase == null) { + if (domain == null) { // Depending on how stale Datastore indexes are, we can get keys to resources that are // already deleted (e.g. by a recent previous invocation of this mapreduce). So ignore them. getContext().incrementCounter("already deleted"); return; } - if (domainBase instanceof DomainApplication) { - // Cover the case where we somehow have a domain application with a prober ROID suffix. - getContext().incrementCounter("skipped, domain application"); - return; - } - DomainResource domain = (DomainResource) domainBase; String domainName = domain.getFullyQualifiedDomainName(); if (domainName.equals("nic." + domain.getTld())) { getContext().incrementCounter("skipped, NIC domain"); diff --git a/java/google/registry/env/common/tools/WEB-INF/web.xml b/java/google/registry/env/common/tools/WEB-INF/web.xml index 0bd9341d1..eb7dde515 100644 --- a/java/google/registry/env/common/tools/WEB-INF/web.xml +++ b/java/google/registry/env/common/tools/WEB-INF/web.xml @@ -72,12 +72,6 @@ /_dr/task/resaveAllHistoryEntries - - - tools-servlet - /_dr/task/killAllDomainApplications - - tools-servlet diff --git a/java/google/registry/flows/EppException.java b/java/google/registry/flows/EppException.java index f00403819..76c9aea2b 100644 --- a/java/google/registry/flows/EppException.java +++ b/java/google/registry/flows/EppException.java @@ -250,12 +250,4 @@ public abstract class EppException extends Exception { super("Specified protocol version is not implemented"); } } - - /** Command failed. */ - @EppResultCode(Code.COMMAND_FAILED) - public static class CommandFailedException extends EppException { - public CommandFailedException() { - super("Command failed"); - } - } } diff --git a/java/google/registry/flows/FlowComponent.java b/java/google/registry/flows/FlowComponent.java index 70fd902cc..5b3428116 100644 --- a/java/google/registry/flows/FlowComponent.java +++ b/java/google/registry/flows/FlowComponent.java @@ -30,11 +30,6 @@ import google.registry.flows.contact.ContactTransferRejectFlow; import google.registry.flows.contact.ContactTransferRequestFlow; import google.registry.flows.contact.ContactUpdateFlow; import google.registry.flows.custom.CustomLogicModule; -import google.registry.flows.domain.DomainAllocateFlow; -import google.registry.flows.domain.DomainApplicationCreateFlow; -import google.registry.flows.domain.DomainApplicationDeleteFlow; -import google.registry.flows.domain.DomainApplicationInfoFlow; -import google.registry.flows.domain.DomainApplicationUpdateFlow; import google.registry.flows.domain.DomainCheckFlow; import google.registry.flows.domain.DomainClaimsCheckFlow; import google.registry.flows.domain.DomainCreateFlow; @@ -86,11 +81,6 @@ public interface FlowComponent { ContactTransferRejectFlow contactTransferRejectFlow(); ContactTransferRequestFlow contactTransferRequestFlow(); ContactUpdateFlow contactUpdateFlow(); - DomainAllocateFlow domainAllocateFlow(); - DomainApplicationCreateFlow domainApplicationCreateFlow(); - DomainApplicationDeleteFlow domainApplicationDeleteFlow(); - DomainApplicationInfoFlow domainApplicationInfoFlow(); - DomainApplicationUpdateFlow domainApplicationUpdateFlow(); DomainCheckFlow domainCheckFlow(); DomainClaimsCheckFlow domainClaimsCheckFlow(); DomainCreateFlow domainCreateFlow(); @@ -140,11 +130,6 @@ public interface FlowComponent { : clazz.equals(ContactTransferRejectFlow.class) ? flows.contactTransferRejectFlow() : clazz.equals(ContactTransferRequestFlow.class) ? flows.contactTransferRequestFlow() : clazz.equals(ContactUpdateFlow.class) ? flows.contactUpdateFlow() - : clazz.equals(DomainAllocateFlow.class) ? flows.domainAllocateFlow() - : clazz.equals(DomainApplicationCreateFlow.class) ? flows.domainApplicationCreateFlow() - : clazz.equals(DomainApplicationDeleteFlow.class) ? flows.domainApplicationDeleteFlow() - : clazz.equals(DomainApplicationInfoFlow.class) ? flows.domainApplicationInfoFlow() - : clazz.equals(DomainApplicationUpdateFlow.class) ? flows.domainApplicationUpdateFlow() : clazz.equals(DomainCheckFlow.class) ? flows.domainCheckFlow() : clazz.equals(DomainClaimsCheckFlow.class) ? flows.domainClaimsCheckFlow() : clazz.equals(DomainCreateFlow.class) ? flows.domainCreateFlow() diff --git a/java/google/registry/flows/FlowModule.java b/java/google/registry/flows/FlowModule.java index 057524e85..0659a756f 100644 --- a/java/google/registry/flows/FlowModule.java +++ b/java/google/registry/flows/FlowModule.java @@ -15,13 +15,11 @@ package google.registry.flows; import static com.google.common.base.Preconditions.checkState; -import static com.google.common.base.Strings.nullToEmpty; import com.google.common.base.Strings; import dagger.Module; import dagger.Provides; import google.registry.flows.picker.FlowPicker; -import google.registry.model.domain.launch.ApplicationIdTargetExtension; import google.registry.model.domain.metadata.MetadataExtension; import google.registry.model.eppcommon.AuthInfo; import google.registry.model.eppcommon.Trid; @@ -205,19 +203,6 @@ public class FlowModule { return ((SingleResourceCommand) resourceCommand).getTargetId(); } - @Provides - @FlowScope - @ApplicationId - static String provideApplicationId(EppInput eppInput) { - // Treat a missing application id as empty so we can always inject a non-null value. - Optional extension = - eppInput.getSingleExtension(ApplicationIdTargetExtension.class); - checkState( - extension.isPresent(), - "ApplicationIdTargetExtension must be used to provide the application ID"); - return nullToEmpty(extension.get().getApplicationId()); - } - @Provides @FlowScope @PollMessageId @@ -294,11 +279,6 @@ public class FlowModule { @Documented public @interface TargetId {} - /** Dagger qualifier for the application id for domain application flows. */ - @Qualifier - @Documented - public @interface ApplicationId {} - /** Dagger qualifier for the message id for poll flows. */ @Qualifier @Documented diff --git a/java/google/registry/flows/custom/CustomLogicFactory.java b/java/google/registry/flows/custom/CustomLogicFactory.java index f234ddceb..8bae8b0d1 100644 --- a/java/google/registry/flows/custom/CustomLogicFactory.java +++ b/java/google/registry/flows/custom/CustomLogicFactory.java @@ -32,11 +32,6 @@ import google.registry.model.eppinput.EppInput; */ public class CustomLogicFactory { - public DomainApplicationCreateFlowCustomLogic forDomainApplicationCreateFlow( - EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) { - return new DomainApplicationCreateFlowCustomLogic(eppInput, sessionMetadata, flowMetadata); - } - public DomainCreateFlowCustomLogic forDomainCreateFlow( EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) { return new DomainCreateFlowCustomLogic(eppInput, sessionMetadata, flowMetadata); diff --git a/java/google/registry/flows/custom/CustomLogicModule.java b/java/google/registry/flows/custom/CustomLogicModule.java index 00335fd8c..001ab8c8e 100644 --- a/java/google/registry/flows/custom/CustomLogicModule.java +++ b/java/google/registry/flows/custom/CustomLogicModule.java @@ -24,15 +24,6 @@ import google.registry.model.eppinput.EppInput; @Module public class CustomLogicModule { - @Provides - static DomainApplicationCreateFlowCustomLogic provideDomainApplicationCreateFlowCustomLogic( - CustomLogicFactory factory, - EppInput eppInput, - SessionMetadata sessionMetadata, - FlowMetadata flowMetadata) { - return factory.forDomainApplicationCreateFlow(eppInput, sessionMetadata, flowMetadata); - } - @Provides static DomainCreateFlowCustomLogic provideDomainCreateFlowCustomLogic( CustomLogicFactory factory, diff --git a/java/google/registry/flows/custom/DomainApplicationCreateFlowCustomLogic.java b/java/google/registry/flows/custom/DomainApplicationCreateFlowCustomLogic.java deleted file mode 100644 index 96c33154f..000000000 --- a/java/google/registry/flows/custom/DomainApplicationCreateFlowCustomLogic.java +++ /dev/null @@ -1,221 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.flows.custom; - -import com.google.auto.value.AutoValue; -import com.google.common.collect.ImmutableList; -import com.google.common.net.InternetDomainName; -import google.registry.flows.EppException; -import google.registry.flows.FlowMetadata; -import google.registry.flows.SessionMetadata; -import google.registry.flows.domain.DomainApplicationCreateFlow; -import google.registry.model.ImmutableObject; -import google.registry.model.domain.DomainApplication; -import google.registry.model.eppinput.EppInput; -import google.registry.model.eppoutput.EppResponse.ResponseData; -import google.registry.model.eppoutput.EppResponse.ResponseExtension; -import google.registry.model.reporting.HistoryEntry; - -/** - * A no-op base class for {@link DomainApplicationCreateFlow} custom logic. - * - *

Extend this class and override the hook(s) to perform custom logic. - */ -public class DomainApplicationCreateFlowCustomLogic extends BaseFlowCustomLogic { - - protected DomainApplicationCreateFlowCustomLogic( - EppInput eppInput, SessionMetadata sessionMetadata, FlowMetadata flowMetadata) { - super(eppInput, sessionMetadata, flowMetadata); - } - - /** A hook that runs before any validation. This is useful to e.g. add allowable extensions. */ - @SuppressWarnings("unused") - public void beforeValidation() throws EppException { - // Do nothing. - } - - /** A hook that runs at the end of the validation step to perform additional validation. */ - @SuppressWarnings("unused") - public void afterValidation(AfterValidationParameters parameters) throws EppException { - // Do nothing. - } - - /** - * A hook that runs before new entities are persisted, allowing them to be changed. - * - *

It returns the actual entity changes that should be persisted to Datastore. It is important - * to be careful when changing the flow behavior for existing entities, because the core logic - * across many different flows expects the existence of these entities and many of the fields on - * them. - */ - @SuppressWarnings("unused") - public EntityChanges beforeSave(BeforeSaveParameters parameters) throws EppException { - return parameters.entityChanges(); - } - - /** - * A hook that runs before the response is returned. - * - *

This takes the {@link ResponseData} and {@link ResponseExtension}s as input and returns - * them, potentially with modifications. - */ - @SuppressWarnings("unused") - public BeforeResponseReturnData beforeResponse(BeforeResponseParameters parameters) - throws EppException { - return BeforeResponseReturnData.newBuilder() - .setResData(parameters.resData()) - .setResponseExtensions(parameters.responseExtensions()) - .build(); - } - - /** A class to encapsulate parameters for a call to {@link #afterValidation}. */ - @AutoValue - public abstract static class AfterValidationParameters extends ImmutableObject { - - /** The parsed domain name of the domain that is being applied for. */ - public abstract InternetDomainName domainName(); - - /** - * The number of years that the application is requesting registration for. - * - *

On standard TLDs, this is usually 1. - */ - public abstract int years(); - - public static Builder newBuilder() { - return new AutoValue_DomainApplicationCreateFlowCustomLogic_AfterValidationParameters - .Builder(); - } - - /** Builder for {@link AfterValidationParameters}. */ - @AutoValue.Builder - public abstract static class Builder { - - public abstract Builder setDomainName(InternetDomainName domainName); - - public abstract Builder setYears(int years); - - public abstract AfterValidationParameters build(); - } - } - - /** A class to encapsulate parameters for a call to {@link #beforeSave}. */ - @AutoValue - public abstract static class BeforeSaveParameters extends ImmutableObject { - - /** - * The new {@link DomainApplication} entity that is going to be persisted at the end of the - * transaction. - */ - public abstract DomainApplication newApplication(); - - /** - * The new {@link HistoryEntry} entity for the application's creation that is going to be - * persisted at the end of the transaction. - */ - public abstract HistoryEntry historyEntry(); - - /** - * The collection of {@link EntityChanges} (including new entities and those to delete) that - * will be persisted at the end of the transaction. - * - *

Note that the new application and history entry are also included as saves in this - * collection, and are separated out above solely for convenience, as they are most likely to - * need to be changed. Removing them from the collection will cause them not to be saved, which - * is most likely not what you intended. - */ - public abstract EntityChanges entityChanges(); - - /** - * The number of years that the application is requesting registration for. - * - *

On standard TLDs, this is usually 1. - */ - public abstract int years(); - - public static Builder newBuilder() { - return new AutoValue_DomainApplicationCreateFlowCustomLogic_BeforeSaveParameters.Builder(); - } - - /** Builder for {@link BeforeSaveParameters}. */ - @AutoValue.Builder - public abstract static class Builder { - - public abstract Builder setNewApplication(DomainApplication newApplication); - - public abstract Builder setHistoryEntry(HistoryEntry historyEntry); - - public abstract Builder setEntityChanges(EntityChanges entityChanges); - - public abstract Builder setYears(int years); - - public abstract BeforeSaveParameters build(); - } - } - - /** A class to encapsulate parameters for a call to {@link #beforeResponse}. */ - @AutoValue - public abstract static class BeforeResponseParameters extends ImmutableObject { - - public abstract ResponseData resData(); - - public abstract ImmutableList responseExtensions(); - - public static BeforeResponseParameters.Builder newBuilder() { - return new AutoValue_DomainApplicationCreateFlowCustomLogic_BeforeResponseParameters - .Builder(); - } - - /** Builder for {@link DomainApplicationCreateFlowCustomLogic.BeforeResponseParameters}. */ - @AutoValue.Builder - public abstract static class Builder { - - public abstract BeforeResponseParameters.Builder setResData(ResponseData resData); - - public abstract BeforeResponseParameters.Builder setResponseExtensions( - ImmutableList responseExtensions); - - public abstract BeforeResponseParameters build(); - } - } - - /** - * A class to encapsulate parameters for the return values from a call to {@link #beforeResponse}. - */ - @AutoValue - public abstract static class BeforeResponseReturnData extends ImmutableObject { - - public abstract ResponseData resData(); - - public abstract ImmutableList responseExtensions(); - - public static BeforeResponseReturnData.Builder newBuilder() { - return new AutoValue_DomainApplicationCreateFlowCustomLogic_BeforeResponseReturnData - .Builder(); - } - - /** Builder for {@link DomainApplicationCreateFlowCustomLogic.BeforeResponseReturnData}. */ - @AutoValue.Builder - public abstract static class Builder { - - public abstract BeforeResponseReturnData.Builder setResData(ResponseData resData); - - public abstract BeforeResponseReturnData.Builder setResponseExtensions( - ImmutableList responseExtensions); - - public abstract BeforeResponseReturnData build(); - } - } -} diff --git a/java/google/registry/flows/custom/DomainPricingCustomLogic.java b/java/google/registry/flows/custom/DomainPricingCustomLogic.java index 44285bfd1..31f221f44 100644 --- a/java/google/registry/flows/custom/DomainPricingCustomLogic.java +++ b/java/google/registry/flows/custom/DomainPricingCustomLogic.java @@ -22,7 +22,6 @@ import google.registry.flows.SessionMetadata; import google.registry.flows.domain.DomainPricingLogic; import google.registry.flows.domain.FeesAndCredits; import google.registry.model.ImmutableObject; -import google.registry.model.domain.DomainApplication; import google.registry.model.eppinput.EppInput; import google.registry.model.registry.Registry; import org.joda.time.DateTime; @@ -39,13 +38,6 @@ public class DomainPricingCustomLogic extends BaseFlowCustomLogic { super(eppInput, sessionMetadata, flowMetadata); } - /** A hook that customizes the application update price. */ - @SuppressWarnings("unused") - public FeesAndCredits customizeApplicationUpdatePrice( - ApplicationUpdatePriceParameters priceParameters) throws EppException { - return priceParameters.feesAndCredits(); - } - /** A hook that customizes the create price. */ @SuppressWarnings("unused") public FeesAndCredits customizeCreatePrice(CreatePriceParameters priceParameters) @@ -81,38 +73,6 @@ public class DomainPricingCustomLogic extends BaseFlowCustomLogic { return priceParameters.feesAndCredits(); } - /** A class to encapsulate parameters for a call to {@link #customizeApplicationUpdatePrice} . */ - @AutoValue - public abstract static class ApplicationUpdatePriceParameters extends ImmutableObject { - - public abstract FeesAndCredits feesAndCredits(); - - public abstract Registry registry(); - - public abstract DomainApplication domainApplication(); - - public abstract DateTime asOfDate(); - - public static Builder newBuilder() { - return new AutoValue_DomainPricingCustomLogic_ApplicationUpdatePriceParameters.Builder(); - } - - /** Builder for {@link ApplicationUpdatePriceParameters}. */ - @AutoValue.Builder - public abstract static class Builder { - - public abstract Builder setFeesAndCredits(FeesAndCredits feesAndCredits); - - public abstract Builder setRegistry(Registry registry); - - public abstract Builder setDomainApplication(DomainApplication domainApplication); - - public abstract Builder setAsOfDate(DateTime asOfDate); - - public abstract ApplicationUpdatePriceParameters build(); - } - } - /** A class to encapsulate parameters for a call to {@link #customizeCreatePrice} . */ @AutoValue public abstract static class CreatePriceParameters extends ImmutableObject { diff --git a/java/google/registry/flows/domain/DomainAllocateFlow.java b/java/google/registry/flows/domain/DomainAllocateFlow.java deleted file mode 100644 index bac773ea2..000000000 --- a/java/google/registry/flows/domain/DomainAllocateFlow.java +++ /dev/null @@ -1,424 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.flows.domain; - -import static com.google.common.collect.MoreCollectors.onlyElement; -import static google.registry.flows.FlowUtils.validateClientIsLoggedIn; -import static google.registry.flows.ResourceFlowUtils.verifyResourceDoesNotExist; -import static google.registry.flows.domain.DomainFlowUtils.COLLISION_MESSAGE; -import static google.registry.flows.domain.DomainFlowUtils.cloneAndLinkReferences; -import static google.registry.flows.domain.DomainFlowUtils.createFeeCreateResponse; -import static google.registry.flows.domain.DomainFlowUtils.getReservationTypes; -import static google.registry.flows.domain.DomainFlowUtils.validateCreateCommandContactsAndNameservers; -import static google.registry.flows.domain.DomainFlowUtils.validateDomainName; -import static google.registry.flows.domain.DomainFlowUtils.validateDomainNameWithIdnTables; -import static google.registry.flows.domain.DomainFlowUtils.validateRegistrationPeriod; -import static google.registry.flows.domain.DomainFlowUtils.validateSecDnsExtension; -import static google.registry.flows.domain.DomainFlowUtils.verifyUnitIsYears; -import static google.registry.model.EppResourceUtils.createDomainRepoId; -import static google.registry.model.EppResourceUtils.loadDomainApplication; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.pricing.PricingEngineProxy.getDomainCreateCost; -import static google.registry.util.CollectionUtils.isNullOrEmpty; -import static google.registry.util.DateTimeUtils.END_OF_TIME; -import static google.registry.util.DateTimeUtils.leapSafeAddYears; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Streams; -import com.google.common.net.InternetDomainName; -import com.googlecode.objectify.Key; -import dagger.Lazy; -import google.registry.dns.DnsQueue; -import google.registry.flows.EppException; -import google.registry.flows.EppException.AuthorizationErrorException; -import google.registry.flows.EppException.ObjectDoesNotExistException; -import google.registry.flows.EppException.StatusProhibitsOperationException; -import google.registry.flows.ExtensionManager; -import google.registry.flows.FlowModule.ClientId; -import google.registry.flows.FlowModule.Superuser; -import google.registry.flows.FlowModule.TargetId; -import google.registry.flows.TransactionalFlow; -import google.registry.flows.annotations.ReportingSpec; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotSpecifiedForNameserverRestrictedDomainException; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotSpecifiedForTldWithNameserverWhitelistException; -import google.registry.model.ImmutableObject; -import google.registry.model.billing.BillingEvent; -import google.registry.model.billing.BillingEvent.Flag; -import google.registry.model.billing.BillingEvent.Reason; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.DomainCommand.Create; -import google.registry.model.domain.DomainResource; -import google.registry.model.domain.GracePeriod; -import google.registry.model.domain.Period; -import google.registry.model.domain.allocate.AllocateCreateExtension; -import google.registry.model.domain.fee.FeeCreateCommandExtension; -import google.registry.model.domain.fee.FeeTransformResponseExtension; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.model.domain.launch.LaunchInfoResponseExtension; -import google.registry.model.domain.metadata.MetadataExtension; -import google.registry.model.domain.rgp.GracePeriodStatus; -import google.registry.model.domain.secdns.SecDnsCreateExtension; -import google.registry.model.eppcommon.AuthInfo; -import google.registry.model.eppcommon.StatusValue; -import google.registry.model.eppinput.EppInput; -import google.registry.model.eppinput.ResourceCommand; -import google.registry.model.eppoutput.CreateData.DomainCreateData; -import google.registry.model.eppoutput.EppResponse; -import google.registry.model.index.EppResourceIndex; -import google.registry.model.index.ForeignKeyIndex; -import google.registry.model.ofy.ObjectifyService; -import google.registry.model.poll.PendingActionNotificationResponse.DomainPendingActionNotificationResponse; -import google.registry.model.poll.PollMessage; -import google.registry.model.registry.Registry; -import google.registry.model.registry.label.ReservationType; -import google.registry.model.reporting.DomainTransactionRecord; -import google.registry.model.reporting.DomainTransactionRecord.TransactionReportField; -import google.registry.model.reporting.HistoryEntry; -import google.registry.model.reporting.IcannReportingTypes.ActivityReportField; -import google.registry.tmch.LordnTaskUtils; -import java.util.Optional; -import java.util.Set; -import javax.inject.Inject; -import org.joda.time.DateTime; -import org.joda.time.Duration; - -/** - * An EPP flow that allocates a new domain resource from a domain application. - * - *

Note that this flow is only run by superusers. - * - * @error {@link google.registry.flows.exceptions.ResourceAlreadyExistsException} - * @error {@link DomainAllocateFlow.HasFinalStatusException} - * @error {@link DomainAllocateFlow.MissingApplicationException} - * @error {@link DomainAllocateFlow.OnlySuperuserCanAllocateException} - * @error {@link DomainFlowUtils.ExceedsMaxRegistrationYearsException} - * @error {@link DomainFlowUtils.RegistrantNotAllowedException} - * @error {@link DomainFlowUtils.NameserversNotAllowedForDomainException} - * @error {@link DomainFlowUtils.NameserversNotAllowedForTldException} - * @error {@link NameserversNotSpecifiedForNameserverRestrictedDomainException} - * @error {@link NameserversNotSpecifiedForTldWithNameserverWhitelistException} - */ -@ReportingSpec(ActivityReportField.DOMAIN_CREATE) // Allocates are special domain creates. -public class DomainAllocateFlow implements TransactionalFlow { - - @Inject ExtensionManager extensionManager; - @Inject AuthInfo authInfo; - @Inject ResourceCommand resourceCommand; - @Inject @ClientId String clientId; - @Inject @TargetId String targetId; - @Inject @Superuser boolean isSuperuser; - @Inject HistoryEntry.Builder historyBuilder; - @Inject EppInput eppInput; - @Inject Lazy dnsQueue; - @Inject EppResponse.Builder responseBuilder; - @Inject DomainPricingLogic pricingLogic; - @Inject DomainAllocateFlow() {} - - @Override - public final EppResponse run() throws EppException { - extensionManager.register( - FeeCreateCommandExtension.class, - SecDnsCreateExtension.class, - MetadataExtension.class, - AllocateCreateExtension.class); - extensionManager.validate(); - validateClientIsLoggedIn(clientId); - verifyIsSuperuser(); - DateTime now = ofy().getTransactionTime(); - Create command = cloneAndLinkReferences((Create) resourceCommand, now); - verifyResourceDoesNotExist(DomainResource.class, targetId, now); - InternetDomainName domainName = validateDomainName(command.getFullyQualifiedDomainName()); - Registry registry = Registry.get(domainName.parent().toString()); - Period period = command.getPeriod(); - verifyUnitIsYears(period); - int years = period.getValue(); - validateRegistrationPeriod(years); - validateCreateCommandContactsAndNameservers(command, registry, domainName); - Optional secDnsCreate = - validateSecDnsExtension(eppInput.getSingleExtension(SecDnsCreateExtension.class)); - boolean isSunrushAddGracePeriod = isNullOrEmpty(command.getNameservers()); - AllocateCreateExtension allocateCreate = - eppInput.getSingleExtension(AllocateCreateExtension.class).get(); - DomainApplication application = - loadAndValidateApplication(allocateCreate.getApplicationRoid(), now); - String repoId = createDomainRepoId(ObjectifyService.allocateId(), registry.getTldStr()); - ImmutableSet.Builder entitiesToSave = new ImmutableSet.Builder<>(); - HistoryEntry historyEntry = buildHistoryEntry( - repoId, registry.getTldStr(), now, period, registry.getAddGracePeriodLength()); - entitiesToSave.add(historyEntry); - ImmutableSet billsAndPolls = createBillingEventsAndPollMessages( - domainName, application, historyEntry, isSunrushAddGracePeriod, registry, now, years); - entitiesToSave.addAll(billsAndPolls); - DateTime registrationExpirationTime = leapSafeAddYears(now, years); - DomainResource newDomain = - new DomainResource.Builder() - .setCreationClientId(clientId) - .setPersistedCurrentSponsorClientId(clientId) - .setRepoId(repoId) - .setIdnTableName(validateDomainNameWithIdnTables(domainName)) - .setRegistrationExpirationTime(registrationExpirationTime) - .setAutorenewBillingEvent( - Key.create(getOnly(billsAndPolls, BillingEvent.Recurring.class))) - .setAutorenewPollMessage( - Key.create(getOnly(billsAndPolls, PollMessage.Autorenew.class))) - .setApplicationTime(allocateCreate.getApplicationTime()) - .setApplication(Key.create(application)) - .setSmdId(allocateCreate.getSmdId()) - .setLaunchNotice(allocateCreate.getNotice()) - .setDsData( - secDnsCreate.isPresent() ? secDnsCreate.get().getDsData() : application.getDsData()) - .addGracePeriod( - createGracePeriod( - isSunrushAddGracePeriod, getOnly(billsAndPolls, BillingEvent.OneTime.class))) - // Names on the collision list will not be delegated. Set server hold. - .setStatusValues( - getReservationTypes(domainName).contains(ReservationType.NAME_COLLISION) - ? ImmutableSet.of(StatusValue.SERVER_HOLD) - : ImmutableSet.of()) - .setRegistrant(command.getRegistrant()) - .setAuthInfo(command.getAuthInfo()) - .setFullyQualifiedDomainName(targetId) - .setNameservers(command.getNameservers()) - .setContacts(command.getContacts()) - .build(); - entitiesToSave.add( - newDomain, - buildApplicationHistory(application, now), - updateApplication(application), - ForeignKeyIndex.create(newDomain, newDomain.getDeletionTime()), - EppResourceIndex.create(Key.create(newDomain))); - ofy().save().entities(entitiesToSave.build()); - enqueueTasks(allocateCreate, newDomain); - return responseBuilder - .setResData(DomainCreateData.create(targetId, now, registrationExpirationTime)) - .setExtensions(createResponseExtensions(now, registry, years)) - .build(); - } - - private T getOnly( - Iterable objects, Class clazz) { - return Streams.stream(objects) - .filter(clazz::isInstance) - .map(clazz::cast) - .collect(onlyElement()); - } - - private void verifyIsSuperuser() throws OnlySuperuserCanAllocateException { - if (!isSuperuser) { - throw new OnlySuperuserCanAllocateException(); - } - } - - private DomainApplication loadAndValidateApplication( - String applicationRoid, DateTime now) throws EppException { - DomainApplication application = - loadDomainApplication(applicationRoid, now) - .orElseThrow(() -> new MissingApplicationException(applicationRoid)); - if (application.getApplicationStatus().isFinalStatus()) { - throw new HasFinalStatusException(); - } - return application; - } - - private HistoryEntry buildHistoryEntry( - String repoId, String tld, DateTime now, Period period, Duration addGracePeriod) { - return historyBuilder - .setType(HistoryEntry.Type.DOMAIN_ALLOCATE) - .setPeriod(period) - .setModificationTime(now) - .setParent(Key.create(DomainResource.class, repoId)) - .setDomainTransactionRecords( - ImmutableSet.of( - DomainTransactionRecord.create( - tld, - now.plus(addGracePeriod), - TransactionReportField.netAddsFieldFromYears(period.getValue()), - 1))) - .build(); - } - - private ImmutableSet createBillingEventsAndPollMessages( - InternetDomainName domainName, - DomainApplication application, - HistoryEntry historyEntry, - boolean isSunrushAddGracePeriod, - Registry registry, - DateTime now, - int years) { - DateTime registrationExpirationTime = leapSafeAddYears(now, years); - BillingEvent.OneTime oneTimeBillingEvent = createOneTimeBillingEvent( - application, historyEntry, isSunrushAddGracePeriod, registry, now, years); - PollMessage.OneTime oneTimePollMessage = - createOneTimePollMessage(application, historyEntry, getReservationTypes(domainName), now); - // Create a new autorenew billing event and poll message starting at the expiration time. - BillingEvent.Recurring autorenewBillingEvent = - createAutorenewBillingEvent(historyEntry, registrationExpirationTime); - PollMessage.Autorenew autorenewPollMessage = - createAutorenewPollMessage(historyEntry, registrationExpirationTime); - return ImmutableSet.of( - oneTimePollMessage, - oneTimeBillingEvent, - autorenewBillingEvent, - autorenewPollMessage); - } - - private BillingEvent.OneTime createOneTimeBillingEvent( - DomainApplication application, - HistoryEntry historyEntry, - boolean isSunrushAddGracePeriod, - Registry registry, - DateTime now, - int years) { - return new BillingEvent.OneTime.Builder() - .setReason(Reason.CREATE) - .setFlags(ImmutableSet.of( - Flag.ALLOCATION, - application.getEncodedSignedMarks().isEmpty() ? Flag.LANDRUSH : Flag.SUNRISE)) - .setTargetId(targetId) - .setClientId(clientId) - // Note that the cost is calculated as of now, i.e. the event time, not the billing time, - // which may be some additional days into the future. - .setCost(getDomainCreateCost(targetId, now, years)) - .setPeriodYears(years) - .setEventTime(now) - // If there are no nameservers on the domain, then they get the benefit of the sunrush - // add grace period, which is longer than the standard add grace period. - .setBillingTime(now.plus(isSunrushAddGracePeriod - ? registry.getSunrushAddGracePeriodLength() - : registry.getAddGracePeriodLength())) - .setParent(historyEntry) - .build(); - } - - private BillingEvent.Recurring createAutorenewBillingEvent( - HistoryEntry historyEntry, DateTime registrationExpirationTime) { - return new BillingEvent.Recurring.Builder() - .setReason(Reason.RENEW) - .setFlags(ImmutableSet.of(Flag.AUTO_RENEW)) - .setTargetId(targetId) - .setClientId(clientId) - .setEventTime(registrationExpirationTime) - .setRecurrenceEndTime(END_OF_TIME) - .setParent(historyEntry) - .build(); - } - - private PollMessage.Autorenew createAutorenewPollMessage( - HistoryEntry historyEntry, DateTime registrationExpirationTime) { - return new PollMessage.Autorenew.Builder() - .setTargetId(targetId) - .setClientId(clientId) - .setEventTime(registrationExpirationTime) - .setMsg("Domain was auto-renewed.") - .setParent(historyEntry) - .build(); - } - - private static GracePeriod createGracePeriod(boolean isSunrushAddGracePeriod, - BillingEvent.OneTime oneTimeBillingEvent) { - return GracePeriod.forBillingEvent( - isSunrushAddGracePeriod ? GracePeriodStatus.SUNRUSH_ADD : GracePeriodStatus.ADD, - oneTimeBillingEvent); - } - - /** Create a history entry (with no xml or trid) to record that we updated the application. */ - private static HistoryEntry buildApplicationHistory(DomainApplication application, DateTime now) { - return new HistoryEntry.Builder() - .setType(HistoryEntry.Type.DOMAIN_APPLICATION_STATUS_UPDATE) - .setParent(application) - .setModificationTime(now) - .setClientId(application.getCurrentSponsorClientId()) - .setBySuperuser(true) - .build(); - } - - /** Update the application itself. */ - private DomainApplication updateApplication(DomainApplication application) { - return application.asBuilder() - .setApplicationStatus(ApplicationStatus.ALLOCATED) - .removeStatusValue(StatusValue.PENDING_CREATE) - .build(); - } - - /** Create a poll message informing the registrar that the application status was updated. */ - private PollMessage.OneTime createOneTimePollMessage( - DomainApplication application, - HistoryEntry historyEntry, - Set reservationTypes, - DateTime now) { - return new PollMessage.OneTime.Builder() - .setClientId(historyEntry.getClientId()) - .setEventTime(now) - .setMsg( - reservationTypes.contains(ReservationType.NAME_COLLISION) - ? COLLISION_MESSAGE // Remind the registrar of the name collision policy. - : "Domain was allocated") - .setResponseData( - ImmutableList.of( - DomainPendingActionNotificationResponse.create( - targetId, true, application.getCreationTrid(), now))) - .setResponseExtensions( - ImmutableList.of( - new LaunchInfoResponseExtension.Builder() - .setApplicationId(application.getForeignKey()) - .setPhase(application.getPhase()) - .setApplicationStatus(ApplicationStatus.ALLOCATED) - .build())) - .setParent(historyEntry) - .build(); - } - - private void enqueueTasks(AllocateCreateExtension allocateCreate, DomainResource newDomain) { - if (newDomain.shouldPublishToDns()) { - dnsQueue.get().addDomainRefreshTask(newDomain.getFullyQualifiedDomainName()); - } - if (allocateCreate.getSmdId() != null || allocateCreate.getNotice() != null) { - LordnTaskUtils.enqueueDomainResourceTask(newDomain); - } - } - - private ImmutableList createResponseExtensions( - DateTime now, Registry registry, int years) throws EppException { - FeesAndCredits feesAndCredits = - pricingLogic.getCreatePrice(registry, targetId, now, years, false); - Optional feeCreate = - eppInput.getSingleExtension(FeeCreateCommandExtension.class); - return feeCreate.isPresent() - ? ImmutableList.of(createFeeCreateResponse(feeCreate.get(), feesAndCredits)) - : ImmutableList.of(); - } - - /** Domain application with specific ROID does not exist. */ - static class MissingApplicationException extends ObjectDoesNotExistException { - public MissingApplicationException(String applicationRoid) { - super(DomainApplication.class, applicationRoid); - } - } - - /** Domain application already has a final status. */ - static class HasFinalStatusException extends StatusProhibitsOperationException { - public HasFinalStatusException() { - super("Domain application already has a final status"); - } - } - - /** Only a superuser can allocate domains. */ - static class OnlySuperuserCanAllocateException extends AuthorizationErrorException { - public OnlySuperuserCanAllocateException() { - super("Only a superuser can allocate domains"); - } - } -} diff --git a/java/google/registry/flows/domain/DomainApplicationCreateFlow.java b/java/google/registry/flows/domain/DomainApplicationCreateFlow.java deleted file mode 100644 index 770099915..000000000 --- a/java/google/registry/flows/domain/DomainApplicationCreateFlow.java +++ /dev/null @@ -1,420 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.flows.domain; - -import static com.google.common.collect.ImmutableList.toImmutableList; -import static com.google.common.collect.Iterables.getOnlyElement; -import static google.registry.flows.FlowUtils.persistEntityChanges; -import static google.registry.flows.FlowUtils.validateClientIsLoggedIn; -import static google.registry.flows.ResourceFlowUtils.verifyResourceDoesNotExist; -import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld; -import static google.registry.flows.domain.DomainFlowUtils.cloneAndLinkReferences; -import static google.registry.flows.domain.DomainFlowUtils.createFeeCreateResponse; -import static google.registry.flows.domain.DomainFlowUtils.isAnchorTenant; -import static google.registry.flows.domain.DomainFlowUtils.validateCreateCommandContactsAndNameservers; -import static google.registry.flows.domain.DomainFlowUtils.validateDomainName; -import static google.registry.flows.domain.DomainFlowUtils.validateDomainNameWithIdnTables; -import static google.registry.flows.domain.DomainFlowUtils.validateFeeChallenge; -import static google.registry.flows.domain.DomainFlowUtils.validateLaunchCreateNotice; -import static google.registry.flows.domain.DomainFlowUtils.validateRegistrationPeriod; -import static google.registry.flows.domain.DomainFlowUtils.validateSecDnsExtension; -import static google.registry.flows.domain.DomainFlowUtils.verifyClaimsNoticeIfAndOnlyIfNeeded; -import static google.registry.flows.domain.DomainFlowUtils.verifyClaimsPeriodNotEnded; -import static google.registry.flows.domain.DomainFlowUtils.verifyLaunchPhaseMatchesRegistryPhase; -import static google.registry.flows.domain.DomainFlowUtils.verifyNoCodeMarks; -import static google.registry.flows.domain.DomainFlowUtils.verifyNotReserved; -import static google.registry.flows.domain.DomainFlowUtils.verifyPremiumNameIsNotBlocked; -import static google.registry.flows.domain.DomainFlowUtils.verifyRegistrarIsActive; -import static google.registry.flows.domain.DomainFlowUtils.verifyRegistryStateAllowsApplicationFlows; -import static google.registry.flows.domain.DomainFlowUtils.verifyUnitIsYears; -import static google.registry.model.EppResourceUtils.createDomainRepoId; -import static google.registry.model.index.DomainApplicationIndex.loadActiveApplicationsByDomainName; -import static google.registry.model.ofy.ObjectifyService.ofy; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; -import com.google.common.net.InternetDomainName; -import com.googlecode.objectify.Key; -import google.registry.flows.EppException; -import google.registry.flows.EppException.CommandUseErrorException; -import google.registry.flows.EppException.ObjectAlreadyExistsException; -import google.registry.flows.EppException.RequiredParameterMissingException; -import google.registry.flows.ExtensionManager; -import google.registry.flows.FlowModule.ClientId; -import google.registry.flows.FlowModule.Superuser; -import google.registry.flows.FlowModule.TargetId; -import google.registry.flows.TransactionalFlow; -import google.registry.flows.annotations.ReportingSpec; -import google.registry.flows.custom.DomainApplicationCreateFlowCustomLogic; -import google.registry.flows.custom.DomainApplicationCreateFlowCustomLogic.AfterValidationParameters; -import google.registry.flows.custom.DomainApplicationCreateFlowCustomLogic.BeforeResponseParameters; -import google.registry.flows.custom.DomainApplicationCreateFlowCustomLogic.BeforeResponseReturnData; -import google.registry.flows.custom.EntityChanges; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotSpecifiedForNameserverRestrictedDomainException; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotSpecifiedForTldWithNameserverWhitelistException; -import google.registry.model.ImmutableObject; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.DomainCommand.Create; -import google.registry.model.domain.DomainResource; -import google.registry.model.domain.Period; -import google.registry.model.domain.fee.FeeCreateCommandExtension; -import google.registry.model.domain.fee.FeeTransformCommandExtension; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.model.domain.launch.LaunchCreateExtension; -import google.registry.model.domain.launch.LaunchCreateResponseExtension; -import google.registry.model.domain.launch.LaunchPhase; -import google.registry.model.domain.metadata.MetadataExtension; -import google.registry.model.domain.secdns.SecDnsCreateExtension; -import google.registry.model.eppcommon.AuthInfo; -import google.registry.model.eppcommon.StatusValue; -import google.registry.model.eppcommon.Trid; -import google.registry.model.eppinput.EppInput; -import google.registry.model.eppinput.ResourceCommand; -import google.registry.model.eppoutput.CreateData.DomainCreateData; -import google.registry.model.eppoutput.EppResponse; -import google.registry.model.eppoutput.EppResponse.ResponseExtension; -import google.registry.model.index.DomainApplicationIndex; -import google.registry.model.index.EppResourceIndex; -import google.registry.model.ofy.ObjectifyService; -import google.registry.model.registry.Registry; -import google.registry.model.registry.Registry.TldState; -import google.registry.model.reporting.HistoryEntry; -import google.registry.model.reporting.IcannReportingTypes.ActivityReportField; -import google.registry.model.smd.EncodedSignedMark; -import java.util.Optional; -import javax.inject.Inject; -import org.joda.time.DateTime; - -/** - * An EPP flow that creates a new application for a domain resource. - * - * @error {@link google.registry.flows.exceptions.ResourceAlreadyExistsException} - * @error {@link google.registry.flows.EppException.UnimplementedExtensionException} - * @error {@link DomainApplicationCreateFlow.LandrushApplicationDisallowedDuringSunriseException} - * @error {@link DomainApplicationCreateFlow.NoticeCannotBeUsedWithSignedMarkException} - * @error {@link DomainApplicationCreateFlow.SunriseApplicationDisallowedDuringLandrushException} - * @error {@link - * DomainApplicationCreateFlow.UncontestedSunriseApplicationBlockedInLandrushException} - * @error {@link DomainFlowUtils.AcceptedTooLongAgoException} - * @error {@link DomainFlowUtils.BadCommandForRegistryPhaseException} - * @error {@link DomainFlowUtils.BadDomainNameCharacterException} - * @error {@link DomainFlowUtils.BadDomainNamePartsCountException} - * @error {@link DomainFlowUtils.DomainNameExistsAsTldException} - * @error {@link DomainFlowUtils.BadPeriodUnitException} - * @error {@link DomainFlowTmchUtils.Base64RequiredForEncodedSignedMarksException} - * @error {@link DomainFlowUtils.ClaimsPeriodEndedException} - * @error {@link DomainFlowUtils.CurrencyUnitMismatchException} - * @error {@link DomainFlowUtils.CurrencyValueScaleException} - * @error {@link DomainFlowUtils.DashesInThirdAndFourthException} - * @error {@link DomainFlowUtils.DomainLabelTooLongException} - * @error {@link DomainFlowUtils.DomainReservedException} - * @error {@link DomainFlowUtils.DuplicateContactForRoleException} - * @error {@link DomainFlowUtils.EmptyDomainNamePartException} - * @error {@link DomainFlowUtils.ExceedsMaxRegistrationYearsException} - * @error {@link DomainFlowUtils.ExpiredClaimException} - * @error {@link DomainFlowUtils.FeesMismatchException} - * @error {@link DomainFlowUtils.FeesRequiredForPremiumNameException} - * @error {@link DomainFlowUtils.InvalidIdnDomainLabelException} - * @error {@link DomainFlowUtils.InvalidPunycodeException} - * @error {@link DomainFlowUtils.InvalidTcnIdChecksumException} - * @error {@link DomainFlowUtils.InvalidTrademarkValidatorException} - * @error {@link DomainFlowUtils.LaunchPhaseMismatchException} - * @error {@link DomainFlowUtils.LeadingDashException} - * @error {@link DomainFlowUtils.LinkedResourcesDoNotExistException} - * @error {@link DomainFlowUtils.MalformedTcnIdException} - * @error {@link DomainFlowUtils.MaxSigLifeNotSupportedException} - * @error {@link DomainFlowUtils.MissingClaimsNoticeException} - * @error {@link DomainFlowUtils.MissingContactTypeException} - * @error {@link DomainFlowUtils.NameserversNotAllowedForDomainException} - * @error {@link DomainFlowUtils.NameserversNotAllowedForTldException} - * @error {@link NameserversNotSpecifiedForNameserverRestrictedDomainException} - * @error {@link NameserversNotSpecifiedForTldWithNameserverWhitelistException} - * @error {@link DomainFlowTmchUtils.NoMarksFoundMatchingDomainException} - * @error {@link DomainFlowTmchUtils.FoundMarkNotYetValidException} - * @error {@link DomainFlowTmchUtils.FoundMarkExpiredException} - * @error {@link DomainFlowUtils.NotAuthorizedForTldException} - * @error {@link DomainFlowUtils.PremiumNameBlockedException} - * @error {@link DomainFlowUtils.RegistrantNotAllowedException} - * @error {@link DomainFlowUtils.RegistrarMustBeActiveForThisOperationException} - * @error {@link DomainFlowTmchUtils.SignedMarksMustBeEncodedException} - * @error {@link DomainFlowTmchUtils.SignedMarkCertificateExpiredException} - * @error {@link DomainFlowTmchUtils.SignedMarkCertificateInvalidException} - * @error {@link DomainFlowTmchUtils.SignedMarkCertificateNotYetValidException} - * @error {@link DomainFlowTmchUtils.SignedMarkCertificateRevokedException} - * @error {@link DomainFlowTmchUtils.SignedMarkCertificateSignatureException} - * @error {@link DomainFlowTmchUtils.SignedMarkEncodingErrorException} - * @error {@link DomainFlowTmchUtils.SignedMarkParsingErrorException} - * @error {@link DomainFlowTmchUtils.SignedMarkRevokedErrorException} - * @error {@link DomainFlowTmchUtils.SignedMarkSignatureException} - * @error {@link DomainFlowUtils.TldDoesNotExistException} - * @error {@link DomainFlowUtils.TooManyDsRecordsException} - * @error {@link DomainFlowUtils.TooManyNameserversException} - * @error {@link DomainFlowTmchUtils.TooManySignedMarksException} - * @error {@link DomainFlowUtils.TrailingDashException} - * @error {@link DomainFlowUtils.UnexpectedClaimsNoticeException} - * @error {@link DomainFlowUtils.UnsupportedFeeAttributeException} - * @error {@link DomainFlowUtils.UnsupportedMarkTypeException} - */ -@ReportingSpec(ActivityReportField.DOMAIN_CREATE) // Applications are technically domains in EPP. -public final class DomainApplicationCreateFlow implements TransactionalFlow { - - @Inject ExtensionManager extensionManager; - @Inject EppInput eppInput; - @Inject AuthInfo authInfo; - @Inject ResourceCommand resourceCommand; - @Inject @ClientId String clientId; - @Inject @TargetId String targetId; - @Inject @Superuser boolean isSuperuser; - @Inject HistoryEntry.Builder historyBuilder; - @Inject Trid trid; - @Inject EppResponse.Builder responseBuilder; - @Inject DomainApplicationCreateFlowCustomLogic flowCustomLogic; - @Inject DomainFlowTmchUtils tmchUtils; - @Inject DomainPricingLogic pricingLogic; - @Inject DomainApplicationCreateFlow() {} - - @Override - public final EppResponse run() throws EppException { - extensionManager.register( - FeeCreateCommandExtension.class, - SecDnsCreateExtension.class, - MetadataExtension.class, - LaunchCreateExtension.class); - flowCustomLogic.beforeValidation(); - extensionManager.validate(); - validateClientIsLoggedIn(clientId); - verifyRegistrarIsActive(clientId); - DateTime now = ofy().getTransactionTime(); - Create command = cloneAndLinkReferences((Create) resourceCommand, now); - // Fail if the domain is already registered (e.g. this is a landrush application but the domain - // was awarded at the end of sunrise). However, multiple domain applications can be created for - // the same domain name, so don't try to load an existing application. - verifyResourceDoesNotExist(DomainResource.class, targetId, now); - // Validate that this is actually a legal domain name on a TLD that the registrar has access to. - InternetDomainName domainName = validateDomainName(targetId); - String idnTableName = validateDomainNameWithIdnTables(domainName); - String tld = domainName.parent().toString(); - if (!isSuperuser) { - // Access to the TLD should be checked before the subsequent checks as it is a greater concern - checkAllowedAccessToTld(clientId, tld); - } - Registry registry = Registry.get(tld); - boolean isAnchorTenant = - isAnchorTenant(domainName, Optional.empty(), authInfo.getPw().getValue(), Optional.empty()); - FeesAndCredits feesAndCredits = - pricingLogic.getCreatePrice( - registry, targetId, now, command.getPeriod().getValue(), isAnchorTenant); - verifyUnitIsYears(command.getPeriod()); - int years = command.getPeriod().getValue(); - validateRegistrationPeriod(years); - validateCreateCommandContactsAndNameservers(command, registry, domainName); - LaunchCreateExtension launchCreate = - eppInput.getSingleExtension(LaunchCreateExtension.class).get(); - validateLaunchCreateExtension(launchCreate, registry, domainName, now); - // Superusers can create reserved domains, force creations on domains that require a claims - // notice without specifying a claims key, and override blocks on registering premium domains. - if (!isSuperuser) { - verifyPremiumNameIsNotBlocked(targetId, now, clientId); - prohibitLandrushIfExactlyOneSunrise(registry, now); - if (!isAnchorTenant) { - boolean isSunriseApplication = !launchCreate.getSignedMarks().isEmpty(); - verifyNotReserved(domainName, isSunriseApplication); - } - } - Optional feeCreate = - eppInput.getSingleExtension(FeeCreateCommandExtension.class); - validateFeeChallenge(targetId, tld, clientId, now, feeCreate, feesAndCredits); - Optional secDnsCreate = - validateSecDnsExtension(eppInput.getSingleExtension(SecDnsCreateExtension.class)); - flowCustomLogic.afterValidation( - AfterValidationParameters.newBuilder() - .setDomainName(domainName) - .setYears(years) - .build()); - DomainApplication newApplication = - new DomainApplication.Builder() - .setCreationTrid(trid) - .setCreationClientId(clientId) - .setPersistedCurrentSponsorClientId(clientId) - .setRepoId(createDomainRepoId(ObjectifyService.allocateId(), tld)) - .setLaunchNotice(launchCreate == null ? null : launchCreate.getNotice()) - .setIdnTableName(idnTableName) - .setPhase(launchCreate.getPhase()) - .setPeriod(command.getPeriod()) - .setApplicationStatus(ApplicationStatus.VALIDATED) - .addStatusValue(StatusValue.PENDING_CREATE) - .setDsData(secDnsCreate.isPresent() ? secDnsCreate.get().getDsData() : null) - .setRegistrant(command.getRegistrant()) - .setAuthInfo(command.getAuthInfo()) - .setFullyQualifiedDomainName(targetId) - .setNameservers(command.getNameservers()) - .setContacts(command.getContacts()) - .setEncodedSignedMarks( - launchCreate - .getSignedMarks() - .stream() - .map(abstractSignedMark -> (EncodedSignedMark) abstractSignedMark) - .collect(toImmutableList())) - .build(); - HistoryEntry historyEntry = - buildHistoryEntry(newApplication.getRepoId(), command.getPeriod(), now); - ImmutableSet.Builder entitiesToSave = new ImmutableSet.Builder<>(); - entitiesToSave.add( - newApplication, - historyEntry, - DomainApplicationIndex.createUpdatedInstance(newApplication), - EppResourceIndex.create(Key.create(newApplication))); - - EntityChanges entityChanges = - flowCustomLogic.beforeSave( - DomainApplicationCreateFlowCustomLogic.BeforeSaveParameters.newBuilder() - .setNewApplication(newApplication) - .setHistoryEntry(historyEntry) - .setEntityChanges( - EntityChanges.newBuilder().setSaves(entitiesToSave.build()).build()) - .setYears(years) - .build()); - persistEntityChanges(entityChanges); - BeforeResponseReturnData responseData = - flowCustomLogic.beforeResponse( - BeforeResponseParameters.newBuilder() - .setResData(DomainCreateData.create(targetId, now, null)) - .setResponseExtensions( - createResponseExtensions( - newApplication.getForeignKey(), - launchCreate.getPhase(), - feeCreate, - feesAndCredits)) - .build()); - return responseBuilder - .setResData(responseData.resData()) - .setExtensions(responseData.responseExtensions()) - .build(); - } - - private void validateLaunchCreateExtension( - LaunchCreateExtension launchCreate, - Registry registry, - InternetDomainName domainName, - DateTime now) throws EppException { - verifyNoCodeMarks(launchCreate); - boolean hasClaimsNotice = launchCreate.getNotice() != null; - if (hasClaimsNotice) { - verifyClaimsPeriodNotEnded(registry, now); - } - boolean isSunriseApplication = !launchCreate.getSignedMarks().isEmpty(); - if (!isSuperuser) { // Superusers can ignore the phase. - verifyRegistryStateAllowsApplicationFlows(registry, now); - verifyLaunchPhaseMatchesRegistryPhase(registry, launchCreate, now); - } - if (now.isBefore(registry.getClaimsPeriodEnd())) { - verifyClaimsNoticeIfAndOnlyIfNeeded(domainName, isSunriseApplication, hasClaimsNotice); - } - TldState tldState = registry.getTldState(now); - if (launchCreate.getSignedMarks().isEmpty()) { - // During sunrise, a signed mark is required since only trademark holders are allowed to - // create an application. However, we found no marks (ie, this was a landrush application). - if (tldState == TldState.SUNRISE) { - throw new LandrushApplicationDisallowedDuringSunriseException(); - } - } else { - if (hasClaimsNotice) { // Can't use a claims notice id with a signed mark. - throw new NoticeCannotBeUsedWithSignedMarkException(); - } - if (tldState == TldState.LANDRUSH) { - throw new SunriseApplicationDisallowedDuringLandrushException(); - } - } - String domainLabel = domainName.parts().get(0); - validateLaunchCreateNotice(launchCreate.getNotice(), domainLabel, isSuperuser, now); - // If a signed mark was provided, then it must match the desired domain label. - if (!launchCreate.getSignedMarks().isEmpty()) { - tmchUtils.verifySignedMarks(launchCreate.getSignedMarks(), domainLabel, now); - } - } - - /** - * Prohibit creating a landrush application in LANDRUSH (but not in SUNRUSH) if there is exactly - * one sunrise application for the same name. - */ - private void prohibitLandrushIfExactlyOneSunrise(Registry registry, DateTime now) - throws UncontestedSunriseApplicationBlockedInLandrushException { - if (registry.getTldState(now) == TldState.LANDRUSH) { - ImmutableSet applications = - loadActiveApplicationsByDomainName(targetId, now); - if (applications.size() == 1 - && getOnlyElement(applications).getPhase().equals(LaunchPhase.SUNRISE)) { - throw new UncontestedSunriseApplicationBlockedInLandrushException(); - } - } - } - - private HistoryEntry buildHistoryEntry(String repoId, Period period, DateTime now) { - return historyBuilder - .setType(HistoryEntry.Type.DOMAIN_APPLICATION_CREATE) - .setPeriod(period) - .setModificationTime(now) - .setParent(Key.create(DomainApplication.class, repoId)) - .build(); - } - - private static ImmutableList createResponseExtensions( - String applicationId, - LaunchPhase launchPhase, - Optional feeCreate, - FeesAndCredits feesAndCredits) { - ImmutableList.Builder responseExtensionsBuilder = - new ImmutableList.Builder<>(); - responseExtensionsBuilder.add(new LaunchCreateResponseExtension.Builder() - .setPhase(launchPhase) - .setApplicationId(applicationId) - .build()); - if (feeCreate.isPresent()) { - responseExtensionsBuilder.add(createFeeCreateResponse(feeCreate.get(), feesAndCredits)); - } - return responseExtensionsBuilder.build(); - } - - /** Landrush applications are disallowed during sunrise. */ - static class LandrushApplicationDisallowedDuringSunriseException - extends RequiredParameterMissingException { - public LandrushApplicationDisallowedDuringSunriseException() { - super("Landrush applications are disallowed during sunrise"); - } - } - - /** A notice cannot be specified when using a signed mark. */ - static class NoticeCannotBeUsedWithSignedMarkException extends CommandUseErrorException { - public NoticeCannotBeUsedWithSignedMarkException() { - super("A notice cannot be specified when using a signed mark"); - } - } - - /** Sunrise applications are disallowed during landrush. */ - static class SunriseApplicationDisallowedDuringLandrushException - extends CommandUseErrorException { - public SunriseApplicationDisallowedDuringLandrushException() { - super("Sunrise applications are disallowed during landrush"); - } - } - - /** This name has already been claimed by a sunrise applicant. */ - static class UncontestedSunriseApplicationBlockedInLandrushException - extends ObjectAlreadyExistsException { - public UncontestedSunriseApplicationBlockedInLandrushException() { - super("This name has already been claimed by a sunrise applicant"); - } - } -} diff --git a/java/google/registry/flows/domain/DomainApplicationDeleteFlow.java b/java/google/registry/flows/domain/DomainApplicationDeleteFlow.java deleted file mode 100644 index 7aed87c46..000000000 --- a/java/google/registry/flows/domain/DomainApplicationDeleteFlow.java +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.flows.domain; - -import static google.registry.flows.FlowUtils.validateClientIsLoggedIn; -import static google.registry.flows.ResourceFlowUtils.verifyExistence; -import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfo; -import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership; -import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld; -import static google.registry.flows.domain.DomainFlowUtils.verifyApplicationDomainMatchesTargetId; -import static google.registry.flows.domain.DomainFlowUtils.verifyLaunchPhaseMatchesRegistryPhase; -import static google.registry.flows.domain.DomainFlowUtils.verifyRegistryStateAllowsApplicationFlows; -import static google.registry.model.EppResourceUtils.loadDomainApplication; -import static google.registry.model.ResourceTransferUtils.updateForeignKeyIndexDeletionTime; -import static google.registry.model.ofy.ObjectifyService.ofy; - -import com.googlecode.objectify.Key; -import google.registry.flows.EppException; -import google.registry.flows.EppException.StatusProhibitsOperationException; -import google.registry.flows.ExtensionManager; -import google.registry.flows.FlowModule.ApplicationId; -import google.registry.flows.FlowModule.ClientId; -import google.registry.flows.FlowModule.Superuser; -import google.registry.flows.FlowModule.TargetId; -import google.registry.flows.TransactionalFlow; -import google.registry.flows.annotations.ReportingSpec; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.launch.LaunchDeleteExtension; -import google.registry.model.domain.launch.LaunchPhase; -import google.registry.model.domain.metadata.MetadataExtension; -import google.registry.model.eppcommon.AuthInfo; -import google.registry.model.eppinput.EppInput; -import google.registry.model.eppoutput.EppResponse; -import google.registry.model.registry.Registry; -import google.registry.model.registry.Registry.TldState; -import google.registry.model.reporting.HistoryEntry; -import google.registry.model.reporting.IcannReportingTypes.ActivityReportField; -import java.util.Optional; -import javax.inject.Inject; -import org.joda.time.DateTime; - -/** - * An EPP flow that deletes a domain application. - * - * @error {@link google.registry.flows.EppException.UnimplementedExtensionException} - * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} - * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} - * @error {@link DomainApplicationDeleteFlow.SunriseApplicationCannotBeDeletedInLandrushException} - * @error {@link DomainFlowUtils.ApplicationDomainNameMismatchException} - * @error {@link DomainFlowUtils.BadCommandForRegistryPhaseException} - * @error {@link DomainFlowUtils.LaunchPhaseMismatchException} - * @error {@link DomainFlowUtils.NotAuthorizedForTldException} - */ -@ReportingSpec(ActivityReportField.DOMAIN_DELETE) // Applications are technically domains in EPP. -public final class DomainApplicationDeleteFlow implements TransactionalFlow { - - @Inject ExtensionManager extensionManager; - @Inject EppInput eppInput; - @Inject Optional authInfo; - @Inject @ClientId String clientId; - @Inject @TargetId String targetId; - @Inject @ApplicationId String applicationId; - @Inject @Superuser boolean isSuperuser; - @Inject HistoryEntry.Builder historyBuilder; - @Inject EppResponse.Builder responseBuilder; - @Inject DomainApplicationDeleteFlow() {} - - @Override - public final EppResponse run() throws EppException { - extensionManager.register(MetadataExtension.class, LaunchDeleteExtension.class); - extensionManager.validate(); - validateClientIsLoggedIn(clientId); - DateTime now = ofy().getTransactionTime(); - DomainApplication existingApplication = verifyExistence( - DomainApplication.class, applicationId, loadDomainApplication(applicationId, now)); - verifyApplicationDomainMatchesTargetId(existingApplication, targetId); - verifyOptionalAuthInfo(authInfo, existingApplication); - String tld = existingApplication.getTld(); - if (!isSuperuser) { - checkAllowedAccessToTld(clientId, tld); - Registry registry = Registry.get(tld); - verifyRegistryStateAllowsApplicationFlows(registry, now); - verifyLaunchPhaseMatchesRegistryPhase( - registry, eppInput.getSingleExtension(LaunchDeleteExtension.class).get(), now); - verifyResourceOwnership(clientId, existingApplication); - // Don't allow deleting a sunrise application during landrush. - if (existingApplication.getPhase().equals(LaunchPhase.SUNRISE) - && registry.getTldState(now).equals(TldState.LANDRUSH)) { - throw new SunriseApplicationCannotBeDeletedInLandrushException(); - } - } - DomainApplication newApplication = existingApplication.asBuilder() - .setDeletionTime(now) - .setStatusValues(null) - .build(); - HistoryEntry historyEntry = historyBuilder - .setType(HistoryEntry.Type.DOMAIN_APPLICATION_DELETE) - .setModificationTime(now) - .setParent(Key.create(existingApplication)) - .build(); - updateForeignKeyIndexDeletionTime(newApplication); - ofy().save().entities(newApplication, historyEntry); - return responseBuilder.build(); - } - - /** A sunrise application cannot be deleted during landrush. */ - static class SunriseApplicationCannotBeDeletedInLandrushException - extends StatusProhibitsOperationException { - public SunriseApplicationCannotBeDeletedInLandrushException() { - super("A sunrise application cannot be deleted during landrush"); - } - } -} diff --git a/java/google/registry/flows/domain/DomainApplicationInfoFlow.java b/java/google/registry/flows/domain/DomainApplicationInfoFlow.java deleted file mode 100644 index 4a89ecb7a..000000000 --- a/java/google/registry/flows/domain/DomainApplicationInfoFlow.java +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.flows.domain; - -import static com.google.common.collect.Sets.union; -import static google.registry.flows.FlowUtils.unmarshalEpp; -import static google.registry.flows.FlowUtils.validateClientIsLoggedIn; -import static google.registry.flows.ResourceFlowUtils.verifyExistence; -import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfo; -import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership; -import static google.registry.flows.domain.DomainFlowUtils.addSecDnsExtensionIfPresent; -import static google.registry.flows.domain.DomainFlowUtils.loadForeignKeyedDesignatedContacts; -import static google.registry.flows.domain.DomainFlowUtils.verifyApplicationDomainMatchesTargetId; -import static google.registry.model.EppResourceUtils.loadDomainApplication; -import static google.registry.model.ofy.ObjectifyService.ofy; - -import com.google.common.collect.ImmutableList; -import google.registry.flows.EppException; -import google.registry.flows.EppException.ParameterValuePolicyErrorException; -import google.registry.flows.EppException.RequiredParameterMissingException; -import google.registry.flows.ExtensionManager; -import google.registry.flows.Flow; -import google.registry.flows.FlowModule.ApplicationId; -import google.registry.flows.FlowModule.ClientId; -import google.registry.flows.FlowModule.TargetId; -import google.registry.flows.annotations.ReportingSpec; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.DomainCommand.Info; -import google.registry.model.domain.DomainInfoData; -import google.registry.model.domain.launch.LaunchInfoExtension; -import google.registry.model.domain.launch.LaunchInfoResponseExtension; -import google.registry.model.eppcommon.AuthInfo; -import google.registry.model.eppinput.EppInput; -import google.registry.model.eppinput.ResourceCommand; -import google.registry.model.eppoutput.EppResponse; -import google.registry.model.eppoutput.EppResponse.ResponseExtension; -import google.registry.model.mark.Mark; -import google.registry.model.reporting.IcannReportingTypes.ActivityReportField; -import google.registry.model.smd.EncodedSignedMark; -import google.registry.model.smd.SignedMark; -import google.registry.util.Clock; -import java.util.Optional; -import javax.inject.Inject; - -/** - * An EPP flow that returns information about a domain application. - * - *

Only the registrar that owns the application can see its info. The flow can optionally include - * delegated hosts in its response. - * - * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} - * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} - * @error {@link DomainFlowUtils.ApplicationDomainNameMismatchException} - * @error {@link DomainApplicationInfoFlow.ApplicationLaunchPhaseMismatchException} - * @error {@link MissingApplicationIdException} - */ -@ReportingSpec(ActivityReportField.DOMAIN_INFO) // Applications are technically domains in EPP. -public final class DomainApplicationInfoFlow implements Flow { - - @Inject ResourceCommand resourceCommand; - @Inject ExtensionManager extensionManager; - @Inject EppInput eppInput; - @Inject Optional authInfo; - @Inject @ClientId String clientId; - @Inject @TargetId String targetId; - @Inject @ApplicationId String applicationId; - @Inject Clock clock; - @Inject EppResponse.Builder responseBuilder; - @Inject DomainApplicationInfoFlow() {} - - @Override - public final EppResponse run() throws EppException { - extensionManager.register(LaunchInfoExtension.class); - extensionManager.validate(); - validateClientIsLoggedIn(clientId); - if (applicationId.isEmpty()) { - throw new MissingApplicationIdException(); - } - DomainApplication application = - verifyExistence( - DomainApplication.class, - applicationId, - loadDomainApplication(applicationId, clock.nowUtc())); - verifyApplicationDomainMatchesTargetId(application, targetId); - verifyOptionalAuthInfo(authInfo, application); - LaunchInfoExtension launchInfo = eppInput.getSingleExtension(LaunchInfoExtension.class).get(); - if (!application.getPhase().equals(launchInfo.getPhase())) { - throw new ApplicationLaunchPhaseMismatchException(); - } - // We don't support authInfo for applications, so if it's another registrar always fail. - verifyResourceOwnership(clientId, application); - boolean showDelegatedHosts = ((Info) resourceCommand).getHostsRequest().requestDelegated(); - // Prefetch all referenced resources. Calling values() blocks until loading is done. - ofy().load() - .values(union(application.getNameservers(), application.getReferencedContacts())).values(); - return responseBuilder - .setResData(DomainInfoData.newBuilder() - .setFullyQualifiedDomainName(application.getFullyQualifiedDomainName()) - .setRepoId(application.getRepoId()) - .setStatusValues(application.getStatusValues()) - .setRegistrant( - ofy().load().key(application.getRegistrant()).now().getContactId()) - .setContacts(loadForeignKeyedDesignatedContacts(application.getContacts())) - .setNameservers(showDelegatedHosts - ? application.loadNameserverFullyQualifiedHostNames() - : null) - .setCurrentSponsorClientId(application.getCurrentSponsorClientId()) - .setCreationClientId(application.getCreationClientId()) - .setCreationTime(application.getCreationTime()) - .setLastEppUpdateClientId(application.getLastEppUpdateClientId()) - .setLastEppUpdateTime(application.getLastEppUpdateTime()) - .setAuthInfo(application.getAuthInfo()) - .build()) - .setExtensions(getDomainResponseExtensions(application, launchInfo)) - .build(); - } - - ImmutableList getDomainResponseExtensions( - DomainApplication application, LaunchInfoExtension launchInfo) { - ImmutableList.Builder marksBuilder = new ImmutableList.Builder<>(); - if (Boolean.TRUE.equals(launchInfo.getIncludeMark())) { // Default to false. - for (EncodedSignedMark encodedMark : application.getEncodedSignedMarks()) { - try { - marksBuilder.add(unmarshalEpp(SignedMark.class, encodedMark.getBytes()).getMark()); - } catch (EppException e) { - // This is a serious error; don't let the benign EppException propagate. - throw new IllegalStateException("Could not decode a stored encoded signed mark", e); - } - } - } - ImmutableList.Builder extensions = new ImmutableList.Builder<>(); - extensions.add(new LaunchInfoResponseExtension.Builder() - .setPhase(application.getPhase()) - .setApplicationId(application.getForeignKey()) - .setApplicationStatus(application.getApplicationStatus()) - .setMarks(marksBuilder.build()) - .build()); - addSecDnsExtensionIfPresent(extensions, application.getDsData()); - return extensions.build(); - } - - /** Application id is required. */ - static class MissingApplicationIdException extends RequiredParameterMissingException { - public MissingApplicationIdException() { - super("Application id is required"); - } - } - - /** Declared launch extension phase does not match phase of the application. */ - static class ApplicationLaunchPhaseMismatchException extends ParameterValuePolicyErrorException { - public ApplicationLaunchPhaseMismatchException() { - super("Declared launch extension phase does not match the phase of the application"); - } - } -} diff --git a/java/google/registry/flows/domain/DomainApplicationUpdateFlow.java b/java/google/registry/flows/domain/DomainApplicationUpdateFlow.java deleted file mode 100644 index 5a0a1d933..000000000 --- a/java/google/registry/flows/domain/DomainApplicationUpdateFlow.java +++ /dev/null @@ -1,263 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.flows.domain; - -import static com.google.common.base.CaseFormat.LOWER_CAMEL; -import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE; -import static com.google.common.base.MoreObjects.firstNonNull; -import static com.google.common.collect.Sets.union; -import static google.registry.flows.FlowUtils.validateClientIsLoggedIn; -import static google.registry.flows.ResourceFlowUtils.checkSameValuesNotAddedAndRemoved; -import static google.registry.flows.ResourceFlowUtils.verifyAllStatusesAreClientSettable; -import static google.registry.flows.ResourceFlowUtils.verifyExistence; -import static google.registry.flows.ResourceFlowUtils.verifyNoDisallowedStatuses; -import static google.registry.flows.ResourceFlowUtils.verifyOptionalAuthInfo; -import static google.registry.flows.ResourceFlowUtils.verifyResourceOwnership; -import static google.registry.flows.domain.DomainFlowUtils.checkAllowedAccessToTld; -import static google.registry.flows.domain.DomainFlowUtils.cloneAndLinkReferences; -import static google.registry.flows.domain.DomainFlowUtils.updateDsData; -import static google.registry.flows.domain.DomainFlowUtils.validateContactsHaveTypes; -import static google.registry.flows.domain.DomainFlowUtils.validateDsData; -import static google.registry.flows.domain.DomainFlowUtils.validateFeesAckedIfPresent; -import static google.registry.flows.domain.DomainFlowUtils.validateNameserversAllowedOnDomain; -import static google.registry.flows.domain.DomainFlowUtils.validateNameserversAllowedOnTld; -import static google.registry.flows.domain.DomainFlowUtils.validateNameserversCountForTld; -import static google.registry.flows.domain.DomainFlowUtils.validateNoDuplicateContacts; -import static google.registry.flows.domain.DomainFlowUtils.validateRegistrantAllowedOnTld; -import static google.registry.flows.domain.DomainFlowUtils.validateRequiredContactsPresent; -import static google.registry.flows.domain.DomainFlowUtils.verifyApplicationDomainMatchesTargetId; -import static google.registry.flows.domain.DomainFlowUtils.verifyClientUpdateNotProhibited; -import static google.registry.flows.domain.DomainFlowUtils.verifyNotInPendingDelete; -import static google.registry.model.EppResourceUtils.loadDomainApplication; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.util.CollectionUtils.nullToEmpty; - -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Sets; -import com.google.common.net.InternetDomainName; -import com.googlecode.objectify.Key; -import google.registry.flows.EppException; -import google.registry.flows.EppException.StatusProhibitsOperationException; -import google.registry.flows.ExtensionManager; -import google.registry.flows.FlowModule.ApplicationId; -import google.registry.flows.FlowModule.ClientId; -import google.registry.flows.FlowModule.Superuser; -import google.registry.flows.FlowModule.TargetId; -import google.registry.flows.TransactionalFlow; -import google.registry.flows.annotations.ReportingSpec; -import google.registry.model.ImmutableObject; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.DomainCommand.Update; -import google.registry.model.domain.DomainCommand.Update.AddRemove; -import google.registry.model.domain.DomainCommand.Update.Change; -import google.registry.model.domain.fee.FeeUpdateCommandExtension; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.model.domain.launch.LaunchUpdateExtension; -import google.registry.model.domain.metadata.MetadataExtension; -import google.registry.model.domain.secdns.SecDnsUpdateExtension; -import google.registry.model.eppcommon.AuthInfo; -import google.registry.model.eppcommon.StatusValue; -import google.registry.model.eppinput.EppInput; -import google.registry.model.eppinput.ResourceCommand; -import google.registry.model.eppoutput.EppResponse; -import google.registry.model.registry.Registry; -import google.registry.model.reporting.HistoryEntry; -import google.registry.model.reporting.IcannReportingTypes.ActivityReportField; -import java.util.Optional; -import javax.inject.Inject; -import org.joda.time.DateTime; - -/** - * An EPP flow that updates a domain application. - * - *

Updates can change contacts, nameservers and delegation signer data of an application. Updates - * cannot change the domain name that is being applied for. - * - * @error {@link google.registry.flows.EppException.UnimplementedExtensionException} - * @error {@link google.registry.flows.ResourceFlowUtils.AddRemoveSameValueException} - * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} - * @error {@link google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException} - * @error {@link google.registry.flows.ResourceFlowUtils.StatusNotClientSettableException} - * @error {@link google.registry.flows.exceptions.ResourceHasClientUpdateProhibitedException} - * @error {@link google.registry.flows.exceptions.ResourceStatusProhibitsOperationException} - * @error {@link DomainFlowUtils.ApplicationDomainNameMismatchException} - * @error {@link DomainFlowUtils.DuplicateContactForRoleException} - * @error {@link DomainFlowUtils.EmptySecDnsUpdateException} - * @error {@link DomainFlowUtils.FeesMismatchException} - * @error {@link DomainFlowUtils.LinkedResourcesDoNotExistException} - * @error {@link DomainFlowUtils.MaxSigLifeChangeNotSupportedException} - * @error {@link DomainFlowUtils.MissingAdminContactException} - * @error {@link DomainFlowUtils.MissingContactTypeException} - * @error {@link DomainFlowUtils.MissingTechnicalContactException} - * @error {@link DomainFlowUtils.NameserversNotAllowedForTldException} - * @error {@link DomainFlowUtils.NameserversNotSpecifiedForTldWithNameserverWhitelistException} - * @error {@link DomainFlowUtils.NameserversNotAllowedForDomainException} - * @error {@link DomainFlowUtils.NameserversNotSpecifiedForNameserverRestrictedDomainException} - * @error {@link DomainFlowUtils.NotAuthorizedForTldException} - * @error {@link DomainFlowUtils.RegistrantNotAllowedException} - * @error {@link DomainFlowUtils.SecDnsAllUsageException} - * @error {@link DomainFlowUtils.TooManyDsRecordsException} - * @error {@link DomainFlowUtils.TooManyNameserversException} - * @error {@link DomainFlowUtils.UrgentAttributeNotSupportedException} - * @error {@link DomainApplicationUpdateFlow.ApplicationStatusProhibitsUpdateException} - */ -@ReportingSpec(ActivityReportField.DOMAIN_UPDATE) // Applications are technically domains in EPP. -public class DomainApplicationUpdateFlow implements TransactionalFlow { - - /** - * Note that CLIENT_UPDATE_PROHIBITED is intentionally not in this list. This is because it - * requires special checking, since you must be able to clear the status off the object with an - * update. - */ - private static final ImmutableSet UPDATE_DISALLOWED_STATUSES = - Sets.immutableEnumSet( - StatusValue.PENDING_DELETE, - StatusValue.SERVER_UPDATE_PROHIBITED); - - private static final ImmutableSet UPDATE_DISALLOWED_APPLICATION_STATUSES = - Sets.immutableEnumSet( - ApplicationStatus.INVALID, - ApplicationStatus.REJECTED, - ApplicationStatus.ALLOCATED); - - @Inject ResourceCommand resourceCommand; - @Inject ExtensionManager extensionManager; - @Inject EppInput eppInput; - @Inject Optional authInfo; - @Inject @ClientId String clientId; - @Inject @TargetId String targetId; - @Inject @ApplicationId String applicationId; - @Inject @Superuser boolean isSuperuser; - @Inject HistoryEntry.Builder historyBuilder; - @Inject EppResponse.Builder responseBuilder; - @Inject DomainPricingLogic pricingLogic; - @Inject DomainApplicationUpdateFlow() {} - - @Override - public final EppResponse run() throws EppException { - extensionManager.register( - FeeUpdateCommandExtension.class, - LaunchUpdateExtension.class, - MetadataExtension.class, - SecDnsUpdateExtension.class); - extensionManager.validate(); - validateClientIsLoggedIn(clientId); - DateTime now = ofy().getTransactionTime(); - Update command = cloneAndLinkReferences((Update) resourceCommand, now); - DomainApplication existingApplication = verifyExistence( - DomainApplication.class, applicationId, loadDomainApplication(applicationId, now)); - verifyApplicationDomainMatchesTargetId(existingApplication, targetId); - verifyNoDisallowedStatuses(existingApplication, UPDATE_DISALLOWED_STATUSES); - verifyOptionalAuthInfo(authInfo, existingApplication); - verifyUpdateAllowed(existingApplication, command, now); - HistoryEntry historyEntry = buildHistoryEntry(existingApplication, now); - DomainApplication newApplication = updateApplication(existingApplication, command, now); - validateNewApplication(newApplication); - ofy().save().entities(newApplication, historyEntry); - return responseBuilder.build(); - } - - protected final void verifyUpdateAllowed( - DomainApplication existingApplication, Update command, DateTime now) throws EppException { - AddRemove add = command.getInnerAdd(); - AddRemove remove = command.getInnerRemove(); - String tld = existingApplication.getTld(); - if (!isSuperuser) { - verifyResourceOwnership(clientId, existingApplication); - verifyClientUpdateNotProhibited(command, existingApplication); - verifyAllStatusesAreClientSettable(union(add.getStatusValues(), remove.getStatusValues())); - checkAllowedAccessToTld(clientId, tld); - } - if (UPDATE_DISALLOWED_APPLICATION_STATUSES - .contains(existingApplication.getApplicationStatus())) { - throw new ApplicationStatusProhibitsUpdateException( - existingApplication.getApplicationStatus()); - } - Registry registry = Registry.get(tld); - FeesAndCredits feesAndCredits = - pricingLogic.getApplicationUpdatePrice(registry, existingApplication, now); - Optional feeUpdate = - eppInput.getSingleExtension(FeeUpdateCommandExtension.class); - validateFeesAckedIfPresent(feeUpdate, feesAndCredits); - verifyNotInPendingDelete( - add.getContacts(), - command.getInnerChange().getRegistrant(), - add.getNameservers()); - validateContactsHaveTypes(add.getContacts()); - validateContactsHaveTypes(remove.getContacts()); - validateRegistrantAllowedOnTld(tld, command.getInnerChange().getRegistrantContactId()); - validateNameserversAllowedOnTld( - tld, add.getNameserverFullyQualifiedHostNames()); - InternetDomainName domainName = - InternetDomainName.from(existingApplication.getFullyQualifiedDomainName()); - validateNameserversAllowedOnDomain( - domainName, nullToEmpty(add.getNameserverFullyQualifiedHostNames())); - } - - private HistoryEntry buildHistoryEntry(DomainApplication existingApplication, DateTime now) { - return historyBuilder - .setType(HistoryEntry.Type.DOMAIN_APPLICATION_UPDATE) - .setModificationTime(now) - .setParent(Key.create(existingApplication)) - .build(); - } - - private DomainApplication updateApplication( - DomainApplication application, Update command, DateTime now) throws EppException { - AddRemove add = command.getInnerAdd(); - AddRemove remove = command.getInnerRemove(); - checkSameValuesNotAddedAndRemoved(add.getNameservers(), remove.getNameservers()); - checkSameValuesNotAddedAndRemoved(add.getContacts(), remove.getContacts()); - checkSameValuesNotAddedAndRemoved(add.getStatusValues(), remove.getStatusValues()); - Change change = command.getInnerChange(); - Optional secDnsUpdate = - eppInput.getSingleExtension(SecDnsUpdateExtension.class); - return application.asBuilder() - // Handle the secDNS extension. - .setDsData(secDnsUpdate.isPresent() - ? updateDsData(application.getDsData(), secDnsUpdate.get()) - : application.getDsData()) - .setLastEppUpdateTime(now) - .setLastEppUpdateClientId(clientId) - .addStatusValues(add.getStatusValues()) - .removeStatusValues(remove.getStatusValues()) - .addNameservers(add.getNameservers()) - .removeNameservers(remove.getNameservers()) - .addContacts(add.getContacts()) - .removeContacts(remove.getContacts()) - .setRegistrant(firstNonNull(change.getRegistrant(), application.getRegistrant())) - .setAuthInfo(firstNonNull(change.getAuthInfo(), application.getAuthInfo())) - .build(); - } - - private void validateNewApplication(DomainApplication newApplication) throws EppException { - validateNoDuplicateContacts(newApplication.getContacts()); - validateRequiredContactsPresent(newApplication.getRegistrant(), newApplication.getContacts()); - validateDsData(newApplication.getDsData()); - validateNameserversCountForTld( - newApplication.getTld(), - InternetDomainName.from(newApplication.getFullyQualifiedDomainName()), - newApplication.getNameservers().size()); - } - - /** Application status prohibits this domain update. */ - static class ApplicationStatusProhibitsUpdateException extends StatusProhibitsOperationException { - public ApplicationStatusProhibitsUpdateException(ApplicationStatus status) { - super(String.format( - "Applications in state %s can not be updated", - UPPER_UNDERSCORE.to(LOWER_CAMEL, status.name()))); - } - } -} diff --git a/java/google/registry/flows/domain/DomainCheckFlow.java b/java/google/registry/flows/domain/DomainCheckFlow.java index fbb197245..2735c4249 100644 --- a/java/google/registry/flows/domain/DomainCheckFlow.java +++ b/java/google/registry/flows/domain/DomainCheckFlow.java @@ -24,13 +24,11 @@ import static google.registry.flows.domain.DomainFlowUtils.validateDomainName; import static google.registry.flows.domain.DomainFlowUtils.validateDomainNameWithIdnTables; import static google.registry.flows.domain.DomainFlowUtils.verifyNotInPredelegation; import static google.registry.model.EppResourceUtils.checkResourcesExist; -import static google.registry.model.index.DomainApplicationIndex.loadActiveApplicationsByDomainName; import static google.registry.model.registry.label.ReservationType.getTypeOfHighestSeverity; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Sets; import com.google.common.net.InternetDomainName; import google.registry.config.RegistryConfig.Config; import google.registry.flows.EppException; @@ -58,7 +56,6 @@ import google.registry.model.eppoutput.CheckData.DomainCheckData; import google.registry.model.eppoutput.EppResponse; import google.registry.model.eppoutput.EppResponse.ResponseExtension; import google.registry.model.registry.Registry; -import google.registry.model.registry.Registry.TldState; import google.registry.model.registry.label.ReservationType; import google.registry.model.reporting.IcannReportingTypes.ActivityReportField; import google.registry.util.Clock; @@ -99,14 +96,6 @@ import org.joda.time.DateTime; @ReportingSpec(ActivityReportField.DOMAIN_CHECK) public final class DomainCheckFlow implements Flow { - /** - * The TLD states during which we want to report a domain with pending applications as - * unavailable. - */ - private static final ImmutableSet PENDING_ALLOCATION_TLD_STATES = - Sets.immutableEnumSet( - TldState.GENERAL_AVAILABILITY, TldState.START_DATE_SUNRISE, TldState.QUIET_PERIOD); - @Inject ResourceCommand resourceCommand; @Inject ExtensionManager extensionManager; @Inject EppInput eppInput; @@ -166,7 +155,7 @@ public final class DomainCheckFlow implements Flow { ImmutableList.Builder checks = new ImmutableList.Builder<>(); for (String targetId : targetIds) { Optional message = - getMessageForCheck(domainNames.get(targetId), existingIds, tokenCheckResults, now); + getMessageForCheck(domainNames.get(targetId), existingIds, tokenCheckResults); checks.add(DomainCheck.create(!message.isPresent(), targetId, message.orElse(null))); } BeforeResponseReturnData responseData = @@ -185,18 +174,10 @@ public final class DomainCheckFlow implements Flow { private Optional getMessageForCheck( InternetDomainName domainName, Set existingIds, - ImmutableMap tokenCheckResults, - DateTime now) { + ImmutableMap tokenCheckResults) { if (existingIds.contains(domainName.toString())) { return Optional.of("In use"); } - Registry registry = Registry.get(domainName.parent().toString()); - if (PENDING_ALLOCATION_TLD_STATES.contains(registry.getTldState(now)) - && loadActiveApplicationsByDomainName(domainName.toString(), now) - .stream() - .anyMatch(input -> !input.getApplicationStatus().isFinalStatus())) { - return Optional.of("Pending allocation"); - } ImmutableSet reservationTypes = getReservationTypes(domainName); if (!reservationTypes.isEmpty()) { return Optional.of(getTypeOfHighestSeverity(reservationTypes).getMessageForCheck()); diff --git a/java/google/registry/flows/domain/DomainClaimsCheckFlow.java b/java/google/registry/flows/domain/DomainClaimsCheckFlow.java index 3c5848f13..8ac4a408d 100644 --- a/java/google/registry/flows/domain/DomainClaimsCheckFlow.java +++ b/java/google/registry/flows/domain/DomainClaimsCheckFlow.java @@ -44,7 +44,6 @@ import google.registry.model.eppinput.EppInput; import google.registry.model.eppinput.ResourceCommand; import google.registry.model.eppoutput.EppResponse; import google.registry.model.registry.Registry; -import google.registry.model.registry.Registry.TldState; import google.registry.model.reporting.IcannReportingTypes.ActivityReportField; import google.registry.model.tmch.ClaimsListShard; import google.registry.util.Clock; @@ -63,7 +62,6 @@ import org.joda.time.DateTime; * @error {@link DomainFlowUtils.ClaimsPeriodEndedException} * @error {@link DomainFlowUtils.NotAuthorizedForTldException} * @error {@link DomainFlowUtils.TldDoesNotExistException} - * @error {@link DomainClaimsCheckNotAllowedInSunrise} * @error {@link DomainClaimsCheckNotAllowedWithAllocationTokens} */ @ReportingSpec(ActivityReportField.DOMAIN_CHECK) // Claims check is a special domain check. @@ -104,9 +102,6 @@ public final class DomainClaimsCheckFlow implements Flow { Registry registry = Registry.get(tld); DateTime now = clock.nowUtc(); verifyNotInPredelegation(registry, now); - if (registry.getTldState(now) == TldState.SUNRISE) { - throw new DomainClaimsCheckNotAllowedInSunrise(); - } verifyClaimsPeriodNotEnded(registry, now); } } @@ -120,13 +115,6 @@ public final class DomainClaimsCheckFlow implements Flow { .build(); } - /** Claims checks are not allowed during sunrise. */ - static class DomainClaimsCheckNotAllowedInSunrise extends CommandUseErrorException { - public DomainClaimsCheckNotAllowedInSunrise() { - super("Claims checks are not allowed during sunrise"); - } - } - /** Claims checks are not allowed with allocation tokens. */ static class DomainClaimsCheckNotAllowedWithAllocationTokens extends CommandUseErrorException { public DomainClaimsCheckNotAllowedWithAllocationTokens() { diff --git a/java/google/registry/flows/domain/DomainCreateFlow.java b/java/google/registry/flows/domain/DomainCreateFlow.java index 3a566e81a..061a51323 100644 --- a/java/google/registry/flows/domain/DomainCreateFlow.java +++ b/java/google/registry/flows/domain/DomainCreateFlow.java @@ -45,26 +45,21 @@ import static google.registry.model.EppResourceUtils.createDomainRepoId; import static google.registry.model.eppcommon.StatusValue.SERVER_HOLD; import static google.registry.model.eppcommon.StatusValue.SERVER_TRANSFER_PROHIBITED; import static google.registry.model.eppcommon.StatusValue.SERVER_UPDATE_PROHIBITED; -import static google.registry.model.index.DomainApplicationIndex.loadActiveApplicationsByDomainName; import static google.registry.model.ofy.ObjectifyService.ofy; import static google.registry.model.registry.Registry.TldState.GENERAL_AVAILABILITY; import static google.registry.model.registry.Registry.TldState.START_DATE_SUNRISE; -import static google.registry.model.registry.Registry.TldState.SUNRISE; -import static google.registry.model.registry.Registry.TldState.SUNRUSH; import static google.registry.model.registry.label.ReservationType.NAME_COLLISION; import static google.registry.util.DateTimeUtils.END_OF_TIME; import static google.registry.util.DateTimeUtils.leapSafeAddYears; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Sets; import com.google.common.net.InternetDomainName; import com.googlecode.objectify.Key; import google.registry.dns.DnsQueue; import google.registry.flows.EppException; import google.registry.flows.EppException.CommandUseErrorException; import google.registry.flows.EppException.ParameterValuePolicyErrorException; -import google.registry.flows.EppException.StatusProhibitsOperationException; import google.registry.flows.ExtensionManager; import google.registry.flows.FlowModule.ClientId; import google.registry.flows.FlowModule.Superuser; @@ -81,7 +76,6 @@ import google.registry.model.billing.BillingEvent; import google.registry.model.billing.BillingEvent.Flag; import google.registry.model.billing.BillingEvent.Reason; import google.registry.model.billing.BillingEvent.Recurring; -import google.registry.model.domain.DomainApplication; import google.registry.model.domain.DomainCommand; import google.registry.model.domain.DomainCommand.Create; import google.registry.model.domain.DomainResource; @@ -130,7 +124,6 @@ import org.joda.time.Duration; * @error {@link google.registry.flows.EppException.UnimplementedExtensionException} * @error {@link google.registry.flows.ExtensionManager.UndeclaredServiceExtensionException} * @error {@link DomainCreateFlow.AnchorTenantCreatePeriodException} - * @error {@link DomainCreateFlow.DomainHasOpenApplicationsException} * @error {@link DomainCreateFlow.MustHaveSignedMarksInCurrentPhaseException} * @error {@link DomainCreateFlow.NoGeneralRegistrationsInCurrentPhaseException} * @error {@link DomainCreateFlow.SignedMarksOnlyDuringSunriseException} @@ -191,19 +184,6 @@ import org.joda.time.Duration; @ReportingSpec(ActivityReportField.DOMAIN_CREATE) public class DomainCreateFlow implements TransactionalFlow { - /** - * States when the TLD is in sunrise. - * - *

Note that a TLD in SUNRUSH means sunrise is in effect, but not necessarily that the "create" - * command is a "sunrise create". It might be a landrush create. We must make sure there's a - * signed mark to know if the create is "sunrise" or "landrush" for verification purposes. - * - *

Note also that SUNRISE (start-date sunrise) and LANDRUSH can't "naturally" succeed in this - * flow. They can only succeed if sent as a superuser or anchor tenant. - */ - private static final ImmutableSet SUNRISE_STATES = - Sets.immutableEnumSet(SUNRISE, SUNRUSH, START_DATE_SUNRISE); - /** Anchor tenant creates should always be for 2 years, since they get 2 years free. */ private static final int ANCHOR_TENANT_CREATE_VALID_YEARS = 2; @@ -260,7 +240,7 @@ public class DomainCreateFlow implements TransactionalFlow { verifyNoCodeMarks(launchCreate.get()); validateLaunchCreateNotice(launchCreate.get().getNotice(), domainLabel, isSuperuser, now); } - boolean isSunriseCreate = hasSignedMarks && SUNRISE_STATES.contains(tldState); + boolean isSunriseCreate = hasSignedMarks && tldState == START_DATE_SUNRISE; Optional allocationToken = verifyAllocationTokenIfPresent(command, registry, clientId, now); boolean isAnchorTenant = @@ -275,6 +255,7 @@ public class DomainCreateFlow implements TransactionalFlow { // registering premium domains. if (!isSuperuser) { checkAllowedAccessToTld(clientId, registry.getTldStr()); + verifyIsGaOrIsSpecialCase(tldState, isAnchorTenant, hasSignedMarks); if (launchCreate.isPresent()) { verifyLaunchPhaseMatchesRegistryPhase(registry, launchCreate.get(), now); } @@ -288,8 +269,6 @@ public class DomainCreateFlow implements TransactionalFlow { verifyClaimsNoticeIfAndOnlyIfNeeded(domainName, hasSignedMarks, hasClaimsNotice); } verifyPremiumNameIsNotBlocked(targetId, now, clientId); - verifyNoOpenApplications(now); - verifyIsGaOrIsSpecialCase(tldState, isAnchorTenant, hasSignedMarks); verifySignedMarkOnlyInSunrise(hasSignedMarks, tldState); } String signedMarkId = null; @@ -418,7 +397,7 @@ public class DomainCreateFlow implements TransactionalFlow { */ static void verifySignedMarkOnlyInSunrise(boolean hasSignedMarks, TldState tldState) throws EppException { - if (hasSignedMarks && !SUNRISE_STATES.contains(tldState)) { + if (hasSignedMarks && tldState != START_DATE_SUNRISE) { throw new SignedMarksOnlyDuringSunriseException(); } } @@ -434,15 +413,6 @@ public class DomainCreateFlow implements TransactionalFlow { } } - /** Prohibit creating a domain if there is an open application for the same name. */ - private void verifyNoOpenApplications(DateTime now) throws DomainHasOpenApplicationsException { - for (DomainApplication application : loadActiveApplicationsByDomainName(targetId, now)) { - if (!application.getApplicationStatus().isFinalStatus()) { - throw new DomainHasOpenApplicationsException(); - } - } - } - /** * Prohibit registrations unless QLP, General Availability or Start Date Sunrise. * @@ -465,7 +435,7 @@ public class DomainCreateFlow implements TransactionalFlow { return; } - // During START_DATE_SUNRISE, only allow registration with a signed marks. + // During START_DATE_SUNRISE, only allow registration with signed marks. if (START_DATE_SUNRISE.equals(tldState)) { if (!hasSignedMarks) { throw new MustHaveSignedMarksInCurrentPhaseException(); @@ -626,13 +596,6 @@ public class DomainCreateFlow implements TransactionalFlow { } } - /** There is an open application for this domain. */ - static class DomainHasOpenApplicationsException extends StatusProhibitsOperationException { - public DomainHasOpenApplicationsException() { - super("There is an open application for this domain"); - } - } - /** The current registry phase does not allow for general registrations. */ static class NoGeneralRegistrationsInCurrentPhaseException extends CommandUseErrorException { public NoGeneralRegistrationsInCurrentPhaseException() { diff --git a/java/google/registry/flows/domain/DomainFlowUtils.java b/java/google/registry/flows/domain/DomainFlowUtils.java index 8223441ed..ed9e16f6e 100644 --- a/java/google/registry/flows/domain/DomainFlowUtils.java +++ b/java/google/registry/flows/domain/DomainFlowUtils.java @@ -26,6 +26,8 @@ import static google.registry.model.domain.DomainResource.MAX_REGISTRATION_YEARS import static google.registry.model.ofy.ObjectifyService.ofy; import static google.registry.model.registry.Registries.findTldForName; import static google.registry.model.registry.Registries.getTlds; +import static google.registry.model.registry.Registry.TldState.GENERAL_AVAILABILITY; +import static google.registry.model.registry.Registry.TldState.START_DATE_SUNRISE; import static google.registry.model.registry.label.ReservationType.FULLY_BLOCKED; import static google.registry.model.registry.label.ReservationType.NAMESERVER_RESTRICTED; import static google.registry.model.registry.label.ReservationType.RESERVED_FOR_ANCHOR_TENANT; @@ -69,7 +71,6 @@ import google.registry.model.billing.BillingEvent.Recurring; import google.registry.model.contact.ContactResource; import google.registry.model.domain.DesignatedContact; import google.registry.model.domain.DesignatedContact.Type; -import google.registry.model.domain.DomainApplication; import google.registry.model.domain.DomainBase; import google.registry.model.domain.DomainCommand.Create; import google.registry.model.domain.DomainCommand.CreateOrUpdate; @@ -132,14 +133,11 @@ import org.joda.time.Duration; public class DomainFlowUtils { /** Map from launch phases to the allowed tld states. */ - private static final ImmutableMultimap LAUNCH_PHASE_TO_TLD_STATES = - new ImmutableMultimap.Builder() - .put(LaunchPhase.SUNRISE, TldState.SUNRISE) - .put(LaunchPhase.SUNRUSH, TldState.SUNRUSH) - .put(LaunchPhase.LANDRUSH, TldState.LANDRUSH) - .put(LaunchPhase.CLAIMS, TldState.GENERAL_AVAILABILITY) - .put(LaunchPhase.SUNRISE, TldState.START_DATE_SUNRISE) - .put(LaunchPhase.OPEN, TldState.GENERAL_AVAILABILITY) + private static final ImmutableMap LAUNCH_PHASE_TO_TLD_STATES = + new ImmutableMap.Builder() + .put(LaunchPhase.CLAIMS, GENERAL_AVAILABILITY) + .put(LaunchPhase.SUNRISE, START_DATE_SUNRISE) + .put(LaunchPhase.OPEN, GENERAL_AVAILABILITY) .build(); /** Reservation types that are only allowed in sunrise by policy. */ @@ -154,14 +152,6 @@ public class DomainFlowUtils { + "delegated. Please visit https://www.icann.org/namecollision for more information on " + "name collision."; - /** Non-sunrise tld states. */ - private static final ImmutableSet DISALLOWED_TLD_STATES_FOR_APPLICATION_FLOWS = - Sets.immutableEnumSet( - TldState.PREDELEGATION, - TldState.QUIET_PERIOD, - TldState.START_DATE_SUNRISE, - TldState.GENERAL_AVAILABILITY); - /** Strict validator for ascii lowercase letters, digits, and "-", allowing "." as a separator */ private static final CharMatcher ALLOWED_CHARS = CharMatcher.inRange('a', 'z').or(CharMatcher.inRange('0', '9').or(CharMatcher.anyOf("-."))); @@ -474,21 +464,14 @@ public class DomainFlowUtils { /** Verifies that a launch extension's specified phase matches the specified registry's phase. */ static void verifyLaunchPhaseMatchesRegistryPhase( Registry registry, LaunchExtension launchExtension, DateTime now) throws EppException { - if (!LAUNCH_PHASE_TO_TLD_STATES.containsEntry( - launchExtension.getPhase(), registry.getTldState(now))) { + if (!LAUNCH_PHASE_TO_TLD_STATES.containsKey(launchExtension.getPhase()) + || LAUNCH_PHASE_TO_TLD_STATES.get(launchExtension.getPhase()) + != registry.getTldState(now)) { // No launch operations are allowed during the quiet period or predelegation. throw new LaunchPhaseMismatchException(); } } - /** Verifies that an application's domain name matches the target id (from a command). */ - static void verifyApplicationDomainMatchesTargetId(DomainApplication application, String targetId) - throws EppException { - if (!application.getFullyQualifiedDomainName().equals(targetId)) { - throw new ApplicationDomainNameMismatchException(); - } - } - /** * Verifies that a domain name is allowed to be delegated to the given client id. The only case * where it would not be allowed is if domain name is premium, and premium names are blocked by @@ -601,7 +584,7 @@ public class DomainFlowUtils { String domainNameString = domain.toString(); Registry registry = Registry.get(domain.parent().toString()); int years = verifyUnitIsYears(feeRequest.getPeriod()).getValue(); - boolean isSunrise = registry.getTldState(now).equals(TldState.SUNRISE); + boolean isSunrise = (registry.getTldState(now) == START_DATE_SUNRISE); if (feeRequest.getPhase() != null || feeRequest.getSubphase() != null) { throw new FeeChecksDontSupportPhasesException(); @@ -822,9 +805,8 @@ public class DomainFlowUtils { } /** - * Check whether a new registration period (via a create, allocate, or application create) does - * not extend beyond a maximum number of years (e.g. {@link - * DomainResource#MAX_REGISTRATION_YEARS}). + * Check that a new registration period (via a create) does not extend beyond a maximum number of + * years (e.g. {@link DomainResource#MAX_REGISTRATION_YEARS}). * * @throws ExceedsMaxRegistrationYearsException if the new registration period is too long */ @@ -879,7 +861,7 @@ public class DomainFlowUtils { return ImmutableSet.copyOf(union(difference(oldDsData, toRemove), toAdd)); } - /** If a domain or application has "clientUpdateProhibited" set, updates must clear it or fail. */ + /** If a domain "clientUpdateProhibited" set, updates must clear it or fail. */ static void verifyClientUpdateNotProhibited(Update command, DomainBase existingResource) throws ResourceHasClientUpdateProhibitedException { if (existingResource.getStatusValues().contains(StatusValue.CLIENT_UPDATE_PROHIBITED) @@ -905,14 +887,6 @@ public class DomainFlowUtils { } } - /** Check that the registry phase is not incompatible with launch extension flows. */ - static void verifyRegistryStateAllowsApplicationFlows(Registry registry, DateTime now) - throws BadCommandForRegistryPhaseException { - if (DISALLOWED_TLD_STATES_FOR_APPLICATION_FLOWS.contains(registry.getTldState(now))) { - throw new BadCommandForRegistryPhaseException(); - } - } - /** Check that the registry phase is not predelegation, during which some flows are forbidden. */ public static void verifyNotInPredelegation(Registry registry, DateTime now) throws BadCommandForRegistryPhaseException { @@ -921,7 +895,7 @@ public class DomainFlowUtils { } } - /** Validate the contacts and nameservers specified in a domain or application create command. */ + /** Validate the contacts and nameservers specified in a domain create command. */ static void validateCreateCommandContactsAndNameservers( Create command, Registry registry, InternetDomainName domainName) throws EppException { verifyNotInPendingDelete( @@ -993,7 +967,7 @@ public class DomainFlowUtils { /** * Check that if there's a claims notice it's on the claims list, and that if there's not one it's - * not on the claims list and is a sunrise application. + * not on the claims list. */ static void verifyClaimsNoticeIfAndOnlyIfNeeded( InternetDomainName domainName, boolean hasSignedMarks, boolean hasClaimsNotice) @@ -1016,7 +990,7 @@ public class DomainFlowUtils { } } - /** Create a response extension listing the fees on a domain or application create. */ + /** Create a response extension listing the fees on a domain create. */ static FeeTransformResponseExtension createFeeCreateResponse( FeeTransformCommandExtension feeCreate, FeesAndCredits feesAndCredits) { return feeCreate @@ -1185,13 +1159,6 @@ public class DomainFlowUtils { } } - /** Application referenced does not match specified domain name. */ - static class ApplicationDomainNameMismatchException extends ParameterValuePolicyErrorException { - public ApplicationDomainNameMismatchException() { - super("Application referenced does not match specified domain name"); - } - } - /** Too many DS records set on a domain. */ static class TooManyDsRecordsException extends ParameterValuePolicyErrorException { public TooManyDsRecordsException(String message) { diff --git a/java/google/registry/flows/domain/DomainPricingLogic.java b/java/google/registry/flows/domain/DomainPricingLogic.java index 22e900756..3fd6928c7 100644 --- a/java/google/registry/flows/domain/DomainPricingLogic.java +++ b/java/google/registry/flows/domain/DomainPricingLogic.java @@ -22,13 +22,11 @@ import com.google.common.net.InternetDomainName; import google.registry.flows.EppException; import google.registry.flows.FlowScope; import google.registry.flows.custom.DomainPricingCustomLogic; -import google.registry.flows.custom.DomainPricingCustomLogic.ApplicationUpdatePriceParameters; import google.registry.flows.custom.DomainPricingCustomLogic.CreatePriceParameters; import google.registry.flows.custom.DomainPricingCustomLogic.RenewPriceParameters; import google.registry.flows.custom.DomainPricingCustomLogic.RestorePriceParameters; import google.registry.flows.custom.DomainPricingCustomLogic.TransferPriceParameters; import google.registry.flows.custom.DomainPricingCustomLogic.UpdatePriceParameters; -import google.registry.model.domain.DomainApplication; import google.registry.model.domain.fee.BaseFee; import google.registry.model.domain.fee.BaseFee.FeeType; import google.registry.model.domain.fee.Fee; @@ -162,25 +160,6 @@ public final class DomainPricingLogic { .build()); } - /** Returns a new domain application update price for the pricer. */ - @SuppressWarnings("unused") - public FeesAndCredits getApplicationUpdatePrice( - Registry registry, DomainApplication application, DateTime date) throws EppException { - BaseFee feeOrCredit = - Fee.create(Money.zero(registry.getCurrency()).getAmount(), FeeType.UPDATE); - return customLogic.customizeApplicationUpdatePrice( - ApplicationUpdatePriceParameters.newBuilder() - .setFeesAndCredits( - new FeesAndCredits.Builder() - .setCurrency(registry.getCurrency()) - .setFeesAndCredits(feeOrCredit) - .build()) - .setRegistry(registry) - .setDomainApplication(application) - .setAsOfDate(date) - .build()); - } - /** Returns the fee class for a given domain and date. */ public Optional getFeeClass(String domainName, DateTime date) { return getDomainFeeClass(domainName, date); diff --git a/java/google/registry/flows/domain/DomainUpdateFlow.java b/java/google/registry/flows/domain/DomainUpdateFlow.java index 39270021e..5aa32a6de 100644 --- a/java/google/registry/flows/domain/DomainUpdateFlow.java +++ b/java/google/registry/flows/domain/DomainUpdateFlow.java @@ -42,7 +42,6 @@ import static google.registry.flows.domain.DomainFlowUtils.verifyClientUpdateNot import static google.registry.flows.domain.DomainFlowUtils.verifyNotInPendingDelete; import static google.registry.model.ofy.ObjectifyService.ofy; import static google.registry.util.CollectionUtils.nullToEmpty; -import static google.registry.util.DateTimeUtils.earliestOf; import com.google.common.collect.ImmutableSet; import com.google.common.net.InternetDomainName; @@ -67,10 +66,8 @@ import google.registry.model.domain.DomainCommand.Update; import google.registry.model.domain.DomainCommand.Update.AddRemove; import google.registry.model.domain.DomainCommand.Update.Change; import google.registry.model.domain.DomainResource; -import google.registry.model.domain.GracePeriod; import google.registry.model.domain.fee.FeeUpdateCommandExtension; import google.registry.model.domain.metadata.MetadataExtension; -import google.registry.model.domain.rgp.GracePeriodStatus; import google.registry.model.domain.secdns.SecDnsUpdateExtension; import google.registry.model.eppcommon.AuthInfo; import google.registry.model.eppcommon.StatusValue; @@ -94,12 +91,6 @@ import org.joda.time.DateTime; * superuser. As such, adding or removing these statuses incurs a billing event. There will be only * one charge per update, even if several such statuses are updated at once. * - *

If a domain was created during the sunrise or landrush phases of a TLD, is still within the - * sunrushAddGracePeriod and has not yet been delegated in DNS, then it will not yet have been - * billed for. Any update that causes the name to be delegated (such * as adding nameservers or - * removing a hold status) will cause the domain to convert to a normal create and be billed for - * accordingly. - * * @error {@link google.registry.flows.EppException.UnimplementedExtensionException} * @error {@link google.registry.flows.ResourceFlowUtils.AddRemoveSameValueException} * @error {@link google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException} @@ -177,16 +168,6 @@ public final class DomainUpdateFlow implements TransactionalFlow { AfterValidationParameters.newBuilder().setExistingDomain(existingDomain).build()); HistoryEntry historyEntry = buildHistoryEntry(existingDomain, now); DomainResource newDomain = performUpdate(command, existingDomain, now); - // If the new domain is in the sunrush add grace period and is now publishable to DNS because we - // have added nameserver or removed holds, we have to convert it to a standard add grace period. - if (newDomain.shouldPublishToDns()) { - for (GracePeriod gracePeriod : newDomain.getGracePeriods()) { - if (gracePeriod.isSunrushAddGracePeriod()) { - newDomain = convertSunrushAddToAdd(newDomain, gracePeriod, historyEntry, now); - break; // There can only be one sunrush add grace period. - } - } - } validateNewState(newDomain); dnsQueue.addDomainRefreshTask(targetId); ImmutableSet.Builder entitiesToSave = new ImmutableSet.Builder<>(); @@ -289,50 +270,6 @@ public final class DomainUpdateFlow implements TransactionalFlow { return domainBuilder.build(); } - private DomainResource convertSunrushAddToAdd( - DomainResource newDomain, GracePeriod gracePeriod, HistoryEntry historyEntry, DateTime now) { - // Cancel the billing event for the sunrush add and replace it with a new billing event. - BillingEvent.Cancellation billingEventCancellation = - BillingEvent.Cancellation.forGracePeriod(gracePeriod, historyEntry, targetId); - BillingEvent.OneTime billingEvent = - createBillingEventForSunrushConversion(newDomain, historyEntry, gracePeriod, now); - ofy().save().entities(billingEvent, billingEventCancellation); - // Modify the grace periods on the domain. - return newDomain.asBuilder() - .removeGracePeriod(gracePeriod) - .addGracePeriod(GracePeriod.forBillingEvent(GracePeriodStatus.ADD, billingEvent)) - .build(); - } - - private BillingEvent.OneTime createBillingEventForSunrushConversion( - DomainResource existingDomain, - HistoryEntry historyEntry, - GracePeriod sunrushAddGracePeriod, - DateTime now) { - // Compute the expiration time of the add grace period. We will not allow it to be after the - // sunrush add grace period expiration time (i.e. you can't get extra add grace period by - // setting a nameserver). - DateTime addGracePeriodExpirationTime = earliestOf( - now.plus(Registry.get(existingDomain.getTld()).getAddGracePeriodLength()), - sunrushAddGracePeriod.getExpirationTime()); - // Create a new billing event for the add grace period. Note that we do this even if it would - // occur at the same time as the sunrush add grace period, as the event time will differ - // between them. - BillingEvent.OneTime originalAddEvent = - ofy().load().key(sunrushAddGracePeriod.getOneTimeBillingEvent()).now(); - return new BillingEvent.OneTime.Builder() - .setReason(Reason.CREATE) - .setTargetId(targetId) - .setFlags(originalAddEvent.getFlags()) - .setClientId(sunrushAddGracePeriod.getClientId()) - .setCost(originalAddEvent.getCost()) - .setPeriodYears(originalAddEvent.getPeriodYears()) - .setEventTime(now) - .setBillingTime(addGracePeriodExpirationTime) - .setParent(historyEntry) - .build(); - } - private void validateRegistrantIsntBeingRemoved(Change change) throws EppException { if (change.getRegistrantContactId() != null && change.getRegistrantContactId().isEmpty()) { throw new MissingRegistrantException(); diff --git a/java/google/registry/flows/picker/FlowPicker.java b/java/google/registry/flows/picker/FlowPicker.java index c973537d8..87057a234 100644 --- a/java/google/registry/flows/picker/FlowPicker.java +++ b/java/google/registry/flows/picker/FlowPicker.java @@ -14,11 +14,8 @@ package google.registry.flows.picker; -import static google.registry.model.domain.launch.LaunchCreateExtension.CreateType.APPLICATION; - import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableTable; import com.google.common.collect.Table; import google.registry.flows.EppException; @@ -35,11 +32,6 @@ import google.registry.flows.contact.ContactTransferQueryFlow; import google.registry.flows.contact.ContactTransferRejectFlow; import google.registry.flows.contact.ContactTransferRequestFlow; import google.registry.flows.contact.ContactUpdateFlow; -import google.registry.flows.domain.DomainAllocateFlow; -import google.registry.flows.domain.DomainApplicationCreateFlow; -import google.registry.flows.domain.DomainApplicationDeleteFlow; -import google.registry.flows.domain.DomainApplicationInfoFlow; -import google.registry.flows.domain.DomainApplicationUpdateFlow; import google.registry.flows.domain.DomainCheckFlow; import google.registry.flows.domain.DomainClaimsCheckFlow; import google.registry.flows.domain.DomainCreateFlow; @@ -65,11 +57,8 @@ import google.registry.flows.session.LoginFlow; import google.registry.flows.session.LogoutFlow; import google.registry.model.contact.ContactCommand; import google.registry.model.domain.DomainCommand; -import google.registry.model.domain.allocate.AllocateCreateExtension; -import google.registry.model.domain.launch.ApplicationIdTargetExtension; import google.registry.model.domain.launch.LaunchCheckExtension; import google.registry.model.domain.launch.LaunchCheckExtension.CheckType; -import google.registry.model.domain.launch.LaunchCreateExtension; import google.registry.model.domain.launch.LaunchPhase; import google.registry.model.domain.rgp.RestoreCommand.RestoreOp; import google.registry.model.domain.rgp.RgpUpdateExtension; @@ -229,74 +218,6 @@ public class FlowPicker { return resourceCommand == null ? null : resourceCrudFlows.get(resourceCommand.getClass()); }}; - /** The domain allocate flow has a specific extension. */ - private static final FlowProvider ALLOCATE_FLOW_PROVIDER = - new FlowProvider() { - @Override - Class get( - EppInput eppInput, InnerCommand innerCommand, ResourceCommand resourceCommand) { - return (resourceCommand instanceof DomainCommand.Create - && eppInput.getSingleExtension(AllocateCreateExtension.class).isPresent()) - ? DomainAllocateFlow.class - : null; - } - }; - - private static final ImmutableSet LAUNCH_PHASES_DEFAULTING_TO_APPLICATION = - ImmutableSet.of(LaunchPhase.SUNRUSH, LaunchPhase.LANDRUSH); - - /** - * Application CRUD flows have an extension and are keyed on the type of their {@link - * ResourceCommand}. - */ - private static final FlowProvider APPLICATION_CRUD_FLOW_PROVIDER = - new FlowProvider() { - - private final Map, Class> - applicationFlows = - ImmutableMap.of( - DomainCommand.Create.class, DomainApplicationCreateFlow.class, - DomainCommand.Delete.class, DomainApplicationDeleteFlow.class, - DomainCommand.Info.class, DomainApplicationInfoFlow.class, - DomainCommand.Update.class, DomainApplicationUpdateFlow.class); - - @Override - Class get( - EppInput eppInput, InnerCommand innerCommand, ResourceCommand resourceCommand) { - if (eppInput.getSingleExtension(ApplicationIdTargetExtension.class).isPresent()) { - return applicationFlows.get(resourceCommand.getClass()); - } - Optional createExtension = - eppInput.getSingleExtension(LaunchCreateExtension.class); - // Return a flow if the type is APPLICATION. If the type is REGISTRATION, return null. - if (createExtension.isPresent()) { - LaunchPhase launchPhase = createExtension.get().getPhase(); - // has an optional type argument, that can take either "application" or - // "registration". - // https://tools.ietf.org/html/rfc8334#section-3.3.1 - // We get that type via createExtension.get().getCreateType() - // If it isn't given, the function returns null. - // In that case, we need to decide based on the TLD. For now we can't do that - so we - // TEMPORARILY decide as follows: - // landrush and sunrush phases will default to APPLICATION, because there's no possible - // registration for it. - // sunrise defaults to REGISTRATION because we're currenly launching start-date sunrise - // that uses direct registration. - // - // TODO(b/76095570): if createExtension.get().getCreateType() isn't explicitly given, - // we need to set it according to the TldState (which means we need to know the TLD and - // load the Registry - which will probably result in a big refactoring since we can use - // TldState information to pick the flow) - if (APPLICATION.equals(createExtension.get().getCreateType()) - || (createExtension.get().getCreateType() == null - && LAUNCH_PHASES_DEFAULTING_TO_APPLICATION.contains(launchPhase))) { - return applicationFlows.get(resourceCommand.getClass()); - } - } - return null; - } - }; - /** Transfer flows have an {@link InnerCommand} of type {@link Transfer}. */ private static final FlowProvider TRANSFER_FLOW_PROVIDER = new FlowProvider() { private final Table, TransferOp, Class> transferFlows = ImmutableTable @@ -327,8 +248,6 @@ public class FlowPicker { SESSION_FLOW_PROVIDER, POLL_FLOW_PROVIDER, DOMAIN_RESTORE_FLOW_PROVIDER, - ALLOCATE_FLOW_PROVIDER, - APPLICATION_CRUD_FLOW_PROVIDER, DOMAIN_CHECK_FLOW_PROVIDER, RESOURCE_CRUD_FLOW_PROVIDER, TRANSFER_FLOW_PROVIDER); diff --git a/java/google/registry/flows/poll/PollRequestFlow.java b/java/google/registry/flows/poll/PollRequestFlow.java index 970395d29..a5dc53250 100644 --- a/java/google/registry/flows/poll/PollRequestFlow.java +++ b/java/google/registry/flows/poll/PollRequestFlow.java @@ -76,7 +76,6 @@ public class PollRequestFlow implements Flow { .setMessageId(makePollMessageExternalId(pollMessage)) .build()) .setMultipleResData(pollMessage.getResponseData()) - .setExtensions(pollMessage.getResponseExtensions()) .build(); } diff --git a/java/google/registry/mapreduce/inputs/EppResourceBaseReader.java b/java/google/registry/mapreduce/inputs/EppResourceBaseReader.java index 4027b1956..ab4a7e35a 100644 --- a/java/google/registry/mapreduce/inputs/EppResourceBaseReader.java +++ b/java/google/registry/mapreduce/inputs/EppResourceBaseReader.java @@ -40,8 +40,7 @@ abstract class EppResourceBaseReader extends RetryingInputReaderThis can be empty, or any of {"ContactResource", "HostResource", "DomainBase"}. It will - * never contain "EppResource", "DomainResource" or "DomainApplication" since these aren't - * actual kinds in Datastore. + * never contain "EppResource" or "DomainResource" since these aren't actual kinds in Datastore. */ private final ImmutableSet filterKinds; diff --git a/java/google/registry/model/EntityClasses.java b/java/google/registry/model/EntityClasses.java index 158433866..e617fc856 100644 --- a/java/google/registry/model/EntityClasses.java +++ b/java/google/registry/model/EntityClasses.java @@ -20,12 +20,10 @@ import google.registry.model.common.Cursor; import google.registry.model.common.EntityGroupRoot; import google.registry.model.common.GaeUserIdConverter; import google.registry.model.contact.ContactResource; -import google.registry.model.domain.DomainApplication; import google.registry.model.domain.DomainBase; import google.registry.model.domain.DomainResource; import google.registry.model.domain.token.AllocationToken; import google.registry.model.host.HostResource; -import google.registry.model.index.DomainApplicationIndex; import google.registry.model.index.EppResourceIndex; import google.registry.model.index.EppResourceIndexBucket; import google.registry.model.index.ForeignKeyIndex; @@ -74,8 +72,6 @@ public final class EntityClasses { CommitLogMutation.class, ContactResource.class, Cursor.class, - DomainApplication.class, - DomainApplicationIndex.class, DomainBase.class, DomainResource.class, EntityGroupRoot.class, diff --git a/java/google/registry/model/EppResource.java b/java/google/registry/model/EppResource.java index e83ce96e9..5ead51429 100644 --- a/java/google/registry/model/EppResource.java +++ b/java/google/registry/model/EppResource.java @@ -51,7 +51,7 @@ import java.util.Set; import java.util.concurrent.ExecutionException; import org.joda.time.DateTime; -/** An EPP entity object (i.e. a domain, application, contact, or host). */ +/** An EPP entity object (i.e. a domain, contact, or host). */ public abstract class EppResource extends BackupGroupRoot implements Buildable { /** diff --git a/java/google/registry/model/EppResourceUtils.java b/java/google/registry/model/EppResourceUtils.java index 3de360c28..ea3be47c8 100644 --- a/java/google/registry/model/EppResourceUtils.java +++ b/java/google/registry/model/EppResourceUtils.java @@ -33,7 +33,6 @@ import google.registry.model.EppResource.BuilderWithTransferData; import google.registry.model.EppResource.ForeignKeyedEppResource; import google.registry.model.EppResource.ResourceWithTransferData; import google.registry.model.contact.ContactResource; -import google.registry.model.domain.DomainApplication; import google.registry.model.domain.DomainBase; import google.registry.model.eppcommon.StatusValue; import google.registry.model.index.ForeignKeyIndex; @@ -158,22 +157,6 @@ public final class EppResourceUtils { resource, latestOf(now, resource.getUpdateAutoTimestamp().getTimestamp()))); } - /** - * Returns the domain application with the given application id if it exists, or absent if it does - * not or is soft-deleted as of the given time. - */ - public static Optional loadDomainApplication( - String applicationId, DateTime now) { - DomainApplication application = - ofy().load().key(Key.create(DomainApplication.class, applicationId)).now(); - if (application == null || isAtOrAfter(now, application.getDeletionTime())) { - return Optional.empty(); - } - // Applications don't have any speculative changes that become effective later, so no need to - // clone forward in time. - return Optional.of(application); - } - /** * Checks multiple {@link EppResource} objects from Datastore by unique ids. * diff --git a/java/google/registry/model/OteAccountBuilder.java b/java/google/registry/model/OteAccountBuilder.java index 52997c497..51bb077b8 100644 --- a/java/google/registry/model/OteAccountBuilder.java +++ b/java/google/registry/model/OteAccountBuilder.java @@ -100,7 +100,6 @@ public final class OteAccountBuilder { private final ImmutableMap clientIdToTld; private final Registry sunriseTld; - private final Registry landrushTld; private final Registry gaTld; private final Registry eapTld; private final ImmutableList.Builder contactsBuilder = @@ -117,8 +116,6 @@ public final class OteAccountBuilder { sunriseTld = createTld( baseClientId + "-sunrise", TldState.START_DATE_SUNRISE, null, null, null, false, 0); - landrushTld = - createTld(baseClientId + "-landrush", TldState.LANDRUSH, null, null, null, false, 1); gaTld = createTld( baseClientId + "-ga", @@ -260,7 +257,7 @@ public final class OteAccountBuilder { private void saveAllEntities() { ofy().assertInTransaction(); - ImmutableList registries = ImmutableList.of(sunriseTld, landrushTld, gaTld, eapTld); + ImmutableList registries = ImmutableList.of(sunriseTld, gaTld, eapTld); ImmutableList contacts = contactsBuilder.build(); if (!replaceExisting) { @@ -368,7 +365,7 @@ public final class OteAccountBuilder { baseClientId); return new ImmutableMap.Builder() .put(baseClientId + "-1", baseClientId + "-sunrise") - .put(baseClientId + "-2", baseClientId + "-landrush") + // The -2 registrar no longer exists because landrush no longer exists. .put(baseClientId + "-3", baseClientId + "-ga") .put(baseClientId + "-4", baseClientId + "-ga") .put(baseClientId + "-5", baseClientId + "-eap") diff --git a/java/google/registry/model/OteStats.java b/java/google/registry/model/OteStats.java index 55301624b..2822412a1 100644 --- a/java/google/registry/model/OteStats.java +++ b/java/google/registry/model/OteStats.java @@ -102,12 +102,6 @@ public class OteStats { CONTACT_TRANSFER_REJECTS(0, equalTo(Type.CONTACT_TRANSFER_REJECT)), CONTACT_TRANSFER_REQUESTS(0, equalTo(Type.CONTACT_TRANSFER_REQUEST)), CONTACT_UPDATES(0, equalTo(Type.CONTACT_UPDATE)), - DOMAIN_APPLICATION_CREATES(0, equalTo(Type.DOMAIN_APPLICATION_CREATE)), - DOMAIN_APPLICATION_CREATES_LANDRUSH( - 0, equalTo(Type.DOMAIN_APPLICATION_CREATE), IS_SUNRISE.negate()), - DOMAIN_APPLICATION_CREATES_SUNRISE(0, equalTo(Type.DOMAIN_APPLICATION_CREATE), IS_SUNRISE), - DOMAIN_APPLICATION_DELETES(0, equalTo(Type.DOMAIN_APPLICATION_DELETE)), - DOMAIN_APPLICATION_UPDATES(0, equalTo(Type.DOMAIN_APPLICATION_UPDATE)), DOMAIN_AUTORENEWS(0, equalTo(Type.DOMAIN_AUTORENEW)), DOMAIN_CREATES(0, equalTo(Type.DOMAIN_CREATE)), DOMAIN_CREATES_ASCII(1, equalTo(Type.DOMAIN_CREATE), IS_IDN.negate()), diff --git a/java/google/registry/model/billing/BillingEvent.java b/java/google/registry/model/billing/BillingEvent.java index 934eefd95..1440977dc 100644 --- a/java/google/registry/model/billing/BillingEvent.java +++ b/java/google/registry/model/billing/BillingEvent.java @@ -70,6 +70,9 @@ public abstract class BillingEvent extends ImmutableObject ALLOCATION, ANCHOR_TENANT, AUTO_RENEW, + /** + * Landrush billing events are historical only and are no longer created. + */ LANDRUSH, /** * This flag is used on create {@link OneTime} billing events for domains that were reserved. diff --git a/java/google/registry/model/domain/DomainApplication.java b/java/google/registry/model/domain/DomainApplication.java deleted file mode 100644 index 9acf7f5df..000000000 --- a/java/google/registry/model/domain/DomainApplication.java +++ /dev/null @@ -1,151 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.model.domain; - -import static google.registry.util.CollectionUtils.nullToEmptyImmutableCopy; - -import com.google.common.collect.ImmutableList; -import com.googlecode.objectify.annotation.EntitySubclass; -import google.registry.model.annotations.ExternalMessagingName; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.model.domain.launch.LaunchPhase; -import google.registry.model.eppcommon.Trid; -import google.registry.model.smd.EncodedSignedMark; -import java.util.List; -import org.joda.money.Money; -import org.joda.time.DateTime; - -/** An application to create a domain. */ -@EntitySubclass(index = true) -@ExternalMessagingName("application") -public class DomainApplication extends DomainBase { - - /** - * The transaction id of the EPP command that created this application. This is saved off so that - * we can generate the poll message communicating the application result once it is rejected or - * allocated. - * - *

This field may be null for applications that were created before the field was added. - */ - Trid creationTrid; - - /** - * The phase which this application is registered for. We store this only so we can return it back - * to the user on info commands. - */ - LaunchPhase phase; - - /** The requested registration period. */ - Period period; - - /** The current status of this application. */ - ApplicationStatus applicationStatus; - - /** The encoded signed marks which were asserted when this application was created. */ - List encodedSignedMarks; - - /** The amount paid at auction for the right to register the domain. Used only for reporting. */ - Money auctionPrice; - - @Override - public String getFullyQualifiedDomainName() { - return fullyQualifiedDomainName; - } - - public Trid getCreationTrid() { - return creationTrid; - } - - public LaunchPhase getPhase() { - return phase; - } - - public Period getPeriod() { - return period; - } - - public ApplicationStatus getApplicationStatus() { - return applicationStatus; - } - - public ImmutableList getEncodedSignedMarks() { - return nullToEmptyImmutableCopy(encodedSignedMarks); - } - - public Money getAuctionPrice() { - return auctionPrice; - } - - /** - * The application id is the repoId. - */ - @Override - public String getForeignKey() { - return getRepoId(); - } - - /** This is a no-op and should never be called on an application explicitly. */ - @Deprecated - @Override - public DomainApplication cloneProjectedAtTime(DateTime now) { - // Applications have no grace periods and can't be transferred, so there is nothing to project. - return this; - } - - @Override - public Builder asBuilder() { - return new Builder(clone(this)); - } - - /** A builder for constructing {@link DomainApplication}, since it is immutable. */ - public static class Builder extends DomainBase.Builder { - - public Builder() {} - - private Builder(DomainApplication instance) { - super(instance); - } - - public Builder setCreationTrid(Trid creationTrid) { - getInstance().creationTrid = creationTrid; - return this; - } - - public Builder setPhase(LaunchPhase phase) { - getInstance().phase = phase; - return this; - } - - public Builder setPeriod(Period period) { - getInstance().period = period; - return this; - } - - public Builder setApplicationStatus(ApplicationStatus applicationStatus) { - getInstance().applicationStatus = applicationStatus; - return this; - } - - public Builder setEncodedSignedMarks(ImmutableList encodedSignedMarks) { - getInstance().encodedSignedMarks = encodedSignedMarks; - return this; - } - - public Builder setAuctionPrice(Money auctionPrice) { - getInstance().auctionPrice = auctionPrice; - return this; - } - } -} diff --git a/java/google/registry/model/domain/DomainBase.java b/java/google/registry/model/domain/DomainBase.java index 110cc2a92..e144ea90a 100644 --- a/java/google/registry/model/domain/DomainBase.java +++ b/java/google/registry/model/domain/DomainBase.java @@ -50,7 +50,8 @@ import java.util.Objects; import java.util.Set; import java.util.function.Predicate; -/** Shared base class for {@link DomainResource} and {@link DomainApplication}. */ +/** Base class for {@link DomainResource}. */ +// TODO(b/121028829): Squash DomainResource into this. @ReportedOn @Entity public abstract class DomainBase extends EppResource { diff --git a/java/google/registry/model/domain/DomainResource.java b/java/google/registry/model/domain/DomainResource.java index 510d75a76..054ff70e9 100644 --- a/java/google/registry/model/domain/DomainResource.java +++ b/java/google/registry/model/domain/DomainResource.java @@ -106,26 +106,13 @@ public class DomainResource extends DomainBase Set gracePeriods; /** - * The id of the signed mark that was used to create the sunrise application for this domain. - * Will only be populated for domains allocated from a sunrise application. + * The id of the signed mark that was used to create this domain in sunrise. + * + *

Will only be populated for domains created in sunrise. */ @IgnoreSave(IfNull.class) String smdId; - /** - * The time that the application used to allocate this domain was created. Will only be populated - * for domains allocated from an application. - */ - @IgnoreSave(IfNull.class) - DateTime applicationTime; - - /** - * A key to the application used to allocate this domain. Will only be populated for domains - * allocated from an application. - */ - @IgnoreSave(IfNull.class) - Key application; - /** Data about any pending or past transfers on this domain. */ TransferData transferData; @@ -164,14 +151,6 @@ public class DomainResource extends DomainBase return smdId; } - public DateTime getApplicationTime() { - return applicationTime; - } - - public Key getApplication() { - return application; - } - @Override public final TransferData getTransferData() { return Optional.ofNullable(transferData).orElse(TransferData.EMPTY); @@ -426,16 +405,6 @@ public class DomainResource extends DomainBase return this; } - public Builder setApplicationTime(DateTime applicationTime) { - getInstance().applicationTime = applicationTime; - return this; - } - - public Builder setApplication(Key application) { - getInstance().application = application; - return this; - } - public Builder setGracePeriods(ImmutableSet gracePeriods) { getInstance().gracePeriods = gracePeriods; return this; diff --git a/java/google/registry/model/domain/GracePeriod.java b/java/google/registry/model/domain/GracePeriod.java index 0e85435e8..03d5102bd 100644 --- a/java/google/registry/model/domain/GracePeriod.java +++ b/java/google/registry/model/domain/GracePeriod.java @@ -59,12 +59,7 @@ public class GracePeriod extends ImmutableObject { Key billingEventRecurring = null; public GracePeriodStatus getType() { - // NB: We implicitly convert SUNRUSH_ADD to ADD, since they should be functionally equivalent. - return type == GracePeriodStatus.SUNRUSH_ADD ? GracePeriodStatus.ADD : type; - } - - public boolean isSunrushAddGracePeriod() { - return type == GracePeriodStatus.SUNRUSH_ADD; + return type; } public DateTime getExpirationTime() { diff --git a/java/google/registry/model/domain/allocate/AllocateCreateExtension.java b/java/google/registry/model/domain/allocate/AllocateCreateExtension.java deleted file mode 100644 index be0af12e2..000000000 --- a/java/google/registry/model/domain/allocate/AllocateCreateExtension.java +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.model.domain.allocate; - -import google.registry.model.ImmutableObject; -import google.registry.model.domain.launch.LaunchNotice; -import google.registry.model.eppinput.EppInput.CommandExtension; -import javax.xml.bind.annotation.XmlRootElement; -import org.joda.time.DateTime; - -/** - * An XML data object that represents an allocate extension that will be present on EPP commands to - * allocate a domain from an application. - * - *

This object holds XML data which JAXB will unmarshal from an EPP domain create command - * extension. The XML will have the following enclosing structure: - * - *

 {@code
- *   
- *     
- *       
- *         
- *       
- *       
- *         
- *           
- *         
- *       
- *     
- *   
- * } 
- * - * @see CommandExtension - */ -@XmlRootElement(name = "create") -public class AllocateCreateExtension extends ImmutableObject implements CommandExtension { - - /** Holds the ROID of the application that was used to allocate this domain. */ - String applicationRoid; - - /** The time that the application was created. */ - DateTime applicationTime; - - /** - * Signed mark identifier for this create. Only present when allocating a domain from a sunrise - * application. - */ - String smdId; - - /** - * The claims notice for this create. Only present when allocating a domain from a landrush - * application that matches a pre-registered mark in the TMCH. - */ - LaunchNotice notice; - - public String getApplicationRoid() { - return applicationRoid; - } - - public DateTime getApplicationTime() { - return applicationTime; - } - - public String getSmdId() { - return smdId; - } - - public LaunchNotice getNotice() { - return notice; - } -} diff --git a/java/google/registry/model/domain/allocate/package-info.java b/java/google/registry/model/domain/allocate/package-info.java deleted file mode 100644 index ba6aa8848..000000000 --- a/java/google/registry/model/domain/allocate/package-info.java +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -@XmlSchema( - namespace = "urn:google:params:xml:ns:allocate-1.0", - xmlns = @XmlNs(prefix = "allocate", namespaceURI = "urn:google:params:xml:ns:allocate-1.0"), - elementFormDefault = XmlNsForm.QUALIFIED) -@XmlAccessorType(XmlAccessType.FIELD) -@XmlJavaTypeAdapter(UtcDateTimeAdapter.class) -package google.registry.model.domain.allocate; - -import google.registry.xml.UtcDateTimeAdapter; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlNs; -import javax.xml.bind.annotation.XmlNsForm; -import javax.xml.bind.annotation.XmlSchema; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; - diff --git a/java/google/registry/model/domain/launch/ApplicationIdTargetExtension.java b/java/google/registry/model/domain/launch/ApplicationIdTargetExtension.java deleted file mode 100644 index 6708c153e..000000000 --- a/java/google/registry/model/domain/launch/ApplicationIdTargetExtension.java +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.model.domain.launch; - -import google.registry.model.eppinput.EppInput.CommandExtension; - -/** Marker interface for EPP extensions which override the EPP notion of id with their own. */ -public interface ApplicationIdTargetExtension extends CommandExtension { - /** Get the application id to use as the resource id for commands using this extension. */ - String getApplicationId(); -} diff --git a/java/google/registry/model/domain/launch/ApplicationStatus.java b/java/google/registry/model/domain/launch/ApplicationStatus.java deleted file mode 100644 index 5a96948bd..000000000 --- a/java/google/registry/model/domain/launch/ApplicationStatus.java +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.model.domain.launch; - -import static com.google.common.base.CaseFormat.LOWER_CAMEL; -import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE; - -import google.registry.model.translators.EnumToAttributeAdapter; -import google.registry.model.translators.EnumToAttributeAdapter.EppEnum; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; - -/** - * Represents the EPP application status. - * - *

These values are never read from a command and only used in responses, so, we don't need to - * model anything we don't output. We don't model the CUSTOM status because we don't use it. This - * allows us to also avoid modeling the "name" attribute which is only used with CUSTOM. We don't - * model the "lang" attribute because we only support English and that's the default. - * - *

Given all of this, we can use {@link EnumToAttributeAdapter} to make this code very simple. - * - * @see - * Launch Phase Mapping for EPP - Status Values - */ -@XmlJavaTypeAdapter(EnumToAttributeAdapter.class) -public enum ApplicationStatus implements EppEnum { - ALLOCATED, - INVALID, - PENDING_ALLOCATION, - PENDING_VALIDATION, - REJECTED, - VALIDATED; - - @Override - public String getXmlName() { - return UPPER_UNDERSCORE.to(LOWER_CAMEL, name()); - } - - /** - * Returns true if this status is a final status - that is, it should not transition to any other - * application status after this one. - */ - public boolean isFinalStatus() { - return ALLOCATED.equals(this) || REJECTED.equals(this); - } -} diff --git a/java/google/registry/model/domain/launch/LaunchCreateExtension.java b/java/google/registry/model/domain/launch/LaunchCreateExtension.java index 38debd1ef..a834bcffb 100644 --- a/java/google/registry/model/domain/launch/LaunchCreateExtension.java +++ b/java/google/registry/model/domain/launch/LaunchCreateExtension.java @@ -60,6 +60,9 @@ public class LaunchCreateExtension extends LaunchExtension implements CommandExt /** * A Launch Application refers to a registration made during a launch phase when the server * accepts multiple applications for the same domain name. + * + *

This is no longer used, but is retained so incoming commands with this value error out + * with a descriptive message rather than failing XML marshalling. */ @XmlEnumValue("application") APPLICATION, diff --git a/java/google/registry/model/domain/launch/LaunchCreateResponseExtension.java b/java/google/registry/model/domain/launch/LaunchCreateResponseExtension.java deleted file mode 100644 index c7a5c6ead..000000000 --- a/java/google/registry/model/domain/launch/LaunchCreateResponseExtension.java +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.model.domain.launch; - -import google.registry.model.eppoutput.EppResponse.ResponseExtension; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; - -/** - * An XML data object that represents a launch extension that may be present on the response to EPP - * domain application create commands. - */ -@XmlRootElement(name = "creData") -@XmlType(propOrder = {"phase", "applicationId"}) -public class LaunchCreateResponseExtension extends LaunchExtension implements ResponseExtension { - /** Builder for {@link LaunchCreateResponseExtension}. */ - public static class Builder - extends LaunchExtension.Builder {} -} diff --git a/java/google/registry/model/domain/launch/LaunchDeleteExtension.java b/java/google/registry/model/domain/launch/LaunchDeleteExtension.java index 6f01efafb..6e64663c2 100644 --- a/java/google/registry/model/domain/launch/LaunchDeleteExtension.java +++ b/java/google/registry/model/domain/launch/LaunchDeleteExtension.java @@ -21,5 +21,4 @@ import javax.xml.bind.annotation.XmlRootElement; * commands. */ @XmlRootElement(name = "delete") -public class LaunchDeleteExtension - extends LaunchExtension implements ApplicationIdTargetExtension {} +public class LaunchDeleteExtension extends LaunchExtension {} diff --git a/java/google/registry/model/domain/launch/LaunchExtension.java b/java/google/registry/model/domain/launch/LaunchExtension.java index 031c7a66e..4b62c427a 100644 --- a/java/google/registry/model/domain/launch/LaunchExtension.java +++ b/java/google/registry/model/domain/launch/LaunchExtension.java @@ -16,7 +16,6 @@ package google.registry.model.domain.launch; import google.registry.model.Buildable.GenericBuilder; import google.registry.model.ImmutableObject; -import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlTransient; /** @@ -29,29 +28,17 @@ public abstract class LaunchExtension extends ImmutableObject { /** The launch phase that this domain application was created in. */ LaunchPhase phase; - /** Application ID of the domain application. */ - @XmlElement(name = "applicationID") - String applicationId; - public LaunchPhase getPhase() { return phase; } - public String getApplicationId() { - return applicationId; - } - /** A builder for constructing {@link LaunchExtension}. */ public static class Builder> extends GenericBuilder { + public B setPhase(LaunchPhase phase) { getInstance().phase = phase; return thisCastToDerived(); } - - public B setApplicationId(String applicationId) { - getInstance().applicationId = applicationId; - return thisCastToDerived(); - } } } diff --git a/java/google/registry/model/domain/launch/LaunchInfoExtension.java b/java/google/registry/model/domain/launch/LaunchInfoExtension.java index f4fa8d4ca..3076a122a 100644 --- a/java/google/registry/model/domain/launch/LaunchInfoExtension.java +++ b/java/google/registry/model/domain/launch/LaunchInfoExtension.java @@ -22,8 +22,7 @@ import javax.xml.bind.annotation.XmlRootElement; * commands. */ @XmlRootElement(name = "info") -public class LaunchInfoExtension - extends LaunchExtension implements ApplicationIdTargetExtension { +public class LaunchInfoExtension extends LaunchExtension { /** Whether or not to include mark information in the response. */ @XmlAttribute diff --git a/java/google/registry/model/domain/launch/LaunchInfoResponseExtension.java b/java/google/registry/model/domain/launch/LaunchInfoResponseExtension.java deleted file mode 100644 index 1b505593d..000000000 --- a/java/google/registry/model/domain/launch/LaunchInfoResponseExtension.java +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.model.domain.launch; - -import com.google.common.collect.ImmutableList; -import com.googlecode.objectify.annotation.Embed; -import google.registry.model.eppoutput.EppResponse.ResponseExtension; -import google.registry.model.mark.Mark; -import java.util.List; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlType; - -/** - * An XML data object that represents a launch extension that may be present on the response to EPP - * domain application info commands. - */ -@Embed -@XmlRootElement(name = "infData") -@XmlType(propOrder = { "phase", "applicationId", "applicationStatus", "marks"}) -public class LaunchInfoResponseExtension extends LaunchExtension implements ResponseExtension { - - /** The current status of this application. */ - @XmlElement(name = "status") - ApplicationStatus applicationStatus; - - /** The marks associated with this application. */ - @XmlElement(name = "mark", namespace = "urn:ietf:params:xml:ns:mark-1.0") - List marks; - - /** Builder for {@link LaunchInfoResponseExtension}. */ - public static class Builder - extends LaunchExtension.Builder { - public Builder setApplicationStatus(ApplicationStatus applicationStatus) { - getInstance().applicationStatus = applicationStatus; - return this; - } - - public Builder setMarks(ImmutableList marks) { - getInstance().marks = marks; - return this; - } - } -} diff --git a/java/google/registry/model/domain/launch/LaunchPhase.java b/java/google/registry/model/domain/launch/LaunchPhase.java index ba0accdae..c00b3e6ee 100644 --- a/java/google/registry/model/domain/launch/LaunchPhase.java +++ b/java/google/registry/model/domain/launch/LaunchPhase.java @@ -14,15 +14,10 @@ package google.registry.model.domain.launch; -import static com.google.common.base.CaseFormat.LOWER_CAMEL; -import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE; -import static google.registry.util.TypeUtils.getTypesafeEnumMapping; import static java.util.Objects.hash; -import com.google.common.collect.ImmutableMap; import com.googlecode.objectify.annotation.Embed; import google.registry.model.ImmutableObject; -import java.util.Map.Entry; import java.util.Objects; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlValue; @@ -48,9 +43,9 @@ import javax.xml.bind.annotation.XmlValue; * we will return an error if it's the wrong phase (or if the marks are invalid) even though we * didn't require them. * - *

This is OK (?) because the Anchor Tenants field is set internally and manually.. The person - * who sets it is the one that needs to make sure the domain isn't a trademark and that the fields - * are correct. + *

This is OK (?) because the Anchor Tenants field is set internally and manually. The person who + * sets it is the one that needs to make sure the domain isn't a trademark and that the fields are + * correct. */ @Embed public class LaunchPhase extends ImmutableObject { @@ -58,61 +53,33 @@ public class LaunchPhase extends ImmutableObject { /** * The phase during which trademark holders can submit registrations or applications with * trademark information that can be validated by the server. - * - * This phase works for both start-date and end-data sunrise. - * - * TODO(b/74006379): maybe make this work for sunrush phase? */ - public static final LaunchPhase SUNRISE = create("sunrise", null); - - /** - * A post-Sunrise phase when non-trademark holders are allowed to register domain names with steps - * taken to address a large volume of initial registrations. - */ - public static final LaunchPhase LANDRUSH = create("landrush", null); - - /** A combined sunrise/landrush phase. */ - public static final LaunchPhase SUNRUSH = create("sunrise", "landrush"); + public static final LaunchPhase SUNRISE = create("sunrise"); /** * The Trademark Claims phase, as defined in the TMCH Functional Specification, in which a Claims * Notice must be displayed to a prospective registrant of a domain name that matches trademarks. */ - public static final LaunchPhase CLAIMS = create("claims", null); + public static final LaunchPhase CLAIMS = create("claims"); /** A post-launch phase that is also referred to as "steady state". */ - public static final LaunchPhase OPEN = create("open", null); - - /** A custom server launch phase that is defined using the "name" attribute. */ - public static final LaunchPhase CUSTOM = create("custom", null); - - private static final ImmutableMap LAUNCH_PHASES = initEnumMapping(); - - /** - * Returns a map of the static final fields to their values, case-converted. - */ - private static ImmutableMap initEnumMapping() { - ImmutableMap.Builder builder = new ImmutableMap.Builder<>(); - for (Entry entry : getTypesafeEnumMapping(LaunchPhase.class).entrySet()) { - builder.put(UPPER_UNDERSCORE.to(LOWER_CAMEL, entry.getKey()), entry.getValue()); - } - return builder.build(); - } + public static final LaunchPhase OPEN = create("open"); /** Private create function for the typesafe enum pattern. */ - public static LaunchPhase create(String phase, String subphase) { + public static LaunchPhase create(String phase) { LaunchPhase instance = new LaunchPhase(); instance.phase = phase; - instance.subphase = subphase; return instance; } - @XmlValue - String phase; + @XmlValue String phase; /** * Holds the name of a custom phase if the main phase is "custom", or a sub-phase for all other * values. + * + *

This is currently unused, but is retained so that incoming XMLs that include a subphase can + * have it be reflected back. */ @XmlAttribute(name = "name") String subphase; @@ -121,14 +88,6 @@ public class LaunchPhase extends ImmutableObject { return phase; } - public String getSubphase() { - return subphase; - } - - public static LaunchPhase fromValue(String value) { - return LAUNCH_PHASES.get(value); - } - /** A special equals implementation that only considers the string value. */ @Override public boolean equals(Object other) { diff --git a/java/google/registry/model/domain/launch/LaunchUpdateExtension.java b/java/google/registry/model/domain/launch/LaunchUpdateExtension.java index 56bdaad6b..42956b467 100644 --- a/java/google/registry/model/domain/launch/LaunchUpdateExtension.java +++ b/java/google/registry/model/domain/launch/LaunchUpdateExtension.java @@ -21,5 +21,4 @@ import javax.xml.bind.annotation.XmlRootElement; * commands. */ @XmlRootElement(name = "update") -public class LaunchUpdateExtension - extends LaunchExtension implements ApplicationIdTargetExtension {} +public class LaunchUpdateExtension extends LaunchExtension {} diff --git a/java/google/registry/model/domain/rgp/GracePeriodStatus.java b/java/google/registry/model/domain/rgp/GracePeriodStatus.java index 91aae76ba..62f836e37 100644 --- a/java/google/registry/model/domain/rgp/GracePeriodStatus.java +++ b/java/google/registry/model/domain/rgp/GracePeriodStatus.java @@ -14,8 +14,6 @@ package google.registry.model.domain.rgp; -import static com.google.common.base.Predicates.equalTo; -import static com.google.common.base.Predicates.not; import static com.google.common.collect.ImmutableMap.toImmutableMap; import com.google.common.collect.ImmutableMap; @@ -77,18 +75,6 @@ public enum GracePeriodStatus implements EppEnum { */ PENDING_RESTORE("pendingRestore"), - /** - * This grace period is provided after the allocation of a domain name that was applied for during - * sunrise or landrush. If the domain name is deleted by the registrar during this period, the - * registry provides a credit to the registrar for the cost of the registration. This grace period - * is cancelled when any nameservers are set on the domain, at which point it converts to a - * standard add grace period. - * - *

Note that this status shows up as "addPeriod" in XML, which is the same as the add grace - * period. This is done deliberately so as not to break the standard EPP schema. - */ - SUNRUSH_ADD("addPeriod"), - /** * This grace period is provided after the successful transfer of domain name registration * sponsorship from one registrar to another registrar. If the domain name is deleted by the new @@ -100,7 +86,6 @@ public enum GracePeriodStatus implements EppEnum { /** Provide a quick lookup of GracePeriodStatus from XML name. */ private static final ImmutableMap XML_NAME_TO_GRACE_PERIOD_STATUS = Stream.of(GracePeriodStatus.values()) - .filter(not(equalTo(SUNRUSH_ADD))) .collect( toImmutableMap( (GracePeriodStatus gracePeriodStatus) -> gracePeriodStatus.xmlName, diff --git a/java/google/registry/model/eppcommon/ProtocolDefinition.java b/java/google/registry/model/eppcommon/ProtocolDefinition.java index e59e985f6..eb2ddf2b7 100644 --- a/java/google/registry/model/eppcommon/ProtocolDefinition.java +++ b/java/google/registry/model/eppcommon/ProtocolDefinition.java @@ -19,7 +19,6 @@ import static com.google.common.collect.Maps.uniqueIndex; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; -import google.registry.model.domain.allocate.AllocateCreateExtension; import google.registry.model.domain.fee06.FeeCheckCommandExtensionV06; import google.registry.model.domain.fee06.FeeCheckResponseExtensionV06; import google.registry.model.domain.fee11.FeeCheckCommandExtensionV11; @@ -55,7 +54,6 @@ public class ProtocolDefinition { FEE_0_6(FeeCheckCommandExtensionV06.class, FeeCheckResponseExtensionV06.class, true), FEE_0_11(FeeCheckCommandExtensionV11.class, FeeCheckResponseExtensionV11.class, true), FEE_0_12(FeeCheckCommandExtensionV12.class, FeeCheckResponseExtensionV12.class, true), - ALLOCATE_1_0(AllocateCreateExtension.class, null, false), METADATA_1_0(MetadataExtension.class, null, false); private final Class commandExtensionClass; diff --git a/java/google/registry/model/eppcommon/StatusValue.java b/java/google/registry/model/eppcommon/StatusValue.java index 2eb28208c..6f0677aa8 100644 --- a/java/google/registry/model/eppcommon/StatusValue.java +++ b/java/google/registry/model/eppcommon/StatusValue.java @@ -21,7 +21,6 @@ import static com.google.common.base.Strings.nullToEmpty; import com.google.common.collect.ImmutableSet; import google.registry.model.EppResource; import google.registry.model.contact.ContactResource; -import google.registry.model.domain.DomainApplication; import google.registry.model.domain.DomainResource; import google.registry.model.host.HostResource; import google.registry.model.translators.EnumToAttributeAdapter.EppEnum; @@ -77,9 +76,9 @@ public enum StatusValue implements EppEnum { /** * A status for a resource undergoing asynchronous creation. * - *

We only use this for unallocated applications. + *

This status is here for completeness, but it is not used by our system. */ - PENDING_CREATE(AllowedOn.APPLICATIONS), + PENDING_CREATE(AllowedOn.NONE), /** * A status for a resource indicating that deletion has been requested but has not yet happened. @@ -92,18 +91,16 @@ public enum StatusValue implements EppEnum { * Otherwise, domains go through an extended deletion process, consisting of a 30-day redemption * grace period followed by a 5-day "pending delete" period before they are actually 100% deleted. * These domains have the PENDING_DELETE status throughout that 35-day window. - * - *

Applications are deleted synchronously and never have this status. */ - PENDING_DELETE(AllowedOn.ALL_BUT_APPLICATIONS), + PENDING_DELETE(AllowedOn.ALL), /** * A status for a resource with an unresolved transfer request. * - *

Applications can't be transferred. Hosts transfer indirectly via superordinate domain. + *

Hosts transfer indirectly via superordinate domain. */ // TODO(b/34844887): Remove PENDING_TRANSFER from all host resources and forbid it here. - PENDING_TRANSFER(AllowedOn.ALL_BUT_APPLICATIONS), + PENDING_TRANSFER(AllowedOn.ALL), /** * A status for a resource undergoing an asynchronous update. @@ -130,11 +127,9 @@ public enum StatusValue implements EppEnum { /** Enum to help clearly list which resource types a status value is allowed to be present on. */ private enum AllowedOn { - ALL(ContactResource.class, DomainApplication.class, DomainResource.class, HostResource.class), + ALL(ContactResource.class, DomainResource.class, HostResource.class), NONE, - DOMAINS(DomainResource.class), - APPLICATIONS(DomainApplication.class), - ALL_BUT_APPLICATIONS(ContactResource.class, DomainResource.class, HostResource.class); + DOMAINS(DomainResource.class); private final ImmutableSet> classes; diff --git a/java/google/registry/model/eppinput/EppInput.java b/java/google/registry/model/eppinput/EppInput.java index 5d127462d..8f46d0854 100644 --- a/java/google/registry/model/eppinput/EppInput.java +++ b/java/google/registry/model/eppinput/EppInput.java @@ -23,7 +23,6 @@ import com.google.common.collect.ImmutableSet; import google.registry.model.ImmutableObject; import google.registry.model.contact.ContactCommand; import google.registry.model.domain.DomainCommand; -import google.registry.model.domain.allocate.AllocateCreateExtension; import google.registry.model.domain.fee06.FeeCheckCommandExtensionV06; import google.registry.model.domain.fee06.FeeCreateCommandExtensionV06; import google.registry.model.domain.fee06.FeeInfoCommandExtensionV06; @@ -328,8 +327,6 @@ public class EppInput extends ImmutableObject { /** Zero or more command extensions. */ @XmlElementRefs({ - // allocate create extension - @XmlElementRef(type = AllocateCreateExtension.class), // allocation token extension @XmlElementRef(type = AllocationTokenExtension.class), // fee extension version 0.6 diff --git a/java/google/registry/model/eppoutput/EppResponse.java b/java/google/registry/model/eppoutput/EppResponse.java index 9a0d4cc00..c0c37d328 100644 --- a/java/google/registry/model/eppoutput/EppResponse.java +++ b/java/google/registry/model/eppoutput/EppResponse.java @@ -43,8 +43,6 @@ import google.registry.model.domain.fee12.FeeRenewResponseExtensionV12; import google.registry.model.domain.fee12.FeeTransferResponseExtensionV12; import google.registry.model.domain.fee12.FeeUpdateResponseExtensionV12; import google.registry.model.domain.launch.LaunchCheckResponseExtension; -import google.registry.model.domain.launch.LaunchCreateResponseExtension; -import google.registry.model.domain.launch.LaunchInfoResponseExtension; import google.registry.model.domain.rgp.RgpInfoExtension; import google.registry.model.domain.secdns.SecDnsInfoExtension; import google.registry.model.eppcommon.Trid; @@ -139,8 +137,6 @@ public class EppResponse extends ImmutableObject implements ResponseOrGreeting { @XmlElementRef(type = FeeTransferResponseExtensionV12.class), @XmlElementRef(type = FeeUpdateResponseExtensionV12.class), @XmlElementRef(type = LaunchCheckResponseExtension.class), - @XmlElementRef(type = LaunchCreateResponseExtension.class), - @XmlElementRef(type = LaunchInfoResponseExtension.class), @XmlElementRef(type = RgpInfoExtension.class), @XmlElementRef(type = SecDnsInfoExtension.class) }) @XmlElementWrapper(name = "extension") diff --git a/java/google/registry/model/index/DomainApplicationIndex.java b/java/google/registry/model/index/DomainApplicationIndex.java deleted file mode 100644 index 7440df66f..000000000 --- a/java/google/registry/model/index/DomainApplicationIndex.java +++ /dev/null @@ -1,137 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.model.index; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Strings.isNullOrEmpty; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.util.CollectionUtils.isNullOrEmpty; - -import com.google.common.collect.ImmutableSet; -import com.googlecode.objectify.Key; -import com.googlecode.objectify.annotation.Entity; -import com.googlecode.objectify.annotation.Id; -import google.registry.model.BackupGroupRoot; -import google.registry.model.annotations.ReportedOn; -import google.registry.model.domain.DomainApplication; -import google.registry.util.CollectionUtils; -import java.util.Set; -import javax.annotation.Nullable; -import org.joda.time.DateTime; - -/** - * Entity for tracking all domain applications with a given fully qualified domain name. - * - *

Since this resource is always kept up to date as additional domain applications are created, - * it is never necessary to query them explicitly from Datastore. - */ -@ReportedOn -@Entity -public class DomainApplicationIndex extends BackupGroupRoot { - - @Id - String fullyQualifiedDomainName; - - /** - * A set of all domain applications with this fully qualified domain name. Never null or empty. - * - *

Although this stores {@link Key}s it is named "references" for historical reasons. - */ - Set> references; - - /** Returns a cloned list of all keys on this index. */ - public ImmutableSet> getKeys() { - return ImmutableSet.copyOf(references); - } - - public String getFullyQualifiedDomainName() { - return fullyQualifiedDomainName; - } - - /** - * Creates a DomainApplicationIndex with the specified list of keys. - * - *

Only use this method for data migrations. You probably want {@link #createUpdatedInstance}. - */ - public static DomainApplicationIndex createWithSpecifiedKeys( - String fullyQualifiedDomainName, ImmutableSet> keys) { - checkArgument(!isNullOrEmpty(fullyQualifiedDomainName), - "fullyQualifiedDomainName must not be null or empty."); - checkArgument(!isNullOrEmpty(keys), "Keys must not be null or empty."); - DomainApplicationIndex instance = new DomainApplicationIndex(); - instance.fullyQualifiedDomainName = fullyQualifiedDomainName; - instance.references = keys; - return instance; - } - - public static Key createKey(DomainApplication application) { - return Key.create(DomainApplicationIndex.class, application.getFullyQualifiedDomainName()); - } - - /** - * Returns the set of all active DomainApplications for the given fully qualified domain name. - * - *

Note that loading the individual applications referenced by the keys are explicitly - * non-transactional. This is to avoid potentially over-enlisting multiple entity groups within a - * transaction. - * - *

Consequently within a transaction this method will not return any applications that are not - * yet committed to datastore, even if called on an updated DomainApplicationIndex instance - * storing keys to those applications. - */ - public static ImmutableSet loadActiveApplicationsByDomainName( - String fullyQualifiedDomainName, final DateTime now) { - final DomainApplicationIndex index = load(fullyQualifiedDomainName); - if (index == null) { - return ImmutableSet.of(); - } - // Perform eventually consistent query, to avoid overenlisting cross entity groups - return ofy().doTransactionless(() -> { - ImmutableSet.Builder apps = new ImmutableSet.Builder<>(); - for (DomainApplication app : ofy().load().keys(index.getKeys()).values()) { - if (app.getDeletionTime().isAfter(now)) { - apps.add(app); - } - } - return apps.build(); - }); - } - - /** - * Returns the DomainApplicationIndex for the given fully qualified domain name. - * - *

Note that this can return null if there are no domain applications for this fully qualified - * domain name. - */ - @Nullable - public static DomainApplicationIndex load(String fullyQualifiedDomainName) { - return ofy().load().type(DomainApplicationIndex.class).id(fullyQualifiedDomainName).now(); - } - - /** - * Saves a new DomainApplicationIndex for this resource or updates the existing one. - * - *

This is the preferred method for creating an instance of DomainApplicationIndex because this - * performs the correct merging logic to add the given domain application to an existing index if - * there is one. - */ - public static DomainApplicationIndex createUpdatedInstance(DomainApplication application) { - DomainApplicationIndex existing = load(application.getFullyQualifiedDomainName()); - ImmutableSet> newKeys = CollectionUtils.union( - (existing == null ? ImmutableSet.of() : existing.getKeys()), - Key.create(application)); - return createWithSpecifiedKeys(application.getFullyQualifiedDomainName(), newKeys); - } -} diff --git a/java/google/registry/model/poll/PollMessage.java b/java/google/registry/model/poll/PollMessage.java index e06de046a..77fad3eb2 100644 --- a/java/google/registry/model/poll/PollMessage.java +++ b/java/google/registry/model/poll/PollMessage.java @@ -32,9 +32,7 @@ import google.registry.model.EppResource; import google.registry.model.ImmutableObject; import google.registry.model.annotations.ExternalMessagingName; import google.registry.model.domain.DomainRenewData; -import google.registry.model.domain.launch.LaunchInfoResponseExtension; import google.registry.model.eppoutput.EppResponse.ResponseData; -import google.registry.model.eppoutput.EppResponse.ResponseExtension; import google.registry.model.poll.PendingActionNotificationResponse.ContactPendingActionNotificationResponse; import google.registry.model.poll.PendingActionNotificationResponse.DomainPendingActionNotificationResponse; import google.registry.model.poll.PendingActionNotificationResponse.HostPendingActionNotificationResponse; @@ -57,15 +55,14 @@ import org.joda.time.DateTime; * *

Poll messages are parented off of the {@link HistoryEntry} that resulted in their creation. * This means that poll messages are contained in the Datastore entity group of the parent {@link - * EppResource} (which can be a domain, application, contact, or host). It is thus possible to - * perform a strongly consistent query to find all poll messages associated with a given EPP - * resource. + * EppResource} (which can be a domain, contact, or host). It is thus possible to perform a strongly + * consistent query to find all poll messages associated with a given EPP resource. * *

Poll messages are identified externally by registrars using the format defined in {@link * PollMessageExternalKeyConverter}. * - * @see - * RFC5730 - EPP - <poll> Command + * @see RFC5730 - EPP - <poll> + * Command */ @Entity @ExternalMessagingName("message") @@ -113,8 +110,6 @@ public abstract class PollMessage extends ImmutableObject public abstract ImmutableList getResponseData(); - public abstract ImmutableList getResponseExtensions(); - /** Override Buildable.asBuilder() to give this method stronger typing. */ @Override public abstract Builder asBuilder(); @@ -193,15 +188,6 @@ public abstract class PollMessage extends ImmutableObject List domainTransferResponses; List hostPendingActionNotificationResponses; - // Extensions. Objectify cannot persist a base class type, so we must have a separate field - // to hold every possible derived type of ResponseExtensions that we might store. - // - // Note that we cannot store a list of LaunchInfoResponseExtension objects since it contains a - // list of embedded Mark objects, and embedded lists of lists are not allowed. This shouldn't - // matter since there's no scenario where multiple launch info response extensions are ever - // returned. - LaunchInfoResponseExtension launchInfoResponseExtension; - @Override public Builder asBuilder() { return new Builder(clone(this)); @@ -218,17 +204,11 @@ public abstract class PollMessage extends ImmutableObject .build(); } - @Override - public ImmutableList getResponseExtensions() { - return (launchInfoResponseExtension == null) - ? ImmutableList.of() - : ImmutableList.of(launchInfoResponseExtension); - } - /** A builder for {@link OneTime} since it is immutable. */ public static class Builder extends PollMessage.Builder { - public Builder() {} + public Builder() { + } private Builder(OneTime instance) { super(instance); @@ -272,18 +252,6 @@ public abstract class PollMessage extends ImmutableObject .collect(toImmutableList())); return this; } - - public Builder setResponseExtensions( - ImmutableList responseExtensions) { - getInstance().launchInfoResponseExtension = - responseExtensions - .stream() - .filter(LaunchInfoResponseExtension.class::isInstance) - .map(LaunchInfoResponseExtension.class::cast) - .findFirst() - .orElse(null); - return this; - } } } @@ -320,11 +288,6 @@ public abstract class PollMessage extends ImmutableObject DomainRenewData.create(getTargetId(), getEventTime().plusYears(1))); } - @Override - public ImmutableList getResponseExtensions() { - return ImmutableList.of(); - } - @Override public Builder asBuilder() { return new Builder(clone(this)); diff --git a/java/google/registry/model/pricing/StaticPremiumListPricingEngine.java b/java/google/registry/model/pricing/StaticPremiumListPricingEngine.java index e0fcdded2..ca93c8a0b 100644 --- a/java/google/registry/model/pricing/StaticPremiumListPricingEngine.java +++ b/java/google/registry/model/pricing/StaticPremiumListPricingEngine.java @@ -16,7 +16,7 @@ package google.registry.model.pricing; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Strings.emptyToNull; -import static google.registry.model.registry.Registry.TldState.SUNRISE; +import static google.registry.model.registry.Registry.TldState.START_DATE_SUNRISE; import static google.registry.model.registry.label.PremiumListUtils.getPremiumPrice; import static google.registry.model.registry.label.ReservationType.NAME_COLLISION; import static google.registry.model.registry.label.ReservedList.getReservationTypes; @@ -45,7 +45,7 @@ public final class StaticPremiumListPricingEngine implements PremiumPricingEngin Registry registry = Registry.get(checkNotNull(tld, "tld")); Optional premiumPrice = getPremiumPrice(label, registry); boolean isNameCollisionInSunrise = - registry.getTldState(priceTime).equals(SUNRISE) + registry.getTldState(priceTime).equals(START_DATE_SUNRISE) && getReservationTypes(label, tld).contains(NAME_COLLISION); String feeClass = emptyToNull(Joiner.on('-').skipNulls().join( premiumPrice.isPresent() ? "premium" : null, diff --git a/java/google/registry/model/registry/Registry.java b/java/google/registry/model/registry/Registry.java index 235157cc7..45ea5914d 100644 --- a/java/google/registry/model/registry/Registry.java +++ b/java/google/registry/model/registry/Registry.java @@ -97,7 +97,6 @@ public class Registry extends ImmutableObject implements Buildable { public static final boolean DEFAULT_ESCROW_ENABLED = false; public static final boolean DEFAULT_DNS_PAUSED = false; public static final Duration DEFAULT_ADD_GRACE_PERIOD = Duration.standardDays(5); - public static final Duration DEFAULT_SUNRUSH_ADD_GRACE_PERIOD = Duration.standardDays(5); public static final Duration DEFAULT_AUTO_RENEW_GRACE_PERIOD = Duration.standardDays(45); public static final Duration DEFAULT_REDEMPTION_GRACE_PERIOD = Duration.standardDays(30); public static final Duration DEFAULT_RENEW_GRACE_PERIOD = Duration.standardDays(5); @@ -126,28 +125,10 @@ public class Registry extends ImmutableObject implements Buildable { * sequence of states (ignoring {@link #PDT} which is a pseudo-state). */ public enum TldState { + /** The state of not yet being delegated to this registry in the root zone by IANA. */ PREDELEGATION, - /** - * The state in which only trademark holders can submit applications for domains. Doing so - * requires a claims notice to be submitted with the application. - */ - SUNRISE, - - /** - * The state representing the overlap of {@link #SUNRISE} with a "landrush" state in which - * anyone can submit an application for a domain name. Sunrise applications may continue during - * landrush, so we model the overlap as a distinct state named "sunrush". - */ - SUNRUSH, - - /** - * The state in which anyone can submit an application for a domain name. Sunrise applications - * are not allowed during this phase. - */ - LANDRUSH, - /** * The state in which only trademark holders can submit a "create" request. It is identical to * {@link #GENERAL_AVAILABILITY} in all other respects. @@ -155,9 +136,9 @@ public class Registry extends ImmutableObject implements Buildable { START_DATE_SUNRISE, /** - * A state in which no domain operations are permitted. Generally used after sunrise or landrush - * to allocate uncontended applications and send contended applications to auction. This state - * is special in that it has no ordering constraints and can appear after any phase. + * A state in which no domain operations are permitted. Generally used between sunrise and + * general availability. This state is special in that it has no ordering constraints and can + * appear after any phase. */ QUIET_PERIOD, @@ -373,9 +354,6 @@ public class Registry extends ImmutableObject implements Buildable { /** The length of the anchor tenant add grace period for this TLD. */ Duration anchorTenantAddGracePeriodLength = DEFAULT_ANCHOR_TENANT_ADD_GRACE_PERIOD; - /** The length of the add grace period during sunrush for this TLD. */ - Duration sunrushAddGracePeriodLength = DEFAULT_SUNRUSH_ADD_GRACE_PERIOD; - /** The length of the auto renew grace period for this TLD. */ Duration autoRenewGracePeriodLength = DEFAULT_AUTO_RENEW_GRACE_PERIOD; @@ -499,10 +477,6 @@ public class Registry extends ImmutableObject implements Buildable { return addGracePeriodLength; } - public Duration getSunrushAddGracePeriodLength() { - return sunrushAddGracePeriodLength; - } - public Duration getAutoRenewGracePeriodLength() { return autoRenewGracePeriodLength; } @@ -720,14 +694,6 @@ public class Registry extends ImmutableObject implements Buildable { return this; } - public Builder setSunrushAddGracePeriodLength(Duration sunrushAddGracePeriodLength) { - checkArgument( - sunrushAddGracePeriodLength.isLongerThan(Duration.ZERO), - "sunrushAddGracePeriodLength must be non-zero"); - getInstance().sunrushAddGracePeriodLength = sunrushAddGracePeriodLength; - return this; - } - /** Warning! Changing this will affect the billing time of autorenew events in the past. */ public Builder setAutoRenewGracePeriodLength(Duration autoRenewGracePeriodLength) { checkArgument( diff --git a/java/google/registry/model/reporting/HistoryEntry.java b/java/google/registry/model/reporting/HistoryEntry.java index ea67690fc..c2a0860e1 100644 --- a/java/google/registry/model/reporting/HistoryEntry.java +++ b/java/google/registry/model/reporting/HistoryEntry.java @@ -50,11 +50,15 @@ public class HistoryEntry extends ImmutableObject implements Buildable { CONTACT_TRANSFER_REJECT, CONTACT_TRANSFER_REQUEST, CONTACT_UPDATE, + /** + * Used for history entries that were allocated as a result of a domain application. + * + *

Domain applications (and thus allocating from an application) no longer exist, but we have + * existing domains in the system that were created via allocation and thus have history entries + * of this type under them, so this is retained for legacy purposes. + */ + @Deprecated DOMAIN_ALLOCATE, - DOMAIN_APPLICATION_CREATE, - DOMAIN_APPLICATION_DELETE, - DOMAIN_APPLICATION_UPDATE, - DOMAIN_APPLICATION_STATUS_UPDATE, /** * Used for domain registration autorenews explicitly logged by * {@link google.registry.batch.ExpandRecurringBillingEventsAction}. diff --git a/java/google/registry/module/tools/ToolsRequestComponent.java b/java/google/registry/module/tools/ToolsRequestComponent.java index e8e6879c5..633a38709 100644 --- a/java/google/registry/module/tools/ToolsRequestComponent.java +++ b/java/google/registry/module/tools/ToolsRequestComponent.java @@ -34,7 +34,6 @@ import google.registry.tools.server.CreatePremiumListAction; import google.registry.tools.server.DeleteEntityAction; import google.registry.tools.server.GenerateZoneFilesAction; import google.registry.tools.server.KillAllCommitLogsAction; -import google.registry.tools.server.KillAllDomainApplicationsAction; import google.registry.tools.server.KillAllEppResourcesAction; import google.registry.tools.server.ListDomainsAction; import google.registry.tools.server.ListHostsAction; @@ -70,7 +69,6 @@ interface ToolsRequestComponent { FlowComponent.Builder flowComponentBuilder(); GenerateZoneFilesAction generateZoneFilesAction(); KillAllCommitLogsAction killAllCommitLogsAction(); - KillAllDomainApplicationsAction killAllDomainApplicationsAction(); KillAllEppResourcesAction killAllEppResourcesAction(); ListDomainsAction listDomainsAction(); ListHostsAction listHostsAction(); diff --git a/java/google/registry/rdap/RdapJsonFormatter.java b/java/google/registry/rdap/RdapJsonFormatter.java index 0c2c1fd05..d64dfaf5b 100644 --- a/java/google/registry/rdap/RdapJsonFormatter.java +++ b/java/google/registry/rdap/RdapJsonFormatter.java @@ -252,8 +252,6 @@ public class RdapJsonFormatter { .put(HistoryEntry.Type.CONTACT_CREATE, RdapEventAction.REGISTRATION) .put(HistoryEntry.Type.CONTACT_DELETE, RdapEventAction.DELETION) .put(HistoryEntry.Type.CONTACT_TRANSFER_APPROVE, RdapEventAction.TRANSFER) - .put(HistoryEntry.Type.DOMAIN_APPLICATION_CREATE, RdapEventAction.REGISTRATION) - .put(HistoryEntry.Type.DOMAIN_APPLICATION_DELETE, RdapEventAction.DELETION) .put(HistoryEntry.Type.DOMAIN_AUTORENEW, RdapEventAction.REREGISTRATION) .put(HistoryEntry.Type.DOMAIN_CREATE, RdapEventAction.REGISTRATION) .put(HistoryEntry.Type.DOMAIN_DELETE, RdapEventAction.DELETION) diff --git a/java/google/registry/tmch/LordnTaskUtils.java b/java/google/registry/tmch/LordnTaskUtils.java index f1b0b3453..63c475ac9 100644 --- a/java/google/registry/tmch/LordnTaskUtils.java +++ b/java/google/registry/tmch/LordnTaskUtils.java @@ -29,6 +29,10 @@ import org.joda.time.DateTime; /** * Helper methods for creating tasks containing CSV line data in the lordn-sunrise and lordn-claims * queues based on DomainResource changes. + * + *

Note that, per the + * TMCH RFC, while the application-datetime data is optional (which we never send because there + * start-date sunrise has no applications), its presence in the header is still required. */ public final class LordnTaskUtils { @@ -62,31 +66,25 @@ public final class LordnTaskUtils { /** Returns the corresponding CSV LORDN line for a sunrise domain. */ public static String getCsvLineForSunriseDomain(DomainResource domain, DateTime transactionTime) { - // Only skip nulls in the outer join because only application time is allowed to be null. - Joiner joiner = Joiner.on(','); - return joiner.skipNulls().join( - joiner.join( + return Joiner.on(',') + .join( domain.getRepoId(), domain.getFullyQualifiedDomainName(), domain.getSmdId(), getIanaIdentifier(domain.getCreationClientId()), - transactionTime), // Used as creation time. - domain.getApplicationTime()); // This may be null for start-date sunrise or QLP domains. + transactionTime); // Used as creation time. } /** Returns the corresponding CSV LORDN line for a claims domain. */ public static String getCsvLineForClaimsDomain(DomainResource domain, DateTime transactionTime) { - // Only skip nulls in the outer join because only application time is allowed to be null. - Joiner joiner = Joiner.on(','); - return joiner.skipNulls().join( - joiner.join( + return Joiner.on(',') + .join( domain.getRepoId(), domain.getFullyQualifiedDomainName(), domain.getLaunchNotice().getNoticeId().getTcnId(), getIanaIdentifier(domain.getCreationClientId()), transactionTime, // Used as creation time. - domain.getLaunchNotice().getAcceptedTime()), - domain.getApplicationTime()); // This is usually null except for landrush domains. + domain.getLaunchNotice().getAcceptedTime()); } /** Retrieves the IANA identifier for a registrar based on the client id. */ diff --git a/java/google/registry/tools/AllocateDomainCommand.java b/java/google/registry/tools/AllocateDomainCommand.java deleted file mode 100644 index c39997d0f..000000000 --- a/java/google/registry/tools/AllocateDomainCommand.java +++ /dev/null @@ -1,190 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.base.Preconditions.checkState; -import static com.google.common.base.Strings.emptyToNull; -import static com.google.common.collect.ImmutableList.toImmutableList; -import static com.google.common.collect.Iterables.transform; -import static com.google.common.io.BaseEncoding.base16; -import static google.registry.model.eppcommon.EppXmlTransformer.unmarshal; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.tools.CommandUtilities.addHeader; -import static java.util.stream.Collectors.joining; - -import com.beust.jcommander.Parameter; -import com.beust.jcommander.Parameters; -import com.google.common.base.Ascii; -import com.google.common.base.Splitter; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.template.soy.data.SoyMapData; -import com.googlecode.objectify.Key; -import google.registry.model.domain.DesignatedContact; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.DomainCommand; -import google.registry.model.domain.Period; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.model.domain.launch.LaunchNotice; -import google.registry.model.eppinput.EppInput; -import google.registry.model.eppinput.EppInput.ResourceCommandWrapper; -import google.registry.model.reporting.HistoryEntry; -import google.registry.model.smd.SignedMark; -import google.registry.tools.soy.DomainAllocateSoyInfo; -import google.registry.xml.XmlException; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** Command to allocated a domain from a domain application. */ -@Parameters(separators = " =", commandDescription = "Allocate a domain application") -final class AllocateDomainCommand extends MutatingEppToolCommand { - - @Parameter( - names = "--ids", - description = "Comma-delimited list of application IDs to update.", - required = true) - String ids; - - private final List> applicationKeys = new ArrayList<>(); - - @Override - protected String postExecute() { - return ofy() - .transactNewReadOnly( - () -> { - String failureMessage = - ofy() - .load() - .keys(applicationKeys) - .values() - .stream() - .map( - application -> - application.getApplicationStatus() - == ApplicationStatus.ALLOCATED - ? null - : application.getFullyQualifiedDomainName()) - .filter(Objects::nonNull) - .collect(joining("\n")); - return failureMessage.isEmpty() - ? "ALL SUCCEEDED" - : addHeader("FAILURES", failureMessage); - }); - } - - /** Extract the registration period from the XML used to create the domain application. */ - private static Period extractPeriodFromXml(byte[] xmlBytes) throws XmlException { - EppInput eppInput = unmarshal(EppInput.class, xmlBytes); - return ((DomainCommand.Create) - ((ResourceCommandWrapper) eppInput.getCommandWrapper().getCommand()) - .getResourceCommand()).getPeriod(); - } - - @Override - protected void initMutatingEppToolCommand() { - checkArgument(superuser, "This command MUST be run as --superuser."); - setSoyTemplate(DomainAllocateSoyInfo.getInstance(), DomainAllocateSoyInfo.CREATE); - ofy().transactNewReadOnly(this::initAllocateDomainCommand); - } - - private void initAllocateDomainCommand() { - Iterable> keys = - transform( - Splitter.on(',').split(ids), - applicationId -> Key.create(DomainApplication.class, applicationId)); - for (DomainApplication application : ofy().load().keys(keys).values()) { - // If the application is already allocated print a warning but do not fail. - if (application.getApplicationStatus() == ApplicationStatus.ALLOCATED) { - System.err.printf("Application %s has already been allocated\n", application.getRepoId()); - continue; - } - // Ensure domain doesn't already have a final status which it shouldn't be updated - // from. - checkState( - !application.getApplicationStatus().isFinalStatus(), - "Application has final status %s", - application.getApplicationStatus()); - try { - HistoryEntry history = - checkNotNull( - ofy() - .load() - .type(HistoryEntry.class) - .ancestor(checkNotNull(application)) - .order("modificationTime") - .first() - .now(), - "Could not find any history entries for domain application %s", - application.getRepoId()); - String clientTransactionId = - emptyToNull(history.getTrid().getClientTransactionId().orElse(null)); - Period period = checkNotNull(extractPeriodFromXml(history.getXmlBytes())); - checkArgument(period.getUnit() == Period.Unit.YEARS); - ImmutableMap.Builder contactsMapBuilder = new ImmutableMap.Builder<>(); - for (DesignatedContact contact : application.getContacts()) { - contactsMapBuilder.put( - Ascii.toLowerCase(contact.getType().toString()), - ofy().load().key(contact.getContactKey()).now().getForeignKey()); - } - LaunchNotice launchNotice = application.getLaunchNotice(); - String smdId = - application.getEncodedSignedMarks().isEmpty() - ? null - : unmarshal(SignedMark.class, application.getEncodedSignedMarks().get(0).getBytes()) - .getId(); - ImmutableMap launchNoticeMap = - (launchNotice == null) - ? null - : ImmutableMap.of( - "noticeId", launchNotice.getNoticeId().getTcnId(), - "expirationTime", launchNotice.getExpirationTime().toString(), - "acceptedTime", launchNotice.getAcceptedTime().toString()); - ImmutableList> dsRecords = - application - .getDsData() - .stream() - .map( - dsData -> - ImmutableMap.of( - "keyTag", dsData.getKeyTag(), - "algorithm", dsData.getAlgorithm(), - "digestType", dsData.getDigestType(), - "digest", base16().encode(dsData.getDigest()))) - .collect(toImmutableList()); - addSoyRecord( - application.getCurrentSponsorClientId(), - new SoyMapData( - "name", application.getFullyQualifiedDomainName(), - "period", period.getValue(), - "nameservers", application.loadNameserverFullyQualifiedHostNames(), - "registrant", ofy().load().key(application.getRegistrant()).now().getForeignKey(), - "contacts", contactsMapBuilder.build(), - "authInfo", application.getAuthInfo().getPw().getValue(), - "smdId", smdId, - "applicationRoid", application.getRepoId(), - "applicationTime", application.getCreationTime().toString(), - "launchNotice", launchNoticeMap, - "dsRecords", dsRecords, - "clTrid", clientTransactionId)); - applicationKeys.add(Key.create(application)); - } catch (XmlException e) { - throw new RuntimeException(e); - } - } - } -} diff --git a/java/google/registry/tools/CommandUtilities.java b/java/google/registry/tools/CommandUtilities.java index 409c46565..7ba9823fe 100644 --- a/java/google/registry/tools/CommandUtilities.java +++ b/java/google/registry/tools/CommandUtilities.java @@ -18,11 +18,9 @@ import static com.google.common.base.Preconditions.checkState; import com.google.common.base.Ascii; import com.google.common.base.Strings; -import com.google.common.collect.ImmutableMap; import com.googlecode.objectify.Key; import google.registry.model.EppResource; import google.registry.model.contact.ContactResource; -import google.registry.model.domain.DomainApplication; import google.registry.model.domain.DomainResource; import google.registry.model.host.HostResource; import google.registry.model.index.ForeignKeyIndex; @@ -33,21 +31,18 @@ class CommandUtilities { /** A useful parameter enum for commands that operate on {@link EppResource} objects. */ public enum ResourceType { - CONTACT, - HOST, - DOMAIN, - APPLICATION; + CONTACT(ContactResource.class), + HOST(HostResource.class), + DOMAIN(DomainResource.class); + + private Class clazz; + + ResourceType(Class clazz) { + this.clazz = clazz; + } public Key getKey(String uniqueId, DateTime now) { - return this == APPLICATION - ? Key.create(DomainApplication.class, uniqueId) - : ForeignKeyIndex.loadAndGetKey( - ImmutableMap.of( - CONTACT, ContactResource.class, - HOST, HostResource.class, - DOMAIN, DomainResource.class).get(this), - uniqueId, - now); + return ForeignKeyIndex.loadAndGetKey(clazz, uniqueId, now); } } diff --git a/java/google/registry/tools/CreateOrUpdateTldCommand.java b/java/google/registry/tools/CreateOrUpdateTldCommand.java index 3ef03b998..449743439 100644 --- a/java/google/registry/tools/CreateOrUpdateTldCommand.java +++ b/java/google/registry/tools/CreateOrUpdateTldCommand.java @@ -74,12 +74,6 @@ abstract class CreateOrUpdateTldCommand extends MutatingCommand { description = "Length of the add grace period (in ISO 8601 duration format)") Duration addGracePeriod; - @Nullable - @Parameter( - names = "--sunrush_add_grace_period", - description = "Length of the add grace period during sunrush (in ISO 8601 duration format)") - Duration sunrushAddGracePeriod; - @Nullable @Parameter( names = "--redemption_grace_period", @@ -331,7 +325,6 @@ abstract class CreateOrUpdateTldCommand extends MutatingCommand { } Optional.ofNullable(addGracePeriod).ifPresent(builder::setAddGracePeriodLength); - Optional.ofNullable(sunrushAddGracePeriod).ifPresent(builder::setSunrushAddGracePeriodLength); Optional.ofNullable(redemptionGracePeriod).ifPresent(builder::setRedemptionGracePeriodLength); Optional.ofNullable(pendingDeleteLength).ifPresent(builder::setPendingDeleteLength); Optional.ofNullable(automaticTransferLength).ifPresent(builder::setAutomaticTransferLength); diff --git a/java/google/registry/tools/DomainApplicationInfoCommand.java b/java/google/registry/tools/DomainApplicationInfoCommand.java deleted file mode 100644 index b6d71ab17..000000000 --- a/java/google/registry/tools/DomainApplicationInfoCommand.java +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static google.registry.util.PreconditionsUtils.checkArgumentNotNull; - -import com.beust.jcommander.Parameter; -import com.beust.jcommander.Parameters; -import com.google.common.base.Ascii; -import com.google.template.soy.data.SoyMapData; -import google.registry.model.domain.launch.LaunchPhase; -import google.registry.tools.soy.DomainApplicationInfoSoyInfo; - -/** A command to execute a domain application info EPP command. */ -@Parameters(separators = " =", commandDescription = "Get domain application EPP info") -final class DomainApplicationInfoCommand extends NonMutatingEppToolCommand { - - @Parameter( - names = {"-c", "--client"}, - description = "Client identifier of the registrar to execute the command as", - required = true) - String clientId; - - @Parameter( - names = {"--id"}, - description = "ID of the application.", - required = true) - private String id; - - @Parameter( - names = {"-n", "--domain_name"}, - description = "Domain name to query.", - required = true) - private String domainName; - - @Parameter( - names = {"--phase"}, - description = "Phase of the application to query.", - required = true) - private String phase; - - @Override - void initEppToolCommand() { - LaunchPhase launchPhase = checkArgumentNotNull( - LaunchPhase.fromValue(Ascii.toLowerCase(phase)), "Illegal launch phase."); - - setSoyTemplate( - DomainApplicationInfoSoyInfo.getInstance(), - DomainApplicationInfoSoyInfo.DOMAINAPPLICATIONINFO); - addSoyRecord(clientId, new SoyMapData( - "domainName", domainName, - "id", id, - "phase", launchPhase.getPhase(), - "subphase", launchPhase.getSubphase())); - } -} diff --git a/java/google/registry/tools/GenerateApplicationsReportCommand.java b/java/google/registry/tools/GenerateApplicationsReportCommand.java deleted file mode 100644 index afe831b36..000000000 --- a/java/google/registry/tools/GenerateApplicationsReportCommand.java +++ /dev/null @@ -1,176 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static com.google.common.base.Strings.isNullOrEmpty; -import static google.registry.model.eppcommon.EppXmlTransformer.unmarshal; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.model.registry.Registries.assertTldExists; -import static google.registry.util.DateTimeUtils.isBeforeOrAt; -import static google.registry.util.DomainNameUtils.ACE_PREFIX; -import static java.nio.charset.StandardCharsets.UTF_8; -import static java.util.Collections.emptyList; - -import com.beust.jcommander.Parameter; -import com.beust.jcommander.Parameters; -import com.google.common.base.Joiner; -import com.google.common.net.InternetDomainName; -import com.googlecode.objectify.cmd.LoadType; -import com.googlecode.objectify.cmd.Query; -import google.registry.model.domain.DomainApplication; -import google.registry.model.smd.EncodedSignedMark; -import google.registry.model.smd.SignedMark; -import google.registry.model.smd.SignedMarkRevocationList; -import google.registry.model.tmch.ClaimsListShard; -import google.registry.tmch.TmchXmlSignature; -import google.registry.tools.params.PathParameter; -import google.registry.util.Clock; -import google.registry.util.Idn; -import google.registry.xml.XmlException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import javax.annotation.CheckReturnValue; -import javax.inject.Inject; -import org.joda.time.DateTime; - -/** Command to generate a report of all domain applications. */ -@Parameters(separators = " =", commandDescription = "Generate report of all domain applications.") -final class GenerateApplicationsReportCommand implements CommandWithRemoteApi { - - @Parameter( - names = {"-t", "--tld"}, - description = "TLD which contains the applications.") - private String tld; - - @Parameter( - names = "--ids", - description = "Comma-delimited list of application IDs to include. " - + "If not provided, all active application will be included.") - private List ids = emptyList(); - - @Parameter( - names = {"-o", "--output"}, - description = "Output file.", - validateWith = PathParameter.OutputFile.class) - private Path output = Paths.get("/dev/stdout"); - - @Inject Clock clock; - @Inject TmchXmlSignature tmchXmlSignature; - - @Override - public void run() throws Exception { - if (tld != null) { - assertTldExists(tld); - } - DateTime now = clock.nowUtc(); - List result = new ArrayList<>(); - if (!ids.isEmpty()) { - for (Long applicationId : ids) { - DomainApplication domainApplication = ofy().load() - .type(DomainApplication.class) - .id(applicationId) - .now(); - if (domainApplication == null) { - System.err.printf("Application ID %d not found\n", applicationId); - continue; - } - validate(domainApplication, now).ifPresent(result::add); - } - } else { - LoadType loader = ofy().load().type(DomainApplication.class); - Query domainApplications = - (tld == null) ? loader : loader.filter("tld", tld); - for (DomainApplication domainApplication : domainApplications) { - validate(domainApplication, now).ifPresent(result::add); - } - } - Files.write(output, result, UTF_8); - } - - /** Processes a domain application and adds report lines to {@code result}. */ - Optional validate(DomainApplication domainApplication, DateTime now) { - // Validate the label. - List nameParts = - InternetDomainName.from(domainApplication.getFullyQualifiedDomainName()).parts(); - String label = nameParts.get(0); - - // Ignore deleted applications. - if (isBeforeOrAt(domainApplication.getDeletionTime(), now)) { - return Optional.empty(); - } - - // Defensive invalid punycode check. - if (label.startsWith(ACE_PREFIX) && label.equals(Idn.toUnicode(label))) { - return Optional.of(makeLine(domainApplication, "Invalid punycode")); - } - - // Validate the SMD. - for (EncodedSignedMark encodedSignedMark : domainApplication.getEncodedSignedMarks()) { - byte[] signedMarkData; - try { - signedMarkData = encodedSignedMark.getBytes(); - } catch (IllegalStateException e) { - return Optional.of(makeLine(domainApplication, "Incorrectly encoded SMD data")); - } - - SignedMark signedMark; - try { - signedMark = unmarshal(SignedMark.class, signedMarkData); - } catch (XmlException e) { - return Optional.of(makeLine(domainApplication, "Unparseable SMD")); - } - - if (SignedMarkRevocationList.get().isSmdRevoked(signedMark.getId(), - domainApplication.getCreationTime())) { - return Optional.of(makeLine(domainApplication, "SMD revoked")); - } - - try { - tmchXmlSignature.verify(signedMarkData); - } catch (Exception e) { - return Optional.of( - makeLine(domainApplication, String.format("Invalid SMD (%s)", e.getMessage()))); - } - } - - // If this is a landrush application and has no claims notice, check to see if it should have - // one. - if (domainApplication.getEncodedSignedMarks().isEmpty() - && (domainApplication.getLaunchNotice() == null - || domainApplication.getLaunchNotice().getNoticeId() == null - || isNullOrEmpty(domainApplication.getLaunchNotice().getNoticeId().getTcnId())) - && ClaimsListShard.get().getClaimKey(label).isPresent()) { - return Optional.of(makeLine(domainApplication, "Missing claims notice")); - } - - return Optional.of(makeLine(domainApplication, "Valid")); - } - - @CheckReturnValue - private String makeLine(DomainApplication domainApplication, String validityMessage) { - return Joiner.on(',').join( - domainApplication.getRepoId(), - domainApplication.getFullyQualifiedDomainName(), - domainApplication.getEncodedSignedMarks().isEmpty() ? "landrush" : "sunrise", - domainApplication.getApplicationStatus(), - domainApplication.getCurrentSponsorClientId(), - ofy().load().key(domainApplication.getRegistrant()).now().getEmailAddress(), - validityMessage); - } -} diff --git a/java/google/registry/tools/GenerateAuctionDataCommand.java b/java/google/registry/tools/GenerateAuctionDataCommand.java deleted file mode 100644 index c2ab2026b..000000000 --- a/java/google/registry/tools/GenerateAuctionDataCommand.java +++ /dev/null @@ -1,259 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.base.Preconditions.checkState; -import static com.google.common.base.Strings.nullToEmpty; -import static google.registry.model.domain.launch.ApplicationStatus.REJECTED; -import static google.registry.model.domain.launch.ApplicationStatus.VALIDATED; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.model.registry.Registries.assertTldExists; -import static google.registry.util.DateTimeUtils.isAtOrAfter; -import static java.nio.charset.StandardCharsets.UTF_8; -import static java.util.Comparator.comparing; -import static java.util.stream.Collectors.joining; -import static org.joda.time.DateTimeZone.UTC; - -import com.beust.jcommander.Parameter; -import com.beust.jcommander.Parameters; -import com.google.common.base.Joiner; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Iterables; -import com.google.common.collect.Multimap; -import com.google.common.collect.Ordering; -import com.google.common.collect.TreeMultimap; -import google.registry.model.contact.ContactAddress; -import google.registry.model.contact.ContactPhoneNumber; -import google.registry.model.contact.ContactResource; -import google.registry.model.contact.PostalInfo; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.model.eppcommon.Address; -import google.registry.model.eppcommon.PhoneNumber; -import google.registry.model.registrar.Registrar; -import google.registry.model.registrar.RegistrarAddress; -import google.registry.model.registrar.RegistrarContact; -import google.registry.tools.params.PathParameter; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; -import java.util.TreeSet; -import org.joda.time.DateTime; -import org.joda.time.format.DateTimeFormat; -import org.joda.time.format.DateTimeFormatter; - -/** Command to generate the auction data for a TLD. */ -@Parameters(separators = " =", commandDescription = "Generate auction data") -final class GenerateAuctionDataCommand implements CommandWithRemoteApi { - - @Parameter( - description = "TLD(s) to generate auction data for", - required = true) - private List mainParameters; - - @Parameter( - names = {"-o", "--output"}, - description = "Output file.", - validateWith = PathParameter.OutputFile.class) - private Path output = Paths.get("/dev/stdout"); - - @Parameter( - names = "--skip_validated_check", - description = "Skip the check that all contended applications are already validated.") - private boolean skipValidatedCheck; - - /** This is the date format expected in the output file. */ - final DateTimeFormatter formatter = DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss"); - - @Override - public void run() throws Exception { - checkArgument(mainParameters.size() == 1, - "Expected a single parameter with the TLD name. Actual: %s", - Joiner.on(' ').join(mainParameters)); - String tld = mainParameters.get(0); - assertTldExists(tld); - - List result = new ArrayList<>(); - Set registrars = new TreeSet<>(); - - for (Map.Entry> entry : - getDomainApplicationMap(tld).asMap().entrySet()) { - String domainName = entry.getKey(); - List domainApplications = filterApplications(entry.getValue()); - - // Skip the domain if there are no contentions. This can happen if there is only a single - // sunrise applicant, or if there are no sunrise applicants and just a single landrush - // application. - if (domainApplications.size() < 2) { - continue; - } - - Set emailAddresses = new HashSet<>(); - for (DomainApplication domainApplication : domainApplications) { - checkState(skipValidatedCheck || domainApplication.getApplicationStatus() == VALIDATED, "" - + "Can't process contending applications for %s because some applications " - + "are not yet validated.", domainName); - - ContactResource registrant = - ofy().load().key(checkNotNull(domainApplication.getRegistrant())).now(); - result.add(emitApplication(domainApplication, registrant)); - - // Ensure the registrant's email address is unique across the contending applications. - if (!emailAddresses.add(registrant.getEmailAddress())) { - System.err.printf( - "Warning: Multiple applications found with email address %s for domain %s\n", - registrant.getEmailAddress(), - domainName); - } - - // Add registrar for this application our set of registrars that we must output at the end. - registrars.add(domainApplication.getCurrentSponsorClientId()); - } - } - - // Output records for the registrars of any applications we emitted above. - for (String clientId : registrars) { - Optional registrar = Registrar.loadByClientId(clientId); - checkState(registrar.isPresent(), "Registrar %s does not exist", clientId); - result.add(emitRegistrar(registrar.get())); - } - - Files.write(output, result, UTF_8); - } - - /** Return a map of all fully-qualified domain names mapped to the applications for that name. */ - private static Multimap getDomainApplicationMap(final String tld) { - DateTime now = DateTime.now(UTC); - Multimap domainApplicationMap = - TreeMultimap.create(Ordering.natural(), comparing(DomainApplication::getForeignKey)); - Iterable domainApplications = - ofy().load().type(DomainApplication.class).filter("tld", tld); - for (DomainApplication domainApplication : domainApplications) { - // Ignore deleted and rejected applications. They aren't under consideration. - ApplicationStatus applicationStatus = domainApplication.getApplicationStatus(); - DateTime deletionTime = domainApplication.getDeletionTime(); - if (applicationStatus == REJECTED || isAtOrAfter(now, deletionTime)) { - continue; - } - boolean result = domainApplicationMap.put( - domainApplication.getFullyQualifiedDomainName(), domainApplication); - checkState(result, "Domain application not added to map: %s", domainApplication); - } - return domainApplicationMap; - } - - /** - * Filter applications by their priority. If there are any sunrise applications, then those will - * be returned; otherwise just the landrush applications will be returned. - */ - private static List filterApplications( - Iterable domainApplications) { - // Sort the applications into sunrise and landrush applications. - List sunriseApplications = new ArrayList<>(); - List landrushApplications = new ArrayList<>(); - for (DomainApplication domainApplication : domainApplications) { - if (!domainApplication.getEncodedSignedMarks().isEmpty()) { - sunriseApplications.add(domainApplication); - } else { - landrushApplications.add(domainApplication); - } - } - - return !sunriseApplications.isEmpty() ? sunriseApplications : landrushApplications; - } - - /** Return a record line for the given application. */ - private String emitApplication(DomainApplication domainApplication, ContactResource registrant) { - Optional postalInfo = - Optional.ofNullable( - Optional.ofNullable(registrant.getInternationalizedPostalInfo()) - .orElse(registrant.getLocalizedPostalInfo())); - Optional address = - Optional.ofNullable(postalInfo.map(PostalInfo::getAddress).orElse(null)); - List street = address.map(Address::getStreet).orElseGet(ImmutableList::of); - Optional phoneNumber = Optional.ofNullable(registrant.getVoiceNumber()); - - // Each line containing an auction participant has the following format: - // - // Domain|Application ID|Application timestamp|Last update date|Registrar Name| - // Registrant Name|Registrant Company|Registrant Address 1|Registrant Address 2| - // Registrant City|Registrant Province|Registrant Postal Code|Registrant Country| - // Registrant Email|Registrant Telephone|Reserve|Application Type - return Joiner.on('|') - .join( - ImmutableList.of( - domainApplication.getFullyQualifiedDomainName(), - domainApplication.getForeignKey(), - formatter.print(domainApplication.getCreationTime()), - domainApplication.getLastEppUpdateTime() != null - ? formatter.print(domainApplication.getLastEppUpdateTime()) - : "", - domainApplication.getCurrentSponsorClientId(), - nullToEmpty(postalInfo.map(PostalInfo::getName).orElse("")), - nullToEmpty(postalInfo.map(PostalInfo::getOrg).orElse("")), - Iterables.getFirst(street, ""), - street.stream().skip(1).filter(Objects::nonNull).collect(joining(" ")), - nullToEmpty(address.map(Address::getCity).orElse("")), - nullToEmpty(address.map(Address::getState).orElse("")), - nullToEmpty(address.map(Address::getZip).orElse("")), - nullToEmpty(address.map(Address::getCountryCode).orElse("")), - nullToEmpty(registrant.getEmailAddress()), - nullToEmpty(phoneNumber.map(PhoneNumber::toPhoneString).orElse("")), - "", - domainApplication.getEncodedSignedMarks().isEmpty() ? "Landrush" : "Sunrise")); - } - - /** Return a record line for the given registrar. */ - private static String emitRegistrar(Registrar registrar) { - // TODO(b/19016140): Determine if this set-up is required. - Optional contact = - Optional.ofNullable(Iterables.getFirst(registrar.getContacts(), null)); - Optional address = - Optional.ofNullable( - Optional.ofNullable(registrar.getLocalizedAddress()) - .orElse(registrar.getInternationalizedAddress())); - List street = address.map(Address::getStreet).orElseGet(ImmutableList::of); - - // Each line containing the registrar of an auction participant has the following format: - // - // Registrar Name|Registrar Contact Name|Registrar Full Company|Registrar Address 1| - // Registrar Address 2|Registrar City|Registrar Province|Registrar Postal Code| - // Registrar Country|Registrar Email|Registrar Telephone - return Joiner.on('|').join(ImmutableList.of( - registrar.getClientId(), - contact.map(RegistrarContact::getName).orElse("N/A"), - nullToEmpty(registrar.getRegistrarName()), - Iterables.getFirst(street, ""), - Iterables.get(street, 1, ""), - address.map(registrarAddress -> nullToEmpty(registrarAddress.getCity())).orElse(""), - address.map(registrarAddress1 -> - nullToEmpty(registrarAddress1.getState())).orElse(""), - address.map(registrarAddress2 -> nullToEmpty(registrarAddress2.getZip())).orElse(""), - address.map(registrarAddress3 -> - nullToEmpty(registrarAddress3.getCountryCode())).orElse(""), - nullToEmpty(registrar.getEmailAddress()), - nullToEmpty(registrar.getPhoneNumber()))); - } -} diff --git a/java/google/registry/tools/GetApplicationCommand.java b/java/google/registry/tools/GetApplicationCommand.java deleted file mode 100644 index e639d2d66..000000000 --- a/java/google/registry/tools/GetApplicationCommand.java +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static google.registry.model.EppResourceUtils.loadDomainApplication; - -import com.beust.jcommander.Parameter; -import com.beust.jcommander.Parameters; -import java.util.List; - -/** Command to show a domain application. */ -@Parameters(separators = " =", commandDescription = "Show domain application resource(s)") -final class GetApplicationCommand extends GetEppResourceCommand { - - @Parameter( - description = "Domain application id(s)", - required = true) - private List mainParameters; - - @Override - public void runAndPrint() { - mainParameters.forEach( - appId -> printResource("Application", appId, loadDomainApplication(appId, readTimestamp))); - } -} diff --git a/java/google/registry/tools/GetApplicationIdsCommand.java b/java/google/registry/tools/GetApplicationIdsCommand.java deleted file mode 100644 index e1520af4b..000000000 --- a/java/google/registry/tools/GetApplicationIdsCommand.java +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static google.registry.model.index.DomainApplicationIndex.loadActiveApplicationsByDomainName; -import static google.registry.model.registry.Registries.assertTldExists; -import static google.registry.model.registry.Registries.findTldForNameOrThrow; -import static org.joda.time.DateTimeZone.UTC; - -import com.beust.jcommander.Parameter; -import com.beust.jcommander.Parameters; -import com.google.common.collect.ImmutableList; -import com.google.common.net.InternetDomainName; -import google.registry.model.domain.DomainApplication; -import java.util.List; -import org.joda.time.DateTime; - -/** Command to generate a list of all applications for a given domain name(s). */ -@Parameters(separators = " =", - commandDescription = "Generate list of application IDs and sponsors for given domain name(s)") -final class GetApplicationIdsCommand implements CommandWithRemoteApi { - - @Parameter( - description = "Fully qualified domain name(s)", - required = true) - private List mainParameters; - - @Override - public void run() { - for (String domainName : mainParameters) { - InternetDomainName tld = findTldForNameOrThrow(InternetDomainName.from(domainName)); - assertTldExists(tld.toString()); - System.out.printf("%s:%n", domainName); - - // Sample output: - // example.tld: - // 1 (NewRegistrar) - // 2 (OtherRegistrar) - // example2.tld: - // No applications exist for 'example2.tld'. - ImmutableList applications = ImmutableList.copyOf( - loadActiveApplicationsByDomainName(domainName, DateTime.now(UTC))); - if (applications.isEmpty()) { - System.out.printf(" No applications exist for \'%s\'.%n", domainName); - } else { - for (DomainApplication application : applications) { - System.out.printf( - " %s (%s)%n", - application.getForeignKey(), - application.getCurrentSponsorClientId()); - } - } - } - } -} diff --git a/java/google/registry/tools/GetAppliedLabelsCommand.java b/java/google/registry/tools/GetAppliedLabelsCommand.java deleted file mode 100644 index 58ac66086..000000000 --- a/java/google/registry/tools/GetAppliedLabelsCommand.java +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static google.registry.model.domain.launch.ApplicationStatus.REJECTED; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.model.registry.Registries.assertTldExists; -import static google.registry.util.DateTimeUtils.isAtOrAfter; -import static java.nio.charset.StandardCharsets.UTF_8; - -import com.beust.jcommander.Parameter; -import com.beust.jcommander.Parameters; -import com.beust.jcommander.internal.Sets; -import com.google.common.base.Ascii; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.tools.params.PathParameter; -import google.registry.util.Idn; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import org.joda.time.DateTime; - -/** Command to generate a list of all slds in a tld that have open applications. */ -@Parameters(separators = " =", commandDescription = "Generate applied-for domains list") -final class GetAppliedLabelsCommand implements CommandWithRemoteApi { - - @Parameter( - names = {"-t", "--tld"}, - description = "TLD to generate list for.", - required = true) - private String tld; - - @Parameter( - names = {"-o", "--output"}, - description = "Output file.", - validateWith = PathParameter.OutputFile.class) - private Path output = Paths.get("/dev/stdout"); - - @Override - public void run() throws Exception { - List lines = new ArrayList<>(); - for (String label : getDomainApplicationMap(assertTldExists(tld))) { - label = label.substring(0, label.lastIndexOf('.')); - try { - lines.add(Idn.toUnicode(Ascii.toLowerCase(label))); - } catch (IllegalArgumentException e) { - // An invalid punycode label that we need to reject later. - lines.add(label + " (invalid)"); - } - } - Files.write(output, lines, UTF_8); - } - - /** Return a set of all fully-qualified domain names with open applications. */ - private static Set getDomainApplicationMap(final String tld) { - return ofy() - .transact( - () -> { - Set labels = Sets.newHashSet(); - List domainApplications; - domainApplications = - ofy().load().type(DomainApplication.class).filter("tld", tld).list(); - for (DomainApplication domainApplication : domainApplications) { - // Ignore deleted and rejected applications. They aren't under consideration. - ApplicationStatus applicationStatus = domainApplication.getApplicationStatus(); - DateTime deletionTime = domainApplication.getDeletionTime(); - if (applicationStatus == REJECTED - || isAtOrAfter(ofy().getTransactionTime(), deletionTime)) { - continue; - } - labels.add(domainApplication.getFullyQualifiedDomainName()); - } - return labels; - }); - } -} diff --git a/java/google/registry/tools/GetHistoryEntriesCommand.java b/java/google/registry/tools/GetHistoryEntriesCommand.java index 9c0fac1f3..0642e6c9d 100644 --- a/java/google/registry/tools/GetHistoryEntriesCommand.java +++ b/java/google/registry/tools/GetHistoryEntriesCommand.java @@ -52,7 +52,7 @@ final class GetHistoryEntriesCommand implements CommandWithRemoteApi { @Parameter( names = "--id", - description = "Foreign key of the resource, or application ID of the domain application.") + description = "Foreign key of the resource.") private String uniqueId; @Override diff --git a/java/google/registry/tools/GtechTool.java b/java/google/registry/tools/GtechTool.java index 487e76169..90f0cce9a 100644 --- a/java/google/registry/tools/GtechTool.java +++ b/java/google/registry/tools/GtechTool.java @@ -39,13 +39,7 @@ public final class GtechTool { "create_registrar_groups", "create_sandbox_tld", "delete_domain", - "domain_application_info", - "generate_applications_report", - "generate_auction_data", "generate_dns_report", - "get_application", - "get_application_ids", - "get_applied_labels", "get_claims_list", "get_contact", "get_domain", diff --git a/java/google/registry/tools/RegistryTool.java b/java/google/registry/tools/RegistryTool.java index f2e42c8d0..342e3f439 100644 --- a/java/google/registry/tools/RegistryTool.java +++ b/java/google/registry/tools/RegistryTool.java @@ -29,7 +29,6 @@ public final class RegistryTool { */ public static final ImmutableMap> COMMAND_MAP = new ImmutableMap.Builder>() - .put("allocate_domain", AllocateDomainCommand.class) .put("canonicalize_labels", CanonicalizeLabelsCommand.class) .put("check_domain", CheckDomainCommand.class) .put("check_domain_claims", CheckDomainClaimsCommand.class) @@ -56,19 +55,13 @@ public final class RegistryTool { .put("delete_tld", DeleteTldCommand.class) .put("deploy_invoicing_pipeline", DeployInvoicingPipelineCommand.class) .put("deploy_spec11_pipeline", DeploySpec11PipelineCommand.class) - .put("domain_application_info", DomainApplicationInfoCommand.class) .put("encrypt_escrow_deposit", EncryptEscrowDepositCommand.class) .put("execute_epp", ExecuteEppCommand.class) .put("generate_allocation_tokens", GenerateAllocationTokensCommand.class) - .put("generate_applications_report", GenerateApplicationsReportCommand.class) - .put("generate_auction_data", GenerateAuctionDataCommand.class) .put("generate_dns_report", GenerateDnsReportCommand.class) .put("generate_escrow_deposit", GenerateEscrowDepositCommand.class) .put("generate_lordn", GenerateLordnCommand.class) .put("generate_zone_files", GenerateZoneFilesCommand.class) - .put("get_application", GetApplicationCommand.class) - .put("get_application_ids", GetApplicationIdsCommand.class) - .put("get_applied_labels", GetAppliedLabelsCommand.class) .put("get_claims_list", GetClaimsListCommand.class) .put("get_contact", GetContactCommand.class) .put("get_domain", GetDomainCommand.class) @@ -111,8 +104,6 @@ public final class RegistryTool { .put("uniform_rapid_suspension", UniformRapidSuspensionCommand.class) .put("unlock_domain", UnlockDomainCommand.class) .put("unrenew_domain", UnrenewDomainCommand.class) - .put("update_application_status", UpdateApplicationStatusCommand.class) - .put("update_claims_notice", UpdateClaimsNoticeCommand.class) .put("update_cursors", UpdateCursorsCommand.class) .put("update_domain", UpdateDomainCommand.class) .put("update_kms_keyring", UpdateKmsKeyringCommand.class) @@ -121,7 +112,6 @@ public final class RegistryTool { .put("update_reserved_list", UpdateReservedListCommand.class) .put("update_sandbox_tld", UpdateSandboxTldCommand.class) .put("update_server_locks", UpdateServerLocksCommand.class) - .put("update_smd", UpdateSmdCommand.class) .put("update_tld", UpdateTldCommand.class) .put("upload_claims_list", UploadClaimsListCommand.class) .put("validate_escrow_deposit", ValidateEscrowDepositCommand.class) diff --git a/java/google/registry/tools/RegistryToolComponent.java b/java/google/registry/tools/RegistryToolComponent.java index a5a1e24f0..cb233c0cf 100644 --- a/java/google/registry/tools/RegistryToolComponent.java +++ b/java/google/registry/tools/RegistryToolComponent.java @@ -90,7 +90,6 @@ interface RegistryToolComponent { void inject(DeploySpec11PipelineCommand command); void inject(EncryptEscrowDepositCommand command); void inject(GenerateAllocationTokensCommand command); - void inject(GenerateApplicationsReportCommand command); void inject(GenerateDnsReportCommand command); void inject(GenerateEscrowDepositCommand command); void inject(GetKeyringSecretCommand command); diff --git a/java/google/registry/tools/ResaveEppResourceCommand.java b/java/google/registry/tools/ResaveEppResourceCommand.java index cee4f5ecb..758666832 100644 --- a/java/google/registry/tools/ResaveEppResourceCommand.java +++ b/java/google/registry/tools/ResaveEppResourceCommand.java @@ -43,7 +43,7 @@ public final class ResaveEppResourceCommand extends MutatingCommand { @Parameter( names = "--id", - description = "Foreign key of the resource, or application ID of the domain application.") + description = "Foreign key of the resource.") protected String uniqueId; @Override diff --git a/java/google/registry/tools/UpdateApplicationStatusCommand.java b/java/google/registry/tools/UpdateApplicationStatusCommand.java deleted file mode 100644 index d143b50f9..000000000 --- a/java/google/registry/tools/UpdateApplicationStatusCommand.java +++ /dev/null @@ -1,176 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.base.Preconditions.checkState; -import static google.registry.model.EppResourceUtils.loadDomainApplication; -import static google.registry.model.domain.launch.ApplicationStatus.ALLOCATED; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.util.PreconditionsUtils.checkArgumentPresent; - -import com.beust.jcommander.Parameter; -import com.beust.jcommander.Parameters; -import com.google.common.collect.ImmutableList; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.model.domain.launch.LaunchInfoResponseExtension; -import google.registry.model.eppcommon.StatusValue; -import google.registry.model.eppcommon.Trid; -import google.registry.model.poll.PendingActionNotificationResponse.DomainPendingActionNotificationResponse; -import google.registry.model.poll.PollMessage; -import google.registry.model.registrar.Registrar; -import google.registry.model.reporting.HistoryEntry; -import java.util.List; -import org.joda.time.DateTime; - -/** Command to manually update the status of a domain application. */ -@Parameters(separators = " =", commandDescription = "Manually update domain application status.") -final class UpdateApplicationStatusCommand extends MutatingCommand { - - @Parameter( - names = "--ids", - description = "Comma-delimited list of application IDs to update the status.", - required = true) - private List ids; - - @Parameter( - names = "--msg", - description = "Message shown to registrars in the poll message.", - required = true) - private String message; - - @Parameter( - names = "--status", - description = "The new application status.", - required = true) - private ApplicationStatus newStatus; - - @Parameter( - names = "--history_client_id", - description = "Client id that made this change. Only recorded in the history entry.") - private String clientId = "CharlestonRoad"; - - @Override - protected void init() { - checkArgumentPresent( - Registrar.loadByClientId(clientId), "Registrar with client ID %s not found", clientId); - for (final String applicationId : ids) { - ofy().transact(() -> updateApplicationStatus(applicationId)); - } - } - - /** - * Stages changes to update the status of an application and also enqueue a poll message for the - * status change, which may contain a PendingActionNotificationResponse if this is a final status. - * - *

This method must be called from within a transaction. - */ - private void updateApplicationStatus(String applicationId) { - ofy().assertInTransaction(); - DateTime now = ofy().getTransactionTime(); - - DomainApplication domainApplication = - loadDomainApplication(applicationId, now) - .orElseThrow( - () -> - new IllegalArgumentException( - "Domain application does not exist or is deleted")); - - // It's not an error if the application already has the intended status. We want the method - // to be idempotent. - if (domainApplication.getApplicationStatus() == newStatus) { - System.err.printf("Domain application %s already has status %s\n", applicationId, newStatus); - return; - } - - // Ensure domain does not already have a final status which it should not be updated from. - checkState( - !domainApplication.getApplicationStatus().isFinalStatus(), - "Domain application has final status %s", - domainApplication.getApplicationStatus()); - - // Update its status. - DomainApplication.Builder applicationBuilder = domainApplication.asBuilder() - .setApplicationStatus(newStatus) - .setLastEppUpdateTime(now) - // Use the current sponsor instead of the history client ID because the latter might be an - // internal client ID that we don't want to expose. - .setLastEppUpdateClientId(domainApplication.getCurrentSponsorClientId()); - - // Create a history entry (with no XML or Trid) to record that we are updating the status on - // this application. - HistoryEntry newHistoryEntry = new HistoryEntry.Builder() - .setType(HistoryEntry.Type.DOMAIN_APPLICATION_STATUS_UPDATE) - .setParent(domainApplication) - .setModificationTime(now) - .setClientId(clientId) - .setBySuperuser(true) - .build(); - - // Create a poll message informing the registrar that the application status was updated. - PollMessage.OneTime.Builder pollMessageBuilder = new PollMessage.OneTime.Builder() - .setClientId(domainApplication.getCurrentSponsorClientId()) - .setEventTime(ofy().getTransactionTime()) - .setMsg(message) - .setParent(newHistoryEntry) - .setResponseExtensions(ImmutableList.of( - new LaunchInfoResponseExtension.Builder() - .setApplicationId(domainApplication.getForeignKey()) - .setPhase(domainApplication.getPhase()) - .setApplicationStatus(newStatus) - .build())); - - // If this is a final status (i.e. an end state), then we should remove pending create from the - // application and include a pending action notification in the poll message. Conversely, if - // this is not a final status, we should add pending create (which will already be there unless - // we're resurrecting an application). - if (newStatus.isFinalStatus()) { - applicationBuilder.removeStatusValue(StatusValue.PENDING_CREATE); - - pollMessageBuilder.setResponseData(ImmutableList.of( - DomainPendingActionNotificationResponse.create( - domainApplication.getFullyQualifiedDomainName(), - ALLOCATED.equals(newStatus), // Whether the operation succeeded - getCreationTrid(domainApplication), - now))); - } else { - applicationBuilder.addStatusValue(StatusValue.PENDING_CREATE); - } - - // Stage changes for all entities that need to be saved to Datastore. - stageEntityChange(domainApplication, applicationBuilder.build()); - stageEntityChange(null, pollMessageBuilder.build()); - stageEntityChange(null, newHistoryEntry); - } - - /** Retrieve the transaction id of the operation which created this application. */ - static Trid getCreationTrid(DomainApplication domainApplication) { - Trid creationTrid = domainApplication.getCreationTrid(); - if (creationTrid == null) { - // If the creation TRID is not present on the application (this can happen for older - // applications written before this field was added), then we must read the earliest history - // entry for the application to retrieve it. - return checkNotNull(checkNotNull(ofy() - .load() - .type(HistoryEntry.class) - .ancestor(domainApplication) - .order("modificationTime") - .first() - .now()).getTrid()); - } - return creationTrid; - } -} diff --git a/java/google/registry/tools/UpdateClaimsNoticeCommand.java b/java/google/registry/tools/UpdateClaimsNoticeCommand.java deleted file mode 100644 index 41764e9f6..000000000 --- a/java/google/registry/tools/UpdateClaimsNoticeCommand.java +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static com.google.common.base.Preconditions.checkArgument; -import static google.registry.model.EppResourceUtils.loadDomainApplication; -import static google.registry.model.ofy.ObjectifyService.ofy; - -import com.beust.jcommander.Parameter; -import com.beust.jcommander.Parameters; -import com.google.common.net.InternetDomainName; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.launch.LaunchNotice; -import google.registry.model.domain.launch.LaunchNotice.InvalidChecksumException; -import google.registry.model.reporting.HistoryEntry; -import org.joda.time.DateTime; - -/** Command to update the claims notice on a domain application. */ -@Parameters(separators = " =", commandDescription = "Update the claims notice on an application.") -final class UpdateClaimsNoticeCommand implements CommandWithRemoteApi { - - @Parameter( - names = "--id", - description = "Application ID to update.", - required = true) - private String id; - - @Parameter( - names = "--tcn_id", - description = "Trademark claims notice ID.", - required = true) - private String tcnId; - - @Parameter( - names = "--validator_id", - description = "Trademark claims validator.") - private String validatorId = "tmch"; - - @Parameter( - names = "--expiration_time", - description = "Expiration time of claims notice.", - required = true) - private String expirationTime; - - @Parameter( - names = "--accepted_time", - description = "Accepted time of claims notice.", - required = true) - private String acceptedTime; - - @Override - public void run() { - final LaunchNotice launchNotice = LaunchNotice.create( - tcnId, validatorId, DateTime.parse(expirationTime), DateTime.parse(acceptedTime)); - - ofy() - .transact( - () -> { - try { - updateClaimsNotice(id, launchNotice); - } catch (InvalidChecksumException e) { - throw new RuntimeException(e); - } - }); - } - - private void updateClaimsNotice(String applicationId, LaunchNotice launchNotice) - throws InvalidChecksumException { - ofy().assertInTransaction(); - DateTime now = ofy().getTransactionTime(); - - // Load the domain application. - DomainApplication domainApplication = - loadDomainApplication(applicationId, now) - .orElseThrow( - () -> - new IllegalArgumentException( - "Domain application does not exist or is deleted")); - - // Make sure this isn't a sunrise application. - checkArgument(domainApplication.getEncodedSignedMarks().isEmpty(), - "Can't update claims notice on sunrise applications."); - - // Validate the new launch notice checksum. - String domainLabel = - InternetDomainName.from(domainApplication.getFullyQualifiedDomainName()).parts().get(0); - launchNotice.validate(domainLabel); - - DomainApplication updatedApplication = domainApplication.asBuilder() - .setLaunchNotice(launchNotice) - .setLastEppUpdateTime(now) - .setLastEppUpdateClientId(domainApplication.getCurrentSponsorClientId()) - .build(); - - // Create a history entry (with no XML or Trid) to record that we are updating the application. - HistoryEntry newHistoryEntry = new HistoryEntry.Builder() - .setType(HistoryEntry.Type.DOMAIN_APPLICATION_UPDATE) - .setParent(domainApplication) - .setModificationTime(now) - .setClientId(domainApplication.getCurrentSponsorClientId()) - .setBySuperuser(true) - .build(); - - // Save entities to Datastore. - ofy().save().entities(updatedApplication, newHistoryEntry); - } -} diff --git a/java/google/registry/tools/UpdateSmdCommand.java b/java/google/registry/tools/UpdateSmdCommand.java deleted file mode 100644 index ba1c417fa..000000000 --- a/java/google/registry/tools/UpdateSmdCommand.java +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static com.google.common.base.Preconditions.checkArgument; -import static google.registry.model.EppResourceUtils.loadDomainApplication; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.tmch.TmchData.readEncodedSignedMark; -import static java.nio.charset.StandardCharsets.US_ASCII; - -import com.beust.jcommander.Parameter; -import com.beust.jcommander.Parameters; -import com.google.common.collect.ImmutableList; -import com.google.common.net.InternetDomainName; -import google.registry.flows.EppException; -import google.registry.flows.domain.DomainFlowTmchUtils; -import google.registry.model.domain.DomainApplication; -import google.registry.model.reporting.HistoryEntry; -import google.registry.model.smd.EncodedSignedMark; -import google.registry.model.smd.SignedMark; -import google.registry.tools.params.PathParameter; -import java.nio.file.Files; -import java.nio.file.Path; -import javax.inject.Inject; -import org.joda.time.DateTime; - -/** Command to update the SMD on a domain application. */ -@Parameters(separators = " =", commandDescription = "Update the SMD on an application.") -final class UpdateSmdCommand implements CommandWithRemoteApi { - - @Inject DomainFlowTmchUtils tmchUtils; - @Inject UpdateSmdCommand() {} - - @Parameter( - names = "--id", - description = "Application ID to update.", - required = true) - private String id; - - @Parameter( - names = "--smd", - description = "File containing the updated encoded SMD.", - validateWith = PathParameter.InputFile.class, - required = true) - private Path smdFile; - - @Parameter( - names = "--reason", - description = "Special reason for the SMD update to record in the history entry.") - private String reason; - - @Override - public void run() throws Exception { - final EncodedSignedMark encodedSignedMark = - readEncodedSignedMark(new String(Files.readAllBytes(smdFile), US_ASCII)); - - ofy() - .transact( - () -> { - try { - updateSmd(id, encodedSignedMark, reason); - } catch (EppException e) { - throw new RuntimeException(e); - } - }); - } - - private void updateSmd( - String applicationId, EncodedSignedMark encodedSignedMark, String reason) - throws EppException { - ofy().assertInTransaction(); - DateTime now = ofy().getTransactionTime(); - - // Load the domain application. - DomainApplication domainApplication = - loadDomainApplication(applicationId, now) - .orElseThrow( - () -> - new IllegalArgumentException( - "Domain application does not exist or is deleted")); - - // Make sure this is a sunrise application. - checkArgument( - !domainApplication.getEncodedSignedMarks().isEmpty(), - "Can't update SMD on a landrush application."); - - // Verify the new SMD. - String domainLabel = - InternetDomainName.from(domainApplication.getFullyQualifiedDomainName()).parts().get(0); - SignedMark signedMark = tmchUtils.verifyEncodedSignedMark(encodedSignedMark, now); - tmchUtils.verifySignedMarkValidForDomainLabel(signedMark, domainLabel); - - DomainApplication updatedApplication = domainApplication.asBuilder() - .setEncodedSignedMarks(ImmutableList.of(encodedSignedMark)) - .setLastEppUpdateTime(now) - .setLastEppUpdateClientId(domainApplication.getCurrentSponsorClientId()) - .build(); - - // Create a history entry (with no XML or Trid) to record that we are updating the application. - HistoryEntry newHistoryEntry = new HistoryEntry.Builder() - .setType(HistoryEntry.Type.DOMAIN_APPLICATION_UPDATE) - .setParent(domainApplication) - .setModificationTime(now) - .setClientId(domainApplication.getCurrentSponsorClientId()) - .setBySuperuser(true) - .setReason("UpdateSmdCommand" + (reason != null ? ": " + reason : "")) - .build(); - - // Save entities to Datastore. - ofy().save().entities(updatedApplication, newHistoryEntry); - } -} diff --git a/java/google/registry/tools/server/KillAllDomainApplicationsAction.java b/java/google/registry/tools/server/KillAllDomainApplicationsAction.java deleted file mode 100644 index f704c4ddc..000000000 --- a/java/google/registry/tools/server/KillAllDomainApplicationsAction.java +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright 2019 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools.server; - -import static google.registry.mapreduce.inputs.EppResourceInputs.createEntityInput; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.request.Action.Method.POST; -import static google.registry.util.PipelineUtils.createJobPath; - -import com.google.appengine.tools.mapreduce.Mapper; -import com.google.common.collect.ImmutableList; -import com.google.common.flogger.FluentLogger; -import com.googlecode.objectify.Key; -import google.registry.mapreduce.MapreduceRunner; -import google.registry.model.domain.DomainApplication; -import google.registry.model.index.DomainApplicationIndex; -import google.registry.model.index.EppResourceIndex; -import google.registry.model.reporting.HistoryEntry; -import google.registry.request.Action; -import google.registry.request.Response; -import google.registry.request.auth.Auth; -import javax.inject.Inject; - -/** - * Deletes all {@link DomainApplication} entities in Datastore. - * - *

This also deletes the corresponding {@link DomainApplicationIndex}, {@link EppResourceIndex}, - * and descendent {@link HistoryEntry}s. - */ -@Action(path = "/_dr/task/killAllDomainApplications", method = POST, auth = Auth.AUTH_INTERNAL_ONLY) -public class KillAllDomainApplicationsAction implements Runnable { - - private static final FluentLogger logger = FluentLogger.forEnclosingClass(); - - @Inject MapreduceRunner mrRunner; - @Inject Response response; - - @Inject - KillAllDomainApplicationsAction() {} - - @Override - public void run() { - response.sendJavaScriptRedirect( - createJobPath( - mrRunner - .setJobName("Delete all domain applications and associated entities") - .setModuleName("tools") - .runMapOnly( - new KillAllDomainApplicationsMapper(), - ImmutableList.of(createEntityInput(DomainApplication.class))))); - } - - static class KillAllDomainApplicationsMapper extends Mapper { - - private static final long serialVersionUID = 2862967335000340688L; - - @Override - public void map(final DomainApplication application) { - ofy() - .transact( - () -> { - if (ofy().load().entity(application).now() == null) { - getContext().incrementCounter("applications already deleted"); - return; - } - - Key applicationKey = Key.create(application); - DomainApplicationIndex dai = - ofy().load().key(DomainApplicationIndex.createKey(application)).now(); - EppResourceIndex eri = - ofy().load().entity(EppResourceIndex.create(applicationKey)).now(); - - // This case is common and happens when the same domain name was applied for - // multiple times (i.e. there are multiple domain applications sharing a name). The - // first one that the mapreduce happens to process will delete the DAI and then - // subsequent ones will see the entity as already deleted, which is safe and - // expected. - if (dai == null) { - logger.atWarning().log( - "Missing domain application index for application %s.", applicationKey); - getContext().incrementCounter("missing domain application indexes"); - } else { - ofy().delete().entity(dai); - } - - // This case shouldn't be possible except in extremely rare circumstances, as this - // mapreduce itself is relying on EPP resource indexes to load the domain - // applications to delete. - if (eri == null) { - logger.atSevere().log( - "Missing EPP resource index for application %s.", applicationKey); - getContext().incrementCounter("missing EPP resource indexes"); - } else { - ofy().delete().entity(eri); - } - - // Delete the application, its descendents, and the indexes. - ofy().delete().keys(ofy().load().ancestor(application).keys()); - logger.atInfo().log("Deleted domain application %s.", applicationKey); - getContext().incrementCounter("applications deleted"); - }); - } - } -} diff --git a/java/google/registry/tools/server/KillAllEppResourcesAction.java b/java/google/registry/tools/server/KillAllEppResourcesAction.java index 480f05970..2879e7708 100644 --- a/java/google/registry/tools/server/KillAllEppResourcesAction.java +++ b/java/google/registry/tools/server/KillAllEppResourcesAction.java @@ -26,8 +26,6 @@ import google.registry.config.RegistryEnvironment; import google.registry.mapreduce.MapreduceRunner; import google.registry.mapreduce.inputs.EppResourceInputs; import google.registry.model.EppResource; -import google.registry.model.domain.DomainApplication; -import google.registry.model.index.DomainApplicationIndex; import google.registry.model.index.EppResourceIndex; import google.registry.model.index.ForeignKeyIndex; import google.registry.request.Action; @@ -75,12 +73,11 @@ public class KillAllEppResourcesAction implements Runnable { /** * Delete an {@link EppResourceIndex}, its referent, all descendants of each referent, and the - * {@link ForeignKeyIndex} or {@link DomainApplicationIndex} of the referent, as appropriate. + * {@link ForeignKeyIndex} of the referent, as appropriate. * *

This will delete: *

    *
  • All {@link ForeignKeyIndex} types - *
  • {@link DomainApplicationIndex} *
  • {@link EppResourceIndex} *
  • All {@link EppResource} types *
  • {@code HistoryEntry} @@ -98,9 +95,7 @@ public class KillAllEppResourcesAction implements Runnable { } EppResource resource = ofy().load().key(eri.getKey()).now(); // TODO(b/28247733): What about FKI's for renamed hosts? - Key indexKey = resource instanceof DomainApplication - ? DomainApplicationIndex.createKey((DomainApplication) resource) - : ForeignKeyIndex.createKey(resource); + Key indexKey = ForeignKeyIndex.createKey(resource); emitAndIncrementCounter(indexKey, indexKey); } diff --git a/java/google/registry/tools/soy/DomainAllocate.soy b/java/google/registry/tools/soy/DomainAllocate.soy deleted file mode 100644 index 75487f10f..000000000 --- a/java/google/registry/tools/soy/DomainAllocate.soy +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -{namespace domain.registry.tools} - -/** - * Domain allocate request. - */ -{template .create stricthtml="false"} -{@param name: string} -{@param period: int} -{@param registrant: string} -{@param contacts: legacy_object_map} -{@param authInfo: string} -{@param applicationRoid: string} -{@param applicationTime: string} -{@param? clTrid: string} -{@param? nameservers: list} -{@param? smdId: string} -{@param? launchNotice: legacy_object_map} -{@param? dsRecords: list>} - - - - - - {$name} - {$period} - {if isNonnull($nameservers) and length($nameservers) > 0} - - {for $nameserver in $nameservers} - {$nameserver} - {/for} - - {/if} - {$registrant} - {for $type in keys($contacts)} - {$contacts[$type]} - {/for} - - {$authInfo} - - - - - - {$applicationRoid} - {$applicationTime} - {if isNonnull($smdId)} - {$smdId} - {/if} - {if isNonnull($launchNotice)} - - {$launchNotice['noticeId']} - {$launchNotice['expirationTime']} - {$launchNotice['acceptedTime']} - - {/if} - - {if isNonnull($dsRecords) and length($dsRecords) > 0} - - {for $dsRecord in $dsRecords} - - {$dsRecord['keyTag']} - {$dsRecord['algorithm']} - {$dsRecord['digestType']} - {$dsRecord['digest']} - - {/for} - - {/if} - - {if isNonnull($clTrid)} - {$clTrid} - {/if} - - -{/template} diff --git a/java/google/registry/tools/soy/DomainApplicationInfo.soy b/java/google/registry/tools/soy/DomainApplicationInfo.soy deleted file mode 100644 index 4e82f28e7..000000000 --- a/java/google/registry/tools/soy/DomainApplicationInfo.soy +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -{namespace domain.registry.tools} -/** - * Domain application info request - */ -{template .domainapplicationinfo stricthtml="false"} -{@param domainName: string} -{@param id: string} -{@param phase: string} -{@param? subphase: string} - - - - - - {$domainName} - - - - - {$phase} - {$id} - - - RegistryTool - - -{/template} diff --git a/java/google/registry/ui/js/registrar/domain.js b/java/google/registry/ui/js/registrar/domain.js index e9290899a..4dc5156c8 100644 --- a/java/google/registry/ui/js/registrar/domain.js +++ b/java/google/registry/ui/js/registrar/domain.js @@ -43,24 +43,15 @@ goog.inherits(registry.registrar.Domain, registry.registrar.XmlResourceComponent); -/** - * @define {boolean} Launch phase flag. If not SUNRUSH then GA. - */ -goog.define('registry.registrar.Domain.SUNRUSH', false); - - /** @override */ registry.registrar.Domain.prototype.newModel = function() { var newModel = {item: {'domain:period': ''}}; - if (registry.registrar.Domain.SUNRUSH) { - newModel.allowSmd = true; - } return newModel; }; /** - * Prepare a fetch query for the domain by its domain application id. + * Prepare a fetch query for the domain by its id. * @param {!Object} params should have a name field with a * possibly extended domain name id of the form "example.tld:1234" * where the 1234 is the domain application id assigned by the @@ -68,24 +59,8 @@ registry.registrar.Domain.prototype.newModel = function() { * @override */ registry.registrar.Domain.prototype.prepareFetch = function(params) { - var xml; - if (registry.registrar.Domain.SUNRUSH) { - var idParts = params.id.split(':'); - if (idParts.length != 2) { - registry.util.butter( - 'Domain queries during sunrush have the form: ' + - '"example.tld:1234", where 1234 is the application ID.'); - throw Error('Invalid domain name for SUNRUSH, lacking application ID'); - } - params.name = idParts[0]; - params.applicationID = idParts[1]; - xml = registry.soy.registrar.domainepp.infoSunrush( - /** @type {{applicationID: ?, clTrid: ?, name: ?}} */(params)); - } else { - xml = registry.soy.registrar.domainepp.info( - /** @type {{clTrid: ?, id: ?}} */ (params)); - } - return xml.toString(); + return registry.soy.registrar.domainepp.info( + /** @type {{clTrid: ?, id: ?}} */ (params)).toString(); }; @@ -97,11 +72,6 @@ registry.registrar.Domain.prototype.processItem = function() { if (extension && extension['launch:infData']) { var extendedInfData = extension['launch:infData']; - var applicationID = extendedInfData['launch:applicationID']; - if (applicationID) { - this.model.item['launch:applicationID'] = applicationID; - } - var mark = extendedInfData['mark:mark']; if (mark) { this.model.item['mark:mark'] = {'keyValue': goog.json.serialize(mark)}; @@ -165,14 +135,8 @@ registry.registrar.Domain.prototype.prepareCreate = function(params) { if (form['smd:encodedSignedMark'] == '') { delete form['smd:encodedSignedMark']; } - var xml; - if (registry.registrar.Domain.SUNRUSH) { - xml = registry.soy.registrar.domainepp.createSunrush( - /** @type {{clTrid:?, item: ?}} */(params)); - } else { - xml = registry.soy.registrar.domainepp.create( - /** @type {{clTrid: ?, item: ?}} */(params)); - } + var xml = registry.soy.registrar.domainepp.create( + /** @type {{clTrid: ?, item: ?}} */(params)); return xml.toString(); }; @@ -192,19 +156,12 @@ registry.registrar.Domain.prototype.prepareUpdate = this.addRem(form['domain:ns']['domain:hostObj'], 'Hosts', params); } - var xml; - if (registry.registrar.Domain.SUNRUSH) { - xml = registry.soy.registrar.domainepp.updateSunrush( - /** @type {{clTrid: ?, item: ?}} */(params)); - nextId += ':' + form['launch:applicationID']; - } else { - if (form['domain:ns'] && form['domain:ns']['domain:hostObj']) { - this.addRem(form['domain:ns']['domain:hostObj'], 'Hosts', params); - } - this.addRem(form['domain:contact'], 'Contacts', params); - xml = registry.soy.registrar.domainepp.update( - /** @type {{clTrid: ?, item: ?}} */(params)); + if (form['domain:ns'] && form['domain:ns']['domain:hostObj']) { + this.addRem(form['domain:ns']['domain:hostObj'], 'Hosts', params); } + this.addRem(form['domain:contact'], 'Contacts', params); + var xml = registry.soy.registrar.domainepp.update( + /** @type {{clTrid: ?, item: ?}} */(params)); return xml.toString(); }; diff --git a/java/google/registry/ui/soy/registrar/Domain.soy b/java/google/registry/ui/soy/registrar/Domain.soy index deefa72e5..7415d603a 100644 --- a/java/google/registry/ui/soy/registrar/Domain.soy +++ b/java/google/registry/ui/soy/registrar/Domain.soy @@ -31,7 +31,6 @@ {template .item} {@param item: ?} {@param? readonly: ?} /** passed through to field rendering. */ - {@param? allowSmd: ?} /** optional flag to allow sunrush smd applications. */ {let $isEdit: isNonnull($item['domain:name']) /}

    @@ -125,16 +124,6 @@ {/if} - {if isNonnull($item['launch:applicationID'])} - -

    Sunrise domain application

    - - {call registry.soy.forms.inputFieldRowWithValue data="all"} - {param label: 'Application ID' /} - {param name: 'launch:applicationID' /} - {param value: $item['launch:applicationID'] /} - {/call} - {/if} {if isNonnull($item['mark:mark'])} Mark Data @@ -143,13 +132,6 @@ {$item['mark:mark']['keyValue']} - {else} - {if $allowSmd} - {call registry.soy.forms.textareaFieldRow data="all"} - {param label: 'Encoded Signed Mark (base64 encoded, no header or footer)' /} - {param name: 'smd:encodedSignedMark' /} - {/call} - {/if} {/if} {if $isEdit} @@ -183,7 +165,7 @@ /* XXX: Should change support for admin/tech. */ /** - * Update domain. Includes sunrush applicationId if present. + * Update domain. */ {template .update} {@param? item: ?} @@ -210,11 +192,6 @@ - {if isNonnull($item['launch:applicationID'])} - - {/if}
    {/template} diff --git a/java/google/registry/ui/soy/registrar/DomainEpp.soy b/java/google/registry/ui/soy/registrar/DomainEpp.soy index 6fc2a0152..8981d4fad 100644 --- a/java/google/registry/ui/soy/registrar/DomainEpp.soy +++ b/java/google/registry/ui/soy/registrar/DomainEpp.soy @@ -15,7 +15,7 @@ {namespace registry.soy.registrar.domainepp} -/* General Availability. Sunrush down below. */ +/* General Availability. */ /** * Domain create request. */ @@ -138,106 +138,3 @@ {/if} {/template} - - -/* Sunrush. */ -/** - * Domain create request for sunrush. - */ -{template .createSunrush stricthtml="false"} - {@param item: ?} - {@param clTrid: ?} - - - - - {$item['domain:name']} - {$item['domain:period']} - {if isNonnull($item['domain:ns']['domain:hostObj'][0])} - - {$item['domain:ns']['domain:hostObj'][0]} - {if isNonnull($item['domain:ns']['domain:hostObj'][1])} - {$item['domain:ns']['domain:hostObj'][1]} - {/if} - - {/if} - {$item['domain:registrant']} - {$item['domain:contact'][0]} - {$item['domain:contact'][1]} - - {$item['domain:pw']} - - - - - - sunrise - {if isNonnull($item['smd:encodedSignedMark'])} - {$item['smd:encodedSignedMark']} - {/if} - - - {$clTrid} - - -{/template} - - -/** - * Domain info request during sunrush. - */ -{template .infoSunrush stricthtml="false"} - {@param name: ?} - {@param applicationID: ?} - {@param clTrid: ?} - - - - - {$name} - - - - - sunrise - {$applicationID} - - - {$clTrid} - - -{/template} - - -/** - * Domain update request. - */ -{template .updateSunrush stricthtml="false"} - {@param item: ?} - {@param clTrid: ?} - - - - - {$item['domain:name']} - - {$item['domain:registrant']} - - {$item['domain:authInfo']['domain:pw']} - - - - - - - sunrise - {$item['launch:applicationID']} - - - {$clTrid} - - -{/template} diff --git a/javatests/google/registry/batch/RefreshDnsOnHostRenameActionTest.java b/javatests/google/registry/batch/RefreshDnsOnHostRenameActionTest.java index e8dbd9e84..5458aa5d2 100644 --- a/javatests/google/registry/batch/RefreshDnsOnHostRenameActionTest.java +++ b/javatests/google/registry/batch/RefreshDnsOnHostRenameActionTest.java @@ -23,7 +23,6 @@ import static google.registry.batch.AsyncTaskEnqueuer.QUEUE_ASYNC_HOST_RENAME; import static google.registry.batch.AsyncTaskMetrics.OperationType.DNS_REFRESH; import static google.registry.model.ofy.ObjectifyService.ofy; import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.newDomainApplication; import static google.registry.testing.DatastoreHelper.newDomainResource; import static google.registry.testing.DatastoreHelper.newHostResource; import static google.registry.testing.DatastoreHelper.persistActiveHost; @@ -45,7 +44,6 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; -import com.google.common.collect.ImmutableSet; import com.googlecode.objectify.Key; import google.registry.batch.AsyncTaskMetrics.OperationResult; import google.registry.batch.RefreshDnsOnHostRenameAction.RefreshDnsOnHostRenameReducer; @@ -137,11 +135,6 @@ public class RefreshDnsOnHostRenameActionTest @Test public void testSuccess_dnsUpdateEnqueued() throws Exception { HostResource host = persistActiveHost("ns1.example.tld"); - persistResource( - newDomainApplication("notadomain.tld") - .asBuilder() - .setNameservers(ImmutableSet.of(Key.create(host))) - .build()); persistResource(newDomainResource("example.tld", host)); persistResource(newDomainResource("otherexample.tld", host)); persistResource(newDomainResource("untouched.tld", persistActiveHost("ns2.example.tld"))); diff --git a/javatests/google/registry/export/ExportDomainListsActionTest.java b/javatests/google/registry/export/ExportDomainListsActionTest.java index ab4bb49a3..4bd09e3aa 100644 --- a/javatests/google/registry/export/ExportDomainListsActionTest.java +++ b/javatests/google/registry/export/ExportDomainListsActionTest.java @@ -20,7 +20,6 @@ import static google.registry.export.ExportDomainListsAction.ExportDomainListsRe import static google.registry.export.ExportDomainListsAction.ExportDomainListsReducer.REGISTERED_DOMAINS_FILENAME; import static google.registry.testing.DatastoreHelper.createTld; import static google.registry.testing.DatastoreHelper.persistActiveDomain; -import static google.registry.testing.DatastoreHelper.persistActiveDomainApplication; import static google.registry.testing.DatastoreHelper.persistDeletedDomain; import static google.registry.testing.DatastoreHelper.persistResource; import static google.registry.testing.GcsTestingUtils.readGcsFile; @@ -152,17 +151,4 @@ public class ExportDomainListsActionTest extends MapreduceTestCase(Ordering.natural()) + .put(START_OF_TIME, PREDELEGATION) + .put(sunriseDate, START_DATE_SUNRISE) + .put(sunriseDate.plusMonths(2), GENERAL_AVAILABILITY) + .build()); assertThatLoginSucceeds("NewRegistrar", "foo-BAR2"); @@ -393,7 +395,8 @@ public class EppLifecycleDomainTest extends EppTestCase { .hasResponse( "response_error.xml", ImmutableMap.of( - "CODE", "2002", "MSG", "Command is not allowed in the current registry phase")); + "CODE", "2002", + "MSG", "The current registry phase does not allow for general registrations")); assertThatCommand("domain_info_testvalidate.xml") .atTime(sunriseDate.plusDays(1)) @@ -412,8 +415,8 @@ public class EppLifecycleDomainTest extends EppTestCase { createTld( "example", ImmutableSortedMap.of( - START_OF_TIME, TldState.PREDELEGATION, - gaDate, TldState.GENERAL_AVAILABILITY)); + START_OF_TIME, PREDELEGATION, + gaDate, GENERAL_AVAILABILITY)); assertThatCommand("login_valid_fee_extension.xml").hasResponse("generic_success_response.xml"); @@ -882,9 +885,9 @@ public class EppLifecycleDomainTest extends EppTestCase { createTld( "example", ImmutableSortedMap.of( - START_OF_TIME, TldState.PREDELEGATION, - sunriseDate, TldState.START_DATE_SUNRISE, - gaDate, TldState.GENERAL_AVAILABILITY)); + START_OF_TIME, PREDELEGATION, + sunriseDate, START_DATE_SUNRISE, + gaDate, GENERAL_AVAILABILITY)); assertThatLogin("NewRegistrar", "foo-BAR2") .atTime(sunriseDate.minusDays(3)) @@ -898,13 +901,11 @@ public class EppLifecycleDomainTest extends EppTestCase { .hasResponse( "response_error.xml", ImmutableMap.of( - "CODE", "2306", - "MSG", - "Declared launch extension phase does not match the current registry phase")); + "CODE", "2002", + "MSG", "The current registry phase does not allow for general registrations")); assertThatCommand( - "domain_create_no_hosts_or_dsdata.xml", - ImmutableMap.of("DOMAIN", "general.example")) + "domain_create_no_hosts_or_dsdata.xml", ImmutableMap.of("DOMAIN", "general.example")) .atTime(sunriseDate.minusDays(1)) .hasResponse( "response_error.xml", @@ -912,7 +913,17 @@ public class EppLifecycleDomainTest extends EppTestCase { "CODE", "2002", "MSG", "The current registry phase does not allow for general registrations")); - // During start-date sunrise, create with mark will succeed but without will fail. + // During sunrise, verify that the launch phase must be set to sunrise. + assertThatCommand("domain_create_start_date_sunrise_encoded_mark_wrong_phase.xml") + .atTime(sunriseDate) + .hasResponse( + "response_error.xml", + ImmutableMap.of( + "CODE", "2306", + "MSG", + "Declared launch extension phase does not match the current registry phase")); + + // During sunrise, create with mark will succeed but without will fail. // We also test we can delete without a mark. assertThatCommand("domain_create_start_date_sunrise_encoded_mark.xml") .atTime(sunriseDate.plusDays(1)) @@ -961,12 +972,7 @@ public class EppLifecycleDomainTest extends EppTestCase { assertThatLogoutSucceeds(); } - /** - * Test that missing type= argument on launch create works in start-date sunrise. - * - *

    TODO(b/76095570):have the same exact test on end-date sunrise - using the same .xml file - - * that checks that an application was created. - */ + /** Test that missing type= argument on launch create works in start-date sunrise. */ @Test public void testDomainCreation_startDateSunrise_noType() throws Exception { // The signed mark is valid between 2013 and 2017 @@ -975,9 +981,9 @@ public class EppLifecycleDomainTest extends EppTestCase { createTld( "example", ImmutableSortedMap.of( - START_OF_TIME, TldState.PREDELEGATION, - sunriseDate, TldState.START_DATE_SUNRISE, - gaDate, TldState.GENERAL_AVAILABILITY)); + START_OF_TIME, PREDELEGATION, + sunriseDate, START_DATE_SUNRISE, + gaDate, GENERAL_AVAILABILITY)); assertThatLogin("NewRegistrar", "foo-BAR2") .atTime(sunriseDate.minusDays(3)) diff --git a/javatests/google/registry/flows/FlowTestCase.java b/javatests/google/registry/flows/FlowTestCase.java index 7ca158b4f..7913ee53b 100644 --- a/javatests/google/registry/flows/FlowTestCase.java +++ b/javatests/google/registry/flows/FlowTestCase.java @@ -39,7 +39,6 @@ import google.registry.flows.EppTestComponent.FakesAndMocksModule; import google.registry.flows.picker.FlowPicker; import google.registry.model.billing.BillingEvent; import google.registry.model.domain.GracePeriod; -import google.registry.model.domain.rgp.GracePeriodStatus; import google.registry.model.eppcommon.ProtocolDefinition; import google.registry.model.eppinput.EppInput; import google.registry.model.eppoutput.EppOutput; @@ -211,9 +210,7 @@ public abstract class FlowTestCase extends ShardableTestCase { ((Function) gracePeriod -> GracePeriod.create( - gracePeriod.isSunrushAddGracePeriod() - ? GracePeriodStatus.SUNRUSH_ADD - : gracePeriod.getType(), + gracePeriod.getType(), gracePeriod.getExpirationTime(), gracePeriod.getClientId(), null)) diff --git a/javatests/google/registry/flows/ResourceFlowTestCase.java b/javatests/google/registry/flows/ResourceFlowTestCase.java index dc5fda55f..4a99cec7f 100644 --- a/javatests/google/registry/flows/ResourceFlowTestCase.java +++ b/javatests/google/registry/flows/ResourceFlowTestCase.java @@ -17,7 +17,6 @@ package google.registry.flows; import static com.google.common.collect.ImmutableList.toImmutableList; import static com.google.common.truth.Truth.assertThat; import static google.registry.model.EppResourceUtils.loadByForeignKey; -import static google.registry.model.EppResourceUtils.loadDomainApplication; import static google.registry.model.ofy.ObjectifyService.ofy; import static google.registry.model.tmch.ClaimsListShardTest.createTestClaimsListShard; import static google.registry.testing.EppExceptionSubject.assertAboutEppExceptions; @@ -33,8 +32,6 @@ import com.google.common.testing.TestLogHandler; import com.googlecode.objectify.Key; import google.registry.flows.FlowUtils.NotLoggedInException; import google.registry.model.EppResource; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.launch.ApplicationIdTargetExtension; import google.registry.model.eppcommon.Trid; import google.registry.model.eppinput.EppInput.ResourceCommandWrapper; import google.registry.model.eppinput.ResourceCommand; @@ -44,7 +41,6 @@ import google.registry.model.tmch.ClaimsListShard.ClaimsListRevision; import google.registry.model.tmch.ClaimsListShard.ClaimsListSingleton; import google.registry.testing.TaskQueueHelper.TaskMatcher; import google.registry.util.TypeUtils.TypeInstantiator; -import java.util.Optional; import java.util.logging.Level; import javax.annotation.Nullable; import org.joda.time.DateTime; @@ -85,11 +81,6 @@ public abstract class ResourceFlowTestCase T reloadResourceAndCloneAtTime(T resource, DateTime now) { // Force the session to be cleared. ofy().clearSessionCache(); @@ -104,17 +95,8 @@ public abstract class ResourceFlowTestCase extension = - eppLoader.getEpp().getSingleExtension(ApplicationIdTargetExtension.class); - return extension.isPresent() - ? extension.get().getApplicationId() - : getResourceCommand().getTargetId(); + return getResourceCommand().getTargetId(); } protected Class getResourceClass() { diff --git a/javatests/google/registry/flows/custom/TestDomainPricingCustomLogic.java b/javatests/google/registry/flows/custom/TestDomainPricingCustomLogic.java index 9529f45d2..386e46b25 100644 --- a/javatests/google/registry/flows/custom/TestDomainPricingCustomLogic.java +++ b/javatests/google/registry/flows/custom/TestDomainPricingCustomLogic.java @@ -36,18 +36,6 @@ public class TestDomainPricingCustomLogic extends DomainPricingCustomLogic { super(eppInput, sessionMetadata, flowMetadata); } - @Override - public FeesAndCredits customizeApplicationUpdatePrice( - ApplicationUpdatePriceParameters priceParameters) { - return (priceParameters - .domainApplication() - .getFullyQualifiedDomainName() - .startsWith("non-free-update")) - ? addCustomFee( - priceParameters.feesAndCredits(), Fee.create(ONE_HUNDRED_BUCKS, FeeType.UPDATE)) - : priceParameters.feesAndCredits(); - } - @Override public FeesAndCredits customizeRenewPrice(RenewPriceParameters priceParameters) { return (priceParameters.domainName().toString().startsWith("costly-renew")) diff --git a/javatests/google/registry/flows/domain/DomainAllocateFlowTest.java b/javatests/google/registry/flows/domain/DomainAllocateFlowTest.java deleted file mode 100644 index 408252b43..000000000 --- a/javatests/google/registry/flows/domain/DomainAllocateFlowTest.java +++ /dev/null @@ -1,715 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.flows.domain; - -import static com.google.common.io.BaseEncoding.base16; -import static com.google.common.truth.Truth.assertThat; -import static google.registry.model.EppResourceUtils.loadDomainApplication; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.testing.DatastoreHelper.assertBillingEvents; -import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.getOnlyHistoryEntryOfType; -import static google.registry.testing.DatastoreHelper.newDomainApplication; -import static google.registry.testing.DatastoreHelper.persistActiveContact; -import static google.registry.testing.DatastoreHelper.persistActiveDomain; -import static google.registry.testing.DatastoreHelper.persistActiveHost; -import static google.registry.testing.DatastoreHelper.persistDeletedDomain; -import static google.registry.testing.DatastoreHelper.persistReservedList; -import static google.registry.testing.DatastoreHelper.persistResource; -import static google.registry.testing.DomainApplicationSubject.assertAboutApplications; -import static google.registry.testing.DomainResourceSubject.assertAboutDomains; -import static google.registry.testing.EppExceptionSubject.assertAboutEppExceptions; -import static google.registry.testing.JUnitBackports.assertThrows; -import static google.registry.testing.TaskQueueHelper.assertDnsTasksEnqueued; -import static google.registry.testing.TaskQueueHelper.assertNoDnsTasksEnqueued; -import static google.registry.testing.TaskQueueHelper.assertNoTasksEnqueued; -import static google.registry.testing.TaskQueueHelper.assertTasksEnqueued; -import static google.registry.util.DateTimeUtils.END_OF_TIME; -import static org.joda.money.CurrencyUnit.USD; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; -import com.googlecode.objectify.Key; -import google.registry.flows.EppException; -import google.registry.flows.ResourceFlowTestCase; -import google.registry.flows.domain.DomainAllocateFlow.HasFinalStatusException; -import google.registry.flows.domain.DomainAllocateFlow.MissingApplicationException; -import google.registry.flows.domain.DomainAllocateFlow.OnlySuperuserCanAllocateException; -import google.registry.flows.domain.DomainFlowUtils.ExceedsMaxRegistrationYearsException; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotAllowedForDomainException; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotAllowedForTldException; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotSpecifiedForNameserverRestrictedDomainException; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotSpecifiedForTldWithNameserverWhitelistException; -import google.registry.flows.domain.DomainFlowUtils.RegistrantNotAllowedException; -import google.registry.flows.exceptions.ResourceAlreadyExistsException; -import google.registry.model.billing.BillingEvent; -import google.registry.model.billing.BillingEvent.Flag; -import google.registry.model.billing.BillingEvent.Reason; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.DomainResource; -import google.registry.model.domain.GracePeriod; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.model.domain.launch.LaunchInfoResponseExtension; -import google.registry.model.domain.launch.LaunchNotice; -import google.registry.model.domain.launch.LaunchPhase; -import google.registry.model.domain.rgp.GracePeriodStatus; -import google.registry.model.domain.secdns.DelegationSignerData; -import google.registry.model.eppcommon.StatusValue; -import google.registry.model.eppcommon.Trid; -import google.registry.model.ofy.ObjectifyService; -import google.registry.model.poll.PendingActionNotificationResponse.DomainPendingActionNotificationResponse; -import google.registry.model.poll.PollMessage; -import google.registry.model.registry.Registry; -import google.registry.model.registry.Registry.TldState; -import google.registry.model.reporting.DomainTransactionRecord; -import google.registry.model.reporting.DomainTransactionRecord.TransactionReportField; -import google.registry.model.reporting.HistoryEntry; -import google.registry.model.smd.EncodedSignedMark; -import google.registry.testing.TaskQueueHelper.TaskMatcher; -import org.joda.money.Money; -import org.joda.time.DateTime; -import org.joda.time.Duration; -import org.junit.Before; -import org.junit.Test; - -/** Unit tests for {@link DomainAllocateFlow}. */ -public class DomainAllocateFlowTest - extends ResourceFlowTestCase { - - // These constants come from "domain_allocate.xml" and its variants. - private static final DateTime APPLICATION_TIME = DateTime.parse("2010-08-16T10:00:00.0Z"); - private static final String SMD_ID = "1-1"; - - private static final String CLIENT_ID = "TheRegistrar"; - private static final Trid TRID = Trid.create("ABC-123", "server-trid"); - - /** The applicationId, expressed as a base 10 String. */ - private String applicationId = "2-TLD"; - private DomainApplication application; - private HistoryEntry historyEntry; - - @Before - public void initAllocateTest() { - setEppInput( - "domain_allocate.xml", - ImmutableMap.of("APPLICATIONID", "2-TLD", "DOMAIN", "example-one.tld")); - clock.setTo(APPLICATION_TIME); - } - - private void setupDomainApplication(String tld, TldState tldState) throws Exception { - createTld(tld, tldState); - persistResource(Registry.get(tld).asBuilder() - .setReservedLists( - persistReservedList( - tld + "-reserved", - "reserved-label,FULLY_BLOCKED", - "collision-label,NAME_COLLISION")) - .setAddGracePeriodLength(Duration.standardMinutes(9)) - .build()); - String domainName = getUniqueIdFromCommand(); - application = persistResource(newDomainApplication(domainName).asBuilder() - .setCreationTrid(TRID) - .setEncodedSignedMarks(ImmutableList.of(EncodedSignedMark.create("base64", "abcdef"))) - .setCreationTrid(TRID) - .build()); - for (int i = 1; i <= 14; ++i) { - persistActiveHost(String.format("ns%d.example.net", i)); - } - persistActiveContact("jd1234"); - persistActiveContact("sh8013"); - clock.setTo(DateTime.parse("2010-09-16T10:00:00.0Z")); - } - - private void doSuccessfulTest(int nameservers) throws Exception { - assertTransactionalFlow(true); - runFlowAssertResponse( - CommitMode.LIVE, - UserPrivileges.SUPERUSER, - loadFile("domain_allocate_response.xml")); - // Check that the domain was created and persisted with a history entry. - DomainResource domain = reloadResourceByForeignKey(); - assertAboutDomains().that(domain) - .hasOnlyOneHistoryEntryWhich() - .hasType(HistoryEntry.Type.DOMAIN_ALLOCATE); - historyEntry = getOnlyHistoryEntryOfType(domain, HistoryEntry.Type.DOMAIN_ALLOCATE); - - // The domain gets the sunrush add grace period if no nameservers were set during allocation. - boolean sunrushAddGracePeriod = (nameservers == 0); - - // The application should be marked as allocated, with a new history entry. - DomainApplication application = loadDomainApplication(applicationId, clock.nowUtc()).get(); - assertAboutApplications().that(application) - .hasApplicationStatus(ApplicationStatus.ALLOCATED).and() - .hasHistoryEntryAtIndex(0) - .which().hasType(HistoryEntry.Type.DOMAIN_APPLICATION_STATUS_UPDATE); - - String domainName = getUniqueIdFromCommand(); - // There should be a poll message for the allocated application (and one for generic autorenew). - assertPollMessages( - new PollMessage.OneTime.Builder() - .setClientId(CLIENT_ID) - .setEventTime(clock.nowUtc()) - .setMsg("Domain was allocated") - .setResponseData(ImmutableList.of(DomainPendingActionNotificationResponse.create( - domainName, true, TRID, clock.nowUtc()))) - .setResponseExtensions(ImmutableList.of(new LaunchInfoResponseExtension.Builder() - .setApplicationId(applicationId) - .setPhase(LaunchPhase.SUNRISE) // This comes from newDomainApplication() - .setApplicationStatus(ApplicationStatus.ALLOCATED) - .build())) - .setParent(historyEntry) - .build(), - new PollMessage.Autorenew.Builder() - .setTargetId(domainName) - .setClientId(CLIENT_ID) - .setEventTime(clock.nowUtc().plusYears(2)) - .setMsg("Domain was auto-renewed.") - .setParent(historyEntry) - .build()); - - // There should be a bill for the create and a recurring autorenew event. - BillingEvent.OneTime createBillingEvent = new BillingEvent.OneTime.Builder() - .setReason(Reason.CREATE) - .setFlags(ImmutableSet.of(Flag.ALLOCATION, Flag.SUNRISE)) - .setTargetId(domainName) - .setClientId(CLIENT_ID) - .setCost(Money.of(USD, 26)) - .setPeriodYears(2) - .setEventTime(clock.nowUtc()) - .setBillingTime(clock.nowUtc().plus(sunrushAddGracePeriod - ? Registry.get("tld").getSunrushAddGracePeriodLength() - : Registry.get("tld").getAddGracePeriodLength())) - .setParent(historyEntry) - .build(); - assertBillingEvents( - createBillingEvent, - new BillingEvent.Recurring.Builder() - .setReason(Reason.RENEW) - .setFlags(ImmutableSet.of(Flag.AUTO_RENEW)) - .setTargetId(domainName) - .setClientId(CLIENT_ID) - .setEventTime(domain.getRegistrationExpirationTime()) - .setRecurrenceEndTime(END_OF_TIME) - .setParent(historyEntry) - .build()); - assertGracePeriods( - domain.getGracePeriods(), - ImmutableMap.of( - GracePeriod.create( - sunrushAddGracePeriod ? GracePeriodStatus.SUNRUSH_ADD : GracePeriodStatus.ADD, - clock.nowUtc().plus(sunrushAddGracePeriod - ? Registry.get("tld").getSunrushAddGracePeriodLength() - : Registry.get("tld").getAddGracePeriodLength()), - CLIENT_ID, - null), - createBillingEvent)); - assertThat(ofy().load().key(domain.getAutorenewBillingEvent()).now().getEventTime()) - .isEqualTo(domain.getRegistrationExpirationTime()); - - assertThat(domain.getApplicationTime()).isEqualTo(APPLICATION_TIME); - assertThat(domain.getApplication()).isEqualTo(Key.create(application)); - if (nameservers == 0) { - assertNoDnsTasksEnqueued(); - } else { - assertDnsTasksEnqueued(domainName); - } - } - - @Test - public void testSuccess() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - doSuccessfulTest(2); - } - - @Test - public void testSuccess_nameserverAndRegistrantWhitelisted() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedRegistrantContactIds(ImmutableSet.of("jd1234")) - .setAllowedFullyQualifiedHostNames( - ImmutableSet.of("ns1.example.net", "ns2.example.net")) - .build()); - doSuccessfulTest(2); - } - - @Test - public void testFailure_nameserverNotWhitelisted() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedRegistrantContactIds(ImmutableSet.of("jd1234")) - .setAllowedFullyQualifiedHostNames(ImmutableSet.of("ns2.example.net")) - .build()); - NameserversNotAllowedForTldException thrown = - assertThrows(NameserversNotAllowedForTldException.class, this::runFlowAsSuperuser); - assertThat(thrown).hasMessageThat().contains("ns1.example.net"); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_registrantNotWhitelisted() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedRegistrantContactIds(ImmutableSet.of("someone")) - .setAllowedFullyQualifiedHostNames( - ImmutableSet.of("ns1.example.net", "ns2.example.net")) - .build()); - RegistrantNotAllowedException thrown = - assertThrows(RegistrantNotAllowedException.class, this::runFlowAsSuperuser); - assertThat(thrown).hasMessageThat().contains("jd1234"); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_emptyNameserverFailsWhitelist() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - setEppInput("domain_allocate_no_nameservers.xml"); - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedRegistrantContactIds(ImmutableSet.of("jd1234")) - .setAllowedFullyQualifiedHostNames(ImmutableSet.of("ns1.example.net, ns2.example.net")) - .build()); - EppException thrown = - assertThrows( - NameserversNotSpecifiedForTldWithNameserverWhitelistException.class, - this::runFlowAsSuperuser); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_domainNameserverRestricted_allNameserversAllowed() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistResource( - Registry.get("tld") - .asBuilder() - .setReservedLists( - persistReservedList( - "reserved", - "example-one,NAMESERVER_RESTRICTED," - + "ns1.example.net:ns2.example.net:ns3.example.net")) - .build()); - doSuccessfulTest(2); - } - - @Test - public void testFailure_domainNameserverRestricted_someNameserversDisallowed() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistResource( - Registry.get("tld") - .asBuilder() - .setReservedLists( - persistReservedList( - "reserved", - "example-one,NAMESERVER_RESTRICTED," + "ns2.example.net:ns3.example.net")) - .build()); - NameserversNotAllowedForDomainException thrown = - assertThrows(NameserversNotAllowedForDomainException.class, this::runFlowAsSuperuser); - assertThat(thrown).hasMessageThat().contains("ns1.example.net"); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_domainNameserverRestricted_noNameservers() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - setEppInput("domain_allocate_no_nameservers.xml"); - persistResource( - Registry.get("tld") - .asBuilder() - .setReservedLists( - persistReservedList( - "reserved", - "example-one,NAMESERVER_RESTRICTED," + "ns2.example.net:ns3.example.net")) - .build()); - EppException thrown = - assertThrows( - NameserversNotSpecifiedForNameserverRestrictedDomainException.class, - this::runFlowAsSuperuser); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_tldAndDomainNameserversWhitelistBothSatistfied() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistResource( - Registry.get("tld") - .asBuilder() - .setDomainCreateRestricted(true) - .setReservedLists( - persistReservedList( - "reserved", - "example-one,NAMESERVER_RESTRICTED," - + "ns1.example.net:ns2.example.net:ns3.example.net")) - .setAllowedFullyQualifiedHostNames( - ImmutableSet.of("ns1.example.net", "ns2.example.net", "ns4.example.net")) - .build()); - doSuccessfulTest(2); - } - - @Test - public void testFailure_domainNameserversDisallowed_tldNameserversAllowed() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistResource( - Registry.get("tld") - .asBuilder() - .setReservedLists( - persistReservedList( - "reserved", - "example-one,NAMESERVER_RESTRICTED," - + "ns2.example.net:ns3.example.net:ns4.example.net")) - .setAllowedFullyQualifiedHostNames( - ImmutableSet.of("ns1.example.net", "ns2.example.net", "ns3.example.net")) - .build()); - NameserversNotAllowedForDomainException thrown = - assertThrows(NameserversNotAllowedForDomainException.class, this::runFlowAsSuperuser); - assertThat(thrown).hasMessageThat().contains("ns1.example.net"); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_domainNameserversAllowed_tldNameserversDisallowed() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistResource( - Registry.get("tld") - .asBuilder() - .setReservedLists( - persistReservedList( - "reserved", - "example-one,NAMESERVER_RESTRICTED," - + "ns2.example.net:ns3.example.net:ns1.example.net")) - .setAllowedFullyQualifiedHostNames( - ImmutableSet.of("ns4.example.net", "ns2.example.net", "ns3.example.net")) - .build()); - NameserversNotAllowedForTldException thrown = - assertThrows(NameserversNotAllowedForTldException.class, this::runFlowAsSuperuser); - assertThat(thrown).hasMessageThat().contains("ns1.example.net"); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_sunrushAddGracePeriod() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - setEppInput("domain_allocate_no_nameservers.xml"); - doSuccessfulTest(0); - } - - @Test - public void testSuccess_nonDefaultAddGracePeriod() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistResource( - Registry.get("tld") - .asBuilder() - .setAddGracePeriodLength(Duration.standardMinutes(6)) - .build()); - doSuccessfulTest(2); - } - - @Test - public void testSuccess_nonDefaultSunrushAddGracePeriod() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistResource( - Registry.get("tld") - .asBuilder() - .setSunrushAddGracePeriodLength(Duration.standardMinutes(9)) - .build()); - doSuccessfulTest(2); - } - - @Test - public void testSuccess_existedButWasDeleted() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistDeletedDomain(getUniqueIdFromCommand(), clock.nowUtc().minusDays(1)); - clock.advanceOneMilli(); - doSuccessfulTest(2); - } - - @Test - public void testSuccess_maxNumberOfNameservers() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - setEppInput("domain_allocate_13_nameservers.xml"); - doSuccessfulTest(13); - } - - @Test - public void testSuccess_secDns() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - setEppInput("domain_allocate_dsdata.xml"); - doSuccessfulTest(2); - assertAboutDomains() - .that(reloadResourceByForeignKey()) - .hasExactlyDsData( - DelegationSignerData.create(12345, 3, 1, base16().decode("49FD46E6C4B45C55D4AC"))); - } - - @Test - public void testSuccess_secDnsMaxRecords() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - setEppInput("domain_allocate_dsdata_8_records.xml"); - doSuccessfulTest(2); - assertThat(getOnlyGlobalResource(DomainResource.class)).isNotNull(); - assertThat(reloadResourceByForeignKey().getDsData()).hasSize(8); - } - - @Test - public void testSuccess_idn() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - setEppInput("domain_allocate_idn.xml"); - clock.advanceOneMilli(); - runFlowAsSuperuser(); - assertThat(getOnlyGlobalResource(DomainResource.class)).isNotNull(); - assertDnsTasksEnqueued("xn--abc-873b2e7eb1k8a4lpjvv.tld"); - } - - private void doSuccessfulClaimsNoticeTest() throws Exception { - setEppInput("domain_allocate_claims_notice.xml"); - runFlowAsSuperuser(); - assertAboutDomains() - .that(getOnlyGlobalResource(DomainResource.class)) - .hasLaunchNotice( - LaunchNotice.create( - "370d0b7c9223372036854775807", - "tmch", - DateTime.parse("2011-08-16T09:00:00.0Z"), - DateTime.parse("2010-07-16T09:00:00.0Z"))); - } - - @Test - public void testSuccess_claimsNotice() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - doSuccessfulClaimsNoticeTest(); - String expectedCsv = - String.format( - "%s,example-one.tld,370d0b7c9223372036854775807,1," - + "2010-09-16T10:00:00.000Z,2010-07-16T09:00:00.000Z,2010-08-16T10:00:00.000Z", - reloadResourceByForeignKey().getRepoId()); - assertTasksEnqueued("lordn-claims", new TaskMatcher().payload(expectedCsv).tag("tld")); - } - - @Test - public void testSuccess_expiredClaim() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - clock.setTo(DateTime.parse("2011-08-17T09:00:00.0Z")); - doSuccessfulClaimsNoticeTest(); - String expectedCsv = - String.format( - "%s,example-one.tld,370d0b7c9223372036854775807,1," - + "2011-08-17T09:00:00.000Z,2010-07-16T09:00:00.000Z,2010-08-16T10:00:00.000Z", - reloadResourceByForeignKey().getRepoId()); - assertTasksEnqueued("lordn-claims", new TaskMatcher().payload(expectedCsv).tag("tld")); - } - - @Test - public void testSuccess_smdId() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - setEppInput("domain_allocate_smd_id.xml"); - doSuccessfulTest(2); - DomainResource domain = getOnlyGlobalResource(DomainResource.class); - assertThat(domain.getSmdId()).isEqualTo(SMD_ID); - String expectedCsv = - String.format( - "%s,example-one.tld,1-1,1,2010-09-16T10:00:00.000Z,2010-08-16T10:00:00.000Z", - domain.getRepoId()); - assertTasksEnqueued("lordn-sunrise", new TaskMatcher().payload(expectedCsv).tag("tld")); - } - - @Test - public void testSuccess_collision() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - setEppInput("domain_allocate_collision.xml"); - assertNoDnsTasksEnqueued(); - runFlowAsSuperuser(); - assertAboutDomains() - .that(getOnlyGlobalResource(DomainResource.class)) - .hasStatusValue(StatusValue.SERVER_HOLD); - assertNoDnsTasksEnqueued(); - } - - @Test - public void testSuccess_reserved() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - setEppInput("domain_allocate_reserved.xml"); - runFlowAsSuperuser(); - assertThat(getOnlyGlobalResource(DomainResource.class)).isNotNull(); - } - - @Test - public void testSuccess_premiumName() throws Exception { - setEppInput("domain_allocate_premium.xml"); - setupDomainApplication("example", TldState.QUIET_PERIOD); - persistResource(Registry.get("example").asBuilder().setPremiumPriceAckRequired(true).build()); - clock.advanceOneMilli(); - runFlowAsSuperuser(); - } - - @Test - public void testSuccess_hexApplicationId() throws Exception { - setEppInput( - "domain_allocate.xml", - ImmutableMap.of("APPLICATIONID", "A-TLD", "DOMAIN", "example-one.tld")); - applicationId = "A-TLD"; - // Grab the next 8 ids so that when the application is created it gets dec 10, or hex A. - // (one additional ID goes to the reserved list created before the application). - for (int i = 1; i <= 8; i++) { - ObjectifyService.allocateId(); - } - setupDomainApplication("tld", TldState.QUIET_PERIOD); - doSuccessfulTest(2); - } - - @Test - public void testFailure_expiredAcceptance() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - doSuccessfulClaimsNoticeTest(); - assertNoTasksEnqueued("lordn-sunrise"); - } - - @Test - public void testSuccess_missingClaimsNotice() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistClaimsList( - ImmutableMap.of("example-one", "2013041500/2/6/9/rJ1NrDO92vDsAzf7EQzgjX4R0000000001")); - doSuccessfulTest(2); - } - - @Test - public void testFailure_alreadyExists() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistActiveDomain(getUniqueIdFromCommand()); - EppException thrown = - assertThrows(ResourceAlreadyExistsException.class, this::runFlowAsSuperuser); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_predelegation() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - createTld("tld", TldState.PREDELEGATION); - doSuccessfulTest(2); - } - - @Test - public void testSuccess_sunrise() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - createTld("tld", TldState.SUNRISE); - doSuccessfulTest(2); - } - - @Test - public void testSuccess_sunrush() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - createTld("tld", TldState.SUNRUSH); - doSuccessfulTest(2); - } - - @Test - public void testSuccess_quietPeriod() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - createTld("tld", TldState.QUIET_PERIOD); - doSuccessfulTest(2); - } - - @Test - public void testFailure_applicationDeleted() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistResource(application.asBuilder().setDeletionTime(clock.nowUtc()).build()); - EppException thrown = assertThrows(MissingApplicationException.class, this::runFlowAsSuperuser); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_applicationRejected() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistResource( - application.asBuilder().setApplicationStatus(ApplicationStatus.REJECTED).build()); - EppException thrown = assertThrows(HasFinalStatusException.class, this::runFlowAsSuperuser); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_applicationAllocated() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistResource( - application.asBuilder().setApplicationStatus(ApplicationStatus.ALLOCATED).build()); - EppException thrown = assertThrows(HasFinalStatusException.class, this::runFlowAsSuperuser); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_applicationDoesNotExist() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - setEppInput("domain_allocate_bad_application_roid.xml"); - EppException thrown = assertThrows(MissingApplicationException.class, this::runFlowAsSuperuser); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_onlySuperuserCanAllocate() throws Exception { - setupDomainApplication("tld", TldState.GENERAL_AVAILABILITY); - clock.advanceOneMilli(); - setEppInput("domain_allocate_no_nameservers.xml"); - assertTransactionalFlow(true); - EppException thrown = - assertThrows( - OnlySuperuserCanAllocateException.class, - () -> runFlow(CommitMode.LIVE, UserPrivileges.NORMAL)); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_max10Years() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - setEppInput("domain_allocate_11_years.xml"); - EppException thrown = - assertThrows(ExceedsMaxRegistrationYearsException.class, this::runFlowAsSuperuser); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testIcannActivityReportField_getsLogged() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - runFlow(CommitMode.LIVE, UserPrivileges.SUPERUSER); - assertIcannReportingActivityFieldLogged("srs-dom-create"); - assertTldsFieldLogged("tld"); - // Ensure we log the client ID for srs-dom-create so we can also use it for attempted-adds. - assertClientIdFieldLogged("TheRegistrar"); - } - - @Test - public void testIcannTransactionRecord_getsStored() throws Exception { - setupDomainApplication("tld", TldState.QUIET_PERIOD); - persistResource( - Registry.get("tld") - .asBuilder() - .setRenewGracePeriodLength(Duration.standardMinutes(9)) - .build()); - runFlow(CommitMode.LIVE, UserPrivileges.SUPERUSER); - DomainResource domain = reloadResourceByForeignKey(); - HistoryEntry historyEntry = - getOnlyHistoryEntryOfType(domain, HistoryEntry.Type.DOMAIN_ALLOCATE); - assertThat(historyEntry.getDomainTransactionRecords()) - .containsExactly( - DomainTransactionRecord.create( - "tld", - historyEntry.getModificationTime().plusMinutes(9), - TransactionReportField.netAddsFieldFromYears(2), - 1)); - } -} diff --git a/javatests/google/registry/flows/domain/DomainApplicationCreateFlowTest.java b/javatests/google/registry/flows/domain/DomainApplicationCreateFlowTest.java deleted file mode 100644 index ebeed3c7f..000000000 --- a/javatests/google/registry/flows/domain/DomainApplicationCreateFlowTest.java +++ /dev/null @@ -1,1771 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.flows.domain; - -import static com.google.common.collect.Iterables.getLast; -import static com.google.common.io.BaseEncoding.base16; -import static com.google.common.truth.Truth.assertThat; -import static google.registry.model.index.DomainApplicationIndex.loadActiveApplicationsByDomainName; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.testing.DatastoreHelper.assertNoBillingEvents; -import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.createTlds; -import static google.registry.testing.DatastoreHelper.deleteTld; -import static google.registry.testing.DatastoreHelper.loadRegistrar; -import static google.registry.testing.DatastoreHelper.newDomainApplication; -import static google.registry.testing.DatastoreHelper.persistActiveContact; -import static google.registry.testing.DatastoreHelper.persistActiveDomain; -import static google.registry.testing.DatastoreHelper.persistActiveHost; -import static google.registry.testing.DatastoreHelper.persistReservedList; -import static google.registry.testing.DatastoreHelper.persistResource; -import static google.registry.testing.DomainApplicationSubject.assertAboutApplications; -import static google.registry.testing.EppExceptionSubject.assertAboutEppExceptions; -import static google.registry.testing.JUnitBackports.assertThrows; -import static google.registry.util.DateTimeUtils.START_OF_TIME; -import static java.util.Comparator.comparing; -import static org.joda.money.CurrencyUnit.EUR; -import static org.joda.money.CurrencyUnit.USD; - -import com.google.common.base.Strings; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.ImmutableSortedMap; -import google.registry.flows.EppException; -import google.registry.flows.EppException.UnimplementedExtensionException; -import google.registry.flows.ResourceFlowTestCase; -import google.registry.flows.domain.DomainApplicationCreateFlow.LandrushApplicationDisallowedDuringSunriseException; -import google.registry.flows.domain.DomainApplicationCreateFlow.NoticeCannotBeUsedWithSignedMarkException; -import google.registry.flows.domain.DomainApplicationCreateFlow.SunriseApplicationDisallowedDuringLandrushException; -import google.registry.flows.domain.DomainApplicationCreateFlow.UncontestedSunriseApplicationBlockedInLandrushException; -import google.registry.flows.domain.DomainFlowTmchUtils.Base64RequiredForEncodedSignedMarksException; -import google.registry.flows.domain.DomainFlowTmchUtils.FoundMarkExpiredException; -import google.registry.flows.domain.DomainFlowTmchUtils.FoundMarkNotYetValidException; -import google.registry.flows.domain.DomainFlowTmchUtils.NoMarksFoundMatchingDomainException; -import google.registry.flows.domain.DomainFlowTmchUtils.SignedMarkCertificateExpiredException; -import google.registry.flows.domain.DomainFlowTmchUtils.SignedMarkCertificateInvalidException; -import google.registry.flows.domain.DomainFlowTmchUtils.SignedMarkCertificateNotYetValidException; -import google.registry.flows.domain.DomainFlowTmchUtils.SignedMarkCertificateRevokedException; -import google.registry.flows.domain.DomainFlowTmchUtils.SignedMarkCertificateSignatureException; -import google.registry.flows.domain.DomainFlowTmchUtils.SignedMarkEncodingErrorException; -import google.registry.flows.domain.DomainFlowTmchUtils.SignedMarkParsingErrorException; -import google.registry.flows.domain.DomainFlowTmchUtils.SignedMarkRevokedErrorException; -import google.registry.flows.domain.DomainFlowTmchUtils.SignedMarkSignatureException; -import google.registry.flows.domain.DomainFlowTmchUtils.SignedMarksMustBeEncodedException; -import google.registry.flows.domain.DomainFlowTmchUtils.TooManySignedMarksException; -import google.registry.flows.domain.DomainFlowUtils.AcceptedTooLongAgoException; -import google.registry.flows.domain.DomainFlowUtils.BadCommandForRegistryPhaseException; -import google.registry.flows.domain.DomainFlowUtils.BadDomainNameCharacterException; -import google.registry.flows.domain.DomainFlowUtils.BadDomainNamePartsCountException; -import google.registry.flows.domain.DomainFlowUtils.BadPeriodUnitException; -import google.registry.flows.domain.DomainFlowUtils.ClaimsPeriodEndedException; -import google.registry.flows.domain.DomainFlowUtils.CurrencyUnitMismatchException; -import google.registry.flows.domain.DomainFlowUtils.CurrencyValueScaleException; -import google.registry.flows.domain.DomainFlowUtils.DashesInThirdAndFourthException; -import google.registry.flows.domain.DomainFlowUtils.DomainLabelTooLongException; -import google.registry.flows.domain.DomainFlowUtils.DomainNameExistsAsTldException; -import google.registry.flows.domain.DomainFlowUtils.DomainReservedException; -import google.registry.flows.domain.DomainFlowUtils.DuplicateContactForRoleException; -import google.registry.flows.domain.DomainFlowUtils.EmptyDomainNamePartException; -import google.registry.flows.domain.DomainFlowUtils.ExceedsMaxRegistrationYearsException; -import google.registry.flows.domain.DomainFlowUtils.ExpiredClaimException; -import google.registry.flows.domain.DomainFlowUtils.FeesMismatchException; -import google.registry.flows.domain.DomainFlowUtils.FeesRequiredForPremiumNameException; -import google.registry.flows.domain.DomainFlowUtils.InvalidIdnDomainLabelException; -import google.registry.flows.domain.DomainFlowUtils.InvalidPunycodeException; -import google.registry.flows.domain.DomainFlowUtils.InvalidTcnIdChecksumException; -import google.registry.flows.domain.DomainFlowUtils.InvalidTrademarkValidatorException; -import google.registry.flows.domain.DomainFlowUtils.LaunchPhaseMismatchException; -import google.registry.flows.domain.DomainFlowUtils.LeadingDashException; -import google.registry.flows.domain.DomainFlowUtils.LinkedResourcesDoNotExistException; -import google.registry.flows.domain.DomainFlowUtils.MalformedTcnIdException; -import google.registry.flows.domain.DomainFlowUtils.MaxSigLifeNotSupportedException; -import google.registry.flows.domain.DomainFlowUtils.MissingClaimsNoticeException; -import google.registry.flows.domain.DomainFlowUtils.MissingContactTypeException; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotAllowedForDomainException; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotAllowedForTldException; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotSpecifiedForNameserverRestrictedDomainException; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotSpecifiedForTldWithNameserverWhitelistException; -import google.registry.flows.domain.DomainFlowUtils.NotAuthorizedForTldException; -import google.registry.flows.domain.DomainFlowUtils.PremiumNameBlockedException; -import google.registry.flows.domain.DomainFlowUtils.RegistrantNotAllowedException; -import google.registry.flows.domain.DomainFlowUtils.RegistrarMustBeActiveForThisOperationException; -import google.registry.flows.domain.DomainFlowUtils.TldDoesNotExistException; -import google.registry.flows.domain.DomainFlowUtils.TooManyDsRecordsException; -import google.registry.flows.domain.DomainFlowUtils.TooManyNameserversException; -import google.registry.flows.domain.DomainFlowUtils.TrailingDashException; -import google.registry.flows.domain.DomainFlowUtils.UnexpectedClaimsNoticeException; -import google.registry.flows.domain.DomainFlowUtils.UnsupportedFeeAttributeException; -import google.registry.flows.domain.DomainFlowUtils.UnsupportedMarkTypeException; -import google.registry.flows.exceptions.ResourceAlreadyExistsException; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.model.domain.launch.LaunchNotice; -import google.registry.model.domain.launch.LaunchPhase; -import google.registry.model.domain.secdns.DelegationSignerData; -import google.registry.model.registrar.Registrar; -import google.registry.model.registrar.Registrar.State; -import google.registry.model.registry.Registry; -import google.registry.model.registry.Registry.TldState; -import google.registry.model.registry.label.ReservedList; -import google.registry.model.reporting.HistoryEntry; -import google.registry.model.smd.SignedMarkRevocationList; -import google.registry.tmch.TmchXmlSignature; -import java.security.GeneralSecurityException; -import java.util.List; -import org.joda.money.CurrencyUnit; -import org.joda.money.Money; -import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Test; - -/** Unit tests for {@link DomainApplicationCreateFlow}. */ -public class DomainApplicationCreateFlowTest - extends ResourceFlowTestCase { - - private static final String CLAIMS_KEY = "2013041500/2/6/9/rJ1NrDO92vDsAzf7EQzgjX4R0000000001"; - - /** This is the id of the SMD stored in "domain_create_sunrise_encoded_signed_mark.xml". */ - public static final String SMD_ID = "0000001761376042759136-65535"; - - private ReservedList createReservedList() { - return persistReservedList( - "tld-reserved", "testandvalidate,FULLY_BLOCKED", "test---validate,ALLOWED_IN_SUNRISE"); - } - - @Before - public void setUp() { - clock.setTo(DateTime.parse("2014-09-09T09:09:09Z")); - setEppInput("domain_create_sunrise_encoded_signed_mark.xml"); - createTld("tld", TldState.SUNRISE); - persistResource(Registry.get("tld").asBuilder().setReservedLists(createReservedList()).build()); - } - - /** Create host and contact entries for testing. */ - private void persistContactsAndHosts() { - for (int i = 1; i <= 14; ++i) { - persistActiveHost(String.format("ns%d.example.net", i)); - } - persistActiveContact("jd1234"); - persistActiveContact("sh8013"); - clock.advanceOneMilli(); - } - - private void doSuccessfulTest(String responseXmlFile, boolean sunriseApplication) - throws Exception { - doSuccessfulTest(responseXmlFile, sunriseApplication, 1, null, null); - } - - private void doSuccessfulTest(String responseXmlFile, boolean sunriseApplication, int years) - throws Exception { - doSuccessfulTest(responseXmlFile, sunriseApplication, years, null, null); - } - - private void doSuccessfulTest( - String responseXmlFile, - boolean sunriseApplication, - String feeExtensionVersion, - String feeExtensionNamespace) - throws Exception { - doSuccessfulTest( - responseXmlFile, sunriseApplication, 1, feeExtensionVersion, feeExtensionNamespace); - } - - private void doSuccessfulTest( - String responseXmlFile, - boolean sunriseApplication, - int years, - String feeExtensionVersion, - String feeExtensionNamespace) - throws Exception { - assertTransactionalFlow(true); - runFlowAssertResponse( - (feeExtensionVersion == null) - ? loadFile(responseXmlFile) - : loadFile( - responseXmlFile, - ImmutableMap.of( - "FEE_VERSION", feeExtensionVersion, "FEE_NS", feeExtensionNamespace)), - "epp.response.extension.creData.applicationID", - "epp.response.resData.creData.crDate"); - // Check that the domain application was created and persisted with a history entry. - // We want the one with the newest creation time, but lacking an index we need this code. - List applications = ofy().load().type(DomainApplication.class).list(); - applications.sort(comparing(DomainApplication::getCreationTime)); - assertAboutApplications() - .that(getLast(applications)) - .hasFullyQualifiedDomainName(getUniqueIdFromCommand()) - .and() - .hasNumEncodedSignedMarks(sunriseApplication ? 1 : 0) - .and() - .hasPeriodYears(years) - .and() - .hasOnlyOneHistoryEntryWhich() - .hasType(HistoryEntry.Type.DOMAIN_APPLICATION_CREATE) - .and() - .hasPeriodYears(years); - assertNoBillingEvents(); - assertThat(loadActiveApplicationsByDomainName(getUniqueIdFromCommand(), clock.nowUtc())) - .containsExactlyElementsIn(applications); - assertEppResourceIndexEntityFor(getLast(applications)); - } - - private void runSuperuserFlow(String filename) throws Exception { - runFlowAssertResponse( - CommitMode.LIVE, - UserPrivileges.SUPERUSER, - loadFile(filename), - "epp.response.extension.creData.applicationID", - "epp.response.resData.creData.crDate", - "epp.response.extension.creData.phase"); - } - - @Test - public void testDryRun_sunrushApplication() throws Exception { - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush_encoded_signed_mark.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - dryRunFlowAssertResponse( - loadFile("domain_create_sunrush_encoded_signed_mark_response.xml"), - "epp.response.extension.creData.applicationID", - "epp.response.resData.creData.crDate"); - } - - @Test - public void testFailure_signedMarkCorrupt() { - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush_encoded_signed_mark_corrupt.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(SignedMarkParsingErrorException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_signedMarkCertificateRevoked() { - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush_encoded_signed_mark_revoked_cert.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(SignedMarkCertificateRevokedException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_signedMarkCertificateExpired() { - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush_encoded_signed_mark.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - clock.setTo(DateTime.parse("2022-01-01")); - clock.setTo(DateTime.parse("2022-01-01")); - EppException thrown = assertThrows(SignedMarkCertificateExpiredException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_signedMarkCertificateNotYetValid() { - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush_encoded_signed_mark.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - clock.setTo(DateTime.parse("2012-07-22T00:01:00Z")); - EppException thrown = - assertThrows(SignedMarkCertificateNotYetValidException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_signedMarkCertificateCorrupt() { - useTmchProdCert(); - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush_encoded_signed_mark_certificate_corrupt.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - // It's hard to make the real verification code throw a GeneralSecurityException. Instead, - // replace the TmchXmlSignature with a stub that throws it for us. - this.testTmchXmlSignature = - new TmchXmlSignature(null) { - @Override - public void verify(byte[] smdXml) throws GeneralSecurityException { - throw new GeneralSecurityException(); - } - }; - EppException thrown = assertThrows(SignedMarkCertificateInvalidException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_signedMarkCertificateSignature() { - useTmchProdCert(); - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush_encoded_signed_mark.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = - assertThrows(SignedMarkCertificateSignatureException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_signedMarkSignature() { - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush_encoded_signed_mark_signature_corrupt.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(SignedMarkSignatureException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testDryRun_landrushApplicationInSunrush() throws Exception { - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - dryRunFlowAssertResponse( - loadFile("domain_create_sunrush_response.xml"), - "epp.response.extension.creData.applicationID", - "epp.response.resData.creData.crDate"); - } - - @Test - public void testDryRun_landrushWithClaims() throws Exception { - createTld("tld", TldState.SUNRUSH); - clock.setTo(DateTime.parse("2009-08-16T09:00:00.0Z")); - setEppInput("domain_create_sunrush_claim_notice.xml"); - persistClaimsList(ImmutableMap.of("example-one", CLAIMS_KEY)); - persistContactsAndHosts(); - clock.advanceOneMilli(); - dryRunFlowAssertResponse( - loadFile("domain_create_sunrush_response_claims.xml"), - "epp.response.extension.creData.applicationID", - "epp.response.resData.creData.crDate"); - } - - @Test - public void testSuccess_sunrushApplication() throws Exception { - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush_encoded_signed_mark.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_sunrush_encoded_signed_mark_response.xml", true); - assertAboutApplications() - .that(getOnlyGlobalResource(DomainApplication.class)) - .hasApplicationStatus(ApplicationStatus.VALIDATED); - } - - @Test - public void testSuccess_sunrushApplicationReservedAllowedInSunrise() throws Exception { - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush_allowedinsunrise.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_sunrush_allowedinsunrise_response.xml", true); - assertAboutApplications() - .that(getOnlyGlobalResource(DomainApplication.class)) - .hasApplicationStatus(ApplicationStatus.VALIDATED); - } - - @Test - public void testSuccess_smdTrumpsClaimsList() throws Exception { - persistClaimsList(ImmutableMap.of("test-validate", CLAIMS_KEY)); - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush_encoded_signed_mark.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_sunrush_encoded_signed_mark_response.xml", true); - assertAboutApplications() - .that(getOnlyGlobalResource(DomainApplication.class)) - .hasApplicationStatus(ApplicationStatus.VALIDATED); - } - - @Test - public void testSuccess_landrushApplicationInSunrush() throws Exception { - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_sunrush_response.xml", false); - } - - @Test - public void testFailure_landrushApplicationReservedAllowedInSunrise() { - createTld("tld", TldState.SUNRUSH); - persistResource( - Registry.get("tld") - .asBuilder() - .setReservedLists(ImmutableSet.of(createReservedList())) - .build()); - setEppInput("domain_create_landrush_allowedinsunrise.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(DomainReservedException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_landrushApplicationPremiumBlocked() { - createTld("example", TldState.SUNRUSH); - setEppInput("domain_create_landrush_premium.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - // Modify the Registrar to block premium names. - persistResource(loadRegistrar("TheRegistrar").asBuilder().setBlockPremiumNames(true).build()); - EppException thrown = assertThrows(PremiumNameBlockedException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_landrushFeeNotProvidedOnPremiumName_whenRegistryRequiresFeeAcking() { - createTld("example", TldState.SUNRUSH); - setEppInput("domain_create_landrush_premium.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(FeesRequiredForPremiumNameException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_landrushFeeNotProvidedOnPremiumName_whenRegistrarRequiresFeeAcking() { - createTld("example", TldState.SUNRUSH); - persistResource(Registry.get("example").asBuilder().setPremiumPriceAckRequired(false).build()); - persistResource( - loadRegistrar("TheRegistrar").asBuilder().setPremiumPriceAckRequired(true).build()); - setEppInput("domain_create_landrush_premium.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(FeesRequiredForPremiumNameException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_landrushWithClaimsInSunrush() throws Exception { - createTld("tld", TldState.SUNRUSH); - clock.setTo(DateTime.parse("2009-08-16T09:00:00.0Z")); - setEppInput("domain_create_sunrush_claim_notice.xml"); - persistClaimsList(ImmutableMap.of("example-one", CLAIMS_KEY)); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_sunrush_response_claims.xml", false); - assertAboutApplications() - .that(getOnlyGlobalResource(DomainApplication.class)) - .hasLaunchNotice( - LaunchNotice.create( - "370d0b7c9223372036854775807", - "tmch", - DateTime.parse("2010-08-16T09:00:00.0Z"), - DateTime.parse("2009-08-16T09:00:00.0Z"))) - .and() - .hasApplicationStatus(ApplicationStatus.VALIDATED); - } - - @Test - public void testSuccess_landrushWithoutClaimsInSunrush_forClaimsListName_afterClaimsPeriodEnd() - throws Exception { - createTld("tld", TldState.SUNRUSH); - persistClaimsList(ImmutableMap.of("test-validate", CLAIMS_KEY)); - setEppInput("domain_create_sunrush.xml"); - persistContactsAndHosts(); - persistResource(Registry.get("tld").asBuilder().setClaimsPeriodEnd(clock.nowUtc()).build()); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_sunrush_response.xml", false); - assertAboutApplications() - .that(getOnlyGlobalResource(DomainApplication.class)) - .hasLaunchNotice(null) - .and() - .hasApplicationStatus(ApplicationStatus.VALIDATED); - } - - @Test - public void testSuccess_landrushApplication() throws Exception { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_landrush_response.xml", false); - } - - @Test - public void testSuccess_landrushApplicationWithFee_v06() throws Exception { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_fee.xml", ImmutableMap.of("FEE_VERSION", "0.6")); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_landrush_fee_response.xml", false, "0.6", "fee"); - } - - @Test - public void testSuccess_landrushApplicationWithFee_v11() throws Exception { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_fee.xml", ImmutableMap.of("FEE_VERSION", "0.11")); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_landrush_fee_response.xml", false, "0.11", "fee11"); - } - - @Test - public void testSuccess_landrushApplicationWithFee_v12() throws Exception { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_fee.xml", ImmutableMap.of("FEE_VERSION", "0.12")); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_landrush_fee_response.xml", false, "0.12", "fee12"); - } - - @Test - public void testSuccess_landrushApplicationWithFee_withDefaultAttributes_v06() throws Exception { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_fee_defaults.xml", ImmutableMap.of("FEE_VERSION", "0.6")); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_landrush_fee_response.xml", false, "0.6", "fee"); - } - - @Test - public void testSuccess_landrushApplicationWithFee_withDefaultAttributes_v11() throws Exception { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_fee_defaults.xml", ImmutableMap.of("FEE_VERSION", "0.11")); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_landrush_fee_response.xml", false, "0.11", "fee11"); - } - - @Test - public void testSuccess_landrushApplicationWithFee_withDefaultAttributes_v12() throws Exception { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_fee_defaults.xml", ImmutableMap.of("FEE_VERSION", "0.12")); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_landrush_fee_response.xml", false, "0.12", "fee12"); - } - - @Test - public void testFailure_landrushApplicationWithRefundableFee_v06() { - createTld("tld", TldState.LANDRUSH); - persistContactsAndHosts(); - clock.advanceOneMilli(); - setEppInput("domain_create_landrush_fee_refundable.xml", ImmutableMap.of("FEE_VERSION", "0.6")); - EppException thrown = assertThrows(UnsupportedFeeAttributeException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_landrushApplicationWithRefundableFee_v11() { - createTld("tld", TldState.LANDRUSH); - persistContactsAndHosts(); - clock.advanceOneMilli(); - setEppInput( - "domain_create_landrush_fee_refundable.xml", ImmutableMap.of("FEE_VERSION", "0.11")); - EppException thrown = assertThrows(UnsupportedFeeAttributeException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_landrushApplicationWithRefundableFee_v12() { - createTld("tld", TldState.LANDRUSH); - persistContactsAndHosts(); - clock.advanceOneMilli(); - setEppInput( - "domain_create_landrush_fee_refundable.xml", ImmutableMap.of("FEE_VERSION", "0.12")); - EppException thrown = assertThrows(UnsupportedFeeAttributeException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_landrushApplicationWithGracePeriodFee_v06() { - createTld("tld", TldState.LANDRUSH); - persistContactsAndHosts(); - clock.advanceOneMilli(); - setEppInput( - "domain_create_landrush_fee_grace_period.xml", ImmutableMap.of("FEE_VERSION", "0.6")); - EppException thrown = assertThrows(UnsupportedFeeAttributeException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_landrushApplicationWithGracePeriodFee_v11() { - createTld("tld", TldState.LANDRUSH); - persistContactsAndHosts(); - clock.advanceOneMilli(); - setEppInput( - "domain_create_landrush_fee_grace_period.xml", ImmutableMap.of("FEE_VERSION", "0.11")); - EppException thrown = assertThrows(UnsupportedFeeAttributeException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_landrushApplicationWithGracePeriodFee_v12() { - createTld("tld", TldState.LANDRUSH); - persistContactsAndHosts(); - clock.advanceOneMilli(); - setEppInput( - "domain_create_landrush_fee_grace_period.xml", ImmutableMap.of("FEE_VERSION", "0.12")); - EppException thrown = assertThrows(UnsupportedFeeAttributeException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_landrushApplicationWithAppliedFee_v06() { - createTld("tld", TldState.LANDRUSH); - persistContactsAndHosts(); - clock.advanceOneMilli(); - setEppInput("domain_create_landrush_fee_applied.xml", ImmutableMap.of("FEE_VERSION", "0.6")); - EppException thrown = assertThrows(UnsupportedFeeAttributeException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_landrushApplicationWithAppliedFee_v11() { - createTld("tld", TldState.LANDRUSH); - persistContactsAndHosts(); - clock.advanceOneMilli(); - setEppInput("domain_create_landrush_fee_applied.xml", ImmutableMap.of("FEE_VERSION", "0.11")); - EppException thrown = assertThrows(UnsupportedFeeAttributeException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_landrushApplicationWithAppliedFee_v12() { - createTld("tld", TldState.LANDRUSH); - persistContactsAndHosts(); - clock.advanceOneMilli(); - setEppInput("domain_create_landrush_fee_applied.xml", ImmutableMap.of("FEE_VERSION", "0.12")); - EppException thrown = assertThrows(UnsupportedFeeAttributeException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_landrushWithClaims() throws Exception { - createTld("tld", TldState.LANDRUSH); - clock.setTo(DateTime.parse("2009-08-16T09:00:00.0Z")); - setEppInput("domain_create_landrush_claim_notice.xml"); - persistClaimsList(ImmutableMap.of("example-one", CLAIMS_KEY)); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_landrush_response_claims.xml", false); - assertAboutApplications() - .that(getOnlyGlobalResource(DomainApplication.class)) - .hasLaunchNotice( - LaunchNotice.create( - "370d0b7c9223372036854775807", - "tmch", - DateTime.parse("2010-08-16T09:00:00.0Z"), - DateTime.parse("2009-08-16T09:00:00.0Z"))) - .and() - .hasApplicationStatus(ApplicationStatus.VALIDATED); - } - - @Test - public void testSuccess_landrushWithoutClaims_forClaimsListName_afterClaimsPeriodEnd() - throws Exception { - createTld("tld", TldState.LANDRUSH); - persistClaimsList(ImmutableMap.of("test-validate", CLAIMS_KEY)); - setEppInput("domain_create_landrush.xml"); - persistContactsAndHosts(); - persistResource(Registry.get("tld").asBuilder().setClaimsPeriodEnd(clock.nowUtc()).build()); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_landrush_response.xml", false); - assertAboutApplications() - .that(getOnlyGlobalResource(DomainApplication.class)) - .hasLaunchNotice(null) - .and() - .hasApplicationStatus(ApplicationStatus.VALIDATED); - } - - @Test - public void testSuccess_maxNumberOfNameservers() throws Exception { - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush_13_nameservers.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_sunrush_response.xml", false); - } - - @Test - public void testSuccess_encodedSignedMarkWithWhitespace() throws Exception { - setEppInput("domain_create_sunrise_encoded_signed_mark_with_whitespace.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_sunrise_encoded_signed_mark_response.xml", true); - } - - @Test - public void testSuccess_atMarkCreationTime() throws Exception { - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_sunrise_encoded_signed_mark_response.xml", true); - } - - @Test - public void testSuccess_smdRevokedInFuture() throws Exception { - SignedMarkRevocationList.create( - clock.nowUtc(), ImmutableMap.of(SMD_ID, clock.nowUtc().plusDays(1))) - .save(); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_sunrise_encoded_signed_mark_response.xml", true); - } - - @Test - public void testSuccess_justBeforeMarkExpirationTime() throws Exception { - persistContactsAndHosts(); - clock.advanceOneMilli(); - clock.setTo(DateTime.parse("2017-07-23T22:00:00.000Z").minusSeconds(1)); - doSuccessfulTest("domain_create_sunrise_encoded_signed_mark_response.xml", true); - } - - @Test - public void testSuccess_secDns() throws Exception { - setEppInput("domain_create_sunrise_signed_mark_with_secdns.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_sunrise_encoded_signed_mark_response.xml", true); - assertAboutApplications() - .that(getOnlyGlobalResource(DomainApplication.class)) - .hasExactlyDsData( - DelegationSignerData.create(12345, 3, 1, base16().decode("49FD46E6C4B45C55D4AC"))); - } - - @Test - public void testSuccess_secDnsMaxRecords() throws Exception { - setEppInput("domain_create_sunrise_signed_mark_with_secdns_8_records.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_sunrise_encoded_signed_mark_response.xml", true); - assertAboutApplications().that(getOnlyGlobalResource(DomainApplication.class)).hasNumDsData(8); - } - - @Test - public void testFailure_missingMarks() { - setEppInput("domain_create_sunrise_without_marks.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = - assertThrows(LandrushApplicationDisallowedDuringSunriseException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_suspendedRegistrarCantCreateDomainApplication() { - setEppInput("domain_create_sunrise_encoded_signed_mark.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - persistResource( - Registrar.loadByClientId("TheRegistrar") - .get() - .asBuilder() - .setState(State.SUSPENDED) - .build()); - clock.advanceOneMilli(); - EppException thrown = - assertThrows(RegistrarMustBeActiveForThisOperationException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_pendingRegistrarCantCreateDomainApplication() { - setEppInput("domain_create_sunrise_encoded_signed_mark.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - persistResource( - Registrar.loadByClientId("TheRegistrar") - .get() - .asBuilder() - .setState(State.PENDING) - .build()); - clock.advanceOneMilli(); - EppException thrown = - assertThrows(RegistrarMustBeActiveForThisOperationException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_sunriseApplicationInLandrush() { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_signed_mark.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = - assertThrows(SunriseApplicationDisallowedDuringLandrushException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_smdRevoked() { - SignedMarkRevocationList.create(clock.nowUtc(), ImmutableMap.of(SMD_ID, clock.nowUtc())).save(); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(SignedMarkRevokedErrorException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_tooManyNameservers() { - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush_14_nameservers.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(TooManyNameserversException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_secDnsMaxSigLife() { - setEppInput("domain_create_sunrise_with_secdns_maxsiglife.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(MaxSigLifeNotSupportedException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_secDnsTooManyDsRecords() { - setEppInput("domain_create_sunrise_signed_mark_with_secdns_9_records.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(TooManyDsRecordsException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_wrongExtension() { - setEppInput("domain_create_sunrise_wrong_extension.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(UnimplementedExtensionException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_reserved() { - setEppInput("domain_create_sunrise_signed_mark_reserved.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(DomainReservedException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_superuserReserved() throws Exception { - setEppInput("domain_create_sunrise_signed_mark_reserved.xml"); - createTld("tld", TldState.SUNRISE); - persistContactsAndHosts(); - clock.advanceOneMilli(); - runSuperuserFlow("domain_create_sunrise_signed_mark_reserved_response.xml"); - } - - @Test - public void testSuccess_premiumNotBlocked() throws Exception { - createTld("example", TldState.SUNRUSH); - persistResource(Registry.get("example").asBuilder().setPremiumPriceAckRequired(false).build()); - setEppInput("domain_create_landrush_premium.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - runFlowAssertResponse( - loadFile("domain_create_landrush_premium_response.xml"), - "epp.response.extension.creData.applicationID", - "epp.response.resData.creData.crDate", - "epp.response.extension.creData.phase"); - } - - @Test - public void testSuccess_superuserPremiumNameBlock() throws Exception { - createTld("example", TldState.SUNRUSH); - persistResource(Registry.get("example").asBuilder().setPremiumPriceAckRequired(false).build()); - setEppInput("domain_create_landrush_premium.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - // Modify the Registrar to block premium names. - persistResource(loadRegistrar("TheRegistrar").asBuilder().setBlockPremiumNames(true).build()); - runSuperuserFlow("domain_create_landrush_premium_response.xml"); - } - - private DomainApplication persistSunriseApplication() throws Exception { - return persistResource( - newDomainApplication(getUniqueIdFromCommand()) - .asBuilder() - .setPhase(LaunchPhase.SUNRISE) - .build()); - } - - @Test - public void testFailure_landrushWithOneSunriseApplication() throws Exception { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush.xml"); - persistSunriseApplication(); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = - assertThrows(UncontestedSunriseApplicationBlockedInLandrushException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_superuserLandrushWithOneSunriseApplication() throws Exception { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush.xml"); - persistSunriseApplication(); - persistContactsAndHosts(); - clock.advanceOneMilli(); - runSuperuserFlow("domain_create_landrush_response.xml"); - } - - @Test - public void testSuccess_landrushWithTwoSunriseApplications() throws Exception { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush.xml"); - persistSunriseApplication(); - persistSunriseApplication(); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_landrush_response.xml", false); - } - - @Test - public void testSuccess_landrushWithPeriodSpecified() throws Exception { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_two_years.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_landrush_response.xml", false, 2); - } - - @Test - public void testFailure_landrushWithPeriodInMonths() { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_months.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(BadPeriodUnitException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_missingHost() { - persistActiveHost("ns1.example.net"); - persistActiveContact("jd1234"); - persistActiveContact("sh8013"); - LinkedResourcesDoNotExistException thrown = - assertThrows(LinkedResourcesDoNotExistException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains("(ns2.example.net)"); - } - - @Test - public void testFailure_missingContact() { - persistActiveHost("ns1.example.net"); - persistActiveHost("ns2.example.net"); - persistActiveContact("jd1234"); - LinkedResourcesDoNotExistException thrown = - assertThrows(LinkedResourcesDoNotExistException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains("(sh8013)"); - } - - @Test - public void testFailure_wrongTld() { - deleteTld("tld"); - createTld("foo", TldState.SUNRISE); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(TldDoesNotExistException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_predelegation() { - createTld("tld", TldState.PREDELEGATION); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(BadCommandForRegistryPhaseException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_notAuthorizedForTld() { - persistResource( - loadRegistrar("TheRegistrar").asBuilder().setAllowedTlds(ImmutableSet.of()).build()); - persistContactsAndHosts(); - EppException thrown = assertThrows(NotAuthorizedForTldException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_sunrush() { - createTld("tld", TldState.SUNRUSH); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(LaunchPhaseMismatchException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_quietPeriod() { - createTld("tld", TldState.QUIET_PERIOD); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(BadCommandForRegistryPhaseException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_generalAvailability() { - createTld("tld", TldState.GENERAL_AVAILABILITY); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(BadCommandForRegistryPhaseException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_startDateSunrise() { - createTld("tld", TldState.START_DATE_SUNRISE); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(BadCommandForRegistryPhaseException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_wrongDeclaredPhase() { - setEppInput("domain_create_landrush_signed_mark.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(LaunchPhaseMismatchException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_superuserPredelegation() throws Exception { - createTld("tld", TldState.PREDELEGATION); - persistContactsAndHosts(); - clock.advanceOneMilli(); - runSuperuserFlow("domain_create_sunrush_response.xml"); - } - - @Test - public void testSuccess_superuserNotAuthorizedForTld() throws Exception { - persistResource( - loadRegistrar("TheRegistrar").asBuilder().setAllowedTlds(ImmutableSet.of()).build()); - persistContactsAndHosts(); - clock.advanceOneMilli(); - runSuperuserFlow("domain_create_sunrise_encoded_signed_mark_response.xml"); - } - - @Test - public void testSuccess_superuserSunrush() throws Exception { - createTld("tld", TldState.SUNRUSH); - persistContactsAndHosts(); - clock.advanceOneMilli(); - runSuperuserFlow("domain_create_sunrush_response.xml"); - } - - @Test - public void testSuccess_superuserQuietPeriod() throws Exception { - createTld("tld", TldState.QUIET_PERIOD); - persistContactsAndHosts(); - clock.advanceOneMilli(); - runSuperuserFlow("domain_create_sunrush_response.xml"); - } - - @Test - public void testSuccess_superuserGeneralAvailability() throws Exception { - createTld("tld", TldState.GENERAL_AVAILABILITY); - persistContactsAndHosts(); - clock.advanceOneMilli(); - runSuperuserFlow("domain_create_sunrush_response.xml"); - } - - @Test - public void testSuccess_superuserStartDateSunrise() throws Exception { - createTld("tld", TldState.START_DATE_SUNRISE); - persistContactsAndHosts(); - clock.advanceOneMilli(); - runSuperuserFlow("domain_create_sunrush_response.xml"); - } - - @Test - public void testSuccess_superuserWrongDeclaredPhase() throws Exception { - setEppInput("domain_create_landrush_signed_mark.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - runSuperuserFlow("domain_create_sunrush_response.xml"); - } - - @Test - public void testFailure_duplicateContact() { - setEppInput("domain_create_sunrise_duplicate_contact.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(DuplicateContactForRoleException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_missingContactType() { - setEppInput("domain_create_sunrise_missing_contact_type.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - // We need to test for missing type, but not for invalid - the schema enforces that for us. - EppException thrown = assertThrows(MissingContactTypeException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_noMatchingMarks() { - setEppInput("domain_create_sunrise_no_matching_marks.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(NoMarksFoundMatchingDomainException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_beforeMarkCreationTime() { - // If we move now back in time a bit, the mark will not have gone into effect yet. - clock.setTo(DateTime.parse("2013-08-09T10:05:59Z").minusSeconds(1)); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(FoundMarkNotYetValidException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_atMarkExpirationTime() { - // Move time forward to the mark expiration time. - clock.setTo(DateTime.parse("2017-07-23T22:00:00.000Z")); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(FoundMarkExpiredException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_hexEncoding() { - setEppInput("domain_create_sunrise_hex_encoding.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = - assertThrows(Base64RequiredForEncodedSignedMarksException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_badEncoding() { - setEppInput("domain_create_sunrise_bad_encoding.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(SignedMarkEncodingErrorException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_badEncodedXml() { - setEppInput("domain_create_sunrise_bad_encoded_xml.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(SignedMarkParsingErrorException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_badIdn() { - createTld("xn--q9jyb4c", TldState.SUNRUSH); - setEppInput("domain_create_sunrush_bad_idn_minna.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(InvalidIdnDomainLabelException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_badValidatorId() { - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_create_sunrush_bad_validator_id.xml"); - persistClaimsList(ImmutableMap.of("exampleone", CLAIMS_KEY)); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(InvalidTrademarkValidatorException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_signedMark() { - setEppInput("domain_create_sunrise_signed_mark.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(SignedMarksMustBeEncodedException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_codeMark() { - setEppInput("domain_create_sunrise_code_with_mark.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(UnsupportedMarkTypeException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_emptyEncodedMarkData() { - setEppInput("domain_create_sunrise_empty_encoded_signed_mark.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(SignedMarkParsingErrorException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_signedMarkAndNotice() { - setEppInput("domain_create_sunrise_signed_mark_and_notice.xml"); - persistClaimsList(ImmutableMap.of("exampleone", CLAIMS_KEY)); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = - assertThrows(NoticeCannotBeUsedWithSignedMarkException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_twoSignedMarks() { - setEppInput("domain_create_sunrise_two_signed_marks.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(TooManySignedMarksException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_missingClaimsNotice() { - createTld("tld", TldState.SUNRUSH); - persistClaimsList(ImmutableMap.of("test-validate", CLAIMS_KEY)); - setEppInput("domain_create_sunrush.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(MissingClaimsNoticeException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_claimsNoticeProvided_nameNotOnClaimsList() { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_claim_notice.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(UnexpectedClaimsNoticeException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_claimsNoticeProvided_claimsPeriodEnded() { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_claim_notice.xml"); - persistClaimsList(ImmutableMap.of("example-one", CLAIMS_KEY)); - persistContactsAndHosts(); - persistResource(Registry.get("tld").asBuilder().setClaimsPeriodEnd(clock.nowUtc()).build()); - EppException thrown = assertThrows(ClaimsPeriodEndedException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_expiredClaim() { - createTld("tld", TldState.SUNRUSH); - clock.setTo(DateTime.parse("2010-08-17T09:00:00.0Z")); - setEppInput("domain_create_sunrush_claim_notice.xml"); - persistClaimsList(ImmutableMap.of("example-one", CLAIMS_KEY)); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(ExpiredClaimException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_expiredAcceptance() { - createTld("tld", TldState.SUNRUSH); - clock.setTo(DateTime.parse("2009-09-16T09:00:00.0Z")); - setEppInput("domain_create_sunrush_claim_notice.xml"); - persistClaimsList(ImmutableMap.of("example-one", CLAIMS_KEY)); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(AcceptedTooLongAgoException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_malformedTcnIdWrongLength() { - createTld("tld", TldState.SUNRUSH); - persistClaimsList(ImmutableMap.of("example-one", CLAIMS_KEY)); - clock.setTo(DateTime.parse("2009-08-16T09:00:00.0Z")); - setEppInput("domain_create_sunrush_malformed_claim_notice1.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(MalformedTcnIdException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_malformedTcnIdBadChar() { - createTld("tld", TldState.SUNRUSH); - persistClaimsList(ImmutableMap.of("example-one", CLAIMS_KEY)); - clock.setTo(DateTime.parse("2009-08-16T09:00:00.0Z")); - setEppInput("domain_create_sunrush_malformed_claim_notice2.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(MalformedTcnIdException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_badTcnIdChecksum() { - createTld("tld", TldState.SUNRUSH); - clock.setTo(DateTime.parse("2009-08-16T09:00:00.0Z")); - setEppInput("domain_create_sunrush_bad_checksum_claim_notice.xml"); - persistClaimsList(ImmutableMap.of("example-one", CLAIMS_KEY)); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(InvalidTcnIdChecksumException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_wrongFeeLandrushApplication_v06() { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_fee.xml", ImmutableMap.of("FEE_VERSION", "0.6")); - persistResource( - Registry.get("tld").asBuilder().setCreateBillingCost(Money.of(USD, 20)).build()); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(FeesMismatchException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_wrongFeeLandrushApplication_v11() { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_fee.xml", ImmutableMap.of("FEE_VERSION", "0.11")); - persistResource( - Registry.get("tld").asBuilder().setCreateBillingCost(Money.of(USD, 20)).build()); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(FeesMismatchException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_wrongFeeLandrushApplication_v12() { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_fee.xml", ImmutableMap.of("FEE_VERSION", "0.12")); - persistResource( - Registry.get("tld").asBuilder().setCreateBillingCost(Money.of(USD, 20)).build()); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(FeesMismatchException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_wrongCurrency_v06() { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_fee.xml", ImmutableMap.of("FEE_VERSION", "0.6")); - persistResource( - Registry.get("tld") - .asBuilder() - .setCurrency(CurrencyUnit.EUR) - .setCreateBillingCost(Money.of(EUR, 13)) - .setRestoreBillingCost(Money.of(EUR, 11)) - .setRenewBillingCostTransitions(ImmutableSortedMap.of(START_OF_TIME, Money.of(EUR, 7))) - .setEapFeeSchedule(ImmutableSortedMap.of(START_OF_TIME, Money.zero(EUR))) - .setServerStatusChangeBillingCost(Money.of(EUR, 19)) - .build()); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(CurrencyUnitMismatchException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_wrongCurrency_v11() { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_fee.xml", ImmutableMap.of("FEE_VERSION", "0.11")); - persistResource( - Registry.get("tld") - .asBuilder() - .setCurrency(CurrencyUnit.EUR) - .setCreateBillingCost(Money.of(EUR, 13)) - .setRestoreBillingCost(Money.of(EUR, 11)) - .setRenewBillingCostTransitions(ImmutableSortedMap.of(START_OF_TIME, Money.of(EUR, 7))) - .setEapFeeSchedule(ImmutableSortedMap.of(START_OF_TIME, Money.zero(EUR))) - .setServerStatusChangeBillingCost(Money.of(EUR, 19)) - .build()); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(CurrencyUnitMismatchException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_wrongCurrency_v12() { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_fee.xml", ImmutableMap.of("FEE_VERSION", "0.12")); - persistResource( - Registry.get("tld") - .asBuilder() - .setCurrency(CurrencyUnit.EUR) - .setCreateBillingCost(Money.of(EUR, 13)) - .setRestoreBillingCost(Money.of(EUR, 11)) - .setRenewBillingCostTransitions(ImmutableSortedMap.of(START_OF_TIME, Money.of(EUR, 7))) - .setEapFeeSchedule(ImmutableSortedMap.of(START_OF_TIME, Money.zero(EUR))) - .setServerStatusChangeBillingCost(Money.of(EUR, 19)) - .build()); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(CurrencyUnitMismatchException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_feeGivenInWrongScale_v06() { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_fee_bad_scale.xml", ImmutableMap.of("FEE_VERSION", "0.6")); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(CurrencyValueScaleException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_feeGivenInWrongScale_v11() { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_fee_bad_scale.xml", ImmutableMap.of("FEE_VERSION", "0.11")); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(CurrencyValueScaleException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_feeGivenInWrongScale_v12() { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_fee_bad_scale.xml", ImmutableMap.of("FEE_VERSION", "0.12")); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(CurrencyValueScaleException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_alreadyExists() throws Exception { - persistContactsAndHosts(); - clock.advanceOneMilli(); - persistActiveDomain(getUniqueIdFromCommand()); - ResourceAlreadyExistsException thrown = - assertThrows(ResourceAlreadyExistsException.class, this::runFlow); - assertAboutEppExceptions() - .that(thrown) - .marshalsToXml() - .and() - .hasMessage( - String.format("Object with given ID (%s) already exists", getUniqueIdFromCommand())); - } - - @Test - public void testFailure_registrantNotWhitelisted() { - persistActiveContact("someone"); - persistContactsAndHosts(); - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedRegistrantContactIds(ImmutableSet.of("someone")) - .build()); - RegistrantNotAllowedException thrown = - assertThrows(RegistrantNotAllowedException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml().and().hasMessageThatContains("jd1234"); - } - - @Test - public void testFailure_nameserverNotWhitelisted() { - persistContactsAndHosts(); - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedFullyQualifiedHostNames(ImmutableSet.of("ns2.example.net")) - .build()); - NameserversNotAllowedForTldException thrown = - assertThrows(NameserversNotAllowedForTldException.class, this::runFlow); - assertAboutEppExceptions() - .that(thrown) - .marshalsToXml() - .and() - .hasMessageThatContains("ns1.example.net"); - } - - @Test - public void testSuccess_nameserverAndRegistrantWhitelisted() throws Exception { - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedRegistrantContactIds(ImmutableSet.of("jd1234")) - .setAllowedFullyQualifiedHostNames( - ImmutableSet.of("ns1.example.net", "ns2.example.net")) - .build()); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_sunrise_encoded_signed_mark_response.xml", true); - assertAboutApplications() - .that(getOnlyGlobalResource(DomainApplication.class)) - .hasApplicationStatus(ApplicationStatus.VALIDATED); - } - - @Test - public void testFailure_emptyNameserverFailsWhitelist() { - setEppInput("domain_create_sunrise_encoded_signed_mark_no_hosts.xml"); - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedRegistrantContactIds(ImmutableSet.of("jd1234")) - .setAllowedFullyQualifiedHostNames(ImmutableSet.of("somethingelse.example.net")) - .build()); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = - assertThrows( - NameserversNotSpecifiedForTldWithNameserverWhitelistException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_domainNameserverRestricted_allNameserversAllowed() throws Exception { - persistResource( - Registry.get("tld") - .asBuilder() - .setReservedLists( - persistReservedList( - "reserved", - "test-validate,NAMESERVER_RESTRICTED," - + "ns1.example.net:ns2.example.net:ns3.example.net")) - .build()); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_sunrise_encoded_signed_mark_response.xml", true); - assertAboutApplications() - .that(getOnlyGlobalResource(DomainApplication.class)) - .hasApplicationStatus(ApplicationStatus.VALIDATED); - } - - @Test - public void testFailure_domainNameserverRestricted_someNameserversDisallowed() { - persistResource( - Registry.get("tld") - .asBuilder() - .setReservedLists( - persistReservedList( - "reserved", - "test-validate,NAMESERVER_RESTRICTED,ns2.example.net:ns3.example.net")) - .build()); - persistContactsAndHosts(); - clock.advanceOneMilli(); - NameserversNotAllowedForDomainException thrown = - assertThrows(NameserversNotAllowedForDomainException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains("ns1.example.net"); - } - - @Test - public void testFailure_domainNameserverRestricted_noNameserversAllowed() { - setEppInput("domain_create_sunrise_encoded_signed_mark_no_hosts.xml"); - persistResource( - Registry.get("tld") - .asBuilder() - .setReservedLists( - persistReservedList( - "reserved", - "test-validate,NAMESERVER_RESTRICTED,ns2.example.net:ns3.example.net")) - .build()); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = - assertThrows( - NameserversNotSpecifiedForNameserverRestrictedDomainException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_tldAndDomainNameserversWhitelistBothSatistfied() throws Exception { - persistResource( - Registry.get("tld") - .asBuilder() - .setDomainCreateRestricted(true) - .setReservedLists( - persistReservedList( - "reserved", - "test-validate,NAMESERVER_RESTRICTED," - + "ns1.example.net:ns2.example.net:ns3.example.net")) - .setAllowedFullyQualifiedHostNames( - ImmutableSet.of("ns1.example.net", "ns2.example.net", "ns4.examplet.net")) - .build()); - persistContactsAndHosts(); - clock.advanceOneMilli(); - doSuccessfulTest("domain_create_sunrise_encoded_signed_mark_response.xml", true); - assertAboutApplications() - .that(getOnlyGlobalResource(DomainApplication.class)) - .hasApplicationStatus(ApplicationStatus.VALIDATED); - } - - @Test - public void testFailure_domainNameserversDisallowed_tldNameserversAllowed() { - persistResource( - Registry.get("tld") - .asBuilder() - .setReservedLists( - persistReservedList( - "reserved", - "test-validate,NAMESERVER_RESTRICTED," - + "ns2.example.net:ns3.example.net:ns4.example.net")) - .setAllowedFullyQualifiedHostNames( - ImmutableSet.of("ns1.example.net", "ns2.example.net", "ns3.examplet.net")) - .build()); - persistContactsAndHosts(); - clock.advanceOneMilli(); - NameserversNotAllowedForDomainException thrown = - assertThrows(NameserversNotAllowedForDomainException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains("ns1.example.net"); - } - - @Test - public void testFailure_domainNameserversAllowed_tldNameserversDisallowed() { - persistResource( - Registry.get("tld") - .asBuilder() - .setReservedLists( - persistReservedList( - "reserved", - "test-validate,NAMESERVER_RESTRICTED," - + "ns1.example.net:ns2.example.net:ns3.example.net")) - .setAllowedFullyQualifiedHostNames( - ImmutableSet.of("ns2.example.net", "ns3.example.net", "ns4.examplet.net")) - .build()); - persistContactsAndHosts(); - clock.advanceOneMilli(); - NameserversNotAllowedForTldException thrown = - assertThrows(NameserversNotAllowedForTldException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains("ns1.example.net"); - } - - @Test - public void testFailure_max10Years() { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_create_landrush_11_years.xml"); - persistContactsAndHosts(); - clock.advanceOneMilli(); - EppException thrown = assertThrows(ExceedsMaxRegistrationYearsException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - private void doFailingDomainNameTest(String domainName, Class exception) { - setEppInput("domain_create_sunrise_signed_mark_uppercase.xml"); - eppLoader.replaceAll("TEST-VALIDATE.tld", domainName); - persistContactsAndHosts(); - EppException thrown = assertThrows(exception, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_uppercase() { - doFailingDomainNameTest("Example.tld", BadDomainNameCharacterException.class); - } - - @Test - public void testFailure_badCharacter() { - doFailingDomainNameTest("test_example.tld", BadDomainNameCharacterException.class); - } - - @Test - public void testFailure_leadingDash() { - doFailingDomainNameTest("-example.tld", LeadingDashException.class); - } - - @Test - public void testFailure_trailingDash() { - doFailingDomainNameTest("example-.tld", TrailingDashException.class); - } - - @Test - public void testFailure_tooLong() { - doFailingDomainNameTest(Strings.repeat("a", 64) + ".tld", DomainLabelTooLongException.class); - } - - @Test - public void testFailure_leadingDot() { - doFailingDomainNameTest(".example.tld", EmptyDomainNamePartException.class); - } - - @Test - public void testFailure_leadingDotTld() { - doFailingDomainNameTest("foo..tld", EmptyDomainNamePartException.class); - } - - @Test - public void testFailure_tooManyParts() { - doFailingDomainNameTest("foo.example.tld", BadDomainNamePartsCountException.class); - } - - @Test - public void testFailure_tooFewParts() { - doFailingDomainNameTest("tld", BadDomainNamePartsCountException.class); - } - - @Test - public void testFailure_domainNameExistsAsTld_lowercase() { - createTlds("foo.tld", "tld"); - doFailingDomainNameTest("foo.tld", DomainNameExistsAsTldException.class); - } - - @Test - public void testFailure_domainNameExistsAsTld_uppercase() { - createTlds("foo.tld", "tld"); - doFailingDomainNameTest("FOO.TLD", BadDomainNameCharacterException.class); - } - - @Test - public void testFailure_invalidPunycode() { - doFailingDomainNameTest("xn--abcdefg.tld", InvalidPunycodeException.class); - } - - @Test - public void testFailure_dashesInThirdAndFourthPosition() { - doFailingDomainNameTest("ab--cdefg.tld", DashesInThirdAndFourthException.class); - } - - @Test - public void testFailure_tldDoesNotExist() { - doFailingDomainNameTest("foo.nosuchtld", TldDoesNotExistException.class); - } - - @Test - public void testFailure_invalidIdnCodePoints() { - // ❤☀☆☂☻♞☯.tld - doFailingDomainNameTest("xn--k3hel9n7bxlu1e.tld", InvalidIdnDomainLabelException.class); - } - - @Test - public void testIcannActivityReportField_getsLogged() throws Exception { - persistContactsAndHosts(); - clock.advanceOneMilli(); - runFlow(); - assertIcannReportingActivityFieldLogged("srs-dom-create"); - assertTldsFieldLogged("tld"); - // Ensure we log the client ID for srs-dom-create so we can also use it for attempted-adds. - assertClientIdFieldLogged("TheRegistrar"); - } -} diff --git a/javatests/google/registry/flows/domain/DomainApplicationDeleteFlowTest.java b/javatests/google/registry/flows/domain/DomainApplicationDeleteFlowTest.java deleted file mode 100644 index e3df1d02e..000000000 --- a/javatests/google/registry/flows/domain/DomainApplicationDeleteFlowTest.java +++ /dev/null @@ -1,345 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.flows.domain; - -import static com.google.common.truth.Truth.assertThat; -import static com.google.common.truth.Truth8.assertThat; -import static google.registry.model.EppResourceUtils.isLinked; -import static google.registry.model.EppResourceUtils.loadByForeignKey; -import static google.registry.model.EppResourceUtils.loadDomainApplication; -import static google.registry.model.index.ForeignKeyIndex.loadAndGetKey; -import static google.registry.testing.DatastoreHelper.assertNoBillingEvents; -import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.loadRegistrar; -import static google.registry.testing.DatastoreHelper.newDomainApplication; -import static google.registry.testing.DatastoreHelper.newHostResource; -import static google.registry.testing.DatastoreHelper.persistActiveContact; -import static google.registry.testing.DatastoreHelper.persistActiveDomainApplication; -import static google.registry.testing.DatastoreHelper.persistResource; -import static google.registry.testing.EppExceptionSubject.assertAboutEppExceptions; -import static google.registry.testing.JUnitBackports.assertThrows; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; -import com.googlecode.objectify.Key; -import google.registry.flows.EppException; -import google.registry.flows.EppException.UnimplementedExtensionException; -import google.registry.flows.ResourceFlowTestCase; -import google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException; -import google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException; -import google.registry.flows.domain.DomainApplicationDeleteFlow.SunriseApplicationCannotBeDeletedInLandrushException; -import google.registry.flows.domain.DomainFlowUtils.ApplicationDomainNameMismatchException; -import google.registry.flows.domain.DomainFlowUtils.BadCommandForRegistryPhaseException; -import google.registry.flows.domain.DomainFlowUtils.LaunchPhaseMismatchException; -import google.registry.flows.domain.DomainFlowUtils.NotAuthorizedForTldException; -import google.registry.model.EppResource; -import google.registry.model.contact.ContactResource; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.launch.LaunchPhase; -import google.registry.model.eppcommon.StatusValue; -import google.registry.model.host.HostResource; -import google.registry.model.registry.Registry.TldState; -import org.junit.Before; -import org.junit.Test; - -/** Unit tests for {@link DomainApplicationDeleteFlow}. */ -public class DomainApplicationDeleteFlowTest - extends ResourceFlowTestCase { - - public DomainApplicationDeleteFlowTest() { - setEppInput("domain_delete_application.xml"); - } - - @Before - public void setUp() { - createTld("tld", TldState.SUNRUSH); - createTld("extra", TldState.LANDRUSH); - } - - public void doSuccessfulTest() throws Exception { - assertTransactionalFlow(true); - clock.advanceOneMilli(); - runFlowAssertResponse(loadFile("generic_success_response.xml")); - // Check that the domain is fully deleted. - assertThat(loadDomainApplication(getUniqueIdFromCommand(), clock.nowUtc())).isEmpty(); - assertNoBillingEvents(); - } - - @Test - public void testDryRun() throws Exception { - persistResource(newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD").build()); - dryRunFlowAssertResponse(loadFile("generic_success_response.xml")); - } - - @Test - public void testSuccess_contactsAndHostUnlinked() throws Exception { - // Persist a linked contact and host - persistActiveContact("sh8013"); - persistResource(newHostResource("ns1.example.net")); - // Create the DomainApplication to test. - persistResource( - newDomainApplication("example.tld") - .asBuilder() - .setRepoId("1-TLD") - .setRegistrant( - Key.create(loadByForeignKey(ContactResource.class, "sh8013", clock.nowUtc()).get())) - .setNameservers( - Key.create( - loadByForeignKey(HostResource.class, "ns1.example.net", clock.nowUtc()).get())) - .build()); - doSuccessfulTest(); - for (Key key : - ImmutableList.of( - loadAndGetKey(ContactResource.class, "sh8013", clock.nowUtc()), - loadAndGetKey(HostResource.class, "ns1.example.net", clock.nowUtc()))) { - assertThat(isLinked(key, clock.nowUtc())).isFalse(); - } - } - - @Test - public void testSuccess_clientDeleteProhibited() throws Exception { - persistResource( - newDomainApplication("example.tld") - .asBuilder() - .setRepoId("1-TLD") - .addStatusValue(StatusValue.CLIENT_DELETE_PROHIBITED) - .build()); - doSuccessfulTest(); - } - - @Test - public void testSuccess_serverDeleteProhibited() throws Exception { - persistResource( - newDomainApplication("example.tld") - .asBuilder() - .setRepoId("1-TLD") - .addStatusValue(StatusValue.SERVER_DELETE_PROHIBITED) - .build()); - doSuccessfulTest(); - } - - @Test - public void testFailure_neverExisted() throws Exception { - ResourceDoesNotExistException thrown = - assertThrows(ResourceDoesNotExistException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains(String.format("(%s)", getUniqueIdFromCommand())); - } - - @Test - public void testFailure_existedButWasDeleted() throws Exception { - persistResource( - newDomainApplication("example.tld") - .asBuilder() - .setRepoId("1-TLD") - .setDeletionTime(clock.nowUtc().minusSeconds(1)) - .build()); - ResourceDoesNotExistException thrown = - assertThrows(ResourceDoesNotExistException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains(String.format("(%s)", getUniqueIdFromCommand())); - } - - @Test - public void testFailure_unauthorizedClient() { - sessionMetadata.setClientId("NewRegistrar"); - persistResource(newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD").build()); - EppException thrown = assertThrows(ResourceNotOwnedException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_superuserUnauthorizedClient() throws Exception { - sessionMetadata.setClientId("NewRegistrar"); - persistResource(newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD").build()); - clock.advanceOneMilli(); - runFlowAssertResponse( - CommitMode.LIVE, UserPrivileges.SUPERUSER, loadFile("generic_success_response.xml")); - } - - @Test - public void testFailure_notAuthorizedForTld() { - persistResource(newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD").build()); - persistResource( - loadRegistrar("TheRegistrar").asBuilder().setAllowedTlds(ImmutableSet.of()).build()); - EppException thrown = assertThrows(NotAuthorizedForTldException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_superuserNotAuthorizedForTld() throws Exception { - persistResource(newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD").build()); - persistResource( - loadRegistrar("TheRegistrar").asBuilder().setAllowedTlds(ImmutableSet.of()).build()); - clock.advanceOneMilli(); - runFlowAssertResponse( - CommitMode.LIVE, UserPrivileges.SUPERUSER, loadFile("generic_success_response.xml")); - } - - @Test - public void testFailure_sunriseDuringLandrush() { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_delete_application_landrush.xml", ImmutableMap.of("DOMAIN", "example.tld")); - persistResource( - newDomainApplication("example.tld") - .asBuilder() - .setRepoId("1-TLD") - .setPhase(LaunchPhase.SUNRISE) - .build()); - EppException thrown = - assertThrows(SunriseApplicationCannotBeDeletedInLandrushException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_superuserSunriseDuringLandrush() throws Exception { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_delete_application_landrush.xml", ImmutableMap.of("DOMAIN", "example.tld")); - persistResource( - newDomainApplication("example.tld") - .asBuilder() - .setRepoId("1-TLD") - .setPhase(LaunchPhase.SUNRISE) - .build()); - clock.advanceOneMilli(); - runFlowAssertResponse( - CommitMode.LIVE, UserPrivileges.SUPERUSER, loadFile("generic_success_response.xml")); - } - - @Test - public void testSuccess_sunrushDuringLandrush() throws Exception { - createTld("tld", TldState.LANDRUSH); - setEppInput("domain_delete_application_landrush.xml", ImmutableMap.of("DOMAIN", "example.tld")); - persistResource( - newDomainApplication("example.tld") - .asBuilder() - .setRepoId("1-TLD") - .setPhase(LaunchPhase.SUNRUSH) - .build()); - doSuccessfulTest(); - } - - @Test - public void testSuccess_sunriseDuringSunrush() throws Exception { - createTld("tld", TldState.SUNRUSH); - setEppInput("domain_delete_application_sunrush.xml"); - persistResource( - newDomainApplication("example.tld") - .asBuilder() - .setRepoId("1-TLD") - .setPhase(LaunchPhase.SUNRISE) - .build()); - doSuccessfulTest(); - } - - @Test - public void testFailure_mismatchedPhase() { - setEppInput("domain_delete_application_landrush.xml", ImmutableMap.of("DOMAIN", "example.tld")); - persistResource(newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD").build()); - EppException thrown = assertThrows(LaunchPhaseMismatchException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_wrongExtension() { - setEppInput("domain_delete_application_wrong_extension.xml"); - persistActiveDomainApplication("example.tld"); - EppException thrown = assertThrows(UnimplementedExtensionException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_predelegation() { - createTld("tld", TldState.PREDELEGATION); - persistResource(newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD").build()); - EppException thrown = assertThrows(BadCommandForRegistryPhaseException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_quietPeriod() { - createTld("tld", TldState.QUIET_PERIOD); - persistResource(newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD").build()); - EppException thrown = assertThrows(BadCommandForRegistryPhaseException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_generalAvailability() { - createTld("tld", TldState.GENERAL_AVAILABILITY); - persistResource(newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD").build()); - EppException thrown = assertThrows(BadCommandForRegistryPhaseException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_startDateSunrise() { - createTld("tld", TldState.START_DATE_SUNRISE); - persistResource(newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD").build()); - EppException thrown = assertThrows(BadCommandForRegistryPhaseException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_superuserQuietPeriod() throws Exception { - createTld("tld", TldState.QUIET_PERIOD); - persistResource(newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD").build()); - clock.advanceOneMilli(); - runFlowAssertResponse( - CommitMode.LIVE, UserPrivileges.SUPERUSER, loadFile("generic_success_response.xml")); - } - - @Test - public void testSuccess_superuserPredelegation() throws Exception { - createTld("tld", TldState.PREDELEGATION); - persistResource(newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD").build()); - clock.advanceOneMilli(); - runFlowAssertResponse( - CommitMode.LIVE, UserPrivileges.SUPERUSER, loadFile("generic_success_response.xml")); - } - - @Test - public void testSuccess_superuserGeneralAvailability() throws Exception { - createTld("tld", TldState.GENERAL_AVAILABILITY); - persistResource(newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD").build()); - clock.advanceOneMilli(); - runFlowAssertResponse( - CommitMode.LIVE, UserPrivileges.SUPERUSER, loadFile("generic_success_response.xml")); - } - - @Test - public void testSuccess_superuserStartDateSunrise() throws Exception { - createTld("tld", TldState.START_DATE_SUNRISE); - persistResource(newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD").build()); - clock.advanceOneMilli(); - runFlowAssertResponse( - CommitMode.LIVE, UserPrivileges.SUPERUSER, loadFile("generic_success_response.xml")); - } - - @Test - public void testFailure_applicationIdForDifferentDomain() { - persistResource(newDomainApplication("invalid.tld").asBuilder().setRepoId("1-TLD").build()); - EppException thrown = assertThrows(ApplicationDomainNameMismatchException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testIcannActivityReportField_getsLogged() throws Exception { - persistResource(newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD").build()); - clock.advanceOneMilli(); - runFlow(); - assertIcannReportingActivityFieldLogged("srs-dom-delete"); - assertTldsFieldLogged("tld"); - } -} diff --git a/javatests/google/registry/flows/domain/DomainApplicationInfoFlowTest.java b/javatests/google/registry/flows/domain/DomainApplicationInfoFlowTest.java deleted file mode 100644 index 744cf0fc5..000000000 --- a/javatests/google/registry/flows/domain/DomainApplicationInfoFlowTest.java +++ /dev/null @@ -1,380 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.flows.domain; - -import static com.google.common.io.BaseEncoding.base16; -import static com.google.common.truth.Truth.assertThat; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.testing.DatastoreHelper.assertNoBillingEvents; -import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.persistActiveContact; -import static google.registry.testing.DatastoreHelper.persistActiveHost; -import static google.registry.testing.DatastoreHelper.persistResource; -import static google.registry.testing.EppExceptionSubject.assertAboutEppExceptions; -import static google.registry.testing.JUnitBackports.assertThrows; - -import com.google.common.base.Predicates; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; -import com.googlecode.objectify.Key; -import google.registry.flows.EppException; -import google.registry.flows.ResourceFlowTestCase; -import google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException; -import google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException; -import google.registry.flows.domain.DomainApplicationInfoFlow.ApplicationLaunchPhaseMismatchException; -import google.registry.flows.domain.DomainApplicationInfoFlow.MissingApplicationIdException; -import google.registry.flows.domain.DomainFlowUtils.ApplicationDomainNameMismatchException; -import google.registry.model.contact.ContactResource; -import google.registry.model.domain.DesignatedContact; -import google.registry.model.domain.DesignatedContact.Type; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.DomainAuthInfo; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.model.domain.launch.LaunchCreateExtension; -import google.registry.model.domain.launch.LaunchPhase; -import google.registry.model.domain.secdns.DelegationSignerData; -import google.registry.model.eppcommon.AuthInfo.PasswordAuth; -import google.registry.model.eppcommon.StatusValue; -import google.registry.model.host.HostResource; -import google.registry.model.ofy.RequestCapturingAsyncDatastoreService; -import google.registry.model.registry.Registry.TldState; -import google.registry.model.smd.EncodedSignedMark; -import google.registry.testing.AppEngineRule; -import google.registry.testing.EppLoader; -import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Test; - -/** Unit tests for {@link DomainApplicationInfoFlow}. */ -public class DomainApplicationInfoFlowTest - extends ResourceFlowTestCase { - - private ContactResource registrant; - private ContactResource contact; - private HostResource host1; - private HostResource host2; - private DomainApplication application; - - private enum MarksState { - MARKS_EXIST, - NO_MARKS_EXIST - } - - private enum HostsState { - HOSTS_EXIST, - NO_HOSTS_EXIST - } - - @Before - public void resetClientId() { - setEppInput("domain_info_sunrise.xml"); - sessionMetadata.setClientId("NewRegistrar"); - createTld("tld", TldState.SUNRUSH); - } - - private void persistTestEntities(HostsState hostsState, MarksState marksState) throws Exception { - registrant = persistActiveContact("jd1234"); - contact = persistActiveContact("sh8013"); - host1 = persistActiveHost("ns1.example.net"); - host2 = persistActiveHost("ns1.example.tld"); - application = - persistResource( - new DomainApplication.Builder() - .setRepoId("123-TLD") - .setFullyQualifiedDomainName("example.tld") - .setPhase(LaunchPhase.SUNRUSH) - .setPersistedCurrentSponsorClientId("NewRegistrar") - .setCreationClientId("TheRegistrar") - .setLastEppUpdateClientId("NewRegistrar") - .setCreationTimeForTest(DateTime.parse("1999-04-03T22:00:00.0Z")) - .setLastEppUpdateTime(DateTime.parse("1999-12-03T09:00:00.0Z")) - .setRegistrant(Key.create(registrant)) - .setContacts( - ImmutableSet.of( - DesignatedContact.create(Type.ADMIN, Key.create(contact)), - DesignatedContact.create(Type.TECH, Key.create(contact)))) - .setNameservers( - hostsState.equals(HostsState.HOSTS_EXIST) - ? ImmutableSet.of(Key.create(host1), Key.create(host2)) - : null) - .setAuthInfo(DomainAuthInfo.create(PasswordAuth.create("2fooBAR"))) - .addStatusValue(StatusValue.PENDING_CREATE) - .setApplicationStatus(ApplicationStatus.PENDING_VALIDATION) - .setEncodedSignedMarks( - marksState.equals(MarksState.MARKS_EXIST) - // If we need to include an encoded signed mark, pull it out of the create - // xml. - ? ImmutableList.of( - (EncodedSignedMark) - new EppLoader(this, "domain_create_sunrise_encoded_signed_mark.xml") - .getEpp() - .getSingleExtension(LaunchCreateExtension.class) - .get() - .getSignedMarks() - .get(0)) - : null) - .build()); - } - - private void doSuccessfulTest(String expectedXmlFilename, HostsState hostsState) - throws Exception { - assertTransactionalFlow(false); - String expected = loadFile(expectedXmlFilename, ImmutableMap.of("ROID", "123-TLD")); - if (hostsState.equals(HostsState.NO_HOSTS_EXIST)) { - expected = expected.replaceAll("\"ok\"", "\"inactive\""); - } - runFlowAssertResponse(expected); - assertNoHistory(); - assertNoBillingEvents(); - } - - private void doSuccessfulTest(String expectedXmlFilename) throws Exception { - persistTestEntities(HostsState.HOSTS_EXIST, MarksState.NO_MARKS_EXIST); - doSuccessfulTest(expectedXmlFilename, HostsState.HOSTS_EXIST); - } - - private void doSuccessfulTestNoNameservers(String expectedXmlFilename) throws Exception { - persistTestEntities(HostsState.NO_HOSTS_EXIST, MarksState.NO_MARKS_EXIST); - doSuccessfulTest(expectedXmlFilename, HostsState.NO_HOSTS_EXIST); - } - - @Test - public void testSuccess_quietPeriod() throws Exception { - createTld("tld", TldState.QUIET_PERIOD); - doSuccessfulTest("domain_info_sunrise_response.xml"); - } - - @Test - public void testSuccess_generalAvailability() throws Exception { - createTld("tld", TldState.GENERAL_AVAILABILITY); - doSuccessfulTest("domain_info_sunrise_response.xml"); - } - - @Test - public void testSuccess_requestedDefaultHosts_nameserversExist() throws Exception { - // Default is "all", which means nameservers since there can't be subordinates. - doSuccessfulTest("domain_info_sunrise_response.xml"); - } - - @Test - public void testSuccess_requestedDefaultHosts_noNameserversExist() throws Exception { - // Default is "all", which means nameservers since there can't be subordinates. - doSuccessfulTestNoNameservers("domain_info_sunrise_response_no_nameservers.xml"); - } - - @Test - public void testSuccess_requestedAllHosts_nameserversExist() throws Exception { - // "All" means nameservers since there can't be subordinates (same as "delegated"). - setEppInput("domain_info_sunrise_all_hosts.xml"); - doSuccessfulTest("domain_info_sunrise_response.xml"); - } - - @Test - public void testSuccess_requestedAllHosts_noNameserversExist() throws Exception { - // "All" means nameservers since there can't be subordinates (same as "delegated"). - setEppInput("domain_info_sunrise_all_hosts.xml"); - doSuccessfulTestNoNameservers("domain_info_sunrise_response_no_nameservers.xml"); - } - - @Test - public void testSuccess_requestedDelegatedHosts_nameserversExist() throws Exception { - // "Delegated" means nameservers since there can't be subordinates (same as "all"). - setEppInput("domain_info_sunrise_delegated_hosts.xml"); - doSuccessfulTest("domain_info_sunrise_response.xml"); - } - - @Test - public void testSuccess_requestedDelegatedHosts_noNameserversExist() throws Exception { - // "Delegated" means nameservers since there can't be subordinates (same as "all"). - setEppInput("domain_info_sunrise_delegated_hosts.xml"); - doSuccessfulTestNoNameservers("domain_info_sunrise_response_no_nameservers.xml"); - } - - @Test - public void testSuccess_requestedNoneHosts_nameserversExist() throws Exception { - setEppInput("domain_info_sunrise_none_hosts.xml"); - doSuccessfulTestNoNameservers("domain_info_sunrise_response_no_nameservers.xml"); - } - - @Test - public void testSuccess_requestedNoneHosts_noNameserversExist() throws Exception { - setEppInput("domain_info_sunrise_none_hosts.xml"); - doSuccessfulTestNoNameservers("domain_info_sunrise_response_no_nameservers.xml"); - } - - @Test - public void testSuccess_requestedDefaultMarks_noMarksExist() throws Exception { - persistTestEntities(HostsState.HOSTS_EXIST, MarksState.NO_MARKS_EXIST); - doSuccessfulTest("domain_info_sunrise_response.xml", HostsState.HOSTS_EXIST); - } - - @Test - public void testSuccess_requestedDefaultMarks_marksExist() throws Exception { - persistTestEntities(HostsState.HOSTS_EXIST, MarksState.MARKS_EXIST); - doSuccessfulTest("domain_info_sunrise_response.xml", HostsState.HOSTS_EXIST); - } - - @Test - public void testSuccess_requestedNoMarks_marksExist() throws Exception { - setEppInput("domain_info_sunrise_no_marks.xml"); - persistTestEntities(HostsState.HOSTS_EXIST, MarksState.MARKS_EXIST); - doSuccessfulTest("domain_info_sunrise_response.xml", HostsState.HOSTS_EXIST); - } - - @Test - public void testSuccess_requestedNoMarks_noMarksExist() throws Exception { - setEppInput("domain_info_sunrise_no_marks.xml"); - persistTestEntities(HostsState.HOSTS_EXIST, MarksState.NO_MARKS_EXIST); - doSuccessfulTest("domain_info_sunrise_response.xml", HostsState.HOSTS_EXIST); - } - - @Test - public void testSuccess_requestedIncludeMarks_marksExist() throws Exception { - setEppInput("domain_info_sunrise_include_marks.xml"); - persistTestEntities(HostsState.HOSTS_EXIST, MarksState.MARKS_EXIST); - doSuccessfulTest("domain_info_sunrise_response_with_mark.xml", HostsState.HOSTS_EXIST); - } - - @Test - public void testSuccess_requestedIncludeMarks_noMarksExist() throws Exception { - setEppInput("domain_info_sunrise_include_marks.xml"); - persistTestEntities(HostsState.HOSTS_EXIST, MarksState.NO_MARKS_EXIST); - doSuccessfulTest("domain_info_sunrise_response.xml", HostsState.HOSTS_EXIST); - } - - @Test - public void testSuccess_secDns() throws Exception { - persistTestEntities(HostsState.NO_HOSTS_EXIST, MarksState.NO_MARKS_EXIST); - // Add the dsData to the saved resource and change the nameservers to match the sample xml. - persistResource( - application - .asBuilder() - .setDsData( - ImmutableSet.of( - DelegationSignerData.create( - 12345, 3, 1, base16().decode("49FD46E6C4B45C55D4AC")))) - .setNameservers(ImmutableSet.of(Key.create(host1), Key.create(host2))) - .build()); - doSuccessfulTest("domain_info_sunrise_response_dsdata.xml", HostsState.NO_HOSTS_EXIST); - } - - @Test - public void testSuccess_allocated() throws Exception { - persistTestEntities(HostsState.HOSTS_EXIST, MarksState.NO_MARKS_EXIST); - // Update the application status of the saved resource. - persistResource( - application - .asBuilder() - .removeStatusValue(StatusValue.PENDING_CREATE) - .setApplicationStatus(ApplicationStatus.ALLOCATED) - .build()); - doSuccessfulTest("domain_info_sunrise_allocated.xml", HostsState.HOSTS_EXIST); - } - - @Test - public void testFailure_neverExisted() throws Exception { - ResourceDoesNotExistException thrown = - assertThrows(ResourceDoesNotExistException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains(String.format("(%s)", getUniqueIdFromCommand())); - } - - @Test - public void testFailure_existedButWasDeleted() throws Exception { - persistResource( - new DomainApplication.Builder() - .setRepoId("123-COM") - .setFullyQualifiedDomainName("timber.com") - .setDeletionTime(clock.nowUtc().minusDays(1)) - .setRegistrant(Key.create(persistActiveContact("jd1234"))) - .build()); - ResourceDoesNotExistException thrown = - assertThrows(ResourceDoesNotExistException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains(String.format("(%s)", getUniqueIdFromCommand())); - } - - @Test - public void testFailure_unauthorized() throws Exception { - persistResource(AppEngineRule.makeRegistrar1().asBuilder().setClientId("ClientZ").build()); - sessionMetadata.setClientId("ClientZ"); - persistTestEntities(HostsState.NO_HOSTS_EXIST, MarksState.NO_MARKS_EXIST); - EppException thrown = assertThrows(ResourceNotOwnedException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_applicationIdForDifferentDomain() { - persistResource( - new DomainApplication.Builder() - .setRepoId("123-TLD") - .setFullyQualifiedDomainName("invalid.tld") - .setRegistrant(Key.create(persistActiveContact("jd1234"))) - .setPhase(LaunchPhase.SUNRUSH) - .build()); - EppException thrown = assertThrows(ApplicationDomainNameMismatchException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_noApplicationId() throws Exception { - setEppInput("domain_info_sunrise_no_application_id.xml"); - persistTestEntities(HostsState.NO_HOSTS_EXIST, MarksState.NO_MARKS_EXIST); - EppException thrown = assertThrows(MissingApplicationIdException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_mismatchedLaunchPhase() throws Exception { - persistTestEntities(HostsState.NO_HOSTS_EXIST, MarksState.NO_MARKS_EXIST); - application = persistResource(application.asBuilder().setPhase(LaunchPhase.SUNRISE).build()); - EppException thrown = - assertThrows(ApplicationLaunchPhaseMismatchException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - /** Test that we load contacts and hosts as a batch rather than individually. */ - @Test - public void testBatchLoadingOfReferences() throws Exception { - persistTestEntities(HostsState.HOSTS_EXIST, MarksState.NO_MARKS_EXIST); - // Clear out the session cache so that we count actual Datastore calls. - ofy().clearSessionCache(); - int numPreviousReads = RequestCapturingAsyncDatastoreService.getReads().size(); - doSuccessfulTest("domain_info_sunrise_response.xml", HostsState.HOSTS_EXIST); - // Get all of the keys loaded in the flow, with each distinct load() call as a list of keys. - long numReadsWithContactsOrHosts = - RequestCapturingAsyncDatastoreService.getReads() - .stream() - .skip(numPreviousReads) - .filter( - keys -> - keys.stream() - .map(com.google.appengine.api.datastore.Key::getKind) - .anyMatch( - Predicates.in( - ImmutableSet.of( - Key.getKind(ContactResource.class), - Key.getKind(HostResource.class))))) - .count(); - assertThat(numReadsWithContactsOrHosts).isEqualTo(1); - } - - @Test - public void testIcannActivityReportField_getsLogged() throws Exception { - persistTestEntities(HostsState.HOSTS_EXIST, MarksState.NO_MARKS_EXIST); - runFlow(); - assertIcannReportingActivityFieldLogged("srs-dom-info"); - assertTldsFieldLogged("tld"); - } -} diff --git a/javatests/google/registry/flows/domain/DomainApplicationUpdateFlowTest.java b/javatests/google/registry/flows/domain/DomainApplicationUpdateFlowTest.java deleted file mode 100644 index 755f673b4..000000000 --- a/javatests/google/registry/flows/domain/DomainApplicationUpdateFlowTest.java +++ /dev/null @@ -1,932 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.flows.domain; - -import static com.google.common.collect.Sets.union; -import static com.google.common.io.BaseEncoding.base16; -import static com.google.common.truth.Truth.assertThat; -import static google.registry.model.EppResourceUtils.loadByForeignKey; -import static google.registry.testing.DatastoreHelper.assertNoBillingEvents; -import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.generateNewDomainRoid; -import static google.registry.testing.DatastoreHelper.loadRegistrar; -import static google.registry.testing.DatastoreHelper.newDomainApplication; -import static google.registry.testing.DatastoreHelper.persistActiveContact; -import static google.registry.testing.DatastoreHelper.persistActiveHost; -import static google.registry.testing.DatastoreHelper.persistReservedList; -import static google.registry.testing.DatastoreHelper.persistResource; -import static google.registry.testing.DomainApplicationSubject.assertAboutApplications; -import static google.registry.testing.EppExceptionSubject.assertAboutEppExceptions; -import static google.registry.testing.JUnitBackports.assertThrows; -import static google.registry.util.DateTimeUtils.START_OF_TIME; - -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; -import com.googlecode.objectify.Key; -import google.registry.flows.EppException; -import google.registry.flows.EppException.UnimplementedExtensionException; -import google.registry.flows.ResourceFlowTestCase; -import google.registry.flows.ResourceFlowUtils.AddRemoveSameValueException; -import google.registry.flows.ResourceFlowUtils.ResourceDoesNotExistException; -import google.registry.flows.ResourceFlowUtils.ResourceNotOwnedException; -import google.registry.flows.ResourceFlowUtils.StatusNotClientSettableException; -import google.registry.flows.domain.DomainApplicationUpdateFlow.ApplicationStatusProhibitsUpdateException; -import google.registry.flows.domain.DomainFlowUtils.ApplicationDomainNameMismatchException; -import google.registry.flows.domain.DomainFlowUtils.DuplicateContactForRoleException; -import google.registry.flows.domain.DomainFlowUtils.EmptySecDnsUpdateException; -import google.registry.flows.domain.DomainFlowUtils.FeesMismatchException; -import google.registry.flows.domain.DomainFlowUtils.LinkedResourcesDoNotExistException; -import google.registry.flows.domain.DomainFlowUtils.MaxSigLifeChangeNotSupportedException; -import google.registry.flows.domain.DomainFlowUtils.MissingAdminContactException; -import google.registry.flows.domain.DomainFlowUtils.MissingContactTypeException; -import google.registry.flows.domain.DomainFlowUtils.MissingTechnicalContactException; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotAllowedForDomainException; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotAllowedForTldException; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotSpecifiedForNameserverRestrictedDomainException; -import google.registry.flows.domain.DomainFlowUtils.NameserversNotSpecifiedForTldWithNameserverWhitelistException; -import google.registry.flows.domain.DomainFlowUtils.NotAuthorizedForTldException; -import google.registry.flows.domain.DomainFlowUtils.RegistrantNotAllowedException; -import google.registry.flows.domain.DomainFlowUtils.SecDnsAllUsageException; -import google.registry.flows.domain.DomainFlowUtils.TooManyDsRecordsException; -import google.registry.flows.domain.DomainFlowUtils.TooManyNameserversException; -import google.registry.flows.domain.DomainFlowUtils.UrgentAttributeNotSupportedException; -import google.registry.flows.exceptions.ResourceHasClientUpdateProhibitedException; -import google.registry.flows.exceptions.ResourceStatusProhibitsOperationException; -import google.registry.model.contact.ContactResource; -import google.registry.model.domain.DesignatedContact; -import google.registry.model.domain.DesignatedContact.Type; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.DomainApplication.Builder; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.model.domain.secdns.DelegationSignerData; -import google.registry.model.eppcommon.StatusValue; -import google.registry.model.host.HostResource; -import google.registry.model.registry.Registry; -import google.registry.model.registry.Registry.TldState; -import google.registry.model.reporting.HistoryEntry; -import org.junit.Before; -import org.junit.Test; - -/** Unit tests for {@link DomainApplicationUpdateFlow}. */ -public class DomainApplicationUpdateFlowTest - extends ResourceFlowTestCase { - - private static final DelegationSignerData SOME_DSDATA = - DelegationSignerData.create(1, 2, 3, new byte[] {0, 1, 2}); - - ContactResource sh8013Contact; - ContactResource mak21Contact; - ContactResource unusedContact; - - public DomainApplicationUpdateFlowTest() { - // Note that "domain_update_sunrise.xml" tests adding and removing the same contact type. - setEppInput("domain_update_sunrise.xml"); - } - - @Before - public void setUp() { - createTld("tld", TldState.SUNRUSH); - } - - private void persistReferencedEntities() { - // Grab the 1 id for use with the DomainApplication. - generateNewDomainRoid("tld"); - for (int i = 1; i <= 14; ++i) { - persistActiveHost(String.format("ns%d.example.tld", i)); - } - sh8013Contact = persistActiveContact("sh8013"); - mak21Contact = persistActiveContact("mak21"); - unusedContact = persistActiveContact("unused"); - } - - private DomainApplication persistApplication() { - HostResource host = - loadByForeignKey(HostResource.class, "ns1.example.tld", clock.nowUtc()).get(); - return persistResource( - newApplicationBuilder() - .setContacts( - ImmutableSet.of( - DesignatedContact.create(Type.TECH, Key.create(sh8013Contact)), - DesignatedContact.create(Type.ADMIN, Key.create(unusedContact)))) - .setNameservers(ImmutableSet.of(Key.create(host))) - .build()); - } - - private Builder newApplicationBuilder() { - return newDomainApplication("example.tld").asBuilder().setRepoId("1-TLD"); - } - - private DomainApplication persistNewApplication() { - return persistResource(newApplicationBuilder().build()); - } - - private void doSuccessfulTest() throws Exception { - assertTransactionalFlow(true); - clock.advanceOneMilli(); - runFlowAssertResponse(loadFile("generic_success_response.xml")); - // Check that the application was updated. These values came from the xml. - DomainApplication application = reloadDomainApplication(); - assertAboutApplications() - .that(application) - .hasStatusValue(StatusValue.CLIENT_HOLD) - .and() - .hasOnlyOneHistoryEntryWhich() - .hasType(HistoryEntry.Type.DOMAIN_APPLICATION_UPDATE); - assertThat(application.getAuthInfo().getPw().getValue()).isEqualTo("2BARfoo"); - // Check that the hosts and contacts have correct linked status - assertNoBillingEvents(); - } - - @Test - public void testDryRun() throws Exception { - persistReferencedEntities(); - persistApplication(); - dryRunFlowAssertResponse(loadFile("generic_success_response.xml")); - } - - @Test - public void testSuccess() throws Exception { - persistReferencedEntities(); - persistApplication(); - doSuccessfulTest(); - } - - @Test - public void testSuccess_maxNumberOfNameservers() throws Exception { - persistReferencedEntities(); - persistApplication(); - modifyApplicationToHave13Nameservers(); - doSuccessfulTest(); - } - - @Test - public void testSuccess_removeContact() throws Exception { - setEppInput("domain_update_sunrise_remove_contact.xml"); - persistReferencedEntities(); - persistApplication(); - doSuccessfulTest(); - } - - @Test - public void testSuccess_registrantMovedToTechContact() throws Exception { - setEppInput("domain_update_sunrise_registrant_to_tech.xml"); - persistReferencedEntities(); - ContactResource sh8013 = - loadByForeignKey(ContactResource.class, "sh8013", clock.nowUtc()).get(); - persistResource(newApplicationBuilder().setRegistrant(Key.create(sh8013)).build()); - clock.advanceOneMilli(); - runFlowAssertResponse(loadFile("generic_success_response.xml")); - } - - @Test - public void testSuccess_multipleReferencesToSameContactRemoved() throws Exception { - setEppInput("domain_update_sunrise_remove_multiple_contacts.xml"); - persistReferencedEntities(); - ContactResource sh8013 = - loadByForeignKey(ContactResource.class, "sh8013", clock.nowUtc()).get(); - Key sh8013Key = Key.create(sh8013); - persistResource( - newApplicationBuilder() - .setRegistrant(sh8013Key) - .setContacts( - ImmutableSet.of( - DesignatedContact.create(Type.ADMIN, sh8013Key), - DesignatedContact.create(Type.BILLING, sh8013Key), - DesignatedContact.create(Type.TECH, sh8013Key))) - .build()); - clock.advanceOneMilli(); - runFlowAssertResponse(loadFile("generic_success_response.xml")); - } - - @Test - public void testSuccess_removeClientUpdateProhibited() throws Exception { - persistReferencedEntities(); - persistResource( - persistApplication() - .asBuilder() - .setStatusValues(ImmutableSet.of(StatusValue.CLIENT_UPDATE_PROHIBITED)) - .build()); - clock.advanceOneMilli(); - runFlow(); - assertAboutApplications() - .that(reloadDomainApplication()) - .doesNotHaveStatusValue(StatusValue.CLIENT_UPDATE_PROHIBITED); - } - - private void doSecDnsSuccessfulTest( - String xmlFilename, - ImmutableSet originalDsData, - ImmutableSet expectedDsData) - throws Exception { - setEppInput(xmlFilename); - persistResource(newApplicationBuilder().setDsData(originalDsData).build()); - assertTransactionalFlow(true); - clock.advanceOneMilli(); - runFlowAssertResponse(loadFile("generic_success_response.xml")); - assertAboutApplications() - .that(reloadDomainApplication()) - .hasExactlyDsData(expectedDsData) - .and() - .hasOnlyOneHistoryEntryWhich() - .hasType(HistoryEntry.Type.DOMAIN_APPLICATION_UPDATE); - } - - @Test - public void testSuccess_secDnsAdd() throws Exception { - doSecDnsSuccessfulTest( - "domain_update_sunrise_dsdata_add.xml", - null, - ImmutableSet.of( - DelegationSignerData.create(12346, 3, 1, base16().decode("38EC35D5B3A34B44C39B")))); - } - - @Test - public void testSuccess_secDnsAddPreservesExisting() throws Exception { - doSecDnsSuccessfulTest( - "domain_update_sunrise_dsdata_add.xml", - ImmutableSet.of(SOME_DSDATA), - ImmutableSet.of( - SOME_DSDATA, - DelegationSignerData.create(12346, 3, 1, base16().decode("38EC35D5B3A34B44C39B")))); - } - - @Test - public void testSuccess_secDnsAddToMaxRecords() throws Exception { - ImmutableSet.Builder builder = new ImmutableSet.Builder<>(); - for (int i = 0; i < 7; ++i) { - builder.add(DelegationSignerData.create(i, 2, 3, new byte[] {0, 1, 2})); - } - ImmutableSet commonDsData = builder.build(); - - doSecDnsSuccessfulTest( - "domain_update_sunrise_dsdata_add.xml", - commonDsData, - ImmutableSet.copyOf( - union( - commonDsData, - ImmutableSet.of( - DelegationSignerData.create( - 12346, 3, 1, base16().decode("38EC35D5B3A34B44C39B")))))); - } - - @Test - public void testSuccess_secDnsRemove() throws Exception { - doSecDnsSuccessfulTest( - "domain_update_sunrise_dsdata_rem.xml", - ImmutableSet.of( - SOME_DSDATA, - DelegationSignerData.create(12346, 3, 1, base16().decode("38EC35D5B3A34B44C39B"))), - ImmutableSet.of(SOME_DSDATA)); - } - - @Test - public void testSuccess_secDnsRemoveAll() throws Exception { - // As an aside, this test also validates that it's ok to set the 'urgent' attribute to false. - doSecDnsSuccessfulTest( - "domain_update_sunrise_dsdata_rem_all.xml", - ImmutableSet.of( - SOME_DSDATA, - DelegationSignerData.create(12346, 3, 1, base16().decode("38EC35D5B3A34B44C39B"))), - ImmutableSet.of()); - } - - @Test - public void testSuccess_secDnsAddRemove() throws Exception { - doSecDnsSuccessfulTest( - "domain_update_sunrise_dsdata_add_rem.xml", - ImmutableSet.of( - SOME_DSDATA, - DelegationSignerData.create(12345, 3, 1, base16().decode("38EC35D5B3A34B33C99B"))), - ImmutableSet.of( - SOME_DSDATA, - DelegationSignerData.create(12346, 3, 1, base16().decode("38EC35D5B3A34B44C39B")))); - } - - @Test - public void testSuccess_secDnsAddRemoveToMaxRecords() throws Exception { - ImmutableSet.Builder builder = new ImmutableSet.Builder<>(); - for (int i = 0; i < 7; ++i) { - builder.add(DelegationSignerData.create(i, 2, 3, new byte[] {0, 1, 2})); - } - ImmutableSet commonDsData = builder.build(); - - doSecDnsSuccessfulTest( - "domain_update_sunrise_dsdata_add_rem.xml", - ImmutableSet.copyOf( - union( - commonDsData, - ImmutableSet.of( - DelegationSignerData.create( - 12345, 3, 1, base16().decode("38EC35D5B3A34B33C99B"))))), - ImmutableSet.copyOf( - union( - commonDsData, - ImmutableSet.of( - DelegationSignerData.create( - 12346, 3, 1, base16().decode("38EC35D5B3A34B44C39B")))))); - } - - @Test - public void testSuccess_secDnsAddRemoveSame() throws Exception { - // Adding and removing the same dsData is a no-op because removes are processed first. - doSecDnsSuccessfulTest( - "domain_update_sunrise_dsdata_add_rem_same.xml", - ImmutableSet.of( - SOME_DSDATA, - DelegationSignerData.create(12345, 3, 1, base16().decode("38EC35D5B3A34B33C99B"))), - ImmutableSet.of( - SOME_DSDATA, - DelegationSignerData.create(12345, 3, 1, base16().decode("38EC35D5B3A34B33C99B")))); - } - - @Test - public void testSuccess_secDnsRemoveAlreadyNotThere() throws Exception { - // Removing a dsData that isn't there is a no-op. - doSecDnsSuccessfulTest( - "domain_update_sunrise_dsdata_rem.xml", - ImmutableSet.of(SOME_DSDATA), - ImmutableSet.of(SOME_DSDATA)); - } - - private void doSecDnsFailingTest( - Class expectedException, String xmlFilename) { - setEppInput(xmlFilename); - persistReferencedEntities(); - persistNewApplication(); - EppException thrown = assertThrows(expectedException, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_secDnsAllCannotBeFalse() { - doSecDnsFailingTest( - SecDnsAllUsageException.class, "domain_update_sunrise_dsdata_rem_all_false.xml"); - } - - @Test - public void testFailure_secDnsEmptyNotAllowed() { - doSecDnsFailingTest(EmptySecDnsUpdateException.class, "domain_update_sunrise_dsdata_empty.xml"); - } - - @Test - public void testFailure_secDnsUrgentNotSupported() { - doSecDnsFailingTest( - UrgentAttributeNotSupportedException.class, "domain_update_sunrise_dsdata_urgent.xml"); - } - - @Test - public void testFailure_secDnsChangeNotSupported() { - doSecDnsFailingTest( - MaxSigLifeChangeNotSupportedException.class, "domain_update_sunrise_maxsiglife.xml"); - } - - @Test - public void testFailure_secDnsTooManyDsRecords() { - ImmutableSet.Builder builder = new ImmutableSet.Builder<>(); - for (int i = 0; i < 8; ++i) { - builder.add(DelegationSignerData.create(i, 2, 3, new byte[] {0, 1, 2})); - } - - setEppInput("domain_update_sunrise_dsdata_add.xml"); - persistResource(newApplicationBuilder().setDsData(builder.build()).build()); - EppException thrown = assertThrows(TooManyDsRecordsException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - private void modifyApplicationToHave13Nameservers() throws Exception { - ImmutableSet.Builder> nameservers = new ImmutableSet.Builder<>(); - for (int i = 1; i < 15; i++) { - if (i != 2) { // Skip 2 since that's the one that the tests will add. - nameservers.add( - Key.create( - loadByForeignKey( - HostResource.class, String.format("ns%d.example.tld", i), clock.nowUtc()) - .get())); - } - } - persistResource( - reloadDomainApplication().asBuilder().setNameservers(nameservers.build()).build()); - } - - @Test - public void testFailure_tooManyNameservers() throws Exception { - persistReferencedEntities(); - persistApplication(); - // Modify application to have 13 nameservers. We will then remove one and add one in the test. - modifyApplicationToHave13Nameservers(); - setEppInput("domain_update_sunrise_add_nameserver.xml"); - EppException thrown = assertThrows(TooManyNameserversException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_wrongExtension() { - setEppInput("domain_update_sunrise_wrong_extension.xml"); - EppException thrown = assertThrows(UnimplementedExtensionException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_applicationDomainNameMismatch() { - persistReferencedEntities(); - persistResource(newApplicationBuilder().setFullyQualifiedDomainName("something.tld").build()); - EppException thrown = assertThrows(ApplicationDomainNameMismatchException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_neverExisted() throws Exception { - persistReferencedEntities(); - ResourceDoesNotExistException thrown = - assertThrows(ResourceDoesNotExistException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains(String.format("(%s)", getUniqueIdFromCommand())); - } - - @Test - public void testFailure_existedButWasDeleted() throws Exception { - persistReferencedEntities(); - persistResource(newApplicationBuilder().setDeletionTime(START_OF_TIME).build()); - ResourceDoesNotExistException thrown = - assertThrows(ResourceDoesNotExistException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains(String.format("(%s)", getUniqueIdFromCommand())); - } - - @Test - public void testFailure_clientUpdateProhibited() { - setEppInput("domain_update_sunrise_authinfo.xml"); - persistReferencedEntities(); - persistResource( - newApplicationBuilder() - .setStatusValues(ImmutableSet.of(StatusValue.CLIENT_UPDATE_PROHIBITED)) - .build()); - EppException thrown = - assertThrows(ResourceHasClientUpdateProhibitedException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_serverUpdateProhibited() { - persistReferencedEntities(); - persistResource( - newApplicationBuilder() - .setStatusValues(ImmutableSet.of(StatusValue.SERVER_UPDATE_PROHIBITED)) - .build()); - ResourceStatusProhibitsOperationException thrown = - assertThrows(ResourceStatusProhibitsOperationException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains("serverUpdateProhibited"); - } - - private void doIllegalApplicationStatusTest(ApplicationStatus status) { - persistReferencedEntities(); - persistResource(newApplicationBuilder().setApplicationStatus(status).build()); - EppException thrown = - assertThrows(ApplicationStatusProhibitsUpdateException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_allocatedApplicationStatus() { - doIllegalApplicationStatusTest(ApplicationStatus.ALLOCATED); - } - - @Test - public void testFailure_invalidApplicationStatus() { - doIllegalApplicationStatusTest(ApplicationStatus.INVALID); - } - - @Test - public void testFailure_rejectedApplicationStatus() { - doIllegalApplicationStatusTest(ApplicationStatus.REJECTED); - } - - @Test - public void testFailure_missingHost() { - persistActiveHost("ns1.example.tld"); - persistActiveContact("sh8013"); - persistActiveContact("mak21"); - persistNewApplication(); - LinkedResourcesDoNotExistException thrown = - assertThrows(LinkedResourcesDoNotExistException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains("(ns2.example.tld)"); - } - - @Test - public void testFailure_missingContact() { - persistActiveHost("ns1.example.tld"); - persistActiveHost("ns2.example.tld"); - persistActiveContact("mak21"); - persistNewApplication(); - LinkedResourcesDoNotExistException thrown = - assertThrows(LinkedResourcesDoNotExistException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains("(sh8013)"); - } - - @Test - public void testFailure_addingDuplicateContact() throws Exception { - persistReferencedEntities(); - persistActiveContact("foo"); - persistNewApplication(); - // Add a tech contact to the persisted entity, which should cause the flow to fail when it tries - // to add "mak21" as a second tech contact. - persistResource( - reloadDomainApplication() - .asBuilder() - .setContacts( - ImmutableSet.of( - DesignatedContact.create( - Type.TECH, - Key.create( - loadByForeignKey(ContactResource.class, "foo", clock.nowUtc()).get())))) - .build()); - EppException thrown = assertThrows(DuplicateContactForRoleException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_clientProhibitedStatusValue() { - setEppInput("domain_update_sunrise_prohibited_status.xml"); - persistReferencedEntities(); - persistNewApplication(); - EppException thrown = assertThrows(StatusNotClientSettableException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_superuserProhibitedStatusValue() throws Exception { - setEppInput("domain_update_sunrise_prohibited_status.xml"); - persistReferencedEntities(); - persistNewApplication(); - clock.advanceOneMilli(); - runFlowAssertResponse( - CommitMode.LIVE, UserPrivileges.SUPERUSER, loadFile("generic_success_response.xml")); - } - - @Test - public void testFailure_duplicateContactInCommand() { - setEppInput("domain_update_sunrise_duplicate_contact.xml"); - persistReferencedEntities(); - persistNewApplication(); - EppException thrown = assertThrows(DuplicateContactForRoleException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_missingContactType() { - setEppInput("domain_update_sunrise_missing_contact_type.xml"); - persistReferencedEntities(); - persistNewApplication(); - // We need to test for missing type, but not for invalid - the schema enforces that for us. - EppException thrown = assertThrows(MissingContactTypeException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_unauthorizedClient() { - sessionMetadata.setClientId("NewRegistrar"); - persistReferencedEntities(); - persistApplication(); - EppException thrown = assertThrows(ResourceNotOwnedException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_superuserUnauthorizedClient() throws Exception { - sessionMetadata.setClientId("NewRegistrar"); - persistReferencedEntities(); - persistApplication(); - clock.advanceOneMilli(); - runFlowAssertResponse( - CommitMode.LIVE, UserPrivileges.SUPERUSER, loadFile("generic_success_response.xml")); - } - - @Test - public void testFailure_notAuthorizedForTld() { - persistResource( - loadRegistrar("TheRegistrar").asBuilder().setAllowedTlds(ImmutableSet.of()).build()); - persistReferencedEntities(); - persistApplication(); - EppException thrown = assertThrows(NotAuthorizedForTldException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_superuserNotAuthorizedForTld() throws Exception { - persistResource( - loadRegistrar("TheRegistrar").asBuilder().setAllowedTlds(ImmutableSet.of()).build()); - persistReferencedEntities(); - persistApplication(); - clock.advanceOneMilli(); - runFlowAssertResponse( - CommitMode.LIVE, UserPrivileges.SUPERUSER, loadFile("generic_success_response.xml")); - } - - @Test - public void testFailure_sameNameserverAddedAndRemoved() { - setEppInput("domain_update_sunrise_add_remove_same_host.xml"); - persistReferencedEntities(); - persistResource( - newApplicationBuilder() - .setNameservers( - ImmutableSet.of( - Key.create( - loadByForeignKey(HostResource.class, "ns1.example.tld", clock.nowUtc()) - .get()))) - .build()); - EppException thrown = assertThrows(AddRemoveSameValueException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_sameContactAddedAndRemoved() { - setEppInput("domain_update_sunrise_add_remove_same_contact.xml"); - persistReferencedEntities(); - persistResource( - newApplicationBuilder() - .setContacts( - ImmutableSet.of( - DesignatedContact.create( - Type.TECH, - Key.create( - loadByForeignKey(ContactResource.class, "sh8013", clock.nowUtc()) - .get())))) - .build()); - EppException thrown = assertThrows(AddRemoveSameValueException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_removeAdmin() { - setEppInput("domain_update_sunrise_remove_admin.xml"); - persistReferencedEntities(); - persistResource( - newApplicationBuilder() - .setContacts( - ImmutableSet.of( - DesignatedContact.create(Type.ADMIN, Key.create(sh8013Contact)), - DesignatedContact.create(Type.TECH, Key.create(sh8013Contact)))) - .build()); - EppException thrown = assertThrows(MissingAdminContactException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_removeTech() { - setEppInput("domain_update_sunrise_remove_tech.xml"); - persistReferencedEntities(); - persistResource( - newApplicationBuilder() - .setContacts( - ImmutableSet.of( - DesignatedContact.create(Type.ADMIN, Key.create(sh8013Contact)), - DesignatedContact.create(Type.TECH, Key.create(sh8013Contact)))) - .build()); - EppException thrown = assertThrows(MissingTechnicalContactException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_newRegistrantNotWhitelisted() { - persistReferencedEntities(); - persistApplication(); - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedRegistrantContactIds(ImmutableSet.of("contact1234")) - .build()); - clock.advanceOneMilli(); - EppException thrown = assertThrows(RegistrantNotAllowedException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testFailure_newNameserverNotWhitelisted() { - persistReferencedEntities(); - persistApplication(); - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedFullyQualifiedHostNames(ImmutableSet.of("ns1.example.foo")) - .build()); - clock.advanceOneMilli(); - EppException thrown = assertThrows(NameserversNotAllowedForTldException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_nameserverAndRegistrantWhitelisted() throws Exception { - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedRegistrantContactIds(ImmutableSet.of("sh8013")) - .setAllowedFullyQualifiedHostNames(ImmutableSet.of("ns2.example.tld")) - .build()); - persistReferencedEntities(); - persistApplication(); - doSuccessfulTest(); - } - - @Test - public void testFailure_tldWithNameserverWhitelist_removeLastNameserver() { - setEppInput("domain_update_sunrise_remove_nameserver.xml"); - persistReferencedEntities(); - persistApplication(); - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedFullyQualifiedHostNames( - ImmutableSet.of("ns1.example.tld", "ns2.example.tld")) - .build()); - clock.advanceOneMilli(); - EppException thrown = - assertThrows( - NameserversNotSpecifiedForTldWithNameserverWhitelistException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_tldWithNameserverWhitelist_removeNameserver() throws Exception { - setEppInput("domain_update_sunrise_remove_nameserver.xml"); - persistReferencedEntities(); - persistApplication(); - persistResource( - reloadDomainApplication() - .asBuilder() - .addNameserver( - Key.create( - loadByForeignKey(HostResource.class, "ns2.example.tld", clock.nowUtc()).get())) - .build()); - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedFullyQualifiedHostNames( - ImmutableSet.of("ns1.example.tld", "ns2.example.tld")) - .build()); - clock.advanceOneMilli(); - doSuccessfulTest(); - } - - @Test - public void testSuccess_domainNameserverRestricted_addedNameserverAllowed() throws Exception { - persistReferencedEntities(); - persistApplication(); - persistResource( - Registry.get("tld") - .asBuilder() - .setReservedLists( - persistReservedList( - "reserved", "example,NAMESERVER_RESTRICTED,ns1.example.tld:ns2.example.tld")) - .build()); - clock.advanceOneMilli(); - doSuccessfulTest(); - } - - @Test - public void testFailure_domainNameserverRestricted_addedNameserverDisallowed() { - persistReferencedEntities(); - persistApplication(); - persistResource( - Registry.get("tld") - .asBuilder() - .setReservedLists( - persistReservedList( - "reserved", "example,NAMESERVER_RESTRICTED,ns1.example.tld:ns3.example.tld")) - .build()); - clock.advanceOneMilli(); - NameserversNotAllowedForDomainException thrown = - assertThrows(NameserversNotAllowedForDomainException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains("ns2.example.tld"); - } - - @Test - public void testFailure_domainNameserverRestricted_removeLastNameserver() { - setEppInput("domain_update_sunrise_remove_nameserver.xml"); - persistReferencedEntities(); - persistApplication(); - persistResource( - Registry.get("tld") - .asBuilder() - .setReservedLists( - persistReservedList( - "reserved", "example,NAMESERVER_RESTRICTED,ns1.example.tld:ns2.example.tld")) - .build()); - clock.advanceOneMilli(); - EppException thrown = - assertThrows( - NameserversNotSpecifiedForNameserverRestrictedDomainException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testSuccess_domainNameserverRestricted_removeNameservers() throws Exception { - setEppInput("domain_update_sunrise_remove_nameserver.xml"); - persistReferencedEntities(); - persistApplication(); - persistResource( - reloadDomainApplication() - .asBuilder() - .addNameserver( - Key.create( - loadByForeignKey(HostResource.class, "ns2.example.tld", clock.nowUtc()).get())) - .build()); - persistResource( - Registry.get("tld") - .asBuilder() - .setReservedLists( - persistReservedList( - "reserved", "example,NAMESERVER_RESTRICTED,ns1.example.tld:ns2.example.tld")) - .build()); - clock.advanceOneMilli(); - doSuccessfulTest(); - } - - @Test - public void testSuccess_addedNameserversAllowedInTldAndDomainNameserversWhitelists() - throws Exception { - persistReferencedEntities(); - persistApplication(); - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedFullyQualifiedHostNames( - ImmutableSet.of("ns1.example.tld", "ns2.example.tld")) - .setReservedLists( - persistReservedList( - "reserved", "example,NAMESERVER_RESTRICTED,ns1.example.tld:ns2.example.tld")) - .build()); - clock.advanceOneMilli(); - doSuccessfulTest(); - } - - @Test - public void testFailure_addedNameserversAllowedInTld_disallowedInDomainNameserversWhitelists() { - persistReferencedEntities(); - persistApplication(); - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedFullyQualifiedHostNames( - ImmutableSet.of("ns1.example.tld", "ns2.example.tld")) - .setReservedLists( - persistReservedList( - "reserved", "example,NAMESERVER_RESTRICTED,ns1.example.tld:ns3.example.tld")) - .build()); - clock.advanceOneMilli(); - NameserversNotAllowedForDomainException thrown = - assertThrows(NameserversNotAllowedForDomainException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains("ns2.example.tld"); - } - - @Test - public void testFailure_addedNameserversDisallowedInTld_AllowedInDomainNameserversWhitelists() { - persistReferencedEntities(); - persistApplication(); - persistResource( - Registry.get("tld") - .asBuilder() - .setAllowedFullyQualifiedHostNames( - ImmutableSet.of("ns1.example.tld", "ns3.example.tld")) - .setReservedLists( - persistReservedList( - "reserved", "example,NAMESERVER_RESTRICTED,ns1.example.tld:ns2.example.tld")) - .build()); - clock.advanceOneMilli(); - NameserversNotAllowedForTldException thrown = - assertThrows(NameserversNotAllowedForTldException.class, this::runFlow); - assertThat(thrown).hasMessageThat().contains("ns2.example.tld"); - } - - @Test - public void testFailure_customPricingLogic_feeMismatch() { - persistReferencedEntities(); - persistResource( - newDomainApplication("non-free-update.tld").asBuilder().setRepoId("1-ROID").build()); - setEppInput( - "domain_update_sunrise_fee.xml", - ImmutableMap.of("DOMAIN", "non-free-update.tld", "AMOUNT", "12.00")); - clock.advanceOneMilli(); - EppException thrown = assertThrows(FeesMismatchException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - - @Test - public void testIcannActivityReportField_getsLogged() throws Exception { - persistReferencedEntities(); - persistApplication(); - clock.advanceOneMilli(); - runFlow(); - assertIcannReportingActivityFieldLogged("srs-dom-update"); - assertTldsFieldLogged("tld"); - } -} diff --git a/javatests/google/registry/flows/domain/DomainCheckFlowTest.java b/javatests/google/registry/flows/domain/DomainCheckFlowTest.java index 1246c373e..5248a5a23 100644 --- a/javatests/google/registry/flows/domain/DomainCheckFlowTest.java +++ b/javatests/google/registry/flows/domain/DomainCheckFlowTest.java @@ -15,10 +15,10 @@ package google.registry.flows.domain; import static google.registry.model.eppoutput.CheckData.DomainCheck.create; +import static google.registry.model.registry.Registry.TldState.START_DATE_SUNRISE; import static google.registry.testing.DatastoreHelper.createTld; import static google.registry.testing.DatastoreHelper.createTlds; import static google.registry.testing.DatastoreHelper.loadRegistrar; -import static google.registry.testing.DatastoreHelper.newDomainApplication; import static google.registry.testing.DatastoreHelper.persistActiveDomain; import static google.registry.testing.DatastoreHelper.persistDeletedDomain; import static google.registry.testing.DatastoreHelper.persistPremiumList; @@ -59,8 +59,6 @@ import google.registry.flows.domain.DomainFlowUtils.TransfersAreAlwaysForOneYear import google.registry.flows.domain.DomainFlowUtils.UnknownFeeCommandException; import google.registry.flows.exceptions.TooManyResourceChecksException; import google.registry.model.domain.DomainResource; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.model.domain.launch.LaunchPhase; import google.registry.model.domain.token.AllocationToken; import google.registry.model.registry.Registry; import google.registry.model.registry.Registry.TldState; @@ -261,84 +259,6 @@ public class DomainCheckFlowTest runFlow(); } - @Test - public void testSuccess_pendingSunriseApplicationInGeneralAvailability() throws Exception { - createTld("tld", TldState.GENERAL_AVAILABILITY); - persistResource(newDomainApplication("example2.tld").asBuilder().build()); - doCheckTest( - create(true, "example1.tld", null), - create(false, "example2.tld", "Pending allocation"), - create(true, "example3.tld", null)); - } - - @Test - public void testSuccess_pendingLandrushApplicationInGeneralAvailability() throws Exception { - createTld("tld", TldState.GENERAL_AVAILABILITY); - persistResource( - newDomainApplication("example2.tld").asBuilder().setPhase(LaunchPhase.LANDRUSH).build()); - doCheckTest( - create(true, "example1.tld", null), - create(false, "example2.tld", "Pending allocation"), - create(true, "example3.tld", null)); - } - - @Test - public void testSuccess_pendingSunriseApplicationInQuietPeriod() throws Exception { - createTld("tld", TldState.QUIET_PERIOD); - persistResource(newDomainApplication("example2.tld").asBuilder().build()); - doCheckTest( - create(true, "example1.tld", null), - create(false, "example2.tld", "Pending allocation"), - create(true, "example3.tld", null)); - } - - @Test - public void testSuccess_pendingLandrushApplicationInQuietPeriod() throws Exception { - createTld("tld", TldState.QUIET_PERIOD); - persistResource( - newDomainApplication("example2.tld").asBuilder().setPhase(LaunchPhase.LANDRUSH).build()); - doCheckTest( - create(true, "example1.tld", null), - create(false, "example2.tld", "Pending allocation"), - create(true, "example3.tld", null)); - } - - @Test - public void testSuccess_pendingSunriseApplicationInSunrise() throws Exception { - createTld("tld", TldState.SUNRISE); - persistResource(newDomainApplication("example2.tld").asBuilder().build()); - doCheckTest( - create(true, "example1.tld", null), - create(true, "example2.tld", null), - create(true, "example3.tld", null)); - } - - @Test - public void testSuccess_pendingLandrushApplicationInLandrush() throws Exception { - createTld("tld", TldState.LANDRUSH); - persistResource( - newDomainApplication("example2.tld").asBuilder().setPhase(LaunchPhase.LANDRUSH).build()); - doCheckTest( - create(true, "example1.tld", null), - create(true, "example2.tld", null), - create(true, "example3.tld", null)); - } - - @Test - public void testSuccess_rejectedApplication() throws Exception { - createTld("tld", TldState.LANDRUSH); - persistResource( - newDomainApplication("example2.tld") - .asBuilder() - .setPhase(LaunchPhase.LANDRUSH) - .setApplicationStatus(ApplicationStatus.REJECTED) - .build()); - doCheckTest( - create(true, "example1.tld", null), - create(true, "example2.tld", null), - create(true, "example3.tld", null)); - } - @Test public void testFailure_tooManyIds() { setEppInput("domain_check_51.xml"); @@ -693,7 +613,7 @@ public class DomainCheckFlowTest @Test public void testFeeExtension_feesNotOmittedOnReservedNamesInSunrise_v06() throws Exception { - createTld("tld", TldState.SUNRISE); + createTld("tld", START_DATE_SUNRISE); persistResource( Registry.get("tld") .asBuilder() @@ -707,7 +627,7 @@ public class DomainCheckFlowTest @Test public void testFeeExtension_feesNotOmittedOnReservedNamesInSunrise_v11_create() throws Exception { - createTld("tld", TldState.SUNRISE); + createTld("tld", START_DATE_SUNRISE); persistResource( Registry.get("tld") .asBuilder() @@ -720,7 +640,7 @@ public class DomainCheckFlowTest @Test public void testFeeExtension_feesNotOmittedOnReservedNamesInSunrise_v11_renew() throws Exception { - createTld("tld", TldState.SUNRISE); + createTld("tld", START_DATE_SUNRISE); persistResource( Registry.get("tld") .asBuilder() @@ -734,7 +654,7 @@ public class DomainCheckFlowTest @Test public void testFeeExtension_feesNotOmittedOnReservedNamesInSunrise_v11_transfer() throws Exception { - createTld("tld", TldState.SUNRISE); + createTld("tld", START_DATE_SUNRISE); persistResource( Registry.get("tld") .asBuilder() @@ -748,7 +668,7 @@ public class DomainCheckFlowTest @Test public void testFeeExtension_feesNotOmittedOnReservedNamesInSunrise_v11_restore() throws Exception { - createTld("tld", TldState.SUNRISE); + createTld("tld", START_DATE_SUNRISE); persistResource( Registry.get("tld") .asBuilder() @@ -761,7 +681,7 @@ public class DomainCheckFlowTest @Test public void testFeeExtension_feesNotOmittedOnReservedNamesInSunrise_v12() throws Exception { - createTld("tld", TldState.SUNRISE); + createTld("tld", START_DATE_SUNRISE); persistResource( Registry.get("tld") .asBuilder() diff --git a/javatests/google/registry/flows/domain/DomainClaimsCheckFlowTest.java b/javatests/google/registry/flows/domain/DomainClaimsCheckFlowTest.java index 5d5bfe7f1..3650ebfa9 100644 --- a/javatests/google/registry/flows/domain/DomainClaimsCheckFlowTest.java +++ b/javatests/google/registry/flows/domain/DomainClaimsCheckFlowTest.java @@ -26,7 +26,6 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import google.registry.flows.EppException; import google.registry.flows.ResourceFlowTestCase; -import google.registry.flows.domain.DomainClaimsCheckFlow.DomainClaimsCheckNotAllowedInSunrise; import google.registry.flows.domain.DomainClaimsCheckFlow.DomainClaimsCheckNotAllowedWithAllocationTokens; import google.registry.flows.domain.DomainFlowUtils.BadCommandForRegistryPhaseException; import google.registry.flows.domain.DomainFlowUtils.ClaimsPeriodEndedException; @@ -64,12 +63,6 @@ public class DomainClaimsCheckFlowTest doSuccessfulTest("domain_check_claims_response_none.xml"); } - @Test - public void testSuccess_sunrush() throws Exception { - createTld("tld", TldState.SUNRUSH); - doSuccessfulTest("domain_check_claims_response_none.xml"); - } - @Test public void testSuccess_quietPeriod() throws Exception { createTld("tld", TldState.QUIET_PERIOD); @@ -143,17 +136,9 @@ public class DomainClaimsCheckFlowTest assertAboutEppExceptions().that(thrown).marshalsToXml(); } - @Test - public void testFailure_sunrise() { - createTld("tld", TldState.SUNRISE); - setEppInput("domain_check_claims.xml"); - EppException thrown = assertThrows(DomainClaimsCheckNotAllowedInSunrise.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - @Test public void testFailure_allocationToken() { - createTld("tld", TldState.SUNRISE); + createTld("tld"); setEppInput("domain_check_claims_allocationtoken.xml"); EppException thrown = assertThrows(DomainClaimsCheckNotAllowedWithAllocationTokens.class, this::runFlow); diff --git a/javatests/google/registry/flows/domain/DomainCreateFlowTest.java b/javatests/google/registry/flows/domain/DomainCreateFlowTest.java index 3837cc7ee..2d8cc97cf 100644 --- a/javatests/google/registry/flows/domain/DomainCreateFlowTest.java +++ b/javatests/google/registry/flows/domain/DomainCreateFlowTest.java @@ -36,11 +36,9 @@ import static google.registry.testing.DatastoreHelper.deleteTld; import static google.registry.testing.DatastoreHelper.getHistoryEntries; import static google.registry.testing.DatastoreHelper.loadRegistrar; import static google.registry.testing.DatastoreHelper.newContactResource; -import static google.registry.testing.DatastoreHelper.newDomainApplication; import static google.registry.testing.DatastoreHelper.newHostResource; import static google.registry.testing.DatastoreHelper.persistActiveContact; import static google.registry.testing.DatastoreHelper.persistActiveDomain; -import static google.registry.testing.DatastoreHelper.persistActiveDomainApplication; import static google.registry.testing.DatastoreHelper.persistActiveHost; import static google.registry.testing.DatastoreHelper.persistDeletedDomain; import static google.registry.testing.DatastoreHelper.persistReservedList; @@ -72,7 +70,6 @@ import google.registry.flows.EppRequestSource; import google.registry.flows.ExtensionManager.UndeclaredServiceExtensionException; import google.registry.flows.ResourceFlowTestCase; import google.registry.flows.domain.DomainCreateFlow.AnchorTenantCreatePeriodException; -import google.registry.flows.domain.DomainCreateFlow.DomainHasOpenApplicationsException; import google.registry.flows.domain.DomainCreateFlow.MustHaveSignedMarksInCurrentPhaseException; import google.registry.flows.domain.DomainCreateFlow.NoGeneralRegistrationsInCurrentPhaseException; import google.registry.flows.domain.DomainCreateFlow.SignedMarksOnlyDuringSunriseException; @@ -138,7 +135,6 @@ import google.registry.model.billing.BillingEvent.Flag; import google.registry.model.billing.BillingEvent.Reason; import google.registry.model.domain.DomainResource; import google.registry.model.domain.GracePeriod; -import google.registry.model.domain.launch.ApplicationStatus; import google.registry.model.domain.launch.LaunchNotice; import google.registry.model.domain.rgp.GracePeriodStatus; import google.registry.model.domain.secdns.DelegationSignerData; @@ -1179,35 +1175,6 @@ public class DomainCreateFlowTest extends ResourceFlowTestCaseMakes sure that a sunrise registration without signed mark during end-date sunrise fails - * with the "wrong phase" error rather than the "missing signed mark" error. - */ - @Test - public void testFailure_registrationDuringEndDateSunrise_wrongPhase() { - createTld("tld", TldState.SUNRISE); - setEppInput("domain_create_registration_sunrise.xml"); - persistContactsAndHosts(); - EppException thrown = - assertThrows(NoGeneralRegistrationsInCurrentPhaseException.class, this::runFlow); - assertAboutEppExceptions().that(thrown).marshalsToXml(); - } - @Test public void testFailure_expiredClaim() { clock.setTo(DateTime.parse("2010-08-17T09:00:00.0Z")); @@ -1716,64 +1632,6 @@ public class DomainCreateFlowTest extends ResourceFlowTestCaseTODO(b/76095570):have the same exact test on end-date sunrise - using the same .xml file - - * that checks that an application was created. */ @Test public void testSuccess_startDateSunriseRegistration_withEncodedSignedMark_noType() @@ -1842,20 +1697,6 @@ public class DomainCreateFlowTest extends ResourceFlowTestCase> nameservers = new ImmutableSet.Builder<>(); for (int i = 1; i < 15; i++) { diff --git a/javatests/google/registry/flows/domain/testdata/domain_allocate.xml b/javatests/google/registry/flows/domain/testdata/domain_allocate.xml deleted file mode 100644 index e9cd898fb..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_allocate.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - %DOMAIN% - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - %APPLICATIONID% - 2010-08-16T10:00:00.0Z - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_allocate_11_years.xml b/javatests/google/registry/flows/domain/testdata/domain_allocate_11_years.xml deleted file mode 100644 index bd03747d8..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_allocate_11_years.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - example-one.tld - 11 - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - 2-TLD - 2010-08-16T10:00:00.0Z - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_allocate_13_nameservers.xml b/javatests/google/registry/flows/domain/testdata/domain_allocate_13_nameservers.xml deleted file mode 100644 index 9059411b3..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_allocate_13_nameservers.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - example-one.tld - 2 - - ns1.example.net - ns2.example.net - ns3.example.net - ns4.example.net - ns5.example.net - ns6.example.net - ns7.example.net - ns8.example.net - ns9.example.net - ns10.example.net - ns11.example.net - ns12.example.net - ns13.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - 2-TLD - 2010-08-16T10:00:00.0Z - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_allocate_bad_application_roid.xml b/javatests/google/registry/flows/domain/testdata/domain_allocate_bad_application_roid.xml deleted file mode 100644 index 2ba43744e..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_allocate_bad_application_roid.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - example-one.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - 8-TLD - 2010-08-16T10:00:00.0Z - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_allocate_claims_notice.xml b/javatests/google/registry/flows/domain/testdata/domain_allocate_claims_notice.xml deleted file mode 100644 index 0a423a7f8..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_allocate_claims_notice.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - example-one.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - 2-TLD - 2010-08-16T10:00:00.0Z - - 370d0b7c9223372036854775807 - 2011-08-16T09:00:00.0Z - 2010-07-16T09:00:00.0Z - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_allocate_collision.xml b/javatests/google/registry/flows/domain/testdata/domain_allocate_collision.xml deleted file mode 100644 index 166a56318..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_allocate_collision.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - collision-label.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - 2-TLD - 2010-08-16T10:00:00.0Z - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_allocate_dsdata.xml b/javatests/google/registry/flows/domain/testdata/domain_allocate_dsdata.xml deleted file mode 100644 index 611f04507..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_allocate_dsdata.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - example-one.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - 2-TLD - 2010-08-16T10:00:00.0Z - - - - 12345 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_allocate_dsdata_8_records.xml b/javatests/google/registry/flows/domain/testdata/domain_allocate_dsdata_8_records.xml deleted file mode 100644 index a4f9e9ef6..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_allocate_dsdata_8_records.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - example-one.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - 2-TLD - 2010-08-16T10:00:00.0Z - - - - 12345 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12346 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12347 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12348 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12349 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12350 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12351 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12352 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_allocate_idn.xml b/javatests/google/registry/flows/domain/testdata/domain_allocate_idn.xml deleted file mode 100644 index f24653af7..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_allocate_idn.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - xn--abc-873b2e7eb1k8a4lpjvv.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - 2-TLD - 2010-08-16T10:00:00.0Z - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_allocate_no_nameservers.xml b/javatests/google/registry/flows/domain/testdata/domain_allocate_no_nameservers.xml deleted file mode 100644 index c547dc9b9..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_allocate_no_nameservers.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - example-one.tld - 2 - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - 2-TLD - 2010-08-16T10:00:00.0Z - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_allocate_premium.xml b/javatests/google/registry/flows/domain/testdata/domain_allocate_premium.xml deleted file mode 100644 index 63f3798e9..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_allocate_premium.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - rich.example - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - 2-EXAMPLE - 2010-08-16T10:00:00.0Z - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_allocate_reserved.xml b/javatests/google/registry/flows/domain/testdata/domain_allocate_reserved.xml deleted file mode 100644 index db302cb07..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_allocate_reserved.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - reserved-label.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - 2-TLD - 2010-08-16T10:00:00.0Z - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_allocate_response.xml b/javatests/google/registry/flows/domain/testdata/domain_allocate_response.xml deleted file mode 100644 index bc97af7c0..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_allocate_response.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Command completed successfully - - - - example-one.tld - 2010-09-16T10:00:00.0Z - 2012-09-16T10:00:00.0Z - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_allocate_smd_id.xml b/javatests/google/registry/flows/domain/testdata/domain_allocate_smd_id.xml deleted file mode 100644 index 978585fd2..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_allocate_smd_id.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - example-one.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - 2-TLD - 2010-08-16T10:00:00.0Z - 1-1 - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush.xml deleted file mode 100644 index e89c8df2c..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - - - - - - - landrush - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_11_years.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_11_years.xml deleted file mode 100644 index 9154a5ca1..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_11_years.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - test-validate.tld - 11 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_allowedinsunrise.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_allowedinsunrise.xml deleted file mode 100644 index 54ca2b722..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_allowedinsunrise.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - test---validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_claim_notice.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_claim_notice.xml deleted file mode 100644 index baa01cf90..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_claim_notice.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - example-one.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - - 370d0b7c9223372036854775807 - 2010-08-16T09:00:00.0Z - 2009-08-16T09:00:00.0Z - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee.xml deleted file mode 100644 index a71d1349a..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - - - USD - 13.00 - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_applied.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_applied.xml deleted file mode 100644 index 3b03a06df..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_applied.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - - - USD - 13.00 - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_bad_scale.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_bad_scale.xml deleted file mode 100644 index 334eaf86a..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_bad_scale.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - - - USD - 13.000 - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_defaults.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_defaults.xml deleted file mode 100644 index a10084ef1..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_defaults.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - - - USD - 13.00 - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_grace_period.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_grace_period.xml deleted file mode 100644 index 9e557f97f..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_grace_period.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - - - USD - 13.00 - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_refundable.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_refundable.xml deleted file mode 100644 index e250f3874..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_refundable.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - - - USD - 13.00 - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_response.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_response.xml deleted file mode 100644 index a20b73bc1..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_fee_response.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - Command completed successfully - - - - test-validate.tld - 2013-08-09T12:05:59Z - - - - - landrush - 1-TLD - - <%FEE_NS%:creData xmlns:%FEE_NS%="urn:ietf:params:xml:ns:fee-%FEE_VERSION%"> - <%FEE_NS%:currency>USD - <%FEE_NS%:fee description="create">13.00 - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_months.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_months.xml deleted file mode 100644 index a4926fcea..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_months.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - test-validate.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_premium.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_premium.xml deleted file mode 100644 index 70e6e507e..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_premium.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - rich.example - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_premium_response.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_premium_response.xml deleted file mode 100644 index ce4d10b65..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_premium_response.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - Command completed successfully - - - - rich.example - 2013-08-09T12:05:59Z - - - - - sunrise - 1-EXAMPLE - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_response.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_response.xml deleted file mode 100644 index 0cfa60e2f..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_response.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - Command completed successfully - - - - test-validate.tld - 2013-08-09T12:05:59Z - - - - - landrush - 1-TLD - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_response_claims.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_response_claims.xml deleted file mode 100644 index 5ff9a3ac7..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_response_claims.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - Command completed successfully - - - - example-one.tld - 2013-08-09T12:05:59Z - - - - - landrush - 1-TLD - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_signed_mark.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_signed_mark.xml deleted file mode 100644 index d6609e40f..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_signed_mark.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_two_years.xml b/javatests/google/registry/flows/domain/testdata/domain_create_landrush_two_years.xml deleted file mode 100644 index 1ea1f97e0..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_landrush_two_years.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - test-validate.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_registration_landrush.xml b/javatests/google/registry/flows/domain/testdata/domain_create_registration_landrush.xml deleted file mode 100644 index e215ebb70..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_registration_landrush.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - example.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_landrush.xml b/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_landrush.xml deleted file mode 100644 index 643d29561..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_landrush.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - example.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - - - true - true - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_landrush_claims_notice.xml b/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_landrush_claims_notice.xml deleted file mode 100644 index b178db2b8..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_landrush_claims_notice.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - example-one.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - - 370d0b7c9223372036854775807 - 2010-08-16T09:00:00.0Z - 2009-08-16T09:00:00.0Z - - - - true - true - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_landrush_encoded_signed_mark.xml b/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_landrush_encoded_signed_mark.xml deleted file mode 100644 index bcb924be7..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_landrush_encoded_signed_mark.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - test-validate.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - true - true - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrise.xml b/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrise.xml deleted file mode 100644 index 0da72e6c3..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrise.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - example.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - - true - true - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrise_claims_notice.xml b/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrise_claims_notice.xml deleted file mode 100644 index 0f4e554c9..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrise_claims_notice.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - example-one.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - 370d0b7c9223372036854775807 - 2010-08-16T09:00:00.0Z - 2009-08-16T09:00:00.0Z - - - - true - true - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrise_encoded_signed_mark.xml b/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrise_encoded_signed_mark.xml deleted file mode 100644 index 752401374..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrise_encoded_signed_mark.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - test-validate.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - true - true - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrush.xml b/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrush.xml deleted file mode 100644 index f8e01ee07..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrush.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - example.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - - true - true - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrush_claims_notice.xml b/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrush_claims_notice.xml deleted file mode 100644 index e6395e8d6..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrush_claims_notice.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - example-one.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - 370d0b7c9223372036854775807 - 2010-08-16T09:00:00.0Z - 2009-08-16T09:00:00.0Z - - - - true - true - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrush_encoded_signed_mark.xml b/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrush_encoded_signed_mark.xml deleted file mode 100644 index 8d6b083d6..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_registration_qlp_sunrush_encoded_signed_mark.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - test-validate.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - true - true - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_registration_sunrush.xml b/javatests/google/registry/flows/domain/testdata/domain_create_registration_sunrush.xml deleted file mode 100644 index 47b2fdf08..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_registration_sunrush.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - example.tld - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_bad_encoded_xml.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_bad_encoded_xml.xml deleted file mode 100644 index 4db390d9c..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_bad_encoded_xml.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -VGhpcyBpcyBpbnZhbGlkIFhNTA== - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_bad_encoding.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_bad_encoding.xml deleted file mode 100644 index 98fd83dcc..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_bad_encoding.xml +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -*D94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht -bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFj -NTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3 -NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1 -MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxz -bWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVy -bD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAw -MDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEz -LTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3 -LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1h -cms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAg -ICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgog -ICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgog -ICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+ -QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8 -bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxt -YXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6 -c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNj -PlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgog -ICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkg -SG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFy -azpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJy -aWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9t -YXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJr -OnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAg -ICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2 -b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAg -PG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9t -YXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJl -bD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8 -bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJl -bD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZh -bGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFy -azpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAg -ICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6 -Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2Vydmlj -ZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJv -RGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6 -Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFt -ZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpk -cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4 -LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0 -aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMx -NG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIw -MDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFj -NTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFu -c2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxv -cGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9y -Zy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhv -ZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxk -czpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZ -PTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5 -MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJh -bnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4j -Ii8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3 -LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdi -aUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6 -UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRl -NC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlh -N2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92 -ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURk -NkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVV -dEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVj -aGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNv -MEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+ -PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxk -czpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2 -b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJR -QXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21G -MGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFV -RUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBF -d0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFV -RUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3 -RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05W -QkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1Fn -Vm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEK -eGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxr -Uk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1 -OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNk -OFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZ -ejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RL -dXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05Q -SlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9G -cFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVX -QVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hN -elNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdG -dVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhK -cGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAy -Rm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dH -STJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVk -SUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05o -Ym00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJB -SWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZO -OWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2Mr -S0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4 -OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlB -QlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0Qz -TVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktX -MlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9k -czpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_code_with_mark.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_code_with_mark.xml deleted file mode 100644 index 363523c29..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_code_with_mark.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - exampleone.tld - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - 49FD46E6C4B45C55D4AC - - - 1234-2 - Example One - - Example Inc. - - 123 Example Dr. - Suite 100 - Reston - VA - 20190 - US - - - US - 35 - 36 - example-one - exampleone - Dirigendas et eiusmodi - featuring infringo in airfare et cartam servicia. - - 234235 - 2009-08-16T09:00:00.0Z - 2015-08-16T09:00:00.0Z - - - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_duplicate_contact.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_duplicate_contact.xml deleted file mode 100644 index ec73d5bdc..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_duplicate_contact.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - jd1234 - sh8013 - - 2fooBAR - - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_empty_encoded_signed_mark.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_empty_encoded_signed_mark.xml deleted file mode 100644 index 9003ed946..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_empty_encoded_signed_mark.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_encoded_signed_mark_no_hosts.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_encoded_signed_mark_no_hosts.xml deleted file mode 100644 index e7be100d3..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_encoded_signed_mark_no_hosts.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - test-validate.tld - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_encoded_signed_mark_response.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_encoded_signed_mark_response.xml deleted file mode 100644 index 17ce2413e..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_encoded_signed_mark_response.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - Command completed successfully - - - - test-validate.tld - 2013-08-09T12:05:59Z - - - - - sunrise - 1-TLD - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_encoded_signed_mark_with_whitespace.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_encoded_signed_mark_with_whitespace.xml deleted file mode 100644 index d4da6621f..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_encoded_signed_mark_with_whitespace.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5z -OnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05 -OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEz -Ni02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNt -ZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZh -aWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1w -bGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9z -bWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3Nt -ZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpu -b3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFy -ay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzcz -NDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlk -YXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4K -ICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFk -ZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4K -ICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+ -Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxt -YXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVy -PgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkg -SG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpv -cmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBB -dmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+ -CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9t -YXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+ -CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFy -azpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2Nv -cnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJr -OmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0t -LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9t -YXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAg -ICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJl -bD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRl -PC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJl -bD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdv -b2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAg -PG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAg -PG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0 -TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpk -cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRi -MGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0 -aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRz -OlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNp -Zy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTct -YjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJo -dHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpU -cmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMi -Lz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMu -b3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0 -eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+ -PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48 -ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAw -MS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3Jp -dGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFs -dWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZh -bHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82 -OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3 -cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92 -ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZ -T0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0v -ZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jw -c2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdW -N2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9 -Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUw -OUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hK -bTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBE -QTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9Z -VzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNa -V0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkx -TWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVO -aGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJH -VnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmta -VzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFN -SUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JN -a05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVs -N2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBp -RlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZ -ejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJz -a0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlE -QVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9O -RFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNE -RU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1Ey -OXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdM -UVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JE -UVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFI -L0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNK -bgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJR -VUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dE -UVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2Fs -QjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJo -aHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJq -aWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdF -Mk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2 -bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhI -dFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+ -PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_hex_encoding.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_hex_encoding.xml deleted file mode 100644 index 095b015aa..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_hex_encoding.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - abcdef01234567890 - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_missing_contact_type.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_missing_contact_type.xml deleted file mode 100644 index 9f32aa1e9..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_missing_contact_type.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_no_matching_marks.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_no_matching_marks.xml deleted file mode 100644 index 6021f5887..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_no_matching_marks.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - foo-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark.xml deleted file mode 100644 index 7f165c213..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark.xml +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - exampleone.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - 1-2 - - Example Inc. - support@example.tld - http://www.example.tld - +1.7035555555 - - 2009-08-16T09:00:00.0Z - 2010-08-16T09:00:00.0Z - - - 1234-2 - Example One - - Example Inc. - - 123 Example Dr. - Suite 100 - Reston - VA - 20190 - US - - - US - 35 - 36 - example-one - exampleone - Dirigendas et eiusmodi featuring infringo in airfare et cartam servicia. - 234235 - 2009-08-16T09:00:00.0Z - 2015-08-16T09:00:00.0Z - - - - - - - - - - - - - miF4M2aTd1Y3tKOzJtiyl2VpzAnVPnV1Hq7Zax+yzrA= - - - - - MELpHTWEVfG1JcsG1/a//o54OnlJ5A864+X5JwfqgGBBeZSzGHNzwzTKFzIyyyfn - lGxVwNMoBV5aSvkF7oEKMNVzfcl/P0czNQZ/LJ83p3Ol27/iUNsqgCaGf9Zupw+M - XT4Q2lOrIw+qSx5g7q9T83siMLvkD5uEYlU5dPqgsObLTW8/doTQrA14RcxgY4kG - a4+t5B1cT+5VaghTOPb8uUSEDKjnOsGdy8p24wgyK9n8h0CTSS2ZQ6Zq/RmQeT7D - sbceUHheQ+mkQWIljpMQqsiBjw5XXh4jkEgfAzrb6gkYEF+X8ReuPZuOYC4QjIET - yx8ifN4KE3GIbMXeF4LDsA== - - - - - - o/cwvXhbVYl0RDWWvoyeZpETVZVVcMCovUVNg/swWinuMgEWgVQFrz0xA04pEhXC - FVv4evbUpekJ5buqU1gmQyOsCKQlhOHTdPjvkC5upDqa51Flk0TMaMkIQjs7aUKC - mA4RG4tTTGK/EjR1ix8/D0gHYVRldy1YPrMP+ou75bOVnIos+HifrAtrIv4qEqwL - L4FTZAUpaCa2BmgXfy2CSRQbxD5Or1gcSa3vurh5sPMCNxqaXmIXmQipS+DuEBqM - M8tldaN7RYojUEKrGVsNk5i9y2/7sjn1zyyUPf7vL4GgDYqhJYWV61DnXgx/Jd6C - WxvsnDF6scscQzUTEl+hyw== - - - AQAB - - - - - - MIIESTCCAzGgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBiMQswCQYDVQQGEwJVUzEL - MAkGA1UECBMCQ0ExFDASBgNVBAcTC0xvcyBBbmdlbGVzMRMwEQYDVQQKEwpJQ0FO - TiBUTUNIMRswGQYDVQQDExJJQ0FOTiBUTUNIIFRFU1QgQ0EwHhcNMTMwMjA4MDAw - MDAwWhcNMTgwMjA3MjM1OTU5WjBsMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0Ex - FDASBgNVBAcTC0xvcyBBbmdlbGVzMRcwFQYDVQQKEw5WYWxpZGF0b3IgVE1DSDEh - MB8GA1UEAxMYVmFsaWRhdG9yIFRNQ0ggVEVTVCBDRVJUMIIBIjANBgkqhkiG9w0B - AQEFAAOCAQ8AMIIBCgKCAQEAo/cwvXhbVYl0RDWWvoyeZpETVZVVcMCovUVNg/sw - WinuMgEWgVQFrz0xA04pEhXCFVv4evbUpekJ5buqU1gmQyOsCKQlhOHTdPjvkC5u - pDqa51Flk0TMaMkIQjs7aUKCmA4RG4tTTGK/EjR1ix8/D0gHYVRldy1YPrMP+ou7 - 5bOVnIos+HifrAtrIv4qEqwLL4FTZAUpaCa2BmgXfy2CSRQbxD5Or1gcSa3vurh5 - sPMCNxqaXmIXmQipS+DuEBqMM8tldaN7RYojUEKrGVsNk5i9y2/7sjn1zyyUPf7v - L4GgDYqhJYWV61DnXgx/Jd6CWxvsnDF6scscQzUTEl+hywIDAQABo4H/MIH8MAwG - A1UdEwEB/wQCMAAwHQYDVR0OBBYEFPZEcIQcD/Bj2IFz/LERuo2ADJviMIGMBgNV - HSMEgYQwgYGAFO0/7kEh3FuEKS+Q/kYHaD/W6wihoWakZDBiMQswCQYDVQQGEwJV - UzELMAkGA1UECBMCQ0ExFDASBgNVBAcTC0xvcyBBbmdlbGVzMRMwEQYDVQQKEwpJ - Q0FOTiBUTUNIMRswGQYDVQQDExJJQ0FOTiBUTUNIIFRFU1QgQ0GCAQEwDgYDVR0P - AQH/BAQDAgeAMC4GA1UdHwQnMCUwI6AhoB+GHWh0dHA6Ly9jcmwuaWNhbm4ub3Jn - L3RtY2guY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQB2qSy7ui+43cebKUKwWPrzz9y/ - IkrMeJGKjo40n+9uekaw3DJ5EqiOf/qZ4pjBD++oR6BJCb6NQuQKwnoAz5lE4Ssu - y5+i93oT3HfyVc4gNMIoHm1PS19l7DBKrbwbzAea/0jKWVzrvmV7TBfjxD3AQo1R - bU5dBr6IjbdLFlnO5x0G0mrG7x5OUPuurihyiURpFDpwH8KAH1wMcCpXGXFRtGKk - wydgyVYAty7otkl/z3bZkCVT34gPvF70sR6+QxUy8u0LzF5A/beYaZpxSYG31amL - AdXitTWFipaIGea9lEGFM0L9+Bg7XzNn4nVLXokyEB3bgS4scG6QznX23FGk - - - - - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_and_notice.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_and_notice.xml deleted file mode 100644 index 669683362..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_and_notice.xml +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - exampleone.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - 1-2 - - Example Inc. - support@example.tld - http://www.example.tld - +1.7035555555 - - 2009-08-16T09:00:00.0Z - 2010-08-16T09:00:00.0Z - - - 1234-2 - Example One - - Example Inc. - - 123 Example Dr. - Suite 100 - Reston - VA - 20190 - US - - - US - 35 - 36 - example-one - exampleone - Dirigendas et eiusmodi featuring infringo in airfare et cartam servicia. - 234235 - 2009-08-16T09:00:00.0Z - 2015-08-16T09:00:00.0Z - - - - - - - - - - - - - miF4M2aTd1Y3tKOzJtiyl2VpzAnVPnV1Hq7Zax+yzrA= - - - - - MELpHTWEVfG1JcsG1/a//o54OnlJ5A864+X5JwfqgGBBeZSzGHNzwzTKFzIyyyfn - lGxVwNMoBV5aSvkF7oEKMNVzfcl/P0czNQZ/LJ83p3Ol27/iUNsqgCaGf9Zupw+M - XT4Q2lOrIw+qSx5g7q9T83siMLvkD5uEYlU5dPqgsObLTW8/doTQrA14RcxgY4kG - a4+t5B1cT+5VaghTOPb8uUSEDKjnOsGdy8p24wgyK9n8h0CTSS2ZQ6Zq/RmQeT7D - sbceUHheQ+mkQWIljpMQqsiBjw5XXh4jkEgfAzrb6gkYEF+X8ReuPZuOYC4QjIET - yx8ifN4KE3GIbMXeF4LDsA== - - - - - - o/cwvXhbVYl0RDWWvoyeZpETVZVVcMCovUVNg/swWinuMgEWgVQFrz0xA04pEhXC - FVv4evbUpekJ5buqU1gmQyOsCKQlhOHTdPjvkC5upDqa51Flk0TMaMkIQjs7aUKC - mA4RG4tTTGK/EjR1ix8/D0gHYVRldy1YPrMP+ou75bOVnIos+HifrAtrIv4qEqwL - L4FTZAUpaCa2BmgXfy2CSRQbxD5Or1gcSa3vurh5sPMCNxqaXmIXmQipS+DuEBqM - M8tldaN7RYojUEKrGVsNk5i9y2/7sjn1zyyUPf7vL4GgDYqhJYWV61DnXgx/Jd6C - WxvsnDF6scscQzUTEl+hyw== - - - AQAB - - - - - - MIIESTCCAzGgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBiMQswCQYDVQQGEwJVUzEL - MAkGA1UECBMCQ0ExFDASBgNVBAcTC0xvcyBBbmdlbGVzMRMwEQYDVQQKEwpJQ0FO - TiBUTUNIMRswGQYDVQQDExJJQ0FOTiBUTUNIIFRFU1QgQ0EwHhcNMTMwMjA4MDAw - MDAwWhcNMTgwMjA3MjM1OTU5WjBsMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0Ex - FDASBgNVBAcTC0xvcyBBbmdlbGVzMRcwFQYDVQQKEw5WYWxpZGF0b3IgVE1DSDEh - MB8GA1UEAxMYVmFsaWRhdG9yIFRNQ0ggVEVTVCBDRVJUMIIBIjANBgkqhkiG9w0B - AQEFAAOCAQ8AMIIBCgKCAQEAo/cwvXhbVYl0RDWWvoyeZpETVZVVcMCovUVNg/sw - WinuMgEWgVQFrz0xA04pEhXCFVv4evbUpekJ5buqU1gmQyOsCKQlhOHTdPjvkC5u - pDqa51Flk0TMaMkIQjs7aUKCmA4RG4tTTGK/EjR1ix8/D0gHYVRldy1YPrMP+ou7 - 5bOVnIos+HifrAtrIv4qEqwLL4FTZAUpaCa2BmgXfy2CSRQbxD5Or1gcSa3vurh5 - sPMCNxqaXmIXmQipS+DuEBqMM8tldaN7RYojUEKrGVsNk5i9y2/7sjn1zyyUPf7v - L4GgDYqhJYWV61DnXgx/Jd6CWxvsnDF6scscQzUTEl+hywIDAQABo4H/MIH8MAwG - A1UdEwEB/wQCMAAwHQYDVR0OBBYEFPZEcIQcD/Bj2IFz/LERuo2ADJviMIGMBgNV - HSMEgYQwgYGAFO0/7kEh3FuEKS+Q/kYHaD/W6wihoWakZDBiMQswCQYDVQQGEwJV - UzELMAkGA1UECBMCQ0ExFDASBgNVBAcTC0xvcyBBbmdlbGVzMRMwEQYDVQQKEwpJ - Q0FOTiBUTUNIMRswGQYDVQQDExJJQ0FOTiBUTUNIIFRFU1QgQ0GCAQEwDgYDVR0P - AQH/BAQDAgeAMC4GA1UdHwQnMCUwI6AhoB+GHWh0dHA6Ly9jcmwuaWNhbm4ub3Jn - L3RtY2guY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQB2qSy7ui+43cebKUKwWPrzz9y/ - IkrMeJGKjo40n+9uekaw3DJ5EqiOf/qZ4pjBD++oR6BJCb6NQuQKwnoAz5lE4Ssu - y5+i93oT3HfyVc4gNMIoHm1PS19l7DBKrbwbzAea/0jKWVzrvmV7TBfjxD3AQo1R - bU5dBr6IjbdLFlnO5x0G0mrG7x5OUPuurihyiURpFDpwH8KAH1wMcCpXGXFRtGKk - wydgyVYAty7otkl/z3bZkCVT34gPvF70sR6+QxUy8u0LzF5A/beYaZpxSYG31amL - AdXitTWFipaIGea9lEGFM0L9+Bg7XzNn4nVLXokyEB3bgS4scG6QznX23FGk - - - - - - - 49FD46E6C4B45C55D4AC - 2012-06-19T10:00:10.0Z - 2012-06-19T09:01:30.0Z - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_reserved.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_reserved.xml deleted file mode 100644 index 1f19951ee..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_reserved.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - testandvalidate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_reserved_response.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_reserved_response.xml deleted file mode 100644 index 38300310f..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_reserved_response.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - Command completed successfully - - - - testandvalidate.tld - 1999-04-03T22:00:00.0Z - - - - - sunrise - 1-TLD - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_uppercase.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_uppercase.xml deleted file mode 100644 index e1151e1a2..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_uppercase.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - TEST-VALIDATE.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_with_secdns.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_with_secdns.xml deleted file mode 100644 index eda46bd53..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_with_secdns.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - - 12345 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_with_secdns_8_records.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_with_secdns_8_records.xml deleted file mode 100644 index 7873e1ff9..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_with_secdns_8_records.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - - 12345 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12346 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12347 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12348 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12349 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12350 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12351 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12352 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_with_secdns_9_records.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_with_secdns_9_records.xml deleted file mode 100644 index 841af3cd0..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_signed_mark_with_secdns_9_records.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - - 12345 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12346 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12347 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12348 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12349 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12350 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12351 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12352 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - 12353 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_two_signed_marks.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_two_signed_marks.xml deleted file mode 100644 index aa31ff6b3..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_two_signed_marks.xml +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - exampleone.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - 1-2 - - Example Inc. - support@example.tld - http://www.example.tld - +1.7035555555 - - 2009-08-16T09:00:00.0Z - 2010-08-16T09:00:00.0Z - - - 1234-2 - Example One - - Example Inc. - - 123 Example Dr. - Suite 100 - Reston - VA - 20190 - US - - - US - 35 - 36 - example-one - exampleone - Dirigendas et eiusmodi featuring infringo in airfare et cartam servicia. - 234235 - 2009-08-16T09:00:00.0Z - 2015-08-16T09:00:00.0Z - - - - - - - - - - - - - miF4M2aTd1Y3tKOzJtiyl2VpzAnVPnV1Hq7Zax+yzrA= - - - - - MELpHTWEVfG1JcsG1/a//o54OnlJ5A864+X5JwfqgGBBeZSzGHNzwzTKFzIyyyfn - lGxVwNMoBV5aSvkF7oEKMNVzfcl/P0czNQZ/LJ83p3Ol27/iUNsqgCaGf9Zupw+M - XT4Q2lOrIw+qSx5g7q9T83siMLvkD5uEYlU5dPqgsObLTW8/doTQrA14RcxgY4kG - a4+t5B1cT+5VaghTOPb8uUSEDKjnOsGdy8p24wgyK9n8h0CTSS2ZQ6Zq/RmQeT7D - sbceUHheQ+mkQWIljpMQqsiBjw5XXh4jkEgfAzrb6gkYEF+X8ReuPZuOYC4QjIET - yx8ifN4KE3GIbMXeF4LDsA== - - - - - - o/cwvXhbVYl0RDWWvoyeZpETVZVVcMCovUVNg/swWinuMgEWgVQFrz0xA04pEhXC - FVv4evbUpekJ5buqU1gmQyOsCKQlhOHTdPjvkC5upDqa51Flk0TMaMkIQjs7aUKC - mA4RG4tTTGK/EjR1ix8/D0gHYVRldy1YPrMP+ou75bOVnIos+HifrAtrIv4qEqwL - L4FTZAUpaCa2BmgXfy2CSRQbxD5Or1gcSa3vurh5sPMCNxqaXmIXmQipS+DuEBqM - M8tldaN7RYojUEKrGVsNk5i9y2/7sjn1zyyUPf7vL4GgDYqhJYWV61DnXgx/Jd6C - WxvsnDF6scscQzUTEl+hyw== - - - AQAB - - - - - - MIIESTCCAzGgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBiMQswCQYDVQQGEwJVUzEL - MAkGA1UECBMCQ0ExFDASBgNVBAcTC0xvcyBBbmdlbGVzMRMwEQYDVQQKEwpJQ0FO - TiBUTUNIMRswGQYDVQQDExJJQ0FOTiBUTUNIIFRFU1QgQ0EwHhcNMTMwMjA4MDAw - MDAwWhcNMTgwMjA3MjM1OTU5WjBsMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0Ex - FDASBgNVBAcTC0xvcyBBbmdlbGVzMRcwFQYDVQQKEw5WYWxpZGF0b3IgVE1DSDEh - MB8GA1UEAxMYVmFsaWRhdG9yIFRNQ0ggVEVTVCBDRVJUMIIBIjANBgkqhkiG9w0B - AQEFAAOCAQ8AMIIBCgKCAQEAo/cwvXhbVYl0RDWWvoyeZpETVZVVcMCovUVNg/sw - WinuMgEWgVQFrz0xA04pEhXCFVv4evbUpekJ5buqU1gmQyOsCKQlhOHTdPjvkC5u - pDqa51Flk0TMaMkIQjs7aUKCmA4RG4tTTGK/EjR1ix8/D0gHYVRldy1YPrMP+ou7 - 5bOVnIos+HifrAtrIv4qEqwLL4FTZAUpaCa2BmgXfy2CSRQbxD5Or1gcSa3vurh5 - sPMCNxqaXmIXmQipS+DuEBqMM8tldaN7RYojUEKrGVsNk5i9y2/7sjn1zyyUPf7v - L4GgDYqhJYWV61DnXgx/Jd6CWxvsnDF6scscQzUTEl+hywIDAQABo4H/MIH8MAwG - A1UdEwEB/wQCMAAwHQYDVR0OBBYEFPZEcIQcD/Bj2IFz/LERuo2ADJviMIGMBgNV - HSMEgYQwgYGAFO0/7kEh3FuEKS+Q/kYHaD/W6wihoWakZDBiMQswCQYDVQQGEwJV - UzELMAkGA1UECBMCQ0ExFDASBgNVBAcTC0xvcyBBbmdlbGVzMRMwEQYDVQQKEwpJ - Q0FOTiBUTUNIMRswGQYDVQQDExJJQ0FOTiBUTUNIIFRFU1QgQ0GCAQEwDgYDVR0P - AQH/BAQDAgeAMC4GA1UdHwQnMCUwI6AhoB+GHWh0dHA6Ly9jcmwuaWNhbm4ub3Jn - L3RtY2guY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQB2qSy7ui+43cebKUKwWPrzz9y/ - IkrMeJGKjo40n+9uekaw3DJ5EqiOf/qZ4pjBD++oR6BJCb6NQuQKwnoAz5lE4Ssu - y5+i93oT3HfyVc4gNMIoHm1PS19l7DBKrbwbzAea/0jKWVzrvmV7TBfjxD3AQo1R - bU5dBr6IjbdLFlnO5x0G0mrG7x5OUPuurihyiURpFDpwH8KAH1wMcCpXGXFRtGKk - wydgyVYAty7otkl/z3bZkCVT34gPvF70sR6+QxUy8u0LzF5A/beYaZpxSYG31amL - AdXitTWFipaIGea9lEGFM0L9+Bg7XzNn4nVLXokyEB3bgS4scG6QznX23FGk - - - - - - - 3-4 - - Example Inc. - support@example.tld - http://www.example.tld - +1.7035555555 - - 2009-08-16T09:00:00.0Z - 2010-08-16T09:00:00.0Z - - - 1234-2 - Example One - - Example Inc. - - 123 Example Dr. - Suite 100 - Reston - VA - 20190 - US - - - US - 35 - 36 - example-one - exampleone - Dirigendas et eiusmodi featuring infringo in airfare et cartam servicia. - 234235 - 2009-08-16T09:00:00.0Z - 2015-08-16T09:00:00.0Z - - - - - - - - - - - - - miF4M2aTd1Y3tKOzJtiyl2VpzAnVPnV1Hq7Zax+yzrA= - - - - - MELpHTWEVfG1JcsG1/a//o54OnlJ5A864+X5JwfqgGBBeZSzGHNzwzTKFzIyyyfn - lGxVwNMoBV5aSvkF7oEKMNVzfcl/P0czNQZ/LJ83p3Ol27/iUNsqgCaGf9Zupw+M - XT4Q2lOrIw+qSx5g7q9T83siMLvkD5uEYlU5dPqgsObLTW8/doTQrA14RcxgY4kG - a4+t5B1cT+5VaghTOPb8uUSEDKjnOsGdy8p24wgyK9n8h0CTSS2ZQ6Zq/RmQeT7D - sbceUHheQ+mkQWIljpMQqsiBjw5XXh4jkEgfAzrb6gkYEF+X8ReuPZuOYC4QjIET - yx8ifN4KE3GIbMXeF4LDsA== - - - - - - o/cwvXhbVYl0RDWWvoyeZpETVZVVcMCovUVNg/swWinuMgEWgVQFrz0xA04pEhXC - FVv4evbUpekJ5buqU1gmQyOsCKQlhOHTdPjvkC5upDqa51Flk0TMaMkIQjs7aUKC - mA4RG4tTTGK/EjR1ix8/D0gHYVRldy1YPrMP+ou75bOVnIos+HifrAtrIv4qEqwL - L4FTZAUpaCa2BmgXfy2CSRQbxD5Or1gcSa3vurh5sPMCNxqaXmIXmQipS+DuEBqM - M8tldaN7RYojUEKrGVsNk5i9y2/7sjn1zyyUPf7vL4GgDYqhJYWV61DnXgx/Jd6C - WxvsnDF6scscQzUTEl+hyw== - - - AQAB - - - - - - MIIESTCCAzGgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBiMQswCQYDVQQGEwJVUzEL - MAkGA1UECBMCQ0ExFDASBgNVBAcTC0xvcyBBbmdlbGVzMRMwEQYDVQQKEwpJQ0FO - TiBUTUNIMRswGQYDVQQDExJJQ0FOTiBUTUNIIFRFU1QgQ0EwHhcNMTMwMjA4MDAw - MDAwWhcNMTgwMjA3MjM1OTU5WjBsMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0Ex - FDASBgNVBAcTC0xvcyBBbmdlbGVzMRcwFQYDVQQKEw5WYWxpZGF0b3IgVE1DSDEh - MB8GA1UEAxMYVmFsaWRhdG9yIFRNQ0ggVEVTVCBDRVJUMIIBIjANBgkqhkiG9w0B - AQEFAAOCAQ8AMIIBCgKCAQEAo/cwvXhbVYl0RDWWvoyeZpETVZVVcMCovUVNg/sw - WinuMgEWgVQFrz0xA04pEhXCFVv4evbUpekJ5buqU1gmQyOsCKQlhOHTdPjvkC5u - pDqa51Flk0TMaMkIQjs7aUKCmA4RG4tTTGK/EjR1ix8/D0gHYVRldy1YPrMP+ou7 - 5bOVnIos+HifrAtrIv4qEqwLL4FTZAUpaCa2BmgXfy2CSRQbxD5Or1gcSa3vurh5 - sPMCNxqaXmIXmQipS+DuEBqMM8tldaN7RYojUEKrGVsNk5i9y2/7sjn1zyyUPf7v - L4GgDYqhJYWV61DnXgx/Jd6CWxvsnDF6scscQzUTEl+hywIDAQABo4H/MIH8MAwG - A1UdEwEB/wQCMAAwHQYDVR0OBBYEFPZEcIQcD/Bj2IFz/LERuo2ADJviMIGMBgNV - HSMEgYQwgYGAFO0/7kEh3FuEKS+Q/kYHaD/W6wihoWakZDBiMQswCQYDVQQGEwJV - UzELMAkGA1UECBMCQ0ExFDASBgNVBAcTC0xvcyBBbmdlbGVzMRMwEQYDVQQKEwpJ - Q0FOTiBUTUNIMRswGQYDVQQDExJJQ0FOTiBUTUNIIFRFU1QgQ0GCAQEwDgYDVR0P - AQH/BAQDAgeAMC4GA1UdHwQnMCUwI6AhoB+GHWh0dHA6Ly9jcmwuaWNhbm4ub3Jn - L3RtY2guY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQB2qSy7ui+43cebKUKwWPrzz9y/ - IkrMeJGKjo40n+9uekaw3DJ5EqiOf/qZ4pjBD++oR6BJCb6NQuQKwnoAz5lE4Ssu - y5+i93oT3HfyVc4gNMIoHm1PS19l7DBKrbwbzAea/0jKWVzrvmV7TBfjxD3AQo1R - bU5dBr6IjbdLFlnO5x0G0mrG7x5OUPuurihyiURpFDpwH8KAH1wMcCpXGXFRtGKk - wydgyVYAty7otkl/z3bZkCVT34gPvF70sR6+QxUy8u0LzF5A/beYaZpxSYG31amL - AdXitTWFipaIGea9lEGFM0L9+Bg7XzNn4nVLXokyEB3bgS4scG6QznX23FGk - - - - - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_with_secdns_maxsiglife.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_with_secdns_maxsiglife.xml deleted file mode 100644 index c467ecea9..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_with_secdns_maxsiglife.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - 604800 - - 12345 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_without_marks.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_without_marks.xml deleted file mode 100644 index e39070a0e..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_without_marks.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_wrong_extension.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_wrong_extension.xml deleted file mode 100644 index 153a3a2f5..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_wrong_extension.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - - - 12345 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush.xml deleted file mode 100644 index 5e3164b98..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_13_nameservers.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_13_nameservers.xml deleted file mode 100644 index 2c706bdbe..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_13_nameservers.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - ns3.example.net - ns4.example.net - ns5.example.net - ns6.example.net - ns7.example.net - ns8.example.net - ns9.example.net - ns10.example.net - ns11.example.net - ns12.example.net - ns13.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_14_nameservers.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_14_nameservers.xml deleted file mode 100644 index fe587073f..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_14_nameservers.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - ns3.example.net - ns4.example.net - ns5.example.net - ns6.example.net - ns7.example.net - ns8.example.net - ns9.example.net - ns10.example.net - ns11.example.net - ns12.example.net - ns13.example.net - ns14.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_allowedinsunrise.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_allowedinsunrise.xml deleted file mode 100644 index 2bcee19ed..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_allowedinsunrise.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - test---validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_allowedinsunrise_response.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_allowedinsunrise_response.xml deleted file mode 100644 index 51c377a10..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_allowedinsunrise_response.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - Command completed successfully - - - - test---validate.tld - 2013-08-09T12:05:59Z - - - - - sunrise - 1-TLD - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_bad_checksum_claim_notice.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_bad_checksum_claim_notice.xml deleted file mode 100644 index b122136bb..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_bad_checksum_claim_notice.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - example-one.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - 370d0b7c9223372036854775808 - 2010-08-16T09:00:00.0Z - 2009-08-16T09:00:00.0Z - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_bad_idn_minna.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_bad_idn_minna.xml deleted file mode 100644 index 4f00ff1ad..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_bad_idn_minna.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - xn--6ca193v6danctkyk.xn--q9jyb4c - 2 - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_bad_validator_id.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_bad_validator_id.xml deleted file mode 100644 index e94d084c5..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_bad_validator_id.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - exampleone.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - 49FD46E6C4B45C55D4AC - 2012-06-19T10:00:10.0Z - 2012-06-19T09:01:30.0Z - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_claim_notice.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_claim_notice.xml deleted file mode 100644 index b09b26fe2..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_claim_notice.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - example-one.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - 370d0b7c9223372036854775807 - 2010-08-16T09:00:00.0Z - 2009-08-16T09:00:00.0Z - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark.xml deleted file mode 100644 index 9a725ae4c..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_certificate_corrupt.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_certificate_corrupt.xml deleted file mode 100644 index 8dc549e65..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_certificate_corrupt.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCYwpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0ZkCmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba2YKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WZwpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JhCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRWEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4K - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_corrupt.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_corrupt.xml deleted file mode 100644 index 32fcde60b..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_corrupt.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiB666666666666666lbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_response.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_response.xml deleted file mode 100644 index 97c2801c6..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_response.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - Command completed successfully - - - - test-validate.tld - 2013-08-09T12:05:59Z - - - - - sunrise - 1-TLD - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_revoked_cert.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_revoked_cert.xml deleted file mode 100644 index d3504a855..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_revoked_cert.xml +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht -bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il9jYjEz -YjgwYy1hNTE4LTQ1MTktODUxYy0wYWUxNGMxZWJhZjMiPgogIDxzbWQ6aWQ+MDAwMDAwMTc3MTM3 -NTc4OTEwNDYwOC02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1 -MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxz -bWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVy -bD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAw -MDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEz -LTA4LTA2VDExOjM4OjI0LjYwOFo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3 -LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1h -cms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6dHJlYXR5T3JT -dGF0dXRlPgogICAgICA8bWFyazppZD4wMDA1MjAxMzczNDY5MjQ0MTM3MzQ2OTI0NC02NTUzNTwv -bWFyazppZD4KICAgICAgPG1hcms6bWFya05hbWU+VGVzdCAmYW1wOyBWYWxpZGF0ZTwvbWFyazpt -YXJrTmFtZT4KICAgICAgPG1hcms6aG9sZGVyIGVudGl0bGVtZW50PSJvd25lciI+CiAgICAgICAg -PG1hcms6b3JnPkFnIGNvcnBvcmF0aW9uPC9tYXJrOm9yZz4KICAgICAgICA8bWFyazphZGRyPgog -ICAgICAgICAgPG1hcms6c3RyZWV0PjEzMDUgQnJpZ2h0IEF2ZW51ZTwvbWFyazpzdHJlZXQ+CiAg -ICAgICAgICA8bWFyazpjaXR5PkFyY2FkaWE8L21hcms6Y2l0eT4KICAgICAgICAgIDxtYXJrOnNw -PkNBPC9tYXJrOnNwPgogICAgICAgICAgPG1hcms6cGM+OTAwMjg8L21hcms6cGM+CiAgICAgICAg -ICA8bWFyazpjYz5VUzwvbWFyazpjYz4KICAgICAgICA8L21hcms6YWRkcj4KICAgICAgPC9tYXJr -OmhvbGRlcj4KICAgICAgPG1hcms6Y29udGFjdCB0eXBlPSJhZ2VudCI+CiAgICAgICAgPG1hcms6 -bmFtZT5Ub255IEhvbGxhbmQ8L21hcms6bmFtZT4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9y -YXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJl -ZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+ -QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAg -ICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJr -OmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICAgIDxtYXJrOnZvaWNlPisxLjIwMjU1NjIz -MDI8L21hcms6dm9pY2U+CiAgICAgICAgPG1hcms6ZmF4PisxLjIwMjU1NjIzMDE8L21hcms6ZmF4 -PgogICAgICAgIDxtYXJrOmVtYWlsPmluZm9AYWdjb3Jwb3JhdGlvbi5jb208L21hcms6ZW1haWw+ -CiAgICAgIDwvbWFyazpjb250YWN0PgogICAgICA8bWFyazpwcm90ZWN0aW9uPgogICAgICAgIDxt -YXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDxtYXJrOnJ1bGluZz5VUzwvbWFyazpydWxpbmc+ -CiAgICAgIDwvbWFyazpwcm90ZWN0aW9uPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kdmFsaWRh -dGU8L21hcms6bGFiZWw+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3QtLS12YWxpZGF0ZTwvbWFyazps -YWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdGFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAg -ICAgPG1hcms6bGFiZWw+dGVzdC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFi -ZWw+dGVzdC1hbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0t -dmFsaWRhdGU8L21hcms6bGFiZWw+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3R2YWxpZGF0ZTwvbWFy -azpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC1hbmQtdmFsaWRhdGU8L21hcms6bGFiZWw+ -CiAgICAgIDxtYXJrOmdvb2RzQW5kU2VydmljZXM+TXVzaWNhbCBpbnN0cnVtZW50czwvbWFyazpn -b29kc0FuZFNlcnZpY2VzPgogICAgICA8bWFyazpyZWZOdW0+MTIzNDwvbWFyazpyZWZOdW0+CiAg -ICAgIDxtYXJrOnByb0RhdGU+MjAxMy0wMi0wMVQyMzowMDowMC4wMDBaPC9tYXJrOnByb0RhdGU+ -CiAgICAgIDxtYXJrOnRpdGxlPmd1aXRhcjwvbWFyazp0aXRsZT4KICAgICAgPG1hcms6ZXhlY0Rh -dGU+MjAxMy0wMi0wMVQyMzowMDowMC4wMDBaPC9tYXJrOmV4ZWNEYXRlPgogICAgPC9tYXJrOnRy -ZWF0eU9yU3RhdHV0ZT4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0 -cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il83NmFkOGJiYy0xMTZjLTRiYzAt -OTI3ZC1mOWVmODAyMjI1NTUiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0 -aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+ -PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQv -eG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI19jYjEzYjgwYy1h -NTE4LTQ1MTktODUxYy0wYWUxNGMxZWJhZjMiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0g -QWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNp -Z25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAx -LzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdv -cml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdl -c3RWYWx1ZT5jVlFIVFJubTg2T2RzUUFPTGVpNWNGTnYrYUpvcUY1TkY3Uk1ObERpcS9NPTwvZHM6 -RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfNDQwODMyZjIt -YjNlNS00NmI0LTkzZGUtMDNiYTcxZGVmMGM1Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3Jt -IEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9k -czpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9y -Zy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+MWtnVnh3WXpRTjExb1Zl -Vk1lME9Wc1hHL2lNbU1qWVVQS0RQNlZqNEc0QT08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJl -bmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il9iODVhY2Y0Mi05YmE1 -LTQ0NzMtODhhNy0wZDVkNjVlYTUzYjUiPmpSclNYdExEaDVtbUtrRUxGYTh5NWlwK3VUQTVqRkY2 -bEw4dS9TNW04b1orR1dGUUlSUzlIUU85ZGJCTk9YQU5HemtUQ0FEMW1qU0wKeGY5NStIRVJUVFFG -ZkRKb2hTY1pBbkR0YVpTYlJxT2pQSUFMWmE4bjRkc090VlAzZHg1Y3d0QXRNaE1OK1ROdUF0c1dD -b0tuMSt0SwovRDlwSlRoRWlTRjBKQkdQWWZ4U0NMSnZzWVgvc3hMSFo5Mlk4MWh3b0xVVE0yTkdo -SlRaWnoxdVdsUFo0WERPOWJ2QVlMNTc2MVoyClNraFppSitFcHk0U0p5aTl1M2NoaThlR3cxWVI2 -R3VFMDA3WUVYdmg1MDhZdGdlV3hOeVRiSE04UEI2VDREakxwbmsxQjhhbzVCS2cKK25tRXBqd2E5 -aTEzR1JLcDdiZ1JBN2dtNjdndnJxaEordVFLdXc9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktl -eUluZm8gSWQ9Il80NDA4MzJmMi1iM2U1LTQ2YjQtOTNkZS0wM2JhNzFkZWYwYzUiPjxkczpYNTA5 -RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZOekNDQkIrZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5 -M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYc3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVM -TUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJ -R1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1T -VU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05N -VE13TnpBNU1EQXdNREF3V2hjTk1UZ3dOekE0TWpNMU9UVTVXakNCbHpFTE1Ba0cKQTFVRUJoTUNR -a1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZR -UUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeFFEQStCZ05WQkFNVE4x -SkZWazlMUlVRZ1NVTkJUazRnVkUxRFNDQkJkWFJvCmIzSnBlbVZrSUZSeVlXUmxiV0Z5YXlCUWFX -eHZkQ0JXWVd4cFpHRjBiM0l3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXcKZ2dFS0Fv -SUJBUUN0TXRRU3p0Uk9jUUZlSkhObi95UU1ZblZaYXFVcEVHaHVRejRzOUNlUFF6MWIwM1Zsbll5 -amFOVms1THNrR0pGaQpzUmdpWk5CQWpqanRsMkFWekQ1WThtd21wQ1YyNFIwTnRyS0FmbG5HNkNB -MTVyQlRzSFVGRGY2QmFxeU1haXpBczRRSUFHaGRXT1Y3CjlHeTN3bnhXU212Q2tCdDVCUGthTW9W -M3hrVXZYbC9PKzlDQ0ZlSDBVZUJwczVpM3I3QTUzZjdYNWpqdVV1c2doT0Q3R1Z2WTBOTjcKaWNs -dVMrY1dFb1JBNXdQSU0vZjliQ0FGRk5nQnZLS25YQ3RUdElMblAzQmNuU3RiSmdodElPYlNlamth -ZWlkTUQyWGx6bWo4dXdJUAp0cFZic2RZVnhBaGd0NTJzZVF2ekZTNEVXWHJwT3gvbEY3RlBTTEow -aTlyRFQxYkJBZ01CQUFHamdnR0hNSUlCZ3pBTUJnTlZIUk1CCkFmOEVBakFBTUIwR0ExVWREZ1FX -QkJSODh0Z2FHTklQV3JGbzVnZmZRdTBaZlNmVmhEQ0J4Z1lEVlIwakJJRytNSUc3Z0JURHJUNm0K -MWhFQVJZQmNPbGRLaW0zY01RMmVjYUdCZ0tSK01Id3hDekFKQmdOVkJBWVRBbFZUTVR3d09nWURW -UVFLRXpOSmJuUmxjbTVsZENCRApiM0p3YjNKaGRHbHZiaUJtYjNJZ1FYTnphV2R1WldRZ1RtRnRa -WE1nWVc1a0lFNTFiV0psY25NeEx6QXRCZ05WQkFNVEprbERRVTVPCklGUnlZV1JsYldGeWF5QkRi -R1ZoY21sdVoyaHZkWE5sSUZCcGJHOTBJRU5CZ2lBdXNCdDYraHA3bmJMZC9vTGEwSFJLZmVudGNt -YlIKUFRZV2lERW9KODJGZVRBT0JnTlZIUThCQWY4RUJBTUNCNEF3TkFZRFZSMGZCQzB3S3pBcG9D -ZWdKWVlqYUhSMGNEb3ZMMk55YkM1cApZMkZ1Ymk1dmNtY3ZkRzFqYUY5d2FXeHZkQzVqY213d1JR -WURWUjBnQkQ0d1BEQTZCZ01xQXdRd016QXhCZ2dyQmdFRkJRY0NBUllsCmFIUjBjRG92TDNkM2R5 -NXBZMkZ1Ymk1dmNtY3ZjR2xzYjNSZmNtVndiM05wZEc5eWVUQU5CZ2txaGtpRzl3MEJBUXNGQUFP -Q0FRRUEKdWpsNmY2ZTZEK0lKdUZlQlI0UlBoVm9nRUxKRzYvWCs0bjFkbkxTRHAvdjJrb0luZlFx -U3FSY1JrM3h1dGhZano3djZ5M3A3b1c2Ygp0czNCVHZRSU1ldTVKNFRJa2JPak5sVmdhby9qZTlm -L2dUN2lLNURhSldIRlFwblludmpYaFEzVjZSa1M3ZEpsNEZaRWl5NnBMOG01ClgxcDVwQ3pjRnFP -eU0vd1I4S3pmQlVYK0toWGFBV2d0dURla0FUbVI1eUNGZ1BtQW9aZlBrcFVGZ01KcFk1WWNSdStL -MjRXVm50NFkKVzd5dy9HRjVpNmRwVFV0cEZNNy9ZVUFyenBkZlUrZWNvblk0ZE1LZFo2c0s4ZmFq -NGlVSUcrS0VjenNZMW05ODlWSWJwdGd4RFZzNQpGZU00Z1YvSDd3YU1tbVpkeVlQNHBZUkMzeWRI -T2tiYlpnbFhadz09PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUlu -Zm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_signature_corrupt.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_signature_corrupt.xml deleted file mode 100644 index 5440b92e9..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_encoded_signed_mark_signature_corrupt.xml +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - test-validate.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - -PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHht -bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFj -NTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3 -NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1 -MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxz -bWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVy -bD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAw -MDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEz -LTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3 -LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1h -cms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAg -ICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgog -ICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgog -ICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+ -QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8 -bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxt -YXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6 -c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNj -PlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgog -ICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkg -SG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFy -azpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJy -aWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9t -YXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJr -OnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAg -ICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2 -b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAg -PG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9t -YXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJl -bD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8 -bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJl -bD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZh -bGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFy -azpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAg -ICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6 -Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2Vydmlj -ZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJv -RGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6 -Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFt -ZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpk -cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4 -LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0 -aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMx -NG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIw -MDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFj -NTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFu -c2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxv -cGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9y -Zy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhv -ZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxk -czpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZ -PTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5 -MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJh -bnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4j -Ii8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3 -LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdi -aUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6 -UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRl -NC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlh -N2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92 -ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURk -NkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVV -dEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVj -aGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNv -MEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwbnJpRlFvPTwvZHM6U2lnbmF0dXJlVmFsdWU+ -PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxk -czpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2 -b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJR -QXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21G -MGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFV -RUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBF -d0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFV -RUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3 -RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05W -QkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1Fn -Vm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEK -eGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxr -Uk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1 -OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNk -OFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZ -ejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RL -dXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05Q -SlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9G -cFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVX -QVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hN -elNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdG -dVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhK -cGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAy -Rm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dH -STJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVk -SUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05o -Ym00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJB -SWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZO -OWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2Mr -S0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4 -OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlB -QlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0Qz -TVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktX -MlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9k -czpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4K - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_malformed_claim_notice1.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_malformed_claim_notice1.xml deleted file mode 100644 index 6b0a46c7d..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_malformed_claim_notice1.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - example-one.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - 370d0b7c922337203685477580 - 2010-08-16T09:00:00.0Z - 2009-08-16T09:00:00.0Z - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_malformed_claim_notice2.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_malformed_claim_notice2.xml deleted file mode 100644 index 33fc1276b..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_malformed_claim_notice2.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - example-one.tld - - ns1.example.net - ns2.example.net - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - 370d0b7c922337203685477580a - 2010-08-16T09:00:00.0Z - 2009-08-16T09:00:00.0Z - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_response.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_response.xml deleted file mode 100644 index 97c2801c6..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_response.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - Command completed successfully - - - - test-validate.tld - 2013-08-09T12:05:59Z - - - - - sunrise - 1-TLD - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_response_claims.xml b/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_response_claims.xml deleted file mode 100644 index f1c5e3cd9..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrush_response_claims.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - Command completed successfully - - - - example-one.tld - 2013-08-09T12:05:59Z - - - - - sunrise - 1-TLD - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_delete_application.xml b/javatests/google/registry/flows/domain/testdata/domain_delete_application.xml deleted file mode 100644 index e25fe6fc8..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_delete_application.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - example.tld - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_delete_application_landrush.xml b/javatests/google/registry/flows/domain/testdata/domain_delete_application_landrush.xml deleted file mode 100644 index 44ef95e2f..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_delete_application_landrush.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - %DOMAIN% - - - - - landrush - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_delete_application_sunrush.xml b/javatests/google/registry/flows/domain/testdata/domain_delete_application_sunrush.xml deleted file mode 100644 index 3e13e7e7d..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_delete_application_sunrush.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - example.tld - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_delete_application_wrong_extension.xml b/javatests/google/registry/flows/domain/testdata/domain_delete_application_wrong_extension.xml deleted file mode 100644 index 0a2b300d9..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_delete_application_wrong_extension.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - example.tld - - - - - landrush - 1-TLD - - - - - 12345 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise.xml b/javatests/google/registry/flows/domain/testdata/domain_info_sunrise.xml deleted file mode 100644 index 4bf1120ca..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - example.tld - - - - - sunrise - 123-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_all_hosts.xml b/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_all_hosts.xml deleted file mode 100644 index cc72e747a..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_all_hosts.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - example.tld - - - - - sunrise - 123-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_allocated.xml b/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_allocated.xml deleted file mode 100644 index d50c18c81..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_allocated.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - Command completed successfully - - - - example.tld - %ROID% - - jd1234 - sh8013 - sh8013 - - ns1.example.tld - ns1.example.net - - NewRegistrar - TheRegistrar - 1999-04-03T22:00:00.0Z - NewRegistrar - 1999-12-03T09:00:00.0Z - - 2fooBAR - - - - - - sunrise - 123-TLD - - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_delegated_hosts.xml b/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_delegated_hosts.xml deleted file mode 100644 index 91bee8d6a..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_delegated_hosts.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - example.tld - - - - - sunrise - 123-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_flags_none.xml b/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_flags_none.xml deleted file mode 100644 index 85417598c..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_flags_none.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - domain.flags - - - - - sunrise - 123-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_flags_two.xml b/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_flags_two.xml deleted file mode 100644 index 261bd85a7..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_flags_two.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - domain-flag1-flag2.flags - - - - - sunrise - 123-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_include_marks.xml b/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_include_marks.xml deleted file mode 100644 index a3233839a..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_include_marks.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - example.tld - - - - - sunrise - 123-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_no_application_id.xml b/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_no_application_id.xml deleted file mode 100644 index 469b8bfdc..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_no_application_id.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - example.tld - - - - - sunrise - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_no_marks.xml b/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_no_marks.xml deleted file mode 100644 index 18a8a36a9..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_no_marks.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - example.tld - - - - - sunrise - 123-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_none_hosts.xml b/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_none_hosts.xml deleted file mode 100644 index f56a5a66e..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_none_hosts.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - example.tld - - - - - sunrise - 123-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response.xml b/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response.xml deleted file mode 100644 index 18cbb5a70..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - Command completed successfully - - - - example.tld - %ROID% - - jd1234 - sh8013 - sh8013 - - ns1.example.tld - ns1.example.net - - NewRegistrar - TheRegistrar - 1999-04-03T22:00:00.0Z - NewRegistrar - 1999-12-03T09:00:00.0Z - - 2fooBAR - - - - - - sunrise - 123-TLD - - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response_dsdata.xml b/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response_dsdata.xml deleted file mode 100644 index 23afffe47..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response_dsdata.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - Command completed successfully - - - - example.tld - %ROID% - - jd1234 - sh8013 - sh8013 - - ns1.example.tld - ns1.example.net - - NewRegistrar - TheRegistrar - 1999-04-03T22:00:00.0Z - NewRegistrar - 1999-12-03T09:00:00.0Z - - 2fooBAR - - - - - - - 12345 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - - sunrise - 123-TLD - - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response_no_nameservers.xml b/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response_no_nameservers.xml deleted file mode 100644 index b69b45c96..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response_no_nameservers.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - Command completed successfully - - - - example.tld - %ROID% - - jd1234 - sh8013 - sh8013 - NewRegistrar - TheRegistrar - 1999-04-03T22:00:00.0Z - NewRegistrar - 1999-12-03T09:00:00.0Z - - 2fooBAR - - - - - - sunrise - 123-TLD - - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response_with_mark.xml b/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response_with_mark.xml deleted file mode 100644 index 340b76397..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_info_sunrise_response_with_mark.xml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - Command completed successfully - - - - example.tld - %ROID% - - jd1234 - sh8013 - sh8013 - - ns1.example.tld - ns1.example.net - - NewRegistrar - TheRegistrar - 1999-04-03T22:00:00.0Z - NewRegistrar - 1999-12-03T09:00:00.0Z - - 2fooBAR - - - - - - sunrise - 123-TLD - - - - 00052013734691691373469169-65535 - Test & Validate - - Ag corporation - - 1305 Bright Avenue - Arcadia - CA - 90028 - US - - - - Tony Holland - Ag corporation - - 1305 Bright Avenue - Arcadia - CA - 90028 - US - - +1.2025562302 - +1.2025562301 - info@agcorporation.com - - testandvalidate - test---validate - testand-validate - test-validate - test-andvalidate - test--validate - testvalidate - test-and-validate - Musical instruments - 1234 - 2012-12-31T23:00:00.000Z - US - Hove - - - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise.xml deleted file mode 100644 index f864b07e2..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - example.tld - - - ns2.example.tld - - mak21 - Payment overdue. - - - - ns1.example.tld - - sh8013 - - - - sh8013 - - 2BARfoo - - - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_add_nameserver.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_add_nameserver.xml deleted file mode 100644 index 2664dc361..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_add_nameserver.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - example.tld - - - ns2.example.tld - - - - - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_add_remove_same_contact.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_add_remove_same_contact.xml deleted file mode 100644 index f304bc025..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_add_remove_same_contact.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - example.tld - - sh8013 - Payment overdue. - - - sh8013 - - - sh8013 - - 2BARfoo - - - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_add_remove_same_host.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_add_remove_same_host.xml deleted file mode 100644 index 4b12cdd0a..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_add_remove_same_host.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - example.tld - - - ns1.example.tld - - Payment overdue. - - - - ns1.example.tld - - - - sh8013 - - 2BARfoo - - - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_authinfo.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_authinfo.xml deleted file mode 100644 index 89ab8f770..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_authinfo.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - example.tld - - - 2BARfoo - - - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_add.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_add.xml deleted file mode 100644 index 905ddcb54..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_add.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - example.tld - - - - - - - 12346 - 3 - 1 - 38EC35D5B3A34B44C39B - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_add_rem.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_add_rem.xml deleted file mode 100644 index 996e4706f..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_add_rem.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - example.tld - - - - - - - 12345 - 3 - 1 - 38EC35D5B3A34B33C99B - - - - - 12346 - 3 - 1 - 38EC35D5B3A34B44C39B - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_add_rem_same.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_add_rem_same.xml deleted file mode 100644 index d3100399b..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_add_rem_same.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - example.tld - - - - - - - 12345 - 3 - 1 - 38EC35D5B3A34B33C99B - - - - - 12345 - 3 - 1 - 38EC35D5B3A34B33C99B - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_empty.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_empty.xml deleted file mode 100644 index fcddcf527..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_empty.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - example.tld - - - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_rem.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_rem.xml deleted file mode 100644 index 68e29d186..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_rem.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - example.tld - - - - - - - 12346 - 3 - 1 - 38EC35D5B3A34B44C39B - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_rem_all.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_rem_all.xml deleted file mode 100644 index 0b3e290f3..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_rem_all.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - example.tld - - - - - - true - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_rem_all_false.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_rem_all_false.xml deleted file mode 100644 index eabbf8383..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_rem_all_false.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - example.tld - - - - - - false - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_urgent.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_urgent.xml deleted file mode 100644 index 813f80d56..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_dsdata_urgent.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - example.tld - - - - - - true - - - - 12346 - 3 - 1 - 38EC35D5B3A34B44C39B - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_duplicate_contact.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_duplicate_contact.xml deleted file mode 100644 index 0446d0cd6..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_duplicate_contact.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - example.tld - - - ns2.example.tld - - mak21 - mak21 - sh8013 - Payment overdue. - - - - ns1.example.tld - - sh8013 - - - - sh8013 - - 2BARfoo - - - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_fee.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_fee.xml deleted file mode 100644 index 2e863ec72..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_fee.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - %DOMAIN% - - - ns2.example.tld - - - - - ns1.example.tld - - - - - - - sunrise - 1-ROID - - - USD - %AMOUNT% - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_maxsiglife.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_maxsiglife.xml deleted file mode 100644 index dbf52fd99..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_maxsiglife.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - example.tld - - - - - - 605900 - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_missing_contact_type.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_missing_contact_type.xml deleted file mode 100644 index 561e99359..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_missing_contact_type.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - example.tld - - - ns2.example.tld - - mak21 - Payment overdue. - - - - ns1.example.tld - - sh8013 - - - - sh8013 - - 2BARfoo - - - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_prohibited_status.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_prohibited_status.xml deleted file mode 100644 index 3aba461c9..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_prohibited_status.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - example.tld - - - ns2.example.tld - - Payment overdue. - - - - ns1.example.tld - - - - - sh8013 - - 2BARfoo - - - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_registrant_to_tech.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_registrant_to_tech.xml deleted file mode 100644 index 72dbc4a03..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_registrant_to_tech.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - example.tld - - sh8013 - - - contact1234 - - - mak21 - - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_admin.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_admin.xml deleted file mode 100644 index 37fcd216d..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_admin.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - example.tld - - sh8013 - - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_contact.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_contact.xml deleted file mode 100644 index 961c1b112..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_contact.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - example.tld - - - ns2.example.tld - - mak21 - Payment overdue. - - - - ns1.example.tld - - sh8013 - - - - - 2BARfoo - - - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_multiple_contacts.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_multiple_contacts.xml deleted file mode 100644 index 61d363865..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_multiple_contacts.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - example.tld - - mak21 - mak21 - mak21 - - - sh8013 - sh8013 - sh8013 - - - mak21 - - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_nameserver.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_nameserver.xml deleted file mode 100644 index eec4f8984..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_nameserver.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - example.tld - - mak21 - Payment overdue. - - - - ns1.example.tld - - sh8013 - - - - sh8013 - - 2BARfoo - - - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_tech.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_tech.xml deleted file mode 100644 index 969e9ccc1..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_remove_tech.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - example.tld - - sh8013 - - - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_wrong_extension.xml b/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_wrong_extension.xml deleted file mode 100644 index 61d79ccff..000000000 --- a/javatests/google/registry/flows/domain/testdata/domain_update_sunrise_wrong_extension.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - example.tld - - - - - - 12345 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - - sunrise - 1-TLD - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/host/HostDeleteFlowTest.java b/javatests/google/registry/flows/host/HostDeleteFlowTest.java index 746d5b37b..bf0950d66 100644 --- a/javatests/google/registry/flows/host/HostDeleteFlowTest.java +++ b/javatests/google/registry/flows/host/HostDeleteFlowTest.java @@ -17,7 +17,6 @@ package google.registry.flows.host; import static com.google.common.truth.Truth.assertThat; import static google.registry.testing.DatastoreHelper.assertNoBillingEvents; import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.newDomainApplication; import static google.registry.testing.DatastoreHelper.newDomainResource; import static google.registry.testing.DatastoreHelper.newHostResource; import static google.registry.testing.DatastoreHelper.persistActiveHost; @@ -291,18 +290,6 @@ public class HostDeleteFlowTest extends ResourceFlowTestCase - - - Command completed successfully - - - - test-validate.example - 2014-03-02T00:01:00.000Z - 2015-03-02T00:01:00.000Z - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/flows/testdata/domain_allocate_testvalidate.xml b/javatests/google/registry/flows/testdata/domain_allocate_testvalidate.xml deleted file mode 100644 index 312ce6cf3..000000000 --- a/javatests/google/registry/flows/testdata/domain_allocate_testvalidate.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - test-validate.example - 1 - - ns1.example.external - ns2.example.external - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - B-EXAMPLE - 2014-01-01T00:00:00Z - - - ABC-12345 - - diff --git a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_encoded_signed_mark.xml b/javatests/google/registry/flows/testdata/domain_create_start_date_sunrise_encoded_mark_wrong_phase.xml similarity index 97% rename from javatests/google/registry/flows/domain/testdata/domain_create_sunrise_encoded_signed_mark.xml rename to javatests/google/registry/flows/testdata/domain_create_start_date_sunrise_encoded_mark_wrong_phase.xml index cbcff8901..a875994ce 100644 --- a/javatests/google/registry/flows/domain/testdata/domain_create_sunrise_encoded_signed_mark.xml +++ b/javatests/google/registry/flows/testdata/domain_create_start_date_sunrise_encoded_mark_wrong_phase.xml @@ -5,10 +5,10 @@ - test-validate.tld + test-validate.example - ns1.example.net - ns2.example.net + ns1.example.external + ns2.example.external jd1234 sh8013 @@ -21,8 +21,8 @@ - sunrise + type="registration"> + open PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJrIHhtbG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPgogIDxzbWQ6aWQ+MDAwMDAwMTc2MTM3NjA0Mjc1OTEzNi02NTUzNTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iNjU1MzUiPgogICAgPHNtZDpvcmc+SUNBTk4gVE1DSCBURVNUSU5HIFRNVjwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+bm90YXZhaWxhYmxlQGV4YW1wbGUuY29tPC9zbWQ6ZW1haWw+CiAgICA8c21kOnVybD5odHRwOi8vd3d3LmV4YW1wbGUuY29tPC9zbWQ6dXJsPgogICAgPHNtZDp2b2ljZT4rMzIuMDAwMDAwPC9zbWQ6dm9pY2U+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJlZm9yZT4yMDEzLTA4LTA5VDEwOjA1OjU5LjEzNlo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RBZnRlcj4yMDE3LTA3LTIzVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJrIHhtbG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms6Y291cnQ+CiAgICAgIDxtYXJrOmlkPjAwMDUyMDEzNzM0NjkxNjkxMzczNDY5MTY5LTY1NTM1PC9tYXJrOmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UZXN0ICZhbXA7IFZhbGlkYXRlPC9tYXJrOm1hcmtOYW1lPgogICAgICA8bWFyazpob2xkZXIgZW50aXRsZW1lbnQ9Im93bmVyIj4KICAgICAgICA8bWFyazpvcmc+QWcgY29ycG9yYXRpb248L21hcms6b3JnPgogICAgICAgIDxtYXJrOmFkZHI+CiAgICAgICAgICA8bWFyazpzdHJlZXQ+MTMwNSBCcmlnaHQgQXZlbnVlPC9tYXJrOnN0cmVldD4KICAgICAgICAgIDxtYXJrOmNpdHk+QXJjYWRpYTwvbWFyazpjaXR5PgogICAgICAgICAgPG1hcms6c3A+Q0E8L21hcms6c3A+CiAgICAgICAgICA8bWFyazpwYz45MDAyODwvbWFyazpwYz4KICAgICAgICAgIDxtYXJrOmNjPlVTPC9tYXJrOmNjPgogICAgICAgIDwvbWFyazphZGRyPgogICAgICA8L21hcms6aG9sZGVyPgogICAgICA8bWFyazpjb250YWN0IHR5cGU9ImFnZW50Ij4KICAgICAgICA8bWFyazpuYW1lPlRvbnkgSG9sbGFuZDwvbWFyazpuYW1lPgogICAgICAgIDxtYXJrOm9yZz5BZyBjb3Jwb3JhdGlvbjwvbWFyazpvcmc+CiAgICAgICAgPG1hcms6YWRkcj4KICAgICAgICAgIDxtYXJrOnN0cmVldD4xMzA1IEJyaWdodCBBdmVudWU8L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5BcmNhZGlhPC9tYXJrOmNpdHk+CiAgICAgICAgICA8bWFyazpzcD5DQTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjkwMDI4PC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgICAgPC9tYXJrOmFkZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzEuMjAyNTU2MjMwMjwvbWFyazp2b2ljZT4KICAgICAgICA8bWFyazpmYXg+KzEuMjAyNTU2MjMwMTwvbWFyazpmYXg+CiAgICAgICAgPG1hcms6ZW1haWw+aW5mb0BhZ2NvcnBvcmF0aW9uLmNvbTwvbWFyazplbWFpbD4KICAgICAgPC9tYXJrOmNvbnRhY3Q+CiAgICAgIDxtYXJrOmxhYmVsPnRlc3RhbmR2YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdC0tLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0YW5kLXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LXZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LS12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6bGFiZWw+dGVzdHZhbGlkYXRlPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpsYWJlbD50ZXN0LWFuZC12YWxpZGF0ZTwvbWFyazpsYWJlbD4KICAgICAgPG1hcms6Z29vZHNBbmRTZXJ2aWNlcz5NdXNpY2FsIGluc3RydW1lbnRzPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJrOnJlZk51bT4xMjM0PC9tYXJrOnJlZk51bT4KICAgICAgPG1hcms6cHJvRGF0ZT4yMDEyLTEyLTMxVDIzOjAwOjAwLjAwMFo8L21hcms6cHJvRGF0ZT4KICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAgIDxtYXJrOmNvdXJ0TmFtZT5Ib3ZlPC9tYXJrOmNvdXJ0TmFtZT4KICAgIDwvbWFyazpjb3VydD4KICA8L21hcms6bWFyaz4KPGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgSWQ9Il9mZDBmMTM0Ni03MTM4LTRiMGMtODRkNy0yZTdlYmY2YTExNmMiPjxkczpTaWduZWRJbmZvPjxkczpDYW5vbmljYWxpemF0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIFVSST0iI18zOGFjNTg2ZC05OTg5LTQ4MTctYjcwOC1kOGU4MzQ0NzZkOTUiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48L2RzOlRyYW5zZm9ybXM+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT55WDRLTWgrUDJ2OVUxNnh0eTl2ZGU5S0JTZmZFTjRHbTVVa2tLblI5cDdZPTwvZHM6RGlnZXN0VmFsdWU+PC9kczpSZWZlcmVuY2U+PGRzOlJlZmVyZW5jZSBVUkk9IiNfYjg5MjI1NWItMWJjOC00MTdiLWE0NGYtZWE5OGJjMzQ5OWE0Ij48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+dDNuNkFBTHdiaUhNbGRyZkpEQjNYQ3FkSlFzOEhjeU5pK1lXT3ZoV1krdz08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9Il82OWQzMDRlNC04NzlmLTRmNzEtYmMxMi02ZjJhZDlmOTM5OGYiPmJSVFIzTzUxM0dnTkExS2pxb0g0VXE3cUlhN2NJaTljaXZmZmFyVmE0VVQyVEUzdzEzc2xsUDFXbkdYYjcyYUw0dXhkbDFUaTZZbFoKVnVjSC92ZU5zUnlWZFZwSFF0eEJNTDFLU0tZbXc3ZjdPNnVsYWtrYnFrTkdYVmFZdEVsa1dBZnZFSDBsNURkNkFZT0k2UGN5SzBCWgo2VEl3cWZhQ1luVk5DdTFpdDIzMm9EREtiWU9RNk02YnhmU3BvVFYvaTVVdEVyak0vZWFFanp4MXFxZzlFZmxOcm1obmRtZW42Q2JYCjVrNmZ4Y1o0V2NtWkM4V0Ruc0t0VWVjaGtmbko4L0Jwc2ppM1Foekg4YzFiL0RqTmR5UFFyOGlndXBqR2dlU0JmMHhRRUtoK3pRT2oKYTNvMEhRWjZ1UlUvejdWN2RoNU9qUEhmV2lLc0pqRjVwc2ppRlE9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9Il9iODkyMjU1Yi0xYmM4LTQxN2ItYTQ0Zi1lYTk4YmMzNDk5YTQiPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUZMekNDQkJlZ0F3SUJBZ0lnTHJBYmV2b2FlNTJ5M2Y2QzJ0QjBTbjNwN1hKbTBUMDJGb2d4S0NmTmhYb3dEUVlKS29aSWh2Y04KQVFFTEJRQXdmREVMTUFrR0ExVUVCaE1DVlZNeFBEQTZCZ05WQkFvVE0wbHVkR1Z5Ym1WMElFTnZjbkJ2Y21GMGFXOXVJR1p2Y2lCQgpjM05wWjI1bFpDQk9ZVzFsY3lCaGJtUWdUblZ0WW1WeWN6RXZNQzBHQTFVRUF4TW1TVU5CVGs0Z1ZISmhaR1Z0WVhKcklFTnNaV0Z5CmFXNW5hRzkxYzJVZ1VHbHNiM1FnUTBFd0hoY05NVE13TmpJMk1EQXdNREF3V2hjTk1UZ3dOakkxTWpNMU9UVTVXakNCanpFTE1Ba0cKQTFVRUJoTUNRa1V4SURBZUJnTlZCQWdURjBKeWRYTnpaV3h6TFVOaGNHbDBZV3dnVW1WbmFXOXVNUkV3RHdZRFZRUUhFd2hDY25WegpjMlZzY3pFUk1BOEdBMVVFQ2hNSVJHVnNiMmwwZEdVeE9EQTJCZ05WQkFNVEwwbERRVTVPSUZSTlEwZ2dRWFYwYUc5eWFYcGxaQ0JVCmNtRmtaVzFoY21zZ1VHbHNiM1FnVm1Gc2FXUmhkRzl5TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUEKeGxwM0twWUhYM1d5QXNGaFNrM0x3V2ZuR2x4blVERnFGWkEzVW91TVlqL1hpZ2JNa05lRVhJamxrUk9LVDRPUEdmUngvTEF5UmxRUQpqQ012NHFoYmtjWDFwN2FyNjNmbHE0U1pOVmNsMTVsN2gwdVQ1OEZ6U2ZubHowdTVya0hmSkltRDQzK21hUC84Z3YzNkZSMjdqVzhSCjl3WTRoaytXczRJQjBpRlNkOFNYdjFLcjh3L0ptTVFTRGtpdUcrUmZJaXVid1EvZnk3RWtqNVFXaFBadyttTXhOS25IVUx5M3hZejIKTHdWZmZ0andVdWVhY3ZxTlJDa01YbENsT0FEcWZUOG9TWm9lRFhlaEh2bFBzTENlbUdCb1RLdXJza0lTNjlGMHlQRUg1Z3plMEgrZgo4RlJPc0lvS1NzVlEzNEI0Uy9qb0U2N25wc0pQVGRLc05QSlR5UUlEQVFBQm80SUJoekNDQVlNd0RBWURWUjBUQVFIL0JBSXdBREFkCkJnTlZIUTRFRmdRVW9GcFk3NnA1eW9ORFJHdFFwelZ1UjgxVVdRMHdnY1lHQTFVZEl3U0J2akNCdTRBVXc2MCtwdFlSQUVXQVhEcFgKU29wdDNERU5ubkdoZ1lDa2ZqQjhNUXN3Q1FZRFZRUUdFd0pWVXpFOE1Eb0dBMVVFQ2hNelNXNTBaWEp1WlhRZ1EyOXljRzl5WVhScApiMjRnWm05eUlFRnpjMmxuYm1Wa0lFNWhiV1Z6SUdGdVpDQk9kVzFpWlhKek1TOHdMUVlEVlFRREV5WkpRMEZPVGlCVWNtRmtaVzFoCmNtc2dRMnhsWVhKcGJtZG9iM1Z6WlNCUWFXeHZkQ0JEUVlJZ0xyQWJldm9hZTUyeTNmNkMydEIwU24zcDdYSm0wVDAyRm9neEtDZk4KaFhrd0RnWURWUjBQQVFIL0JBUURBZ2VBTURRR0ExVWRId1F0TUNzd0thQW5vQ1dHSTJoMGRIQTZMeTlqY213dWFXTmhibTR1YjNKbgpMM1J0WTJoZmNHbHNiM1F1WTNKc01FVUdBMVVkSUFRK01Ed3dPZ1lES2dNRU1ETXdNUVlJS3dZQkJRVUhBZ0VXSldoMGRIQTZMeTkzCmQzY3VhV05oYm00dWIzSm5MM0JwYkc5MFgzSmxjRzl6YVhSdmNua3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWVEWVlKcjYwVzMKeTlRcyszelJWSTlrZWtLb201dmtIT2FsQjN3SGFaSWFBRllwSTk4dFkwYVZOOWFHT04wdjZXUUYrbnZ6MUtSWlFiQXowMUJYdGFSSgo0bVBrYXJoaHVMbjlOa0J4cDhIUjVxY2MrS0g3Z3Y2ci9jMGlHM2JDTkorUVNyN1FmKzVNbE1vNnpMNVVkZFUvVDJqaWJNWENqL2YyCjFRdzN4OVFnb3lYTEZKOW96YUxnUTlSTWtMbE9temtDQWlYTjVBYjQzYUo5ZjdOMmdFMk5uUmpOS21tQzlBQlEwVFJ3RUtWTGhWbDEKVUdxQ0hKM0FsQlhXSVhONXNqUFFjRC8rbkhlRVhNeFl2bEF5cXhYb0QzTVd0UVZqN2oyb3FsYWtPQk1nRzgrcTJxWWxtQnRzNEZOaQp3NzQ4SWw1ODZIS0JScXhIdFpkUktXMlZxYVE9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9zbWQ6c2lnbmVkTWFyaz4= diff --git a/javatests/google/registry/flows/testdata/domain_create_sunrise_encoded_mark.xml b/javatests/google/registry/flows/testdata/domain_create_sunrise_encoded_mark.xml index de4f02ef6..42346ad72 100644 --- a/javatests/google/registry/flows/testdata/domain_create_sunrise_encoded_mark.xml +++ b/javatests/google/registry/flows/testdata/domain_create_sunrise_encoded_mark.xml @@ -21,7 +21,7 @@ + type="registration"> sunrise diff --git a/javatests/google/registry/flows/testdata/domain_create_sunrise_encoded_signed_mark_response.xml b/javatests/google/registry/flows/testdata/domain_create_sunrise_encoded_signed_mark_response.xml deleted file mode 100644 index 40a250fdd..000000000 --- a/javatests/google/registry/flows/testdata/domain_create_sunrise_encoded_signed_mark_response.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - Command completed successfully - - - - test-validate.example - 2014-01-01T00:00:00Z - - - - - sunrise - B-EXAMPLE - - - - ABC-12345 - server-trid - - - diff --git a/javatests/google/registry/mapreduce/inputs/EppResourceInputsTest.java b/javatests/google/registry/mapreduce/inputs/EppResourceInputsTest.java index 4ed971f92..7077a414c 100644 --- a/javatests/google/registry/mapreduce/inputs/EppResourceInputsTest.java +++ b/javatests/google/registry/mapreduce/inputs/EppResourceInputsTest.java @@ -21,7 +21,6 @@ import static google.registry.mapreduce.inputs.EppResourceInputs.createKeyInput; import static google.registry.model.index.EppResourceIndexBucket.getBucketKey; import static google.registry.testing.DatastoreHelper.createTld; import static google.registry.testing.DatastoreHelper.newContactResource; -import static google.registry.testing.DatastoreHelper.newDomainApplication; import static google.registry.testing.DatastoreHelper.newDomainResource; import static google.registry.testing.DatastoreHelper.newHostResource; import static google.registry.testing.DatastoreHelper.persistActiveContact; @@ -34,7 +33,6 @@ import com.google.appengine.tools.mapreduce.InputReader; import com.googlecode.objectify.Key; import google.registry.model.EppResource; import google.registry.model.contact.ContactResource; -import google.registry.model.domain.DomainApplication; import google.registry.model.domain.DomainBase; import google.registry.model.domain.DomainResource; import google.registry.model.host.HostResource; @@ -223,41 +221,6 @@ public class EppResourceInputsTest { assertThrows(NoSuchElementException.class, deserializedReader::next); } - @Test - public void testSuccess_entityReader_allowsPolymorphicMatches() throws Exception { - createTld("tld"); - DomainResource domain = persistEppResourceInFirstBucket(newDomainResource("a.tld")); - DomainApplication application = persistEppResourceInFirstBucket(newDomainApplication("b.tld")); - Set seen = new HashSet<>(); - InputReader reader = createEntityInput(DomainBase.class).createReaders().get(0); - reader.beginShard(); - reader.beginSlice(); - assertThat(reader.getProgress()).isWithin(EPSILON).of(0); - seen.add(reader.next()); - assertThat(reader.getProgress()).isWithin(EPSILON).of(0.5); - seen.add(reader.next()); - assertThat(reader.getProgress()).isWithin(EPSILON).of(1.0); - assertThat(seen).containsExactly(domain, application); - assertThrows(NoSuchElementException.class, reader::next); - } - - @Test - public void testSuccess_entityReader_skipsPolymorphicMismatches() throws Exception { - createTld("tld"); - persistEppResourceInFirstBucket(newDomainApplication("b.tld")); - DomainResource domainA = persistEppResourceInFirstBucket(newDomainResource("a.tld")); - InputReader reader = - createEntityInput(DomainResource.class).createReaders().get(0); - reader.beginShard(); - reader.beginSlice(); - assertThat(reader.getProgress()).isWithin(EPSILON).of(0); - assertThat(reader.next()).isEqualTo(domainA); - // We can't reliably assert getProgress() here, since it counts before the postfilter that weeds - // out polymorphic mismatches, and so depending on whether the domain or the application was - // seen first it will be 0.5 or 1.0. However, there should be nothing left when we call next(). - assertThrows(NoSuchElementException.class, reader::next); - } - @Test public void testSuccess_entityReader_filtersOnMultipleTypes() throws Exception { createTld("tld"); @@ -284,9 +247,8 @@ public class EppResourceInputsTest { createTld("tld"); ContactResource contact = persistEppResourceInFirstBucket(newContactResource("contact")); // Specify the contact since persistActiveDomain{Application} creates a hidden one. - DomainResource domain = persistEppResourceInFirstBucket(newDomainResource("a.tld", contact)); - DomainApplication application = - persistEppResourceInFirstBucket(newDomainApplication("b.tld", contact)); + DomainResource domain1 = persistEppResourceInFirstBucket(newDomainResource("a.tld", contact)); + DomainResource domain2 = persistEppResourceInFirstBucket(newDomainResource("b.tld", contact)); HostResource host = persistEppResourceInFirstBucket(newHostResource("ns1.example.com")); Set seen = new HashSet<>(); InputReader reader = createEntityInput(EppResource.class).createReaders().get(0); @@ -301,7 +263,7 @@ public class EppResourceInputsTest { assertThat(reader.getProgress()).isWithin(EPSILON).of(0.75); seen.add(reader.next()); assertThat(reader.getProgress()).isWithin(EPSILON).of(1.0); - assertThat(seen).containsExactly(domain, host, application, contact); + assertThat(seen).containsExactly(domain1, domain2, host, contact); assertThrows(NoSuchElementException.class, reader::next); } } diff --git a/javatests/google/registry/model/OteAccountBuilderTest.java b/javatests/google/registry/model/OteAccountBuilderTest.java index cf8ff12b4..1aac53f30 100644 --- a/javatests/google/registry/model/OteAccountBuilderTest.java +++ b/javatests/google/registry/model/OteAccountBuilderTest.java @@ -16,9 +16,13 @@ package google.registry.model; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth8.assertThat; +import static google.registry.model.registry.Registry.TldState.GENERAL_AVAILABILITY; +import static google.registry.testing.AppEngineRule.makeRegistrar1; import static google.registry.testing.CertificateSamples.SAMPLE_CERT; import static google.registry.testing.CertificateSamples.SAMPLE_CERT_HASH; +import static google.registry.testing.DatastoreHelper.createTld; import static google.registry.testing.DatastoreHelper.persistPremiumList; +import static google.registry.testing.DatastoreHelper.persistSimpleResource; import static google.registry.testing.JUnitBackports.assertThrows; import static google.registry.util.DateTimeUtils.START_OF_TIME; import static org.joda.money.CurrencyUnit.USD; @@ -29,7 +33,6 @@ import google.registry.model.registrar.RegistrarContact; import google.registry.model.registry.Registry; import google.registry.model.registry.Registry.TldState; import google.registry.testing.AppEngineRule; -import google.registry.testing.DatastoreHelper; import google.registry.util.CidrAddressBlock; import google.registry.util.SystemClock; import org.joda.money.Money; @@ -52,7 +55,6 @@ public final class OteAccountBuilderTest { assertThat(OteAccountBuilder.forClientId("myclientid").getClientIdToTldMap()) .containsExactly( "myclientid-1", "myclientid-sunrise", - "myclientid-2", "myclientid-landrush", "myclientid-3", "myclientid-ga", "myclientid-4", "myclientid-ga", "myclientid-5", "myclientid-eap"); @@ -72,7 +74,7 @@ public final class OteAccountBuilderTest { assertThat(registry.getAddGracePeriodLength()).isEqualTo(Duration.standardDays(5)); assertThat(registry.getPendingDeleteLength()).isEqualTo(Duration.standardDays(5)); assertThat(registry.getRedemptionGracePeriodLength()).isEqualTo(Duration.standardDays(30)); - assertThat(registry.getEapFeeScheduleAsMap()).containsExactly(START_OF_TIME, Money.of(USD, 0)); + assertThat(registry.getEapFeeScheduleAsMap()).containsExactly(START_OF_TIME, Money.zero(USD)); } private void assertTldExistsGa(String tld, Money eapFee) { @@ -80,7 +82,7 @@ public final class OteAccountBuilderTest { assertThat(registry).isNotNull(); assertThat(registry.getPremiumList().getName()).isEqualTo("default_sandbox_list"); assertThat(registry.getTldStateTransitions()) - .containsExactly(START_OF_TIME, TldState.GENERAL_AVAILABILITY); + .containsExactly(START_OF_TIME, GENERAL_AVAILABILITY); assertThat(registry.getDnsWriters()).containsExactly("VoidDnsWriter"); assertThat(registry.getAddGracePeriodLength()).isEqualTo(Duration.standardHours(1)); assertThat(registry.getPendingDeleteLength()).isEqualTo(Duration.standardMinutes(5)); @@ -118,16 +120,13 @@ public final class OteAccountBuilderTest { OteAccountBuilder.forClientId("myclientid").addContact("email@example.com").buildAndPersist(); assertTldExists("myclientid-sunrise", TldState.START_DATE_SUNRISE); - assertTldExists("myclientid-landrush", TldState.LANDRUSH); - assertTldExistsGa("myclientid-ga", Money.of(USD, 0)); + assertTldExistsGa("myclientid-ga", Money.zero(USD)); assertTldExistsGa("myclientid-eap", Money.of(USD, 100)); assertRegistrarExists("myclientid-1", "myclientid-sunrise"); - assertRegistrarExists("myclientid-2", "myclientid-landrush"); assertRegistrarExists("myclientid-3", "myclientid-ga"); assertRegistrarExists("myclientid-4", "myclientid-ga"); assertRegistrarExists("myclientid-5", "myclientid-eap"); assertContactExists("myclientid-1", "email@example.com"); - assertContactExists("myclientid-2", "email@example.com"); assertContactExists("myclientid-3", "email@example.com"); assertContactExists("myclientid-4", "email@example.com"); assertContactExists("myclientid-5", "email@example.com"); @@ -142,26 +141,21 @@ public final class OteAccountBuilderTest { .buildAndPersist(); assertTldExists("myclientid-sunrise", TldState.START_DATE_SUNRISE); - assertTldExists("myclientid-landrush", TldState.LANDRUSH); - assertTldExistsGa("myclientid-ga", Money.of(USD, 0)); + assertTldExistsGa("myclientid-ga", Money.zero(USD)); assertTldExistsGa("myclientid-eap", Money.of(USD, 100)); assertRegistrarExists("myclientid-1", "myclientid-sunrise"); - assertRegistrarExists("myclientid-2", "myclientid-landrush"); assertRegistrarExists("myclientid-3", "myclientid-ga"); assertRegistrarExists("myclientid-4", "myclientid-ga"); assertRegistrarExists("myclientid-5", "myclientid-eap"); assertContactExists("myclientid-1", "email@example.com"); - assertContactExists("myclientid-2", "email@example.com"); assertContactExists("myclientid-3", "email@example.com"); assertContactExists("myclientid-4", "email@example.com"); assertContactExists("myclientid-5", "email@example.com"); assertContactExists("myclientid-1", "other@example.com"); - assertContactExists("myclientid-2", "other@example.com"); assertContactExists("myclientid-3", "other@example.com"); assertContactExists("myclientid-4", "other@example.com"); assertContactExists("myclientid-5", "other@example.com"); assertContactExists("myclientid-1", "someone@example.com"); - assertContactExists("myclientid-2", "someone@example.com"); assertContactExists("myclientid-3", "someone@example.com"); assertContactExists("myclientid-4", "someone@example.com"); assertContactExists("myclientid-5", "someone@example.com"); @@ -244,8 +238,7 @@ public final class OteAccountBuilderTest { @Test public void testCreateOteEntities_entityExists_failsWhenNotReplaceExisting() { - DatastoreHelper.persistSimpleResource( - AppEngineRule.makeRegistrar1().asBuilder().setClientId("myclientid-1").build()); + persistSimpleResource(makeRegistrar1().asBuilder().setClientId("myclientid-1").build()); OteAccountBuilder oteSetupHelper = OteAccountBuilder.forClientId("myclientid"); assertThat(assertThrows(IllegalStateException.class, () -> oteSetupHelper.buildAndPersist())) @@ -255,14 +248,14 @@ public final class OteAccountBuilderTest { @Test public void testCreateOteEntities_entityExists_succeedsWhenReplaceExisting() { - DatastoreHelper.persistSimpleResource( - AppEngineRule.makeRegistrar1().asBuilder().setClientId("myclientid-1").build()); - DatastoreHelper.createTld("myclientid-landrush", Registry.TldState.SUNRUSH); + persistSimpleResource(makeRegistrar1().asBuilder().setClientId("myclientid-4").build()); + createTld("myclientid-ga", GENERAL_AVAILABILITY); OteAccountBuilder.forClientId("myclientid").setReplaceExisting(true).buildAndPersist(); - assertTldExists("myclientid-landrush", TldState.LANDRUSH); + assertTldExistsGa("myclientid-ga", Money.zero(USD)); assertRegistrarExists("myclientid-3", "myclientid-ga"); + assertRegistrarExists("myclientid-4", "myclientid-ga"); } @Test @@ -305,7 +298,6 @@ public final class OteAccountBuilderTest { assertThat(OteAccountBuilder.createClientIdToTldMap("myclientid")) .containsExactly( "myclientid-1", "myclientid-sunrise", - "myclientid-2", "myclientid-landrush", "myclientid-3", "myclientid-ga", "myclientid-4", "myclientid-ga", "myclientid-5", "myclientid-eap"); diff --git a/javatests/google/registry/model/OteStatsTest.java b/javatests/google/registry/model/OteStatsTest.java index cf0a8724e..6af75bdcb 100644 --- a/javatests/google/registry/model/OteStatsTest.java +++ b/javatests/google/registry/model/OteStatsTest.java @@ -65,11 +65,6 @@ public final class OteStatsTest { + "contact transfer rejects: 0\n" + "contact transfer requests: 0\n" + "contact updates: 0\n" - + "domain application creates: 0\n" - + "domain application creates landrush: 0\n" - + "domain application creates sunrise: 0\n" - + "domain application deletes: 0\n" - + "domain application updates: 0\n" + "domain autorenews: 0\n" + "domain creates: 5\n" + "domain creates ascii: 4\n" @@ -111,11 +106,6 @@ public final class OteStatsTest { + "contact transfer rejects: 0\n" + "contact transfer requests: 0\n" + "contact updates: 0\n" - + "domain application creates: 0\n" - + "domain application creates landrush: 0\n" - + "domain application creates sunrise: 0\n" - + "domain application deletes: 0\n" - + "domain application updates: 0\n" + "domain autorenews: 0\n" + "domain creates: 5\n" + "domain creates ascii: 4\n" diff --git a/javatests/google/registry/model/OteStatsTestHelper.java b/javatests/google/registry/model/OteStatsTestHelper.java index 410e6c111..6af145dd9 100644 --- a/javatests/google/registry/model/OteStatsTestHelper.java +++ b/javatests/google/registry/model/OteStatsTestHelper.java @@ -72,7 +72,7 @@ public final class OteStatsTestHelper { .build()); persistResource( new HistoryEntry.Builder() - .setClientId("blobio-2") + .setClientId("blobio-3") .setType(Type.DOMAIN_DELETE) .setXmlBytes(getBytes("domain_delete.xml")) .build()); @@ -109,13 +109,13 @@ public final class OteStatsTestHelper { .build()); persistResource( new HistoryEntry.Builder() - .setClientId("blobio-1") + .setClientId("blobio-4") .setType(Type.DOMAIN_UPDATE) .setXmlBytes(getBytes("domain_update_with_secdns.xml")) .build()); persistResource( new HistoryEntry.Builder() - .setClientId("blobio-1") + .setClientId("blobio-5") .setType(Type.HOST_CREATE) .setXmlBytes(getBytes("host_create_complete.xml")) .build()); diff --git a/javatests/google/registry/model/domain/DomainApplicationTest.java b/javatests/google/registry/model/domain/DomainApplicationTest.java deleted file mode 100644 index e39ccb794..000000000 --- a/javatests/google/registry/model/domain/DomainApplicationTest.java +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.model.domain; - -import static com.google.common.truth.Truth.assertThat; -import static com.google.common.truth.Truth8.assertThat; -import static google.registry.model.EppResourceUtils.loadDomainApplication; -import static google.registry.testing.DatastoreHelper.cloneAndSetAutoTimestamps; -import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.newDomainApplication; -import static google.registry.testing.DatastoreHelper.newHostResource; -import static google.registry.testing.DatastoreHelper.persistActiveContact; -import static google.registry.testing.DatastoreHelper.persistActiveHost; -import static google.registry.testing.DatastoreHelper.persistResource; -import static google.registry.util.DateTimeUtils.START_OF_TIME; -import static org.joda.money.CurrencyUnit.USD; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; -import com.googlecode.objectify.Key; -import google.registry.model.EntityTestCase; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.model.domain.launch.LaunchNotice; -import google.registry.model.domain.launch.LaunchPhase; -import google.registry.model.domain.secdns.DelegationSignerData; -import google.registry.model.eppcommon.AuthInfo.PasswordAuth; -import google.registry.model.eppcommon.StatusValue; -import google.registry.model.eppcommon.Trid; -import google.registry.model.smd.EncodedSignedMark; -import org.joda.money.Money; -import org.junit.Before; -import org.junit.Test; - -/** Unit tests for {@link DomainApplication}. */ -public class DomainApplicationTest extends EntityTestCase { - - DomainApplication domainApplication; - - @Before - public void setUp() { - createTld("com"); - // Set up a new persisted domain application entity. - domainApplication = persistResource(cloneAndSetAutoTimestamps( - new DomainApplication.Builder() - .setFullyQualifiedDomainName("example.com") - .setRepoId("1-COM") - .setCreationClientId("a registrar") - .setLastEppUpdateTime(clock.nowUtc()) - .setLastEppUpdateClientId("another registrar") - .setStatusValues(ImmutableSet.of( - StatusValue.CLIENT_DELETE_PROHIBITED, - StatusValue.SERVER_DELETE_PROHIBITED, - StatusValue.SERVER_TRANSFER_PROHIBITED, - StatusValue.SERVER_UPDATE_PROHIBITED, - StatusValue.SERVER_RENEW_PROHIBITED, - StatusValue.SERVER_HOLD)) - .setRegistrant(Key.create(persistActiveContact("contact_id1"))) - .setContacts(ImmutableSet.of(DesignatedContact.create( - DesignatedContact.Type.ADMIN, - Key.create(persistActiveContact("contact_id2"))))) - .setNameservers( - ImmutableSet.of(Key.create(persistActiveHost("ns1.example.com")))) - .setPersistedCurrentSponsorClientId("a third registrar") - .setAuthInfo(DomainAuthInfo.create(PasswordAuth.create("password"))) - .setDsData(ImmutableSet.of(DelegationSignerData.create(1, 2, 3, new byte[] {0, 1, 2}))) - .setLaunchNotice( - LaunchNotice.create("tcnid", "validatorId", START_OF_TIME, START_OF_TIME)) - .setCreationTrid(Trid.create("client-creation-trid", "server-trid")) - .setPhase(LaunchPhase.LANDRUSH) - .setPeriod(Period.create(5, Period.Unit.YEARS)) - .setEncodedSignedMarks(ImmutableList.of(EncodedSignedMark.create("base64", "abcdefg="))) - .setApplicationStatus(ApplicationStatus.ALLOCATED) - .setAuctionPrice(Money.of(USD, 11)) - .build())); - } - - @Test - public void testPersistence() { - assertThat(loadDomainApplication(domainApplication.getForeignKey(), clock.nowUtc())) - .hasValue(domainApplication); - } - - @Test - public void testIndexing() throws Exception { - domainApplication = persistResource( - domainApplication.asBuilder().setPeriod(Period.create(5, Period.Unit.YEARS)).build()); - verifyIndexing( - domainApplication, - "allContacts.contact", - "fullyQualifiedDomainName", - "nsHosts", - "deletionTime", - "currentSponsorClientId", - "tld"); - } - - private DomainApplication.Builder emptyBuilder() { - return newDomainApplication("example.com").asBuilder(); - } - - @Test - public void testEmptyStringsBecomeNull() { - assertThat(emptyBuilder().setPersistedCurrentSponsorClientId(null).build() - .getCurrentSponsorClientId()).isNull(); - assertThat(emptyBuilder().setPersistedCurrentSponsorClientId("").build() - .getCurrentSponsorClientId()).isNull(); - assertThat(emptyBuilder().setPersistedCurrentSponsorClientId(" ").build() - .getCurrentSponsorClientId()).isNotNull(); - } - - @Test - public void testEmptySetsAndArraysBecomeNull() { - assertThat(emptyBuilder().setNameservers(ImmutableSet.of()).build().nsHosts).isNull(); - assertThat( - emptyBuilder() - .setNameservers(ImmutableSet.of(Key.create(newHostResource("foo.example.tld")))) - .build() - .nsHosts) - .isNotNull(); - // This behavior should also hold true for ImmutableObjects nested in collections. - assertThat(emptyBuilder() - .setDsData(ImmutableSet.of(DelegationSignerData.create(1, 1, 1, null))) - .build() - .getDsData().asList().get(0).getDigest()) - .isNull(); - assertThat(emptyBuilder() - .setDsData(ImmutableSet.of(DelegationSignerData.create(1, 1, 1, new byte[]{}))) - .build() - .getDsData().asList().get(0).getDigest()) - .isNull(); - assertThat(emptyBuilder() - .setDsData(ImmutableSet.of(DelegationSignerData.create(1, 1, 1, new byte[]{1}))) - .build() - .getDsData().asList().get(0).getDigest()) - .isNotNull(); - } - - @Test - public void testToHydratedString_notCircular() { - // If there are circular references, this will overflow the stack. - domainApplication.toHydratedString(); - } -} diff --git a/javatests/google/registry/model/domain/DomainCommandTest.java b/javatests/google/registry/model/domain/DomainCommandTest.java index 1a3d3b986..c6892de43 100644 --- a/javatests/google/registry/model/domain/DomainCommandTest.java +++ b/javatests/google/registry/model/domain/DomainCommandTest.java @@ -57,11 +57,6 @@ public class DomainCommandTest extends ResourceCommandTestCase { doXmlRoundtripTest("domain_create_sunrise_encoded_signed_mark.xml"); } - @Test - public void testCreate_landrush() throws Exception { - doXmlRoundtripTest("domain_create_landrush.xml"); - } - @Test public void testCreate_fee() throws Exception { doXmlRoundtripTest("domain_create_fee.xml"); @@ -158,16 +153,6 @@ public class DomainCommandTest extends ResourceCommandTestCase { doXmlRoundtripTest("domain_info_sunrise.xml"); } - @Test - public void testInfo_landrush() throws Exception { - doXmlRoundtripTest("domain_info_landrush.xml"); - } - - @Test - public void testInfo_sunriseNoApplicationId() throws Exception { - doXmlRoundtripTest("domain_info_sunrise_no_application_id.xml"); - } - @Test public void testInfo_feeExtension() throws Exception { doXmlRoundtripTest("domain_info_fee.xml"); diff --git a/javatests/google/registry/model/domain/DomainResourceTest.java b/javatests/google/registry/model/domain/DomainResourceTest.java index 7a1e2b464..c24311320 100644 --- a/javatests/google/registry/model/domain/DomainResourceTest.java +++ b/javatests/google/registry/model/domain/DomainResourceTest.java @@ -60,6 +60,7 @@ import org.junit.Test; /** Unit tests for {@link DomainResource}. */ public class DomainResourceTest extends EntityTestCase { + DomainResource domain; @Before @@ -141,8 +142,6 @@ public class DomainResourceTest extends EntityTestCase { .setAutorenewBillingEvent(recurringBillKey) .setAutorenewPollMessage(autorenewPollKey) .setSmdId("smdid") - .setApplicationTime(START_OF_TIME) - .setApplication(Key.create(DomainApplication.class, 1)) .addGracePeriod( GracePeriod.create( GracePeriodStatus.ADD, clock.nowUtc().plusDays(1), "registrar", null)) diff --git a/javatests/google/registry/model/domain/GracePeriodTest.java b/javatests/google/registry/model/domain/GracePeriodTest.java index cc002c83c..70d10093f 100644 --- a/javatests/google/registry/model/domain/GracePeriodTest.java +++ b/javatests/google/registry/model/domain/GracePeriodTest.java @@ -67,17 +67,9 @@ public class GracePeriodTest { assertThat(gracePeriod.getRecurringBillingEvent()).isNull(); assertThat(gracePeriod.getClientId()).isEqualTo("TheRegistrar"); assertThat(gracePeriod.getExpirationTime()).isEqualTo(now.plusDays(1)); - assertThat(gracePeriod.isSunrushAddGracePeriod()).isFalse(); assertThat(gracePeriod.hasBillingEvent()).isTrue(); } - @Test - public void testSuccess_forBillingEvent_sunrushAdd() { - GracePeriod gracePeriod = GracePeriod.forBillingEvent(GracePeriodStatus.SUNRUSH_ADD, onetime); - assertThat(gracePeriod.getType()).isEqualTo(GracePeriodStatus.ADD); - assertThat(gracePeriod.isSunrushAddGracePeriod()).isTrue(); - } - @Test public void testSuccess_createWithoutBillingEvent() { GracePeriod gracePeriod = GracePeriod.createWithoutBillingEvent( diff --git a/javatests/google/registry/model/domain/testdata/domain_create_landrush.xml b/javatests/google/registry/model/domain/testdata/domain_create_landrush.xml deleted file mode 100644 index 255cae8ce..000000000 --- a/javatests/google/registry/model/domain/testdata/domain_create_landrush.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - example.tld - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - landrush - - - ABC-12345 - - diff --git a/javatests/google/registry/model/domain/testdata/domain_info_landrush.xml b/javatests/google/registry/model/domain/testdata/domain_info_landrush.xml deleted file mode 100644 index 0cccb9678..000000000 --- a/javatests/google/registry/model/domain/testdata/domain_info_landrush.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - example.tld - - - - - landrush - 123 - - - ABC-12345 - - diff --git a/javatests/google/registry/model/domain/testdata/domain_info_sunrise.xml b/javatests/google/registry/model/domain/testdata/domain_info_sunrise.xml index 5161e4c29..83a8a0eef 100644 --- a/javatests/google/registry/model/domain/testdata/domain_info_sunrise.xml +++ b/javatests/google/registry/model/domain/testdata/domain_info_sunrise.xml @@ -1,19 +1,19 @@ - - - example.tld - - - - - sunrise - 123 - - - ABC-12345 + + + example.tld + + + + + sunrise + + + ABC-12345 diff --git a/javatests/google/registry/model/domain/testdata/domain_info_sunrise_no_application_id.xml b/javatests/google/registry/model/domain/testdata/domain_info_sunrise_no_application_id.xml deleted file mode 100644 index 469b8bfdc..000000000 --- a/javatests/google/registry/model/domain/testdata/domain_info_sunrise_no_application_id.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - example.tld - - - - - sunrise - - - ABC-12345 - - diff --git a/javatests/google/registry/model/index/DomainApplicationIndexTest.java b/javatests/google/registry/model/index/DomainApplicationIndexTest.java deleted file mode 100644 index 64671bf8b..000000000 --- a/javatests/google/registry/model/index/DomainApplicationIndexTest.java +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.model.index; - -import static com.google.common.truth.Truth.assertThat; -import static google.registry.model.index.DomainApplicationIndex.createUpdatedInstance; -import static google.registry.model.index.DomainApplicationIndex.createWithSpecifiedKeys; -import static google.registry.model.index.DomainApplicationIndex.loadActiveApplicationsByDomainName; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.newDomainApplication; -import static google.registry.testing.DatastoreHelper.persistResource; -import static google.registry.testing.DatastoreHelper.persistSimpleResource; -import static google.registry.testing.JUnitBackports.assertThrows; -import static org.joda.time.DateTimeZone.UTC; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; -import com.googlecode.objectify.Key; -import google.registry.model.EntityTestCase; -import google.registry.model.domain.DomainApplication; -import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Test; - -/** Unit tests for {@link DomainApplicationIndex}. */ -public class DomainApplicationIndexTest extends EntityTestCase { - @Before - public void init() { - createTld("com"); - } - - @Test - public void testFailure_create_nullReferences() { - IllegalArgumentException thrown = - assertThrows( - IllegalArgumentException.class, - () -> DomainApplicationIndex.createWithSpecifiedKeys("blah.com", null)); - assertThat(thrown).hasMessageThat().contains("Keys must not be null or empty."); - } - - @Test - public void testFailure_create_emptyReferences() { - IllegalArgumentException thrown = - assertThrows( - IllegalArgumentException.class, - () -> createWithSpecifiedKeys("blah.com", ImmutableSet.of())); - assertThat(thrown).hasMessageThat().contains("Keys must not be null or empty."); - } - - @Test - public void testSuccess_singleApplication() { - DomainApplication application = persistSimpleResource(newDomainApplication("example.com")); - persistResource(createUpdatedInstance(application)); - DomainApplicationIndex savedIndex = DomainApplicationIndex.load("example.com"); - assertThat(savedIndex).isNotNull(); - assertThat(savedIndex.getKeys()).containsExactly(Key.create(application)); - assertThat(loadActiveApplicationsByDomainName("example.com", clock.nowUtc())) - .containsExactly(application); - } - - @Test - public void testSuccess_noApplications() { - assertThat(DomainApplicationIndex.load("example.com")).isNull(); - assertThat(loadActiveApplicationsByDomainName("example.com", clock.nowUtc())).isEmpty(); - } - - @Test - public void testSuccess_multipleApplications() { - DomainApplication application1 = persistSimpleResource(newDomainApplication("example.com")); - DomainApplication application2 = persistSimpleResource(newDomainApplication("example.com")); - DomainApplication application3 = persistSimpleResource(newDomainApplication("example.com")); - persistResource(createUpdatedInstance(application1)); - persistResource(createUpdatedInstance(application2)); - persistResource(createUpdatedInstance(application3)); - DomainApplicationIndex savedIndex = DomainApplicationIndex.load("example.com"); - assertThat(savedIndex).isNotNull(); - assertThat(savedIndex.getKeys()).containsExactly( - Key.create(application1), Key.create(application2), Key.create(application3)); - assertThat(loadActiveApplicationsByDomainName("example.com", clock.nowUtc())) - .containsExactly(application1, application2, application3); - } - - @Test - public void testSuccess_doesntStoreSameApplicationMultipleTimes() { - DomainApplication application1 = persistSimpleResource(newDomainApplication("example.com")); - DomainApplication application2 = persistSimpleResource(newDomainApplication("example.com")); - persistResource(createUpdatedInstance(application1)); - persistResource(createUpdatedInstance(application2)); - persistResource(createUpdatedInstance(application1)); - assertThat(loadActiveApplicationsByDomainName("example.com", clock.nowUtc())) - .containsExactly(application1, application2); - } - - @Test - public void testSuccess_doesntIncludePastApplications() { - DomainApplication application1 = persistSimpleResource(newDomainApplication("example.com")); - DomainApplication application2 = - persistSimpleResource( - newDomainApplication("example.com") - .asBuilder() - .setDeletionTime(DateTime.now(UTC).minusDays(30)) - .build()); - persistResource(createUpdatedInstance(application1)); - persistResource(createUpdatedInstance(application2)); - DomainApplicationIndex savedIndex = - DomainApplicationIndex.load(application1.getFullyQualifiedDomainName()); - assertThat(savedIndex.getKeys()).hasSize(2); - assertThat(loadActiveApplicationsByDomainName("example.com", DateTime.now(UTC))) - .containsExactly(application1); - } - - /** Ensure loading over 25 applications still succeeds (despite being in a transaction.) */ - @Test - public void testSuccess_overCrossTransactionLimit() { - final ImmutableList.Builder applicationsBuilder = - new ImmutableList.Builder<>(); - for (int i = 0; i < 30; i++) { - DomainApplication application = persistSimpleResource(newDomainApplication("example.com")); - persistResource(createUpdatedInstance(application)); - applicationsBuilder.add(application); - } - ofy() - .transact( - () -> { - assertThat(DomainApplicationIndex.load("example.com")).isNotNull(); - assertThat(loadActiveApplicationsByDomainName("example.com", clock.nowUtc())) - .containsExactlyElementsIn(applicationsBuilder.build()); - }); - } -} diff --git a/javatests/google/registry/model/registry/RegistryTest.java b/javatests/google/registry/model/registry/RegistryTest.java index b9abede29..4dcbef58f 100644 --- a/javatests/google/registry/model/registry/RegistryTest.java +++ b/javatests/google/registry/model/registry/RegistryTest.java @@ -19,6 +19,10 @@ import static com.google.common.truth.Truth.assertWithMessage; import static com.google.common.truth.Truth8.assertThat; import static google.registry.model.common.EntityGroupRoot.getCrossTldKey; import static google.registry.model.ofy.ObjectifyService.ofy; +import static google.registry.model.registry.Registry.TldState.GENERAL_AVAILABILITY; +import static google.registry.model.registry.Registry.TldState.PREDELEGATION; +import static google.registry.model.registry.Registry.TldState.QUIET_PERIOD; +import static google.registry.model.registry.Registry.TldState.START_DATE_SUNRISE; import static google.registry.testing.DatastoreHelper.createTld; import static google.registry.testing.DatastoreHelper.newRegistry; import static google.registry.testing.DatastoreHelper.persistPremiumList; @@ -216,65 +220,51 @@ public class RegistryTest extends EntityTestCase { Registry registry = Registry.get("tld").asBuilder() .setTldStateTransitions(ImmutableSortedMap.of(START_OF_TIME, TldState.PDT)) .build(); - assertThat(registry.getTldState(START_OF_TIME)).isEqualTo(TldState.GENERAL_AVAILABILITY); + assertThat(registry.getTldState(START_OF_TIME)).isEqualTo(GENERAL_AVAILABILITY); } @Test public void testTldStateTransitionTimes() { - Registry registry = Registry.get("tld").asBuilder() - .setTldStateTransitions(ImmutableSortedMap.naturalOrder() - .put(START_OF_TIME, TldState.PREDELEGATION) - .put(clock.nowUtc().plusMonths(1), TldState.SUNRISE) - .put(clock.nowUtc().plusMonths(2), TldState.SUNRUSH) - .put(clock.nowUtc().plusMonths(3), TldState.LANDRUSH) - .put(clock.nowUtc().plusMonths(4), TldState.QUIET_PERIOD) - .put(clock.nowUtc().plusMonths(5), TldState.GENERAL_AVAILABILITY) - .build()) - .build(); - assertThat(registry.getTldState(clock.nowUtc())).isEqualTo(TldState.PREDELEGATION); - assertThat(registry.getTldState(clock.nowUtc().plusMillis(1))) - .isEqualTo(TldState.PREDELEGATION); + Registry registry = + Registry.get("tld") + .asBuilder() + .setTldStateTransitions( + ImmutableSortedMap.naturalOrder() + .put(START_OF_TIME, PREDELEGATION) + .put(clock.nowUtc().plusMonths(1), START_DATE_SUNRISE) + .put(clock.nowUtc().plusMonths(2), QUIET_PERIOD) + .put(clock.nowUtc().plusMonths(3), GENERAL_AVAILABILITY) + .build()) + .build(); + assertThat(registry.getTldState(clock.nowUtc())).isEqualTo(PREDELEGATION); + assertThat(registry.getTldState(clock.nowUtc().plusMillis(1))).isEqualTo(PREDELEGATION); assertThat(registry.getTldState(clock.nowUtc().plusMonths(1).minusMillis(1))) - .isEqualTo(TldState.PREDELEGATION); - assertThat(registry.getTldState(clock.nowUtc().plusMonths(1))).isEqualTo(TldState.SUNRISE); + .isEqualTo(PREDELEGATION); + assertThat(registry.getTldState(clock.nowUtc().plusMonths(1))).isEqualTo(START_DATE_SUNRISE); assertThat(registry.getTldState(clock.nowUtc().plusMonths(1).plusMillis(1))) - .isEqualTo(TldState.SUNRISE); + .isEqualTo(START_DATE_SUNRISE); assertThat(registry.getTldState(clock.nowUtc().plusMonths(2).minusMillis(1))) - .isEqualTo(TldState.SUNRISE); - assertThat(registry.getTldState(clock.nowUtc().plusMonths(2))).isEqualTo(TldState.SUNRUSH); + .isEqualTo(START_DATE_SUNRISE); + assertThat(registry.getTldState(clock.nowUtc().plusMonths(2))).isEqualTo(QUIET_PERIOD); assertThat(registry.getTldState(clock.nowUtc().plusMonths(2).plusMillis(1))) - .isEqualTo(TldState.SUNRUSH); + .isEqualTo(QUIET_PERIOD); assertThat(registry.getTldState(clock.nowUtc().plusMonths(3).minusMillis(1))) - .isEqualTo(TldState.SUNRUSH); - assertThat(registry.getTldState(clock.nowUtc().plusMonths(3))).isEqualTo(TldState.LANDRUSH); + .isEqualTo(QUIET_PERIOD); + assertThat(registry.getTldState(clock.nowUtc().plusMonths(3))).isEqualTo(GENERAL_AVAILABILITY); assertThat(registry.getTldState(clock.nowUtc().plusMonths(3).plusMillis(1))) - .isEqualTo(TldState.LANDRUSH); - assertThat(registry.getTldState(clock.nowUtc().plusMonths(4).minusMillis(1))) - .isEqualTo(TldState.LANDRUSH); - assertThat(registry.getTldState(clock.nowUtc().plusMonths(4))) - .isEqualTo(TldState.QUIET_PERIOD); - assertThat(registry.getTldState(clock.nowUtc().plusMonths(4).plusMillis(1))) - .isEqualTo(TldState.QUIET_PERIOD); - assertThat(registry.getTldState(clock.nowUtc().plusMonths(5).minusMillis(1))) - .isEqualTo(TldState.QUIET_PERIOD); - assertThat(registry.getTldState(clock.nowUtc().plusMonths(5))) - .isEqualTo(TldState.GENERAL_AVAILABILITY); - assertThat(registry.getTldState(clock.nowUtc().plusMonths(5).plusMillis(1))) - .isEqualTo(TldState.GENERAL_AVAILABILITY); - assertThat(registry.getTldState(END_OF_TIME)).isEqualTo(TldState.GENERAL_AVAILABILITY); + .isEqualTo(GENERAL_AVAILABILITY); + assertThat(registry.getTldState(END_OF_TIME)).isEqualTo(GENERAL_AVAILABILITY); } @Test public void testQuietPeriodCanAppearMultipleTimesAnywhere() { Registry.get("tld").asBuilder() .setTldStateTransitions(ImmutableSortedMap.naturalOrder() - .put(START_OF_TIME, TldState.PREDELEGATION) - .put(clock.nowUtc().plusMonths(1), TldState.QUIET_PERIOD) - .put(clock.nowUtc().plusMonths(2), TldState.SUNRISE) - .put(clock.nowUtc().plusMonths(3), TldState.QUIET_PERIOD) - .put(clock.nowUtc().plusMonths(4), TldState.LANDRUSH) - .put(clock.nowUtc().plusMonths(5), TldState.QUIET_PERIOD) - .put(clock.nowUtc().plusMonths(6), TldState.GENERAL_AVAILABILITY) + .put(START_OF_TIME, PREDELEGATION) + .put(clock.nowUtc().plusMonths(1), QUIET_PERIOD) + .put(clock.nowUtc().plusMonths(2), START_DATE_SUNRISE) + .put(clock.nowUtc().plusMonths(3), QUIET_PERIOD) + .put(clock.nowUtc().plusMonths(6), GENERAL_AVAILABILITY) .build()) .build(); } @@ -366,10 +356,8 @@ public class RegistryTest extends EntityTestCase { .asBuilder() .setTldStateTransitions( ImmutableSortedMap.of( - clock.nowUtc(), - TldState.SUNRUSH, - clock.nowUtc().plusMonths(1), - TldState.SUNRISE)) + clock.nowUtc(), GENERAL_AVAILABILITY, + clock.nowUtc().plusMonths(1), START_DATE_SUNRISE)) .build()); } @@ -382,10 +370,8 @@ public class RegistryTest extends EntityTestCase { .asBuilder() .setTldStateTransitions( ImmutableSortedMap.of( - clock.nowUtc(), - TldState.SUNRUSH, - clock.nowUtc().plusMonths(1), - TldState.SUNRUSH)) + clock.nowUtc(), START_DATE_SUNRISE, + clock.nowUtc().plusMonths(1), START_DATE_SUNRISE)) .build()); } diff --git a/javatests/google/registry/model/testdata/schema.txt b/javatests/google/registry/model/testdata/schema.txt index 7f0c4f045..4fa328912 100644 --- a/javatests/google/registry/model/testdata/schema.txt +++ b/javatests/google/registry/model/testdata/schema.txt @@ -157,32 +157,6 @@ enum google.registry.model.domain.DesignatedContact$Type { REGISTRANT; TECH; } -class google.registry.model.domain.DomainApplication { - @Id java.lang.String repoId; - com.google.common.collect.ImmutableSortedMap> revisions; - google.registry.model.CreateAutoTimestamp creationTime; - google.registry.model.UpdateAutoTimestamp updateTimestamp; - google.registry.model.domain.DomainAuthInfo authInfo; - google.registry.model.domain.Period period; - google.registry.model.domain.launch.ApplicationStatus applicationStatus; - google.registry.model.domain.launch.LaunchNotice launchNotice; - google.registry.model.domain.launch.LaunchPhase phase; - google.registry.model.eppcommon.Trid creationTrid; - java.lang.String creationClientId; - java.lang.String currentSponsorClientId; - java.lang.String fullyQualifiedDomainName; - java.lang.String idnTableName; - java.lang.String lastEppUpdateClientId; - java.lang.String tld; - java.util.List encodedSignedMarks; - java.util.Set> nsHosts; - java.util.Set allContacts; - java.util.Set dsData; - java.util.Set status; - org.joda.money.Money auctionPrice; - org.joda.time.DateTime deletionTime; - org.joda.time.DateTime lastEppUpdateTime; -} class google.registry.model.domain.DomainAuthInfo { google.registry.model.eppcommon.AuthInfo$PasswordAuth pw; } @@ -210,7 +184,6 @@ class google.registry.model.domain.DomainResource { @Id java.lang.String repoId; com.google.common.collect.ImmutableSortedMap> revisions; com.googlecode.objectify.Key autorenewBillingEvent; - com.googlecode.objectify.Key application; com.googlecode.objectify.Key autorenewPollMessage; com.googlecode.objectify.Key deletePollMessage; google.registry.model.CreateAutoTimestamp creationTime; @@ -231,7 +204,6 @@ class google.registry.model.domain.DomainResource { java.util.Set dsData; java.util.Set status; java.util.Set subordinateHosts; - org.joda.time.DateTime applicationTime; org.joda.time.DateTime deletionTime; org.joda.time.DateTime lastEppUpdateTime; org.joda.time.DateTime lastTransferTime; @@ -252,20 +224,6 @@ enum google.registry.model.domain.Period$Unit { MONTHS; YEARS; } -enum google.registry.model.domain.launch.ApplicationStatus { - ALLOCATED; - INVALID; - PENDING_ALLOCATION; - PENDING_VALIDATION; - REJECTED; - VALIDATED; -} -class google.registry.model.domain.launch.LaunchInfoResponseExtension { - google.registry.model.domain.launch.ApplicationStatus applicationStatus; - google.registry.model.domain.launch.LaunchPhase phase; - java.lang.String applicationId; - java.util.List marks; -} class google.registry.model.domain.launch.LaunchNotice { google.registry.model.domain.launch.LaunchNotice$NoticeIdType noticeId; org.joda.time.DateTime acceptedTime; @@ -275,10 +233,6 @@ class google.registry.model.domain.launch.LaunchNotice$NoticeIdType { java.lang.String tcnId; java.lang.String validatorId; } -class google.registry.model.domain.launch.LaunchPhase { - java.lang.String phase; - java.lang.String subphase; -} enum google.registry.model.domain.rgp.GracePeriodStatus { ADD; AUTO_RENEW; @@ -286,7 +240,6 @@ enum google.registry.model.domain.rgp.GracePeriodStatus { PENDING_RESTORE; REDEMPTION; RENEW; - SUNRUSH_ADD; TRANSFER; } class google.registry.model.domain.secdns.DelegationSignerData { @@ -349,11 +302,6 @@ class google.registry.model.host.HostResource { org.joda.time.DateTime lastSuperordinateChange; org.joda.time.DateTime lastTransferTime; } -class google.registry.model.index.DomainApplicationIndex { - @Id java.lang.String fullyQualifiedDomainName; - google.registry.model.UpdateAutoTimestamp updateTimestamp; - java.util.Set> references; -} class google.registry.model.index.EppResourceIndex { @Id java.lang.String id; @Parent com.googlecode.objectify.Key bucket; @@ -382,96 +330,6 @@ class google.registry.model.index.ForeignKeyIndex$ForeignKeyHostIndex { google.registry.model.UpdateAutoTimestamp updateTimestamp; org.joda.time.DateTime deletionTime; } -class google.registry.model.mark.CourtMark { - java.lang.String countryCode; - java.lang.String courtName; - java.lang.String goodsAndServices; - java.lang.String id; - java.lang.String markName; - java.lang.String referenceNumber; - java.util.List contacts; - java.util.List markHolders; - java.util.List labels; - java.util.List regions; - org.joda.time.DateTime protectionDate; -} -class google.registry.model.mark.Mark { - java.util.List courtMarks; - java.util.List trademarks; - java.util.List treatyOrStatuteMarks; -} -class google.registry.model.mark.MarkAddress { - java.lang.String city; - java.lang.String countryCode; - java.lang.String state; - java.lang.String zip; - java.util.List street; -} -class google.registry.model.mark.MarkContact { - google.registry.model.mark.MarkAddress address; - google.registry.model.mark.MarkContact$ContactType type; - google.registry.model.mark.MarkPhoneNumber fax; - google.registry.model.mark.MarkPhoneNumber voice; - java.lang.String email; - java.lang.String name; - java.lang.String organization; -} -enum google.registry.model.mark.MarkContact$ContactType { - AGENT; - OWNER; - THIRD_PARTY; -} -class google.registry.model.mark.MarkHolder { - google.registry.model.mark.MarkAddress address; - google.registry.model.mark.MarkHolder$EntitlementType entitlement; - google.registry.model.mark.MarkPhoneNumber fax; - google.registry.model.mark.MarkPhoneNumber voice; - java.lang.String email; - java.lang.String name; - java.lang.String organization; -} -enum google.registry.model.mark.MarkHolder$EntitlementType { - ASSIGNEE; - LICENSEE; - OWNER; -} -class google.registry.model.mark.MarkPhoneNumber { - java.lang.String extension; - java.lang.String phoneNumber; -} -class google.registry.model.mark.MarkProtection { - java.lang.String countryCode; - java.lang.String region; - java.util.List rulingCountryCodes; -} -class google.registry.model.mark.Trademark { - java.lang.String applicationId; - java.lang.String goodsAndServices; - java.lang.String id; - java.lang.String jurisdiction; - java.lang.String markName; - java.lang.String registrationNumber; - java.util.List contacts; - java.util.List markHolders; - java.util.List markClasses; - java.util.List labels; - org.joda.time.DateTime applicationDate; - org.joda.time.DateTime expirationDate; - org.joda.time.DateTime registrationDate; -} -class google.registry.model.mark.TreatyOrStatuteMark { - java.lang.String goodsAndServices; - java.lang.String id; - java.lang.String markName; - java.lang.String referenceNumber; - java.lang.String title; - java.util.List contacts; - java.util.List markHolders; - java.util.List markProtections; - java.util.List labels; - org.joda.time.DateTime executionDate; - org.joda.time.DateTime protectionDate; -} class google.registry.model.ofy.CommitLogBucket { @Id long bucketNum; org.joda.time.DateTime lastWrittenTime; @@ -533,7 +391,6 @@ class google.registry.model.poll.PollMessage$Autorenew { class google.registry.model.poll.PollMessage$OneTime { @Id long id; @Parent com.googlecode.objectify.Key parent; - google.registry.model.domain.launch.LaunchInfoResponseExtension launchInfoResponseExtension; java.lang.String clientId; java.lang.String msg; java.util.List contactPendingActionNotificationResponses; @@ -664,7 +521,6 @@ class google.registry.model.registry.Registry { org.joda.time.Duration pendingDeleteLength; org.joda.time.Duration redemptionGracePeriodLength; org.joda.time.Duration renewGracePeriodLength; - org.joda.time.Duration sunrushAddGracePeriodLength; org.joda.time.Duration transferGracePeriodLength; } class google.registry.model.registry.Registry$BillingCostTransition { @@ -673,13 +529,10 @@ class google.registry.model.registry.Registry$BillingCostTransition { } enum google.registry.model.registry.Registry$TldState { GENERAL_AVAILABILITY; - LANDRUSH; PDT; PREDELEGATION; QUIET_PERIOD; START_DATE_SUNRISE; - SUNRISE; - SUNRUSH; } class google.registry.model.registry.Registry$TldStateTransition { google.registry.model.registry.Registry$TldState tldState; @@ -790,10 +643,6 @@ enum google.registry.model.reporting.HistoryEntry$Type { CONTACT_TRANSFER_REQUEST; CONTACT_UPDATE; DOMAIN_ALLOCATE; - DOMAIN_APPLICATION_CREATE; - DOMAIN_APPLICATION_DELETE; - DOMAIN_APPLICATION_STATUS_UPDATE; - DOMAIN_APPLICATION_UPDATE; DOMAIN_AUTORENEW; DOMAIN_CREATE; DOMAIN_DELETE; @@ -838,10 +687,6 @@ class google.registry.model.server.ServerSecret { long leastSignificant; long mostSignificant; } -class google.registry.model.smd.EncodedSignedMark { - com.google.appengine.api.datastore.Text encodedData; - java.lang.String encoding; -} class google.registry.model.smd.SignedMarkRevocationList { @Id long id; @Parent com.googlecode.objectify.Key parent; diff --git a/javatests/google/registry/module/tools/testdata/tools_routing.txt b/javatests/google/registry/module/tools/testdata/tools_routing.txt index 2d953941c..40756e6f4 100644 --- a/javatests/google/registry/module/tools/testdata/tools_routing.txt +++ b/javatests/google/registry/module/tools/testdata/tools_routing.txt @@ -1,22 +1,21 @@ -PATH CLASS METHODS OK AUTH_METHODS MIN USER_POLICY -/_dr/admin/createGroups CreateGroupsAction POST n INTERNAL,API APP ADMIN -/_dr/admin/createPremiumList CreatePremiumListAction POST n INTERNAL,API APP ADMIN -/_dr/admin/deleteEntity DeleteEntityAction GET n INTERNAL,API APP ADMIN -/_dr/admin/list/domains ListDomainsAction GET,POST n INTERNAL,API APP ADMIN -/_dr/admin/list/hosts ListHostsAction GET,POST n INTERNAL,API APP ADMIN -/_dr/admin/list/premiumLists ListPremiumListsAction GET,POST n INTERNAL,API APP ADMIN -/_dr/admin/list/registrars ListRegistrarsAction GET,POST n INTERNAL,API APP ADMIN -/_dr/admin/list/reservedLists ListReservedListsAction GET,POST n INTERNAL,API APP ADMIN -/_dr/admin/list/tlds ListTldsAction GET,POST n INTERNAL,API APP ADMIN -/_dr/admin/updatePremiumList UpdatePremiumListAction POST n INTERNAL,API APP ADMIN -/_dr/admin/verifyOte VerifyOteAction POST n INTERNAL,API APP ADMIN -/_dr/epptool EppToolAction POST n INTERNAL,API APP ADMIN -/_dr/loadtest LoadTestAction POST y INTERNAL,API APP ADMIN -/_dr/task/generateZoneFiles GenerateZoneFilesAction POST n INTERNAL,API APP ADMIN -/_dr/task/killAllCommitLogs KillAllCommitLogsAction POST n INTERNAL APP IGNORED -/_dr/task/killAllDomainApplications KillAllDomainApplicationsAction POST n INTERNAL APP IGNORED -/_dr/task/killAllEppResources KillAllEppResourcesAction POST n INTERNAL APP IGNORED -/_dr/task/pollMapreduce PollMapreduceAction POST n INTERNAL APP IGNORED -/_dr/task/refreshDnsForAllDomains RefreshDnsForAllDomainsAction GET n INTERNAL,API APP ADMIN -/_dr/task/resaveAllHistoryEntries ResaveAllHistoryEntriesAction GET n INTERNAL,API APP ADMIN -/_dr/task/restoreCommitLogs RestoreCommitLogsAction POST y INTERNAL,API APP ADMIN +PATH CLASS METHODS OK AUTH_METHODS MIN USER_POLICY +/_dr/admin/createGroups CreateGroupsAction POST n INTERNAL,API APP ADMIN +/_dr/admin/createPremiumList CreatePremiumListAction POST n INTERNAL,API APP ADMIN +/_dr/admin/deleteEntity DeleteEntityAction GET n INTERNAL,API APP ADMIN +/_dr/admin/list/domains ListDomainsAction GET,POST n INTERNAL,API APP ADMIN +/_dr/admin/list/hosts ListHostsAction GET,POST n INTERNAL,API APP ADMIN +/_dr/admin/list/premiumLists ListPremiumListsAction GET,POST n INTERNAL,API APP ADMIN +/_dr/admin/list/registrars ListRegistrarsAction GET,POST n INTERNAL,API APP ADMIN +/_dr/admin/list/reservedLists ListReservedListsAction GET,POST n INTERNAL,API APP ADMIN +/_dr/admin/list/tlds ListTldsAction GET,POST n INTERNAL,API APP ADMIN +/_dr/admin/updatePremiumList UpdatePremiumListAction POST n INTERNAL,API APP ADMIN +/_dr/admin/verifyOte VerifyOteAction POST n INTERNAL,API APP ADMIN +/_dr/epptool EppToolAction POST n INTERNAL,API APP ADMIN +/_dr/loadtest LoadTestAction POST y INTERNAL,API APP ADMIN +/_dr/task/generateZoneFiles GenerateZoneFilesAction POST n INTERNAL,API APP ADMIN +/_dr/task/killAllCommitLogs KillAllCommitLogsAction POST n INTERNAL APP IGNORED +/_dr/task/killAllEppResources KillAllEppResourcesAction POST n INTERNAL APP IGNORED +/_dr/task/pollMapreduce PollMapreduceAction POST n INTERNAL APP IGNORED +/_dr/task/refreshDnsForAllDomains RefreshDnsForAllDomainsAction GET n INTERNAL,API APP ADMIN +/_dr/task/resaveAllHistoryEntries ResaveAllHistoryEntriesAction GET n INTERNAL,API APP ADMIN +/_dr/task/restoreCommitLogs RestoreCommitLogsAction POST y INTERNAL,API APP ADMIN diff --git a/javatests/google/registry/testing/DatastoreHelper.java b/javatests/google/registry/testing/DatastoreHelper.java index e4055bb32..73b402122 100644 --- a/javatests/google/registry/testing/DatastoreHelper.java +++ b/javatests/google/registry/testing/DatastoreHelper.java @@ -27,7 +27,6 @@ import static google.registry.config.RegistryConfig.getContactAutomaticTransferL import static google.registry.model.EppResourceUtils.createDomainRepoId; import static google.registry.model.EppResourceUtils.createRepoId; import static google.registry.model.ResourceTransferUtils.createTransferResponse; -import static google.registry.model.domain.launch.ApplicationStatus.VALIDATED; import static google.registry.model.ofy.ObjectifyService.ofy; import static google.registry.model.registry.label.PremiumListUtils.parentPremiumListEntriesOnRevision; import static google.registry.pricing.PricingEngineProxy.getDomainRenewCost; @@ -66,17 +65,14 @@ import google.registry.model.contact.ContactAuthInfo; import google.registry.model.contact.ContactResource; import google.registry.model.domain.DesignatedContact; import google.registry.model.domain.DesignatedContact.Type; -import google.registry.model.domain.DomainApplication; import google.registry.model.domain.DomainAuthInfo; import google.registry.model.domain.DomainResource; import google.registry.model.domain.GracePeriod; -import google.registry.model.domain.launch.LaunchPhase; import google.registry.model.domain.rgp.GracePeriodStatus; import google.registry.model.eppcommon.AuthInfo.PasswordAuth; import google.registry.model.eppcommon.StatusValue; import google.registry.model.eppcommon.Trid; import google.registry.model.host.HostResource; -import google.registry.model.index.DomainApplicationIndex; import google.registry.model.index.EppResourceIndex; import google.registry.model.index.EppResourceIndexBucket; import google.registry.model.index.ForeignKeyIndex; @@ -93,7 +89,6 @@ import google.registry.model.registry.label.PremiumList.PremiumListEntry; import google.registry.model.registry.label.PremiumList.PremiumListRevision; import google.registry.model.registry.label.ReservedList; import google.registry.model.reporting.HistoryEntry; -import google.registry.model.smd.EncodedSignedMark; import google.registry.model.transfer.TransferData; import google.registry.model.transfer.TransferData.Builder; import google.registry.model.transfer.TransferStatus; @@ -164,59 +159,6 @@ public class DatastoreHelper { .build(); } - public static DomainApplication newDomainApplication(String domainName) { - // This ensures that the domain application gets the next available repoId before the created - // contact does, which is usually the applicationId 1. - return newDomainApplication( - domainName, - generateNewDomainRoid(getTldFromDomainName(domainName)), - persistActiveContact("contact1234"), - LaunchPhase.SUNRISE); - } - - public static DomainApplication newDomainApplication(String domainName, ContactResource contact) { - return newDomainApplication(domainName, contact, LaunchPhase.SUNRISE); - } - - public static DomainApplication newDomainApplication( - String domainName, ContactResource contact, LaunchPhase phase) { - return newDomainApplication( - domainName, - generateNewDomainRoid(getTldFromDomainName(domainName)), - contact, - phase); - } - - public static DomainApplication newDomainApplication( - String domainName, String repoId, ContactResource contact, LaunchPhase phase) { - Key contactKey = Key.create(contact); - return new DomainApplication.Builder() - .setRepoId(repoId) - .setFullyQualifiedDomainName(domainName) - .setPersistedCurrentSponsorClientId("TheRegistrar") - .setAuthInfo(DomainAuthInfo.create(PasswordAuth.create("2fooBAR"))) - .setRegistrant(contactKey) - .setContacts(ImmutableSet.of( - DesignatedContact.create(Type.ADMIN, contactKey), - DesignatedContact.create(Type.TECH, contactKey))) - .setPhase(phase) - .setApplicationStatus(VALIDATED) - .addStatusValue(StatusValue.PENDING_CREATE) - .build(); - } - - public static DomainApplication newSunriseApplication(String domainName) { - return newSunriseApplication(domainName, persistActiveContact("contact1234")); - } - - public static DomainApplication newSunriseApplication( - String domainName, ContactResource contact) { - return newDomainApplication(domainName, contact, LaunchPhase.SUNRISE) - .asBuilder() - .setEncodedSignedMarks(ImmutableList.of(EncodedSignedMark.create("base64", "abcdef"))) - .build(); - } - /** * Returns a newly created {@link ContactResource} for the given contactId (which is the foreign * key) with an auto-generated repoId. @@ -327,25 +269,6 @@ public class DatastoreHelper { .build()); } - public static DomainApplication persistActiveDomainApplication(String domainName) { - return persistResource(newDomainApplication(domainName)); - } - - public static DomainApplication persistActiveDomainApplication( - String domainName, ContactResource contact, LaunchPhase phase) { - return persistResource(newDomainApplication(domainName, contact, phase)); - } - - /** - * Persists a domain application resource with the given domain name deleted at the specified - * time. - */ - public static DomainApplication persistDeletedDomainApplication( - String domainName, DateTime deletionTime) { - return persistResource( - newDomainApplication(domainName).asBuilder().setDeletionTime(deletionTime).build()); - } - /** Persists a domain resource with the given domain name deleted at the specified time. */ public static DomainResource persistDeletedDomain(String domainName, DateTime deletionTime) { return persistDomainAsDeleted(newDomainResource(domainName), deletionTime); @@ -901,7 +824,7 @@ public class DatastoreHelper { * ofy() session cache. Specifically, this method calls .now() on the save to force the write to * actually get sent to Datastore (although it does not force it to be applied) and clears the * session cache. If necessary, this method also updates the relevant {@link EppResourceIndex}, - * {@link ForeignKeyIndex} and {@link DomainApplicationIndex}. + * {@link ForeignKeyIndex}. * *

    Note: Your resource will not be enrolled in a commit log. If you want backups, use * {@link #persistResourceWithCommitLog(Object)}. @@ -934,9 +857,6 @@ public class DatastoreHelper { if (resource instanceof ForeignKeyedEppResource) { saver.entity(ForeignKeyIndex.create(resource, resource.getDeletionTime())); } - if (resource instanceof DomainApplication) { - saver.entity(DomainApplicationIndex.createUpdatedInstance((DomainApplication) resource)); - } } private static R persistResource(final R resource, final boolean wantBackup) { diff --git a/javatests/google/registry/testing/DomainApplicationSubject.java b/javatests/google/registry/testing/DomainApplicationSubject.java deleted file mode 100644 index 82acf998c..000000000 --- a/javatests/google/registry/testing/DomainApplicationSubject.java +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.testing; - -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.truth.Truth.assertAbout; -import static com.google.common.truth.Truth.assertThat; - -import com.google.common.truth.FailureMetadata; -import com.google.common.truth.SimpleSubjectBuilder; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.Period; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.model.smd.EncodedSignedMark; -import google.registry.testing.TruthChainer.And; -import java.util.Objects; - -/** Truth subject for asserting things about {@link DomainApplication} instances. */ -public final class DomainApplicationSubject - extends AbstractDomainBaseSubject { - - public And hasPeriodYears(int years) { - assertThat(actual().getPeriod()).isNotNull(); - assertThat(actual().getPeriod().getUnit()).isEqualTo(Period.Unit.YEARS); - assertThat(actual().getPeriod().getValue()).isEqualTo(years); - return andChainer(); - } - - public And hasApplicationStatus( - ApplicationStatus applicationStatus) { - if (!Objects.equals(actual().getApplicationStatus(), applicationStatus)) { - failWithBadResults( - "has application status", applicationStatus, actual().getApplicationStatus()); - } - return andChainer(); - } - - public And doesNotHaveApplicationStatus( - ApplicationStatus applicationStatus) { - return doesNotHaveValue( - applicationStatus, - actual().getApplicationStatus(), - "application status"); - } - - public And hasExactlyEncodedSignedMarks( - EncodedSignedMark... encodedSignedMarks) { - - assertThat(actual().getEncodedSignedMarks()) - .named("the encoded signed marks of " + actualAsString()) - .containsExactly((Object[]) encodedSignedMarks); - - return andChainer(); - } - - public And hasNumEncodedSignedMarks(int num) { - if (actual().getEncodedSignedMarks().size() != num) { - failWithBadResults( - "has this many encoded signed marks: ", num, actual().getEncodedSignedMarks().size()); - } - return andChainer(); - } - - public DomainApplicationSubject(FailureMetadata failureMetadata, DomainApplication subject) { - super(failureMetadata, checkNotNull(subject)); - } - - public static SimpleSubjectBuilder - assertAboutApplications() { - return assertAbout(DomainApplicationSubject::new); - } -} diff --git a/javatests/google/registry/tmch/LordnTaskUtilsTest.java b/javatests/google/registry/tmch/LordnTaskUtilsTest.java index 9ce2bf00a..400130890 100644 --- a/javatests/google/registry/tmch/LordnTaskUtilsTest.java +++ b/javatests/google/registry/tmch/LordnTaskUtilsTest.java @@ -60,39 +60,35 @@ public class LordnTaskUtilsTest { inject.setStaticField(Ofy.class, "clock", clock); } - - - private DomainResource.Builder newDomainBuilder(DateTime applicationTime) { + private DomainResource.Builder newDomainBuilder() { return new DomainResource.Builder() .setFullyQualifiedDomainName("fleece.example") .setRegistrant(Key.create(persistActiveContact("jd1234"))) .setSmdId("smdzzzz") - .setCreationClientId("TheRegistrar") - .setApplicationTime(applicationTime); + .setCreationClientId("TheRegistrar"); } @Test public void test_enqueueDomainResourceTask_sunrise() { - DomainResource domain = newDomainBuilder(DateTime.parse("2010-05-01T10:11:12Z")) - .setRepoId("A-EXAMPLE") - .build(); - persistDomainAndEnqueueLordn(domain); + persistDomainAndEnqueueLordn(newDomainBuilder().setRepoId("A-EXAMPLE").build()); String expectedPayload = - "A-EXAMPLE,fleece.example,smdzzzz,1,2010-05-01T10:11:12.000Z,2010-05-01T10:11:12.000Z"; + "A-EXAMPLE,fleece.example,smdzzzz,1,2010-05-01T10:11:12.000Z"; assertTasksEnqueued( "lordn-sunrise", new TaskMatcher().payload(expectedPayload).tag("example")); } @Test public void test_enqueueDomainResourceTask_claims() { - DateTime time = DateTime.parse("2010-05-01T10:11:12Z"); - DomainResource domain = newDomainBuilder(time) - .setRepoId("11-EXAMPLE") - .setLaunchNotice(LaunchNotice.create("landrush1tcn", null, null, time.minusHours(1))) - .build(); + DomainResource domain = + newDomainBuilder() + .setRepoId("11-EXAMPLE") + .setLaunchNotice( + LaunchNotice.create( + "landrush1tcn", null, null, DateTime.parse("2010-05-01T09:11:12Z"))) + .build(); persistDomainAndEnqueueLordn(domain); String expectedPayload = "11-EXAMPLE,fleece.example,landrush1tcn,1,2010-05-01T10:11:12.000Z," - + "2010-05-01T09:11:12.000Z,2010-05-01T10:11:12.000Z"; + + "2010-05-01T09:11:12.000Z"; assertTasksEnqueued( "lordn-claims", new TaskMatcher().payload(expectedPayload).tag("example")); } @@ -110,20 +106,16 @@ public class LordnTaskUtilsTest { .setType(Type.OTE) .setIanaIdentifier(null) .build())); - DomainResource domain = - newDomainBuilder(DateTime.parse("2010-05-01T10:11:12Z")).setRepoId("3-EXAMPLE").build(); - persistDomainAndEnqueueLordn(domain); - String expectedPayload = - "3-EXAMPLE,fleece.example,smdzzzz,null,2010-05-01T10:11:12.000Z,2010-05-01T10:11:12.000Z"; + persistDomainAndEnqueueLordn(newDomainBuilder().setRepoId("3-EXAMPLE").build()); + String expectedPayload = "3-EXAMPLE,fleece.example,smdzzzz,null,2010-05-01T10:11:12.000Z"; assertTasksEnqueued( "lordn-sunrise", new TaskMatcher().payload(expectedPayload).tag("example")); } @Test public void test_enqueueDomainResourceTask_throwsExceptionOnInvalidRegistrar() { - DateTime time = DateTime.parse("2010-05-01T10:11:12Z"); DomainResource domain = - newDomainBuilder(time) + newDomainBuilder() .setRepoId("9000-EXAMPLE") .setCreationClientId("nonexistentRegistrar") .build(); diff --git a/javatests/google/registry/tmch/NordnUploadActionTest.java b/javatests/google/registry/tmch/NordnUploadActionTest.java index 2ec070283..e17e602e1 100644 --- a/javatests/google/registry/tmch/NordnUploadActionTest.java +++ b/javatests/google/registry/tmch/NordnUploadActionTest.java @@ -84,11 +84,11 @@ public class NordnUploadActionTest { + "roid,domain-name,notice-id,registrar-id,registration-datetime,ack-datetime," + "application-datetime\n" + "2-TLD,claims-landrush1.tld,landrush1tcn,99999,2010-05-01T10:11:12.000Z," - + "1969-12-31T23:00:00.000Z,1969-12-31T00:00:00.000Z\n"; + + "1969-12-31T23:00:00.000Z\n"; private static final String SUNRISE_CSV = "1,2010-05-01T10:11:12.000Z,1\n" + "roid,domain-name,SMD-id,registrar-id,registration-datetime,application-datetime\n" - + "2-TLD,sunrise1.tld,my-smdid,99999,2010-05-01T10:11:12.000Z,1969-12-31T00:00:00.000Z\n"; + + "2-TLD,sunrise1.tld,my-smdid,99999,2010-05-01T10:11:12.000Z\n"; private static final String LOCATION_URL = "http://trololol"; @@ -272,20 +272,19 @@ public class NordnUploadActionTest { private void persistClaimsModeDomain() { DomainResource domain = newDomainResource("claims-landrush1.tld"); - persistDomainAndEnqueueLordn(domain.asBuilder() - .setLaunchNotice(LaunchNotice.create( - "landrush1tcn", null, null, domain.getCreationTime().minusHours(1))) - .setApplicationTime(domain.getCreationTime().minusDays(1)) - .build()); + persistDomainAndEnqueueLordn( + domain + .asBuilder() + .setLaunchNotice( + LaunchNotice.create( + "landrush1tcn", null, null, domain.getCreationTime().minusHours(1))) + .build()); } private void persistSunriseModeDomain() { action.phase = "sunrise"; DomainResource domain = newDomainResource("sunrise1.tld"); - persistDomainAndEnqueueLordn(domain.asBuilder() - .setSmdId("my-smdid") - .setApplicationTime(domain.getCreationTime().minusDays(1)) - .build()); + persistDomainAndEnqueueLordn(domain.asBuilder().setSmdId("my-smdid").build()); } private static TaskHandle makeTaskHandle( diff --git a/javatests/google/registry/tools/AllocateDomainCommandTest.java b/javatests/google/registry/tools/AllocateDomainCommandTest.java deleted file mode 100644 index 351076561..000000000 --- a/javatests/google/registry/tools/AllocateDomainCommandTest.java +++ /dev/null @@ -1,158 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static com.google.common.io.BaseEncoding.base16; -import static com.google.common.truth.Truth.assertThat; -import static google.registry.flows.picker.FlowPicker.getFlowClass; -import static google.registry.model.domain.DesignatedContact.Type.ADMIN; -import static google.registry.model.domain.DesignatedContact.Type.BILLING; -import static google.registry.model.domain.DesignatedContact.Type.TECH; -import static google.registry.model.domain.launch.ApplicationStatus.VALIDATED; -import static google.registry.model.eppcommon.EppXmlTransformer.unmarshal; -import static google.registry.model.registry.Registry.TldState.QUIET_PERIOD; -import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.newDomainApplication; -import static google.registry.testing.DatastoreHelper.persistActiveContact; -import static google.registry.testing.DatastoreHelper.persistActiveHost; -import static google.registry.testing.DatastoreHelper.persistResource; -import static google.registry.testing.JUnitBackports.assertThrows; -import static google.registry.util.DateTimeUtils.START_OF_TIME; - -import com.beust.jcommander.ParameterException; -import com.google.common.collect.ImmutableSet; -import com.googlecode.objectify.Key; -import google.registry.flows.domain.DomainAllocateFlow; -import google.registry.model.domain.DesignatedContact; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.launch.LaunchNotice; -import google.registry.model.domain.secdns.DelegationSignerData; -import google.registry.model.eppcommon.Trid; -import google.registry.model.eppinput.EppInput; -import google.registry.model.reporting.HistoryEntry; -import google.registry.tools.server.ToolsTestData; -import java.io.IOException; -import org.joda.time.DateTime; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -/** Unit tests for {@link AllocateDomainCommand}. */ -public class AllocateDomainCommandTest extends CommandTestCase { - - private EppToolVerifier eppVerifier; - - @Before - public void init() throws IOException { - eppVerifier = EppToolVerifier.create(command).expectClientId("TheRegistrar").expectSuperuser(); - createTld("tld", QUIET_PERIOD); - createApplication("example-one.tld", "domain_create_sunrush.xml", "1-TLD"); - createApplication("example-two.tld", "domain_create_sunrush2.xml", "2-TLD"); - } - - @After - public void cleanup() throws Exception { - eppVerifier.verifyNoMoreSent(); - } - - private void createApplication(String name, String xmlFile, String repoId) throws IOException { - DomainApplication application = - persistResource(newDomainApplication(name) - .asBuilder() - .setRepoId(repoId) - .setCreationTimeForTest(START_OF_TIME) - .setRegistrant(Key.create(persistActiveContact("registrant"))) - .setContacts(ImmutableSet.of( - DesignatedContact.create( - ADMIN, - Key.create(persistActiveContact("adminContact"))), - DesignatedContact.create( - BILLING, - Key.create(persistActiveContact("billingContact"))), - DesignatedContact.create( - TECH, - Key.create(persistActiveContact("techContact"))))) - .setNameservers(ImmutableSet.of( - Key.create(persistActiveHost("ns1.example.com")), - Key.create(persistActiveHost("ns2.example.com")))) - .setApplicationStatus(VALIDATED) - .setDsData(ImmutableSet.of( - DelegationSignerData.create( - 12345, 3, 1, base16().decode("49FD46E6C4B45C55D4AC")), - DelegationSignerData.create( - 56789, 2, 4, base16().decode("69FD46E6C4A45C55D4AC")))) - .setLaunchNotice(LaunchNotice.create( - "370d0b7c9223372036854775807", - "tmch", - DateTime.parse("2010-08-16T09:00:00.0Z"), - DateTime.parse("2009-08-16T09:00:00.0Z"))) - .build()); - persistResource( - new HistoryEntry.Builder() - .setParent(application) - .setClientId("NewRegistrar") - .setModificationTime(application.getCreationTime()) - .setTrid(Trid.create("ABC-123", "server-trid")) - .setXmlBytes(ToolsTestData.loadBytes(xmlFile).read()) - .build()); - } - - @Test - public void testSuccess() throws Exception { - runCommand("--ids=1-TLD", "--force", "--superuser"); - // NB: These commands are sent as the sponsoring registrar, in this case "TheRegistrar". - eppVerifier.verifySent("allocate_domain.xml"); - } - - @Test - public void testSuccess_multiple() throws Exception { - runCommand("--ids=1-TLD,2-TLD", "--force", "--superuser"); - eppVerifier - .verifySent("allocate_domain.xml") - .verifySent("allocate_domain2.xml"); - } - - @Test - public void testSuccess_dryRun() throws Exception { - runCommand("--ids=1-TLD", "--dry_run", "--superuser"); - eppVerifier.expectDryRun().verifySent("allocate_domain.xml"); - } - - @Test - public void testFailure_notAsSuperuser() { - assertThrows(IllegalArgumentException.class, () -> runCommand("--ids=1-TLD", "--force")); - } - - @Test - public void testFailure_forceAndDryRunIncompatible() { - assertThrows( - IllegalArgumentException.class, - () -> runCommand("--ids=1-TLD", "--force", "--dry_run", "--superuser")); - } - - @Test - public void testFailure_unknownFlag() { - assertThrows( - ParameterException.class, - () -> runCommand("--ids=1-TLD", "--force", "--unrecognized=foo", "--superuser")); - } - - @Test - public void testXmlInstantiatesFlow() throws Exception { - byte[] xmlBytes = ToolsTestData.loadBytes("allocate_domain.xml").read(); - assertThat(getFlowClass(unmarshal(EppInput.class, xmlBytes))) - .isEqualTo(DomainAllocateFlow.class); - } -} diff --git a/javatests/google/registry/tools/CreateTldCommandTest.java b/javatests/google/registry/tools/CreateTldCommandTest.java index 00b90e2d1..d4bd8691f 100644 --- a/javatests/google/registry/tools/CreateTldCommandTest.java +++ b/javatests/google/registry/tools/CreateTldCommandTest.java @@ -24,7 +24,6 @@ import static google.registry.util.DateTimeUtils.START_OF_TIME; import static org.joda.money.CurrencyUnit.JPY; import static org.joda.money.CurrencyUnit.USD; import static org.joda.time.DateTimeZone.UTC; -import static org.joda.time.Duration.standardDays; import static org.joda.time.Duration.standardMinutes; import com.beust.jcommander.ParameterException; @@ -152,17 +151,6 @@ public class CreateTldCommandTest extends CommandTestCase { assertThat(Registry.get("xn--q9jyb4c").getAddGracePeriodLength()).isEqualTo(standardMinutes(5)); } - @Test - public void testSuccess_sunrushAddGracePeriodFlag() throws Exception { - runCommandForced( - "--sunrush_add_grace_period=P13D", - "--roid_suffix=Q9JYB4C", - "--dns_writers=VoidDnsWriter", - "xn--q9jyb4c"); - assertThat(Registry.get("xn--q9jyb4c").getSunrushAddGracePeriodLength()) - .isEqualTo(standardDays(13)); - } - @Test public void testSuccess_roidSuffixWorks() throws Exception { runCommandForced("--roid_suffix=RSUFFIX", "--dns_writers=VoidDnsWriter", "tld"); @@ -310,20 +298,6 @@ public class CreateTldCommandTest extends CommandTestCase { assertThat(thrown).hasMessageThat().contains("Invalid format: \"5m\""); } - @Test - public void testFailure_invalidSunrushAddGracePeriod() { - Exception e = - assertThrows( - IllegalArgumentException.class, - () -> - runCommandForced( - "--sunrush_add_grace_period=5d", - "--roid_suffix=Q9JYB4C", - "--dns_writers=VoidDnsWriter", - "xn--q9jyb4c")); - assertThat(e).hasMessageThat().isEqualTo("Invalid format: \"5d\""); - } - @Test public void testFailure_invalidRedemptionGracePeriod() { IllegalArgumentException thrown = @@ -375,7 +349,7 @@ public class CreateTldCommandTest extends CommandTestCase { () -> runCommandForced( String.format( - "--tld_state_transitions=%s=PREDELEGATION,%s=SUNRISE", + "--tld_state_transitions=%s=PREDELEGATION,%s=START_DATE_SUNRISE", now, now.plus(Duration.millis(1))), "--initial_tld_state=GENERAL_AVAILABILITY", "--dns_writers=VoidDnsWriter", diff --git a/javatests/google/registry/tools/DomainApplicationInfoCommandTest.java b/javatests/google/registry/tools/DomainApplicationInfoCommandTest.java deleted file mode 100644 index 811f81a60..000000000 --- a/javatests/google/registry/tools/DomainApplicationInfoCommandTest.java +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static google.registry.testing.JUnitBackports.assertThrows; - -import com.beust.jcommander.ParameterException; -import org.junit.Test; - -/** Unit tests for {@link DomainApplicationInfoCommand}. */ -public class DomainApplicationInfoCommandTest - extends EppToolCommandTestCase { - - @Test - public void testSuccess() throws Exception { - runCommand("--client=NewRegistrar", "--domain_name=example.tld", - "--phase=landrush", "--id=123"); - eppVerifier.expectDryRun().verifySent("domain_info_landrush.xml"); - } - - @Test - public void testSuccess_subphase() throws Exception { - // Sunrush: phase=sunrise, subphase=landrush - runCommand("--client=NewRegistrar", "--domain_name=example.tld", - "--phase=sunrush", "--id=123"); - eppVerifier.expectDryRun().verifySent("domain_info_sunrush.xml"); - } - - @Test - public void testFailure_invalidPhase() { - assertThrows( - IllegalArgumentException.class, - () -> - runCommand( - "--client=NewRegistrar", - "--domain_name=example.tld", - "--phase=landrise", - "--id=123")); - } - - @Test - public void testFailure_missingClientId() { - assertThrows( - ParameterException.class, - () -> runCommand("--domain_name=example.tld", "--phase=sunrush", "--id=123")); - } - - @Test - public void testFailure_missingPhase() { - assertThrows( - ParameterException.class, - () -> runCommand("--client=NewRegistrar", "--domain_name=example.tld", "--id=123")); - } - - @Test - public void testFailure_missingApplicationId() { - assertThrows( - ParameterException.class, - () -> - runCommand( - "--client=NewRegistrar", "--domain_name=example.tld", "--phase=landrush")); - } - - @Test - public void testFailure_mainParameter() { - assertThrows( - ParameterException.class, - () -> - runCommand( - "--client=NewRegistrar", - "--domain_name=example.tld", - "--phase=landrush", - "--id=123", - "foo")); - } - - @Test - public void testFailure_unknownFlag() { - assertThrows( - ParameterException.class, - () -> - runCommand( - "--client=NewRegistrar", - "--domain_name=example.tld", - "--phase=landrush", - "--id=123", - "--foo=bar")); - } -} diff --git a/javatests/google/registry/tools/GenerateAuctionDataCommandTest.java b/javatests/google/registry/tools/GenerateAuctionDataCommandTest.java deleted file mode 100644 index cd148bbfe..000000000 --- a/javatests/google/registry/tools/GenerateAuctionDataCommandTest.java +++ /dev/null @@ -1,336 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static com.google.common.truth.Truth.assertThat; -import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.newContactResourceWithRoid; -import static google.registry.testing.DatastoreHelper.newDomainApplication; -import static google.registry.testing.DatastoreHelper.newSunriseApplication; -import static google.registry.testing.DatastoreHelper.persistResource; -import static google.registry.testing.JUnitBackports.assertThrows; -import static java.nio.charset.StandardCharsets.UTF_8; -import static org.joda.time.DateTimeZone.UTC; - -import com.beust.jcommander.ParameterException; -import com.google.common.base.Joiner; -import com.google.common.collect.ImmutableList; -import google.registry.model.contact.ContactAddress; -import google.registry.model.contact.ContactPhoneNumber; -import google.registry.model.contact.ContactResource; -import google.registry.model.contact.PostalInfo; -import google.registry.model.domain.launch.ApplicationStatus; -import google.registry.model.ofy.Ofy; -import google.registry.testing.FakeClock; -import google.registry.testing.InjectRule; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; - -/** Unit tests for {@link GenerateAuctionDataCommand}. */ -public class GenerateAuctionDataCommandTest extends CommandTestCase { - - @Rule - public final TemporaryFolder folder = new TemporaryFolder(); - - @Rule - public final InjectRule inject = new InjectRule(); - - FakeClock clock = new FakeClock(DateTime.parse("2000-01-01TZ")); - - Path output; - ContactResource contact1; - ContactResource contact2; - - String getOutput() throws IOException { - return new String(Files.readAllBytes(output), UTF_8).trim(); - } - - @Before - public void init() throws Exception { - inject.setStaticField(Ofy.class, "clock", clock); - output = Paths.get(folder.newFile().toString()); - - createTld("xn--q9jyb4c"); - contact1 = persistResource( - newContactResourceWithRoid("contact1", "C1-ROID").asBuilder() - .setLocalizedPostalInfo(new PostalInfo.Builder() - .setType(PostalInfo.Type.LOCALIZED) - .setName("Joe Registrant") - .setOrg("Google") - .setAddress(new ContactAddress.Builder() - .setStreet(ImmutableList.of("111 8th Ave", "4th Floor", "Suite 100")) - .setCity("New York") - .setState("NY") - .setZip("10011") - .setCountryCode("US") - .build()) - .build()) - .setVoiceNumber(new ContactPhoneNumber.Builder() - .setPhoneNumber("867-5000") - .setExtension("0000") - .build()) - .setFaxNumber(new ContactPhoneNumber.Builder() - .setPhoneNumber("867-5000") - .setExtension("0001") - .build()) - .setEmailAddress("joe.registrant@example.com") - .build()); - contact2 = persistResource( - newContactResourceWithRoid("contact1", "C2-ROID").asBuilder() - .setLocalizedPostalInfo(new PostalInfo.Builder() - .setType(PostalInfo.Type.LOCALIZED) - .setName("Jáne Registrant") - .setOrg("Charleston Road Registry") - .setAddress(new ContactAddress.Builder() - .setStreet(ImmutableList.of("1600 Charleston Road")) - .setCity("Mountain View") - .setState("CA") - .setZip("94043") - .setCountryCode("US") - .build()) - .build()) - .setInternationalizedPostalInfo(new PostalInfo.Builder() - .setType(PostalInfo.Type.INTERNATIONALIZED) - .setName("Jane Registrant") - .setOrg("Charleston Road Registry") - .setAddress(new ContactAddress.Builder() - .setStreet(ImmutableList.of("1600 Charleston Road")) - .setCity("Mountain View") - .setState("CA") - .setZip("94043") - .setCountryCode("US") - .build()) - .build()) - .setVoiceNumber(new ContactPhoneNumber.Builder() - .setPhoneNumber("555-1234") - .setExtension("0000") - .build()) - .setFaxNumber(new ContactPhoneNumber.Builder() - .setPhoneNumber("555-1235") - .setExtension("0001") - .build()) - .setEmailAddress("jane.registrant@example.com") - .build()); - } - - @Test - public void testSuccess_emptyOutput() throws Exception { - runCommand("--output=" + output, "xn--q9jyb4c"); - assertThat(getOutput()).isEmpty(); - } - - @Test - public void testSuccess_nullApplicationFields() throws Exception { - // Make two contacts with different email addresses. - ContactResource contact = persistResource( - newContactResourceWithRoid("contact1234", "C1234-ROID") - .asBuilder() - .setEmailAddress("foo@bar.baz") - .build()); - ContactResource otherContact = persistResource( - newContactResourceWithRoid("contact5678", "C5678-ROID") - .asBuilder() - .setEmailAddress("bar@baz.foo") - .build()); - persistResource(newDomainApplication("label.xn--q9jyb4c", contact)); - persistResource(newDomainApplication("label.xn--q9jyb4c", otherContact)); - runCommand("--output=" + output, "xn--q9jyb4c"); - assertThat(getOutput()).isEqualTo(Joiner.on('\n').join(ImmutableList.of( - "label.xn--q9jyb4c|2-Q9JYB4C|2000-01-01 00:00:00||TheRegistrar|||||||||foo@bar.baz" - + "|||Landrush", - "label.xn--q9jyb4c|3-Q9JYB4C|2000-01-01 00:00:00||TheRegistrar|||||||||bar@baz.foo" - + "|||Landrush", - "TheRegistrar|John Doe|The Registrar|123 Example Bőulevard||Williamsburg|NY|" - + "11211|US|new.registrar@example.com|+1.2223334444"))); - } - - @Test - public void testSuccess_multipleRegistrars() throws Exception { - persistResource(newDomainApplication("label.xn--q9jyb4c", contact1)); - persistResource(newDomainApplication("label.xn--q9jyb4c", contact2) - .asBuilder() - .setPersistedCurrentSponsorClientId("NewRegistrar") - .build()); - runCommand("--output=" + output, "xn--q9jyb4c"); - assertThat(getOutput()).isEqualTo(Joiner.on('\n').join(ImmutableList.of( - "label.xn--q9jyb4c|2-Q9JYB4C|2000-01-01 00:00:00||TheRegistrar|Joe Registrant|Google|" - + "111 8th Ave|4th Floor Suite 100|New York|NY|10011|US|joe.registrant@example.com|" - + "867-5000 x0000||Landrush", - "label.xn--q9jyb4c|3-Q9JYB4C|2000-01-01 00:00:00||NewRegistrar|Jane Registrant|" - + "Charleston Road Registry|1600 Charleston Road||Mountain View|CA|94043|US|" - + "jane.registrant@example.com|555-1234 x0000||Landrush", - "NewRegistrar|Jane Doe|New Registrar|123 Example Bőulevard||Williamsburg|NY|" - + "11211|US|new.registrar@example.com|+1.3334445555", - "TheRegistrar|John Doe|The Registrar|123 Example Bőulevard||Williamsburg|NY|" - + "11211|US|new.registrar@example.com|+1.2223334444"))); - } - - @Test - public void testSuccess_allFieldsPopulated() throws Exception { - persistResource(newDomainApplication("label.xn--q9jyb4c", contact1) - .asBuilder() - .setLastEppUpdateTime(DateTime.parse("2006-06-06T00:30:00Z")) - .build()); - persistResource(newDomainApplication("label.xn--q9jyb4c", contact2) - .asBuilder() - .setLastEppUpdateTime(DateTime.parse("2006-06-07T00:30:00Z")) - .build()); - runCommand("--output=" + output, "xn--q9jyb4c"); - assertThat(getOutput()).isEqualTo(Joiner.on('\n').join(ImmutableList.of( - "label.xn--q9jyb4c|2-Q9JYB4C|2000-01-01 00:00:00|2006-06-06 00:30:00|TheRegistrar|" - + "Joe Registrant|Google|111 8th Ave|4th Floor Suite 100|New York|NY|10011|US|" - + "joe.registrant@example.com|867-5000 x0000||Landrush", - "label.xn--q9jyb4c|3-Q9JYB4C|2000-01-01 00:00:00|2006-06-07 00:30:00|TheRegistrar|" - + "Jane Registrant|Charleston Road Registry|1600 Charleston Road||Mountain View|CA|" - + "94043|US|jane.registrant@example.com|555-1234 x0000||Landrush", - "TheRegistrar|John Doe|The Registrar|123 Example Bőulevard||Williamsburg|NY|" - + "11211|US|new.registrar@example.com|+1.2223334444"))); - } - - @Test - public void testSuccess_multipleSunriseMultipleLandrushApplications() throws Exception { - persistResource(newDomainApplication("label.xn--q9jyb4c", contact1) - .asBuilder() - .setLastEppUpdateTime(DateTime.parse("2006-06-07T00:30:00Z")) - .build()); - persistResource(newDomainApplication("label.xn--q9jyb4c", contact2) - .asBuilder() - .setLastEppUpdateTime(DateTime.parse("2006-06-08T00:30:00Z")) - .build()); - persistResource(newSunriseApplication("label.xn--q9jyb4c", contact1) - .asBuilder() - .setLastEppUpdateTime(DateTime.parse("2006-06-09T00:30:00Z")) - .build()); - persistResource(newSunriseApplication("label.xn--q9jyb4c", contact2) - .asBuilder() - .setLastEppUpdateTime(DateTime.parse("2006-06-10T00:30:00Z")) - .build()); - runCommand("--output=" + output, "xn--q9jyb4c"); - assertThat(getOutput()).isEqualTo(Joiner.on('\n').join(ImmutableList.of( - "label.xn--q9jyb4c|4-Q9JYB4C|2000-01-01 00:00:00|2006-06-09 00:30:00|TheRegistrar|" - + "Joe Registrant|Google|111 8th Ave|4th Floor Suite 100|New York|NY|10011|US|" - + "joe.registrant@example.com|867-5000 x0000||Sunrise", - "label.xn--q9jyb4c|5-Q9JYB4C|2000-01-01 00:00:00|2006-06-10 00:30:00|TheRegistrar|" - + "Jane Registrant|Charleston Road Registry|1600 Charleston Road||Mountain View|CA|" - + "94043|US|jane.registrant@example.com|555-1234 x0000||Sunrise", - "TheRegistrar|John Doe|The Registrar|123 Example Bőulevard||Williamsburg|NY|" - + "11211|US|new.registrar@example.com|+1.2223334444"))); - } - - @Test - public void testSuccess_multipleLabels() throws Exception { - persistResource(newDomainApplication("label.xn--q9jyb4c", contact1) - .asBuilder() - .setLastEppUpdateTime(DateTime.parse("2006-06-06T00:30:00Z")) - .build()); - persistResource(newDomainApplication("label.xn--q9jyb4c", contact2) - .asBuilder() - .setLastEppUpdateTime(DateTime.parse("2006-06-07T00:30:00Z")) - .build()); - persistResource(newSunriseApplication("label2.xn--q9jyb4c", contact1) - .asBuilder() - .setLastEppUpdateTime(DateTime.parse("2006-06-09T00:30:00Z")) - .build()); - persistResource(newSunriseApplication("label2.xn--q9jyb4c", contact2) - .asBuilder() - .setLastEppUpdateTime(DateTime.parse("2006-06-10T00:30:00Z")) - .build()); - runCommand("--output=" + output, "xn--q9jyb4c"); - assertThat(getOutput()).isEqualTo(Joiner.on('\n').join(ImmutableList.of( - "label.xn--q9jyb4c|2-Q9JYB4C|2000-01-01 00:00:00|2006-06-06 00:30:00|TheRegistrar|" - + "Joe Registrant|Google|111 8th Ave|4th Floor Suite 100|New York|NY|10011|US|" - + "joe.registrant@example.com|867-5000 x0000||Landrush", - "label.xn--q9jyb4c|3-Q9JYB4C|2000-01-01 00:00:00|2006-06-07 00:30:00|TheRegistrar|" - + "Jane Registrant|Charleston Road Registry|1600 Charleston Road||Mountain View|CA|" - + "94043|US|jane.registrant@example.com|555-1234 x0000||Landrush", - "label2.xn--q9jyb4c|4-Q9JYB4C|2000-01-01 00:00:00|2006-06-09 00:30:00|TheRegistrar|" - + "Joe Registrant|Google|111 8th Ave|4th Floor Suite 100|New York|NY|10011|US|" - + "joe.registrant@example.com|867-5000 x0000||Sunrise", - "label2.xn--q9jyb4c|5-Q9JYB4C|2000-01-01 00:00:00|2006-06-10 00:30:00|TheRegistrar|" - + "Jane Registrant|Charleston Road Registry|1600 Charleston Road||Mountain View|CA|" - + "94043|US|jane.registrant@example.com|555-1234 x0000||Sunrise", - "TheRegistrar|John Doe|The Registrar|123 Example Bőulevard||Williamsburg|NY|" - + "11211|US|new.registrar@example.com|+1.2223334444"))); - } - - @Test - public void testSuccess_oneSunriseApplication() throws Exception { - persistResource(newSunriseApplication("label.xn--q9jyb4c")); - runCommand("--output=" + output, "xn--q9jyb4c"); - assertThat(getOutput()).isEmpty(); - } - - @Test - public void testSuccess_twoSunriseApplicationsOneRejected() throws Exception { - persistResource(newSunriseApplication("label.xn--q9jyb4c")); - persistResource(newSunriseApplication("label.xn--q9jyb4c") - .asBuilder() - .setApplicationStatus(ApplicationStatus.REJECTED) - .build()); - runCommand("--output=" + output, "xn--q9jyb4c"); - assertThat(getOutput()).isEmpty(); - } - - @Test - public void testSuccess_twoSunriseApplicationsOneDeleted() throws Exception { - persistResource(newSunriseApplication("label.xn--q9jyb4c")); - DateTime deletionTime = DateTime.now(UTC); - persistResource(newSunriseApplication("label.xn--q9jyb4c") - .asBuilder() - .setDeletionTime(deletionTime) - .build()); - clock.setTo(deletionTime); - runCommand("--output=" + output, "xn--q9jyb4c"); - assertThat(getOutput()).isEmpty(); - } - - @Test - public void testSuccess_oneLandrushApplication() throws Exception { - persistResource(newDomainApplication("label.xn--q9jyb4c")); - runCommand("--output=" + output, "xn--q9jyb4c"); - assertThat(getOutput()).isEmpty(); - } - - @Test - public void testSuccess_oneSunriseApplicationMultipleLandrushApplications() throws Exception { - persistResource(newSunriseApplication("label.xn--q9jyb4c")); - persistResource(newDomainApplication("label.xn--q9jyb4c")); - persistResource(newDomainApplication("label.xn--q9jyb4c")); - runCommand("--output=" + output, "xn--q9jyb4c"); - assertThat(getOutput()).isEmpty(); - } - - @Test - public void testFailure_missingTldName() { - assertThrows(ParameterException.class, this::runCommand); - } - - @Test - public void testFailure_tooManyParameters() { - assertThrows(IllegalArgumentException.class, () -> runCommand("xn--q9jyb4c", "foobar")); - } - - @Test - public void testFailure_nonexistentTld() { - assertThrows(IllegalArgumentException.class, () -> runCommand("foobarbaz")); - } -} diff --git a/javatests/google/registry/tools/GetApplicationCommandTest.java b/javatests/google/registry/tools/GetApplicationCommandTest.java deleted file mode 100644 index eb7106481..000000000 --- a/javatests/google/registry/tools/GetApplicationCommandTest.java +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.newDomainApplication; -import static google.registry.testing.DatastoreHelper.persistActiveDomainApplication; -import static google.registry.testing.DatastoreHelper.persistDeletedDomainApplication; -import static google.registry.testing.DatastoreHelper.persistResource; -import static google.registry.testing.JUnitBackports.assertThrows; -import static org.joda.time.DateTimeZone.UTC; - -import com.beust.jcommander.ParameterException; -import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Test; - -/** Unit tests for {@link GetApplicationCommand}. */ -public class GetApplicationCommandTest extends CommandTestCase { - - DateTime now = DateTime.now(UTC); - - @Before - public void initialize() { - createTld("tld"); - } - - @Test - public void testSuccess() throws Exception { - persistActiveDomainApplication("example.tld"); - runCommand("2-TLD"); - assertInStdout("fullyQualifiedDomainName=example.tld"); - assertInStdout("contact=Key(ContactResource(\"3-ROID\"))"); - } - - @Test - public void testSuccess_expand() throws Exception { - persistActiveDomainApplication("example.tld"); - runCommand("2-TLD", "--expand"); - assertInStdout("fullyQualifiedDomainName=example.tld"); - assertInStdout("contactId=contact1234"); - assertNotInStdout("LiveRef"); - } - - @Test - public void testSuccess_multipleArguments() throws Exception { - persistActiveDomainApplication("example.tld"); - persistActiveDomainApplication("example2.tld"); - persistActiveDomainApplication("example3.tld"); - runCommand("2-TLD", "4-TLD", "6-TLD"); - assertInStdout("fullyQualifiedDomainName=example.tld"); - assertInStdout("fullyQualifiedDomainName=example2.tld"); - assertInStdout("fullyQualifiedDomainName=example3.tld"); - } - - @Test - public void testSuccess_applicationDeletedInFuture() throws Exception { - persistResource( - newDomainApplication("example.tld").asBuilder().setDeletionTime(now.plusDays(1)).build()); - runCommand("--read_timestamp=" + now.plusMonths(1), "2-TLD"); - assertInStdout("Application '2-TLD' does not exist or is deleted"); - } - - @Test - public void testSuccess_deletedApplication() throws Exception { - persistDeletedDomainApplication("example.tld", now.minusDays(1)); - runCommand("2-TLD"); - assertInStdout("Application '2-TLD' does not exist or is deleted"); - } - - @Test - public void testSuccess_applicationDoesNotExist() throws Exception { - runCommand("42-TLD"); - assertInStdout("Application '42-TLD' does not exist or is deleted"); - } - - @Test - public void testFailure_noApplicationId() { - assertThrows(ParameterException.class, this::runCommand); - } - - @Test - public void testSuccess_oneApplicationDoesNotExist() throws Exception { - persistActiveDomainApplication("example.tld"); - persistActiveDomainApplication("example2.tld"); - runCommand("2-TLD", "4-TLD", "55-TLD"); - assertInStdout("fullyQualifiedDomainName=example.tld"); - assertInStdout("fullyQualifiedDomainName=example2.tld"); - assertInStdout("Application '55-TLD' does not exist or is deleted"); - } -} diff --git a/javatests/google/registry/tools/GetApplicationIdsCommandTest.java b/javatests/google/registry/tools/GetApplicationIdsCommandTest.java deleted file mode 100644 index 22c885c88..000000000 --- a/javatests/google/registry/tools/GetApplicationIdsCommandTest.java +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static com.google.common.truth.Truth.assertThat; -import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.newDomainApplication; -import static google.registry.testing.DatastoreHelper.persistActiveContact; -import static google.registry.testing.DatastoreHelper.persistResource; -import static google.registry.testing.JUnitBackports.assertThrows; -import static org.joda.time.DateTimeZone.UTC; - -import com.beust.jcommander.ParameterException; -import google.registry.model.domain.launch.LaunchPhase; -import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Test; - -/** Unit tests for {@link GetApplicationIdsCommand}. */ -public class GetApplicationIdsCommandTest extends CommandTestCase { - - DateTime now = DateTime.now(UTC); - - @Before - public void initialize() { - createTld("tld"); - } - - @Test - public void testSuccess() throws Exception { - persistDomainApplication("example.tld", "1-TLD"); - runCommand("example.tld"); - assertInStdout("1-TLD (TheRegistrar)"); - } - - @Test - public void testSuccess_multipleArguments() throws Exception { - persistDomainApplication("example.tld", "1-TLD"); - persistDomainApplication("example2.tld", "2-TLD"); - runCommand("example.tld", "example2.tld"); - assertInStdout("1-TLD (TheRegistrar)"); - assertInStdout("2-TLD (TheRegistrar)"); - } - - @Test - public void testSuccess_domainDoesNotExist() throws Exception { - runCommand("something.tld"); - assertInStdout("No applications exist for 'something.tld'."); - } - - @Test - public void testFailure_tldDoesNotExist() { - IllegalArgumentException thrown = - assertThrows(IllegalArgumentException.class, () -> runCommand("example.foo")); - assertThat(thrown).hasMessageThat().contains("Domain name is not under a recognized TLD"); - } - - @Test - public void testSuccess_deletedApplication() throws Exception { - persistResource( - newDomainApplication("example.tld").asBuilder().setDeletionTime(now.minusDays(1)).build()); - runCommand("example.tld"); - assertInStdout("No applications exist for 'example.tld'."); - } - - @Test - public void testFailure_noDomainName() { - assertThrows(ParameterException.class, this::runCommand); - } - - private void persistDomainApplication(String domainName, String repoId) { - persistResource( - newDomainApplication( - domainName, repoId, persistActiveContact("icn1001"), LaunchPhase.OPEN)); - } - - @Test - public void testSuccess_oneDomainDoesNotExist() throws Exception { - persistDomainApplication("example.tld", "1-TLD"); - createTld("com"); - runCommand("example.com", "example.tld", "example2.com"); - assertInStdout("1-TLD (TheRegistrar)"); - assertInStdout("No applications exist for 'example.com'."); - assertInStdout("No applications exist for 'example2.com'."); - } -} diff --git a/javatests/google/registry/tools/SetupOteCommandTest.java b/javatests/google/registry/tools/SetupOteCommandTest.java index 0b6b92bc3..d75e2bfcd 100644 --- a/javatests/google/registry/tools/SetupOteCommandTest.java +++ b/javatests/google/registry/tools/SetupOteCommandTest.java @@ -16,6 +16,8 @@ package google.registry.tools; import static com.google.common.truth.Truth.assertThat; import static google.registry.model.registrar.Registrar.State.ACTIVE; +import static google.registry.model.registry.Registry.TldState.GENERAL_AVAILABILITY; +import static google.registry.model.registry.Registry.TldState.START_DATE_SUNRISE; import static google.registry.testing.CertificateSamples.SAMPLE_CERT; import static google.registry.testing.CertificateSamples.SAMPLE_CERT_HASH; import static google.registry.testing.DatastoreHelper.createTld; @@ -154,12 +156,10 @@ public class SetupOteCommandTest extends CommandTestCase { "--email=contact@email.com", "--certfile=" + getCertFilename()); - verifyTldCreation("blobio-sunrise", "BLOBIOS0", TldState.START_DATE_SUNRISE); - verifyTldCreation("blobio-landrush", "BLOBIOL1", TldState.LANDRUSH); - verifyTldCreation( - "blobio-ga", + verifyTldCreation("blobio-sunrise", "BLOBIOS0", START_DATE_SUNRISE); + verifyTldCreation("blobio-ga", "BLOBIOG2", - TldState.GENERAL_AVAILABILITY, + GENERAL_AVAILABILITY, Duration.standardMinutes(60), Duration.standardMinutes(10), Duration.standardMinutes(5), @@ -167,7 +167,7 @@ public class SetupOteCommandTest extends CommandTestCase { verifyTldCreation( "blobio-eap", "BLOBIOE3", - TldState.GENERAL_AVAILABILITY, + GENERAL_AVAILABILITY, Duration.standardMinutes(60), Duration.standardMinutes(10), Duration.standardMinutes(5), @@ -177,13 +177,11 @@ public class SetupOteCommandTest extends CommandTestCase { CidrAddressBlock.create("1.1.1.1")); verifyRegistrarCreation("blobio-1", "blobio-sunrise", PASSWORD, ipAddress); - verifyRegistrarCreation("blobio-2", "blobio-landrush", PASSWORD, ipAddress); verifyRegistrarCreation("blobio-3", "blobio-ga", PASSWORD, ipAddress); verifyRegistrarCreation("blobio-4", "blobio-ga", PASSWORD, ipAddress); verifyRegistrarCreation("blobio-5", "blobio-eap", PASSWORD, ipAddress); verifyRegistrarContactCreation("blobio-1", "contact@email.com"); - verifyRegistrarContactCreation("blobio-2", "contact@email.com"); verifyRegistrarContactCreation("blobio-3", "contact@email.com"); verifyRegistrarContactCreation("blobio-4", "contact@email.com"); verifyRegistrarContactCreation("blobio-5", "contact@email.com"); @@ -197,12 +195,10 @@ public class SetupOteCommandTest extends CommandTestCase { "--email=abc@email.com", "--certfile=" + getCertFilename()); - verifyTldCreation("abc-sunrise", "ABCSUNR0", TldState.START_DATE_SUNRISE); - verifyTldCreation("abc-landrush", "ABCLAND1", TldState.LANDRUSH); - verifyTldCreation( - "abc-ga", + verifyTldCreation("abc-sunrise", "ABCSUNR0", START_DATE_SUNRISE); + verifyTldCreation("abc-ga", "ABCGA2", - TldState.GENERAL_AVAILABILITY, + GENERAL_AVAILABILITY, Duration.standardMinutes(60), Duration.standardMinutes(10), Duration.standardMinutes(5), @@ -210,7 +206,7 @@ public class SetupOteCommandTest extends CommandTestCase { verifyTldCreation( "abc-eap", "ABCEAP3", - TldState.GENERAL_AVAILABILITY, + GENERAL_AVAILABILITY, Duration.standardMinutes(60), Duration.standardMinutes(10), Duration.standardMinutes(5), @@ -220,13 +216,11 @@ public class SetupOteCommandTest extends CommandTestCase { ImmutableList.of(CidrAddressBlock.create("1.1.1.1")); verifyRegistrarCreation("abc-1", "abc-sunrise", PASSWORD, ipAddress); - verifyRegistrarCreation("abc-2", "abc-landrush", PASSWORD, ipAddress); verifyRegistrarCreation("abc-3", "abc-ga", PASSWORD, ipAddress); verifyRegistrarCreation("abc-4", "abc-ga", PASSWORD, ipAddress); verifyRegistrarCreation("abc-5", "abc-eap", PASSWORD, ipAddress); verifyRegistrarContactCreation("abc-1", "abc@email.com"); - verifyRegistrarContactCreation("abc-2", "abc@email.com"); verifyRegistrarContactCreation("abc-3", "abc@email.com"); verifyRegistrarContactCreation("abc-4", "abc@email.com"); verifyRegistrarContactCreation("abc-5", "abc@email.com"); @@ -243,7 +237,7 @@ public class SetupOteCommandTest extends CommandTestCase { verifyTldCreation( "blobio-eap", "BLOBIOE3", - TldState.GENERAL_AVAILABILITY, + GENERAL_AVAILABILITY, Duration.standardMinutes(60), Duration.standardMinutes(10), Duration.standardMinutes(5), @@ -265,12 +259,11 @@ public class SetupOteCommandTest extends CommandTestCase { "--email=contact@email.com", "--certfile=" + getCertFilename()); - verifyTldCreation("blobio-sunrise", "BLOBIOS0", TldState.START_DATE_SUNRISE); - verifyTldCreation("blobio-landrush", "BLOBIOL1", TldState.LANDRUSH); + verifyTldCreation("blobio-sunrise", "BLOBIOS0", START_DATE_SUNRISE); verifyTldCreation( "blobio-ga", "BLOBIOG2", - TldState.GENERAL_AVAILABILITY, + GENERAL_AVAILABILITY, Duration.standardMinutes(60), Duration.standardMinutes(10), Duration.standardMinutes(5), @@ -278,7 +271,7 @@ public class SetupOteCommandTest extends CommandTestCase { verifyTldCreation( "blobio-eap", "BLOBIOE3", - TldState.GENERAL_AVAILABILITY, + GENERAL_AVAILABILITY, Duration.standardMinutes(60), Duration.standardMinutes(10), Duration.standardMinutes(5), @@ -289,13 +282,11 @@ public class SetupOteCommandTest extends CommandTestCase { CidrAddressBlock.create("2.2.2.2")); verifyRegistrarCreation("blobio-1", "blobio-sunrise", PASSWORD, ipAddresses); - verifyRegistrarCreation("blobio-2", "blobio-landrush", PASSWORD, ipAddresses); verifyRegistrarCreation("blobio-3", "blobio-ga", PASSWORD, ipAddresses); verifyRegistrarCreation("blobio-4", "blobio-ga", PASSWORD, ipAddresses); verifyRegistrarCreation("blobio-5", "blobio-eap", PASSWORD, ipAddresses); verifyRegistrarContactCreation("blobio-1", "contact@email.com"); - verifyRegistrarContactCreation("blobio-2", "contact@email.com"); verifyRegistrarContactCreation("blobio-3", "contact@email.com"); verifyRegistrarContactCreation("blobio-4", "contact@email.com"); verifyRegistrarContactCreation("blobio-5", "contact@email.com"); @@ -470,8 +461,15 @@ public class SetupOteCommandTest extends CommandTestCase { "--email=contact@email.com", "--certfile=" + getCertFilename()); - verifyTldCreation("blobio-sunrise", "BLOBIOS0", TldState.START_DATE_SUNRISE); - verifyTldCreation("blobio-landrush", "BLOBIOL1", TldState.LANDRUSH); + verifyTldCreation("blobio-sunrise", "BLOBIOS0", START_DATE_SUNRISE); + verifyTldCreation( + "blobio-ga", + "BLOBIOG2", + GENERAL_AVAILABILITY, + Duration.standardMinutes(60), + Duration.standardMinutes(10), + Duration.standardMinutes(5), + false); } @Test @@ -512,6 +510,6 @@ public class SetupOteCommandTest extends CommandTestCase { CidrAddressBlock.create("1.1.1.1")); verifyRegistrarCreation("blobio-1", "blobio-sunrise", PASSWORD, ipAddress); - verifyRegistrarCreation("blobio-2", "blobio-landrush", PASSWORD, ipAddress); + verifyRegistrarCreation("blobio-3", "blobio-ga", PASSWORD, ipAddress); } } diff --git a/javatests/google/registry/tools/UpdateApplicationStatusCommandTest.java b/javatests/google/registry/tools/UpdateApplicationStatusCommandTest.java deleted file mode 100644 index 8bc4ca4a0..000000000 --- a/javatests/google/registry/tools/UpdateApplicationStatusCommandTest.java +++ /dev/null @@ -1,294 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static com.google.common.collect.Iterables.getLast; -import static com.google.common.truth.Truth.assertThat; -import static google.registry.model.domain.launch.ApplicationStatus.ALLOCATED; -import static google.registry.model.domain.launch.ApplicationStatus.PENDING_ALLOCATION; -import static google.registry.model.domain.launch.ApplicationStatus.REJECTED; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.loadRegistrar; -import static google.registry.testing.DatastoreHelper.newContactResourceWithRoid; -import static google.registry.testing.DatastoreHelper.newDomainApplication; -import static google.registry.testing.DatastoreHelper.persistResource; -import static google.registry.testing.DomainApplicationSubject.assertAboutApplications; -import static google.registry.testing.HistoryEntrySubject.assertAboutHistoryEntries; -import static google.registry.testing.JUnitBackports.assertThrows; -import static org.joda.time.DateTimeZone.UTC; - -import google.registry.model.domain.DomainApplication; -import google.registry.model.eppcommon.StatusValue; -import google.registry.model.eppcommon.Trid; -import google.registry.model.poll.PendingActionNotificationResponse.DomainPendingActionNotificationResponse; -import google.registry.model.poll.PollMessage; -import google.registry.model.reporting.HistoryEntry; -import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Test; - -/** Unit tests for {@link UpdateApplicationStatusCommand}. */ -public class UpdateApplicationStatusCommandTest - extends CommandTestCase { - - private DomainApplication domainApplication; - private DateTime creationTime; - - @Before - public void init() { - // Since the command's history client ID defaults to CharlestonRoad, resave TheRegistrar as - // CharlestonRoad so we don't have to pass in --history_client_id everywhere below. - persistResource( - loadRegistrar("TheRegistrar").asBuilder().setClientId("CharlestonRoad").build()); - - createTld("xn--q9jyb4c"); - domainApplication = persistResource(newDomainApplication( - "label.xn--q9jyb4c", persistResource(newContactResourceWithRoid("contact1", "C1-ROID"))) - .asBuilder() - .setPersistedCurrentSponsorClientId("TheRegistrar") - .build()); - - this.creationTime = domainApplication.getCreationTime(); - - // Add a history entry under this application that corresponds to its creation. - persistResource( - new HistoryEntry.Builder() - .setParent(domainApplication) - .setModificationTime(creationTime) - .setTrid(Trid.create("ABC123", "server-trid")) - .setType(HistoryEntry.Type.DOMAIN_APPLICATION_CREATE) - .build()); - - // Add a second history entry with a different Trid just to make sure we are always retrieving - // the right one. - persistResource( - new HistoryEntry.Builder() - .setParent(domainApplication) - .setModificationTime(creationTime) - .setTrid(Trid.create("ABC124", "server-trid")) - .setType(HistoryEntry.Type.DOMAIN_APPLICATION_CREATE) - .build()); - } - - private HistoryEntry loadLastHistoryEntry() { - // Loading everything and using getLast() is inefficient, but to do it right would require a new - // descending index on modification time, and this is fine for testing. - return getLast(ofy().load() - .type(HistoryEntry.class) - .ancestor(domainApplication) - .order("modificationTime") - .list()); - } - - @Test - public void testSuccess_rejected() throws Exception { - DateTime before = new DateTime(UTC); - - assertAboutApplications() - .that(domainApplication) - .hasStatusValue(StatusValue.PENDING_CREATE).and() - .doesNotHaveApplicationStatus(REJECTED); - assertThat(getPollMessageCount()).isEqualTo(0); - - Trid creationTrid = Trid.create("DEF456", "server-trid"); - persistResource(reloadResource(domainApplication).asBuilder() - .setCreationTrid(creationTrid) - .build()); - runCommandForced("--ids=2-Q9JYB4C", "--msg=\"Application rejected\"", "--status=REJECTED"); - - domainApplication = ofy().load().entity(domainApplication).now(); - assertAboutApplications().that(domainApplication) - .doesNotHaveStatusValue(StatusValue.PENDING_CREATE).and() - .hasApplicationStatus(REJECTED).and() - .hasLastEppUpdateTimeAtLeast(before).and() - .hasLastEppUpdateClientId("TheRegistrar"); - assertAboutHistoryEntries().that(loadLastHistoryEntry()) - .hasType(HistoryEntry.Type.DOMAIN_APPLICATION_STATUS_UPDATE).and() - .hasClientId("CharlestonRoad"); - assertThat(getPollMessageCount()).isEqualTo(1); - - PollMessage pollMessage = getFirstPollMessage(); - assertThat(pollMessage.getMsg()).isEqualTo("Application rejected"); - DomainPendingActionNotificationResponse response = - (DomainPendingActionNotificationResponse) - pollMessage.getResponseData().stream().findFirst().get(); - assertThat(response.getTrid()).isEqualTo(creationTrid); - assertThat(response.getActionResult()).isFalse(); - } - - private PollMessage getFirstPollMessage() { - return ofy().load().type(PollMessage.class).first().safe(); - } - - @Test - public void testSuccess_allocated() throws Exception { - DateTime before = new DateTime(UTC); - - assertAboutApplications().that(domainApplication) - .hasStatusValue(StatusValue.PENDING_CREATE).and() - .doesNotHaveApplicationStatus(ALLOCATED); - assertThat(getPollMessageCount()).isEqualTo(0); - - Trid creationTrid = Trid.create("DEF456", "server-trid"); - persistResource(reloadResource(domainApplication).asBuilder() - .setCreationTrid(creationTrid) - .build()); - runCommandForced("--ids=2-Q9JYB4C", "--msg=\"Application allocated\"", "--status=ALLOCATED"); - - domainApplication = ofy().load().entity(domainApplication).now(); - assertAboutApplications().that(domainApplication) - .doesNotHaveStatusValue(StatusValue.PENDING_CREATE).and() - .hasApplicationStatus(ALLOCATED).and() - .hasLastEppUpdateTimeAtLeast(before).and() - .hasLastEppUpdateClientId("TheRegistrar"); - assertAboutHistoryEntries().that(loadLastHistoryEntry()) - .hasType(HistoryEntry.Type.DOMAIN_APPLICATION_STATUS_UPDATE).and() - .hasClientId("CharlestonRoad"); - assertThat(getPollMessageCount()).isEqualTo(1); - - PollMessage pollMessage = getFirstPollMessage(); - assertThat(pollMessage.getMsg()).isEqualTo("Application allocated"); - DomainPendingActionNotificationResponse response = - (DomainPendingActionNotificationResponse) - pollMessage.getResponseData().stream().findFirst().get(); - assertThat(response.getTrid()).isEqualTo(creationTrid); - assertThat(response.getActionResult()).isTrue(); - } - - @Test - public void testSuccess_pendingAllocation() throws Exception { - DateTime before = new DateTime(UTC); - - assertAboutApplications().that(domainApplication) - .doesNotHaveApplicationStatus(PENDING_ALLOCATION).and() - .hasStatusValue(StatusValue.PENDING_CREATE); - assertThat(getPollMessageCount()).isEqualTo(0); - - Trid creationTrid = Trid.create("DEF456", "server-trid"); - persistResource(reloadResource(domainApplication).asBuilder() - .setCreationTrid(creationTrid) - .build()); - runCommandForced( - "--ids=2-Q9JYB4C", - "--msg=\"Application pending allocation\"", - "--status=PENDING_ALLOCATION"); - - domainApplication = ofy().load().entity(domainApplication).now(); - assertAboutApplications().that(domainApplication) - .hasStatusValue(StatusValue.PENDING_CREATE).and() - .hasApplicationStatus(PENDING_ALLOCATION).and() - .hasLastEppUpdateTimeAtLeast(before).and() - .hasLastEppUpdateClientId("TheRegistrar"); - assertAboutHistoryEntries().that(loadLastHistoryEntry()) - .hasType(HistoryEntry.Type.DOMAIN_APPLICATION_STATUS_UPDATE).and() - .hasClientId("CharlestonRoad"); - assertThat(getPollMessageCount()).isEqualTo(1); - - PollMessage pollMessage = getFirstPollMessage(); - assertThat(pollMessage.getMsg()).isEqualTo("Application pending allocation"); - assertThat(pollMessage.getResponseData()).isEmpty(); - assertThat(pollMessage.getResponseExtensions()).isNotEmpty(); - } - - @Test - public void testSuccess_rejectedTridFromHistoryEntry() throws Exception { - DateTime before = new DateTime(UTC); - - assertAboutApplications().that(domainApplication) - .hasStatusValue(StatusValue.PENDING_CREATE).and() - .doesNotHaveApplicationStatus(REJECTED); - assertThat(getPollMessageCount()).isEqualTo(0); - - runCommandForced("--ids=2-Q9JYB4C", "--msg=\"Application rejected\"", "--status=REJECTED"); - - domainApplication = ofy().load().entity(domainApplication).now(); - assertAboutApplications().that(domainApplication) - .doesNotHaveStatusValue(StatusValue.PENDING_CREATE).and() - .hasApplicationStatus(REJECTED).and() - .hasLastEppUpdateTimeAtLeast(before).and() - .hasLastEppUpdateClientId("TheRegistrar"); - assertAboutHistoryEntries().that(loadLastHistoryEntry()) - .hasType(HistoryEntry.Type.DOMAIN_APPLICATION_STATUS_UPDATE).and() - .hasClientId("CharlestonRoad"); - assertThat(getPollMessageCount()).isEqualTo(1); - - PollMessage pollMessage = getFirstPollMessage(); - DomainPendingActionNotificationResponse response = - (DomainPendingActionNotificationResponse) - pollMessage.getResponseData().stream().findFirst().get(); - assertThat(response.getTrid()).isEqualTo(Trid.create("ABC123", "server-trid")); - } - - @Test - public void testFailure_applicationAlreadyRejected() throws Exception { - assertThat(getPollMessageCount()).isEqualTo(0); - persistResource(reloadResource(domainApplication).asBuilder() - .setApplicationStatus(REJECTED) - .build()); - - runCommandForced("--ids=2-Q9JYB4C", "--msg=\"Application rejected\"", "--status=REJECTED"); - - assertAboutApplications().that(ofy().load().entity(domainApplication).now()) - .hasApplicationStatus(REJECTED); - assertThat(getPollMessageCount()).isEqualTo(0); - assertAboutHistoryEntries().that(loadLastHistoryEntry()) - .hasType(HistoryEntry.Type.DOMAIN_APPLICATION_CREATE); - } - - @Test - public void testFailure_applicationAlreadyAllocated() { - persistResource(reloadResource(domainApplication).asBuilder() - .setApplicationStatus(ALLOCATED) - .build()); - - IllegalStateException e = - assertThrows( - IllegalStateException.class, - () -> - runCommandForced( - "--ids=2-Q9JYB4C", "--msg=\"Application rejected\"", "--status=REJECTED")); - assertThat(e).hasMessageThat().contains("Domain application has final status ALLOCATED"); - assertAboutApplications().that(ofy().load().entity(domainApplication).now()) - .hasApplicationStatus(ALLOCATED); - assertThat(getPollMessageCount()).isEqualTo(0); - assertAboutHistoryEntries().that(loadLastHistoryEntry()) - .hasType(HistoryEntry.Type.DOMAIN_APPLICATION_CREATE); - } - - @Test - public void testFailure_applicationDoesNotExist() { - assertThrows( - IllegalArgumentException.class, - () -> - runCommandForced( - "--ids=555-Q9JYB4C", "--msg=\"Application rejected\"", "--status=REJECTED")); - } - - @Test - public void testFailure_historyClientIdDoesNotExist() { - IllegalArgumentException thrown = - assertThrows( - IllegalArgumentException.class, - () -> - runCommandForced( - "--history_client_id=fakeclient", - "--ids=2-Q9JYB4C", - "--msg=Ignored", - "--status=REJECTED")); - assertThat(thrown).hasMessageThat().contains("fakeclient"); - } -} - diff --git a/javatests/google/registry/tools/UpdateClaimsNoticeCommandTest.java b/javatests/google/registry/tools/UpdateClaimsNoticeCommandTest.java deleted file mode 100644 index ae498803a..000000000 --- a/javatests/google/registry/tools/UpdateClaimsNoticeCommandTest.java +++ /dev/null @@ -1,174 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static com.google.common.truth.Truth.assertThat; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.newDomainApplication; -import static google.registry.testing.DatastoreHelper.persistResource; -import static google.registry.testing.DomainApplicationSubject.assertAboutApplications; -import static google.registry.testing.JUnitBackports.assertThrows; -import static google.registry.util.DateTimeUtils.END_OF_TIME; -import static google.registry.util.DateTimeUtils.START_OF_TIME; -import static org.joda.time.DateTimeZone.UTC; - -import com.google.common.collect.ImmutableList; -import google.registry.model.domain.DomainApplication; -import google.registry.model.domain.launch.LaunchNotice; -import google.registry.model.domain.launch.LaunchNotice.InvalidChecksumException; -import google.registry.model.reporting.HistoryEntry; -import google.registry.model.smd.EncodedSignedMark; -import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Test; - -/** Unit tests for {@link UpdateClaimsNoticeCommandTest}. */ -public class UpdateClaimsNoticeCommandTest extends CommandTestCase { - - DomainApplication domainApplication; - - @Before - public void init() { - createTld("xn--q9jyb4c"); - domainApplication = persistResource(newDomainApplication("example-one.xn--q9jyb4c") - .asBuilder() - .setPersistedCurrentSponsorClientId("TheRegistrar") - .build()); - } - - private DomainApplication reloadDomainApplication() { - return ofy().load().entity(domainApplication).now(); - } - - @Test - public void testSuccess_noLaunchNotice() throws Exception { - DateTime before = new DateTime(UTC); - assertAboutApplications().that(domainApplication).hasLaunchNotice(null); - - runCommand( - "--id=2-Q9JYB4C", - "--tcn_id=370d0b7c9223372036854775807", - "--expiration_time=2010-08-16T09:00:00.0Z", - "--accepted_time=2009-08-16T09:00:00.0Z"); - - assertAboutApplications().that(reloadDomainApplication()) - .hasLaunchNotice(LaunchNotice.create( - "370d0b7c9223372036854775807", - "tmch", - DateTime.parse("2010-08-16T09:00:00.0Z"), - DateTime.parse("2009-08-16T09:00:00.0Z"))).and() - .hasLastEppUpdateTimeAtLeast(before).and() - .hasLastEppUpdateClientId("TheRegistrar").and() - .hasOnlyOneHistoryEntryWhich() - .hasType(HistoryEntry.Type.DOMAIN_APPLICATION_UPDATE).and() - .hasClientId("TheRegistrar"); - } - - @Test - public void testSuccess_paddedChecksum() throws Exception { - DateTime before = new DateTime(UTC); - domainApplication = persistResource(newDomainApplication("imdb.xn--q9jyb4c")); - - runCommand( - "--id=4-Q9JYB4C", - "--tcn_id=0a07ec6e0000000000010995975", - "--expiration_time=2014-02-28T12:00:00.0Z", - "--accepted_time=2014-02-26T12:00:00.0Z"); - - assertAboutApplications().that(reloadDomainApplication()) - .hasLaunchNotice(LaunchNotice.create( - "0a07ec6e0000000000010995975", - "tmch", - DateTime.parse("2014-02-28T12:00:00.0Z"), - DateTime.parse("2014-02-26T12:00:00.0Z"))).and() - .hasLastEppUpdateTimeAtLeast(before).and() - .hasLastEppUpdateClientId("TheRegistrar").and() - .hasOnlyOneHistoryEntryWhich() - .hasType(HistoryEntry.Type.DOMAIN_APPLICATION_UPDATE).and() - .hasClientId("TheRegistrar"); - } - - @Test - public void testSuccess_replaceExistingLaunchNotice() throws Exception { - DateTime before = new DateTime(UTC); - - // Set a launch notice which should get overwritten. - domainApplication = persistResource(domainApplication.asBuilder() - .setLaunchNotice(LaunchNotice.create("foobar", "tmch", END_OF_TIME, START_OF_TIME)) - .build()); - - runCommand( - "--id=2-Q9JYB4C", - "--tcn_id=370d0b7c9223372036854775807", - "--expiration_time=2010-08-16T09:00:00.0Z", - "--accepted_time=2009-08-16T09:00:00.0Z"); - - assertAboutApplications().that(reloadDomainApplication()) - .hasLaunchNotice(LaunchNotice.create( - "370d0b7c9223372036854775807", - "tmch", - DateTime.parse("2010-08-16T09:00:00.0Z"), - DateTime.parse("2009-08-16T09:00:00.0Z"))).and() - .hasLastEppUpdateTimeAtLeast(before).and() - .hasLastEppUpdateClientId("TheRegistrar").and() - .hasOnlyOneHistoryEntryWhich() - .hasType(HistoryEntry.Type.DOMAIN_APPLICATION_UPDATE).and() - .hasClientId("TheRegistrar"); - } - - @Test - public void testFailure_badClaimsNotice() { - assertThrows( - IllegalArgumentException.class, - () -> - runCommand( - "--id=1-Q9JYB4C", - "--tcn_id=foobarbaz", - "--expiration_time=2010-08-16T09:00:00.0Z", - "--accepted_time=2009-08-16T09:00:00.0Z")); - } - - @Test - public void testFailure_claimsNoticeForWrongLabel() { - persistResource(newDomainApplication("bad-label.xn--q9jyb4c")); - Exception e = - assertThrows( - Exception.class, - () -> - runCommand( - "--id=4-Q9JYB4C", - "--tcn_id=370d0b7c9223372036854775807", - "--expiration_time=2010-08-16T09:00:00.0Z", - "--accepted_time=2009-08-16T09:00:00.0Z")); - assertThat(e).hasCauseThat().isInstanceOf(InvalidChecksumException.class); - } - - @Test - public void testFailure_sunriseApplication() { - // Add an encoded signed mark to the application to make it a sunrise application. - domainApplication = persistResource(domainApplication.asBuilder() - .setEncodedSignedMarks(ImmutableList.of(EncodedSignedMark.create("base64", "AAAAA"))) - .build()); - assertThrows( - IllegalArgumentException.class, - () -> - runCommand( - "--id=1-Q9JYB4C", - "--tcn_id=370d0b7c9223372036854775807", - "--expiration_time=2010-08-16T09:00:00.0Z", - "--accepted_time=2009-08-16T09:00:00.0Z")); - } -} diff --git a/javatests/google/registry/tools/UpdateSmdCommandTest.java b/javatests/google/registry/tools/UpdateSmdCommandTest.java deleted file mode 100644 index d112bf311..000000000 --- a/javatests/google/registry/tools/UpdateSmdCommandTest.java +++ /dev/null @@ -1,179 +0,0 @@ -// Copyright 2017 The Nomulus Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package google.registry.tools; - -import static com.google.common.io.BaseEncoding.base64; -import static com.google.common.truth.Truth.assertThat; -import static google.registry.config.RegistryConfig.ConfigModule.TmchCaMode.PILOT; -import static google.registry.model.ofy.ObjectifyService.ofy; -import static google.registry.testing.DatastoreHelper.createTld; -import static google.registry.testing.DatastoreHelper.newDomainApplication; -import static google.registry.testing.DatastoreHelper.persistResource; -import static google.registry.testing.DomainApplicationSubject.assertAboutApplications; -import static google.registry.testing.JUnitBackports.assertThrows; -import static google.registry.tmch.TmchTestData.loadFile; -import static java.nio.charset.StandardCharsets.US_ASCII; -import static java.nio.charset.StandardCharsets.UTF_8; - -import com.google.common.collect.ImmutableList; -import com.google.common.io.CharSource; -import google.registry.flows.EppException.ParameterValuePolicyErrorException; -import google.registry.flows.EppException.ParameterValueSyntaxErrorException; -import google.registry.flows.EppException.RequiredParameterMissingException; -import google.registry.flows.domain.DomainFlowTmchUtils; -import google.registry.model.domain.DomainApplication; -import google.registry.model.ofy.Ofy; -import google.registry.model.reporting.HistoryEntry; -import google.registry.model.smd.EncodedSignedMark; -import google.registry.testing.FakeClock; -import google.registry.testing.InjectRule; -import google.registry.tmch.SmdrlCsvParser; -import google.registry.tmch.TmchCertificateAuthority; -import google.registry.tmch.TmchData; -import google.registry.tmch.TmchTestData; -import google.registry.tmch.TmchXmlSignature; -import org.joda.time.DateTime; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; - -/** Unit tests for {@link UpdateSmdCommandTest}. */ -public class UpdateSmdCommandTest extends CommandTestCase { - - DomainApplication domainApplication; - - private static final String ACTIVE_SMD = - loadFile("active/Court-Agent-English-Active.smd"); - private static final String DIFFERENT_LABEL_SMD = - loadFile("active/Court-Agent-Chinese-Active.smd"); - private static final String REVOKED_SMD = - loadFile("revoked/smd/Trademark-Holder-English-Revoked.smd"); - private static final String INVALID_SMD = - loadFile("invalid/InvalidSignature-Trademark-Agent-English-Active.smd"); - private static final String REVOKED_TMV_SMD = - loadFile("revoked/tmv/TMVRevoked-Trademark-Agent-English-Active.smd"); - private static final CharSource REVOCATION_LIST = - TmchTestData.loadBytes("tmch_test_smd_revocation_list.csv").asCharSource(US_ASCII); - - // Use a date that is within the valid range for the SMD test files. - private final FakeClock clock = new FakeClock(DateTime.parse("2018-06-01TZ")); - - @Rule - public final InjectRule inject = new InjectRule(); - - @Before - public void init() { - inject.setStaticField(Ofy.class, "clock", clock); - createTld("xn--q9jyb4c"); - clock.advanceOneMilli(); - domainApplication = persistResource(newDomainApplication("test-validate.xn--q9jyb4c") - .asBuilder() - .setPersistedCurrentSponsorClientId("TheRegistrar") - .setEncodedSignedMarks(ImmutableList.of(EncodedSignedMark.create("base64", "garbage"))) - .build()); - clock.advanceOneMilli(); - command.tmchUtils = - new DomainFlowTmchUtils(new TmchXmlSignature(new TmchCertificateAuthority(PILOT, clock))); - } - - private DomainApplication reloadDomainApplication() { - return ofy().load().entity(domainApplication).now(); - } - - @Test - public void testSuccess() throws Exception { - DateTime before = clock.nowUtc(); - clock.advanceOneMilli(); - String smdFile = writeToTmpFile(ACTIVE_SMD); - runCommand("--id=2-Q9JYB4C", "--smd=" + smdFile, "--reason=testing"); - - EncodedSignedMark encodedSignedMark = TmchData.readEncodedSignedMark(ACTIVE_SMD); - assertAboutApplications().that(reloadDomainApplication()) - .hasExactlyEncodedSignedMarks(encodedSignedMark).and() - .hasLastEppUpdateTimeAtLeast(before).and() - .hasLastEppUpdateClientId("TheRegistrar").and() - .hasOnlyOneHistoryEntryWhich() - .hasType(HistoryEntry.Type.DOMAIN_APPLICATION_UPDATE).and() - .hasClientId("TheRegistrar").and() - .hasMetadataReason("UpdateSmdCommand: testing").and() - .hasNoXml(); - } - - @Test - public void testFailure_invalidSmd() throws Exception { - String smdFile = writeToTmpFile(INVALID_SMD); - Exception e = - assertThrows(Exception.class, () -> runCommand("--id=2-Q9JYB4C", "--smd=" + smdFile)); - assertThat(e).hasCauseThat().isInstanceOf(ParameterValuePolicyErrorException.class); - } - - @Test - public void testFailure_revokedSmd() throws Exception { - SmdrlCsvParser.parse(REVOCATION_LIST.readLines()).save(); - clock.advanceOneMilli(); - String smdFile = writeToTmpFile(REVOKED_SMD); - Exception e = - assertThrows(Exception.class, () -> runCommand("--id=2-Q9JYB4C", "--smd=" + smdFile)); - assertThat(e).hasCauseThat().isInstanceOf(ParameterValuePolicyErrorException.class); - } - - @Test - public void testFailure_revokedTmv() throws Exception { - String smdFile = writeToTmpFile(REVOKED_TMV_SMD); - Exception e = - assertThrows(Exception.class, () -> runCommand("--id=2-Q9JYB4C", "--smd=" + smdFile)); - assertThat(e).hasCauseThat().isInstanceOf(ParameterValuePolicyErrorException.class); - } - - @Test - public void testFailure_unparseableXml() throws Exception { - String smdFile = writeToTmpFile(base64().encode("This is not XML!".getBytes(UTF_8))); - Exception e = - assertThrows(Exception.class, () -> runCommand("--id=2-Q9JYB4C", "--smd=" + smdFile)); - assertThat(e).hasCauseThat().isInstanceOf(ParameterValueSyntaxErrorException.class); - } - - @Test - public void testFailure_badlyEncodedData() throws Exception { - String smdFile = writeToTmpFile("Bad base64 data ~!@#$#@%%$#^$%^&^**&^)(*)(_".getBytes(UTF_8)); - Exception e = - assertThrows(Exception.class, () -> runCommand("--id=2-Q9JYB4C", "--smd=" + smdFile)); - assertThat(e).hasCauseThat().isInstanceOf(ParameterValueSyntaxErrorException.class); - } - - @Test - public void testFailure_wrongLabel() throws Exception { - String smdFile = writeToTmpFile(DIFFERENT_LABEL_SMD); - Exception e = - assertThrows(Exception.class, () -> runCommand("--id=2-Q9JYB4C", "--smd=" + smdFile)); - assertThat(e).hasCauseThat().isInstanceOf(RequiredParameterMissingException.class); - } - - @Test - public void testFailure_nonExistentApplication() throws Exception { - String smdFile = writeToTmpFile(ACTIVE_SMD); - assertThrows( - IllegalArgumentException.class, () -> runCommand("--id=3-Q9JYB4C", "--smd=" + smdFile)); - } - - @Test - public void testFailure_deletedApplication() throws Exception { - persistResource(domainApplication.asBuilder().setDeletionTime(clock.nowUtc()).build()); - clock.advanceOneMilli(); - String smdFile = writeToTmpFile(ACTIVE_SMD); - assertThrows( - IllegalArgumentException.class, () -> runCommand("--id=2-Q9JYB4C", "--smd=" + smdFile)); - } -} diff --git a/javatests/google/registry/tools/UpdateTldCommandTest.java b/javatests/google/registry/tools/UpdateTldCommandTest.java index 3cc69b935..19bb1de94 100644 --- a/javatests/google/registry/tools/UpdateTldCommandTest.java +++ b/javatests/google/registry/tools/UpdateTldCommandTest.java @@ -16,6 +16,7 @@ package google.registry.tools; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth8.assertThat; +import static google.registry.model.registry.Registry.TldState.START_DATE_SUNRISE; import static google.registry.testing.DatastoreHelper.createTld; import static google.registry.testing.DatastoreHelper.persistPremiumList; import static google.registry.testing.DatastoreHelper.persistReservedList; @@ -26,7 +27,6 @@ import static google.registry.util.DateTimeUtils.START_OF_TIME; import static org.joda.money.CurrencyUnit.JPY; import static org.joda.money.CurrencyUnit.USD; import static org.joda.time.DateTimeZone.UTC; -import static org.joda.time.Duration.standardDays; import static org.joda.time.Duration.standardMinutes; import com.beust.jcommander.ParameterException; @@ -65,28 +65,20 @@ public class UpdateTldCommandTest extends CommandTestCase { @Test public void testSuccess_tldStateTransitions() throws Exception { DateTime sunriseStart = now; - DateTime sunrushStart = sunriseStart.plusMonths(2); - DateTime quietPeriodStart = sunrushStart.plusMonths(1); + DateTime quietPeriodStart = sunriseStart.plusMonths(2); DateTime gaStart = quietPeriodStart.plusWeeks(1); runCommandForced( String.format( - "--tld_state_transitions=%s=PREDELEGATION,%s=SUNRISE,%s=SUNRUSH,%s=QUIET_PERIOD," + "--tld_state_transitions=%s=PREDELEGATION,%s=START_DATE_SUNRISE,%s=QUIET_PERIOD," + "%s=GENERAL_AVAILABILITY", - START_OF_TIME, - sunriseStart, - sunrushStart, - quietPeriodStart, - gaStart), + START_OF_TIME, sunriseStart, quietPeriodStart, gaStart), "xn--q9jyb4c"); Registry registry = Registry.get("xn--q9jyb4c"); assertThat(registry.getTldState(sunriseStart.minusMillis(1))).isEqualTo(TldState.PREDELEGATION); - assertThat(registry.getTldState(sunriseStart)).isEqualTo(TldState.SUNRISE); - assertThat(registry.getTldState(sunriseStart.plusMillis(1))).isEqualTo(TldState.SUNRISE); - assertThat(registry.getTldState(sunrushStart.minusMillis(1))).isEqualTo(TldState.SUNRISE); - assertThat(registry.getTldState(sunrushStart)).isEqualTo(TldState.SUNRUSH); - assertThat(registry.getTldState(sunrushStart.plusMillis(1))).isEqualTo(TldState.SUNRUSH); - assertThat(registry.getTldState(quietPeriodStart.minusMillis(1))).isEqualTo(TldState.SUNRUSH); + assertThat(registry.getTldState(sunriseStart)).isEqualTo(START_DATE_SUNRISE); + assertThat(registry.getTldState(sunriseStart.plusMillis(1))).isEqualTo(START_DATE_SUNRISE); + assertThat(registry.getTldState(quietPeriodStart.minusMillis(1))).isEqualTo(START_DATE_SUNRISE); assertThat(registry.getTldState(quietPeriodStart)).isEqualTo(TldState.QUIET_PERIOD); assertThat(registry.getTldState(quietPeriodStart.plusMillis(1))) .isEqualTo(TldState.QUIET_PERIOD); @@ -99,13 +91,14 @@ public class UpdateTldCommandTest extends CommandTestCase { @Test public void testSuccess_setTldState() throws Exception { - Registry registry = persistResource( - Registry.get("xn--q9jyb4c").asBuilder() + persistResource( + Registry.get("xn--q9jyb4c") + .asBuilder() .setTldStateTransitions(ImmutableSortedMap.of(START_OF_TIME, TldState.PREDELEGATION)) .build()); - runCommandForced("--set_current_tld_state=SUNRISE", "xn--q9jyb4c"); - registry = Registry.get("xn--q9jyb4c"); - assertThat(registry.getTldState(now.plusDays(1))).isEqualTo(TldState.SUNRISE); + runCommandForced("--set_current_tld_state=START_DATE_SUNRISE", "xn--q9jyb4c"); + assertThat(Registry.get("xn--q9jyb4c").getTldState(now.plusDays(1))) + .isEqualTo(START_DATE_SUNRISE); } @Test @@ -151,13 +144,6 @@ public class UpdateTldCommandTest extends CommandTestCase { assertThat(Registry.get("xn--q9jyb4c").getAddGracePeriodLength()).isEqualTo(standardMinutes(5)); } - @Test - public void testSuccess_sunrushAddGracePeriodFlag() throws Exception { - runCommandForced("--sunrush_add_grace_period=P13D", "xn--q9jyb4c"); - assertThat(Registry.get("xn--q9jyb4c").getSunrushAddGracePeriodLength()) - .isEqualTo(standardDays(13)); - } - @Test public void testSuccess_redemptionGracePeriodFlag() throws Exception { assertThat(Registry.get("xn--q9jyb4c").getRedemptionGracePeriodLength()) @@ -509,7 +495,7 @@ public class UpdateTldCommandTest extends CommandTestCase { () -> runCommandForced( String.format( - "--tld_state_transitions=%s=SUNRISE,%s=PREDELEGATION", + "--tld_state_transitions=%s=START_DATE_SUNRISE,%s=PREDELEGATION", now, now.plusMonths(1)), "xn--q9jyb4c")); assertThat(thrown).hasMessageThat().contains("The TLD states are chronologically out of order"); @@ -523,7 +509,8 @@ public class UpdateTldCommandTest extends CommandTestCase { () -> runCommandForced( String.format( - "--tld_state_transitions=%s=SUNRISE,%s=SUNRISE", now, now.plusMonths(1)), + "--tld_state_transitions=%s=START_DATE_SUNRISE,%s=START_DATE_SUNRISE", + now, now.plusMonths(1)), "xn--q9jyb4c")); assertThat(thrown).hasMessageThat().contains("The TLD states are chronologically out of order"); } @@ -535,7 +522,8 @@ public class UpdateTldCommandTest extends CommandTestCase { ParameterException.class, () -> runCommandForced( - String.format("--tld_state_transitions=%s=PREDELEGATION,%s=SUNRISE", now, now), + String.format( + "--tld_state_transitions=%s=PREDELEGATION,%s=START_DATE_SUNRISE", now, now), "xn--q9jyb4c")); assertThat(thrown) .hasMessageThat() @@ -550,7 +538,7 @@ public class UpdateTldCommandTest extends CommandTestCase { () -> runCommandForced( String.format( - "--tld_state_transitions=%s=PREDELEGATION,%s=SUNRISE", + "--tld_state_transitions=%s=PREDELEGATION,%s=START_DATE_SUNRISE", now, now.minus(Duration.millis(1))), "xn--q9jyb4c")); assertThat(thrown) @@ -566,7 +554,7 @@ public class UpdateTldCommandTest extends CommandTestCase { () -> runCommandForced( String.format( - "--tld_state_transitions=%s=PREDELEGATION,%s=SUNRISE", + "--tld_state_transitions=%s=PREDELEGATION,%s=START_DATE_SUNRISE", now, now.plusDays(1)), "--set_current_tld_state=GENERAL_AVAILABILITY", "xn--q9jyb4c")); @@ -587,7 +575,7 @@ public class UpdateTldCommandTest extends CommandTestCase { IllegalArgumentException thrown = assertThrows( IllegalArgumentException.class, - () -> runCommandForced("--set_current_tld_state=SUNRISE", "xn--q9jyb4c")); + () -> runCommandForced("--set_current_tld_state=START_DATE_SUNRISE", "xn--q9jyb4c")); assertThat(thrown).hasMessageThat().contains("The TLD states are chronologically out of order"); } @@ -603,7 +591,7 @@ public class UpdateTldCommandTest extends CommandTestCase { IllegalArgumentException thrown = assertThrows( IllegalArgumentException.class, - () -> runCommandForced("--set_current_tld_state=SUNRISE", "xn--q9jyb4c")); + () -> runCommandForced("--set_current_tld_state=START_DATE_SUNRISE", "xn--q9jyb4c")); assertThat(thrown) .hasMessageThat() .contains(" when there is a later transition already scheduled"); @@ -624,7 +612,7 @@ public class UpdateTldCommandTest extends CommandTestCase { () -> runCommandInEnvironment( RegistryToolEnvironment.PRODUCTION, - "--set_current_tld_state=SUNRISE", + "--set_current_tld_state=START_DATE_SUNRISE", "xn--q9jyb4c", "--force")); assertThat(thrown) diff --git a/javatests/google/registry/tools/params/EnumParameterTest.java b/javatests/google/registry/tools/params/EnumParameterTest.java index b5d1507aa..92ae85afb 100644 --- a/javatests/google/registry/tools/params/EnumParameterTest.java +++ b/javatests/google/registry/tools/params/EnumParameterTest.java @@ -38,10 +38,10 @@ public class EnumParameterTest { @Test public void testFailure_badValue() { IllegalArgumentException thrown = - assertThrows(IllegalArgumentException.class, () -> instance.convert("GENERAL_SUNRUSH")); + assertThrows(IllegalArgumentException.class, () -> instance.convert("FREE_DOMAINS")); assertThat(thrown) .hasMessageThat() .contains( - "No enum constant google.registry.model.registry.Registry.TldState.GENERAL_SUNRUSH"); + "No enum constant google.registry.model.registry.Registry.TldState.FREE_DOMAINS"); } } diff --git a/javatests/google/registry/tools/server/GenerateZoneFilesActionTest.java b/javatests/google/registry/tools/server/GenerateZoneFilesActionTest.java index 6a4f1ad29..d3453efd6 100644 --- a/javatests/google/registry/tools/server/GenerateZoneFilesActionTest.java +++ b/javatests/google/registry/tools/server/GenerateZoneFilesActionTest.java @@ -21,7 +21,6 @@ import static google.registry.testing.DatastoreHelper.newDomainResource; import static google.registry.testing.DatastoreHelper.newHostResource; import static google.registry.testing.DatastoreHelper.persistActiveContact; import static google.registry.testing.DatastoreHelper.persistActiveDomain; -import static google.registry.testing.DatastoreHelper.persistActiveDomainApplication; import static google.registry.testing.DatastoreHelper.persistActiveHost; import static google.registry.testing.DatastoreHelper.persistResource; import static google.registry.testing.GcsTestingUtils.readGcsFile; @@ -101,14 +100,13 @@ public class GenerateZoneFilesActionTest extends MapreduceTestCase { - - private void runMapreduce() throws Exception { - action = new KillAllDomainApplicationsAction(); - action.mrRunner = makeDefaultRunner(); - action.response = new FakeResponse(); - action.run(); - executeTasksUntilEmpty("mapreduce"); - } - - @Test - public void test_deletesOnlyApplicationsAndAssociatedEntities() throws Exception { - createTlds("tld1", "tld2"); - - DomainResource domain = persistActiveDomain("foo1.tld1"); - EppResourceIndex domainEri = - ofy().load().entity(EppResourceIndex.create(Key.create(domain))).now(); - ForeignKeyIndex domainFki = - ofy().load().key(ForeignKeyIndex.createKey(domain)).now(); - HistoryEntry domainHistoryEntry = - persistResource(new HistoryEntry.Builder().setParent(domain).build()); - - DomainApplication application = persistActiveDomainApplication("foo2.tld1"); - EppResourceIndex applicationEri = - ofy().load().entity(EppResourceIndex.create(Key.create(application))).now(); - DomainApplicationIndex applicationDai = - ofy().load().key(DomainApplicationIndex.createKey(application)).now(); - HistoryEntry applicationHistoryEntry = - persistResource(new HistoryEntry.Builder().setParent(application).build()); - - ContactResource contact = persistActiveContact("foo"); - HostResource host = persistActiveHost("ns.foo.tld1"); - - runMapreduce(); - ofy().clearSessionCache(); - - // Check that none of the domain, contact, and host entities were deleted. - assertThat( - ofy() - .load() - .entities(domain, domainEri, domainFki, domainHistoryEntry, contact, host) - .values()) - .containsExactly(domain, domainEri, domainFki, domainHistoryEntry, contact, host); - // Check that all of the domain application entities were deleted. - assertThat( - ofy() - .load() - .entities(application, applicationEri, applicationDai, applicationHistoryEntry)) - .isEmpty(); - } - - @Test - public void test_deletesApplication_evenWhenIndexIsMissing() throws Exception { - createTld("tld1"); - DomainApplication application = persistActiveDomainApplication("applied.tld1"); - EppResourceIndex applicationEri = - ofy().load().entity(EppResourceIndex.create(Key.create(application))).now(); - HistoryEntry applicationHistoryEntry = - persistResource(new HistoryEntry.Builder().setParent(application).build()); - - // Delete the domain application index. - ofy().transact(() -> ofy().delete().key(DomainApplicationIndex.createKey(application)).now()); - ofy().clearSessionCache(); - - runMapreduce(); - ofy().clearSessionCache(); - - // Check that the domain application and history entry were deleted even though the indexes - // couldn't be found. - assertThat(ofy().load().entities(application, applicationEri, applicationHistoryEntry)) - .isEmpty(); - } -} diff --git a/javatests/google/registry/tools/server/KillAllEppResourcesActionTest.java b/javatests/google/registry/tools/server/KillAllEppResourcesActionTest.java index 34c3586c9..10f5052d0 100644 --- a/javatests/google/registry/tools/server/KillAllEppResourcesActionTest.java +++ b/javatests/google/registry/tools/server/KillAllEppResourcesActionTest.java @@ -25,7 +25,6 @@ import static google.registry.model.ofy.ObjectifyService.ofy; import static google.registry.testing.DatastoreHelper.createTld; import static google.registry.testing.DatastoreHelper.persistActiveContact; import static google.registry.testing.DatastoreHelper.persistActiveDomain; -import static google.registry.testing.DatastoreHelper.persistActiveDomainApplication; import static google.registry.testing.DatastoreHelper.persistActiveHost; import static google.registry.testing.DatastoreHelper.persistResource; import static google.registry.util.DateTimeUtils.START_OF_TIME; @@ -43,7 +42,6 @@ import google.registry.model.billing.BillingEvent.Reason; import google.registry.model.contact.ContactResource; import google.registry.model.domain.DomainBase; import google.registry.model.host.HostResource; -import google.registry.model.index.DomainApplicationIndex; import google.registry.model.index.EppResourceIndex; import google.registry.model.index.ForeignKeyIndex.ForeignKeyContactIndex; import google.registry.model.index.ForeignKeyIndex.ForeignKeyDomainIndex; @@ -69,7 +67,6 @@ public class KillAllEppResourcesActionTest extends MapreduceTestCase - - - - - example-one.tld - 3 - - ns1.example.com - ns2.example.com - - registrant - billingContact - adminContact - techContact - - 2fooBAR - - - - - - 1-TLD - 1970-01-01T00:00:00.000Z - - 370d0b7c9223372036854775807 - 2010-08-16T09:00:00.000Z - 2009-08-16T09:00:00.000Z - - - - - 56789 - 2 - 4 - 69FD46E6C4A45C55D4AC - - - 12345 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - - ABC-123 - - diff --git a/javatests/google/registry/tools/server/testdata/allocate_domain2.xml b/javatests/google/registry/tools/server/testdata/allocate_domain2.xml deleted file mode 100644 index 2bea7f807..000000000 --- a/javatests/google/registry/tools/server/testdata/allocate_domain2.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - example-two.tld - 3 - - ns1.example.com - ns2.example.com - - registrant - billingContact - adminContact - techContact - - 2fooBAR - - - - - - 2-TLD - 1970-01-01T00:00:00.000Z - - 370d0b7c9223372036854775807 - 2010-08-16T09:00:00.000Z - 2009-08-16T09:00:00.000Z - - - - - 56789 - 2 - 4 - 69FD46E6C4A45C55D4AC - - - 12345 - 3 - 1 - 49FD46E6C4B45C55D4AC - - - - ABC-123 - - diff --git a/javatests/google/registry/tools/server/testdata/domain_create_sunrush.xml b/javatests/google/registry/tools/server/testdata/domain_create_sunrush.xml deleted file mode 100644 index 7d159de3b..000000000 --- a/javatests/google/registry/tools/server/testdata/domain_create_sunrush.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - example-one.tld - 3 - - ns1.example.com - ns2.example.com - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - - ABC-12345 - - diff --git a/javatests/google/registry/tools/server/testdata/domain_create_sunrush2.xml b/javatests/google/registry/tools/server/testdata/domain_create_sunrush2.xml deleted file mode 100644 index d4d29379d..000000000 --- a/javatests/google/registry/tools/server/testdata/domain_create_sunrush2.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - example-two.tld - 3 - - ns1.example.com - ns2.example.com - - jd1234 - sh8013 - sh8013 - - 2fooBAR - - - - - - sunrise - - - ABC-12345 - - diff --git a/javatests/google/registry/tools/server/testdata/domain_info_landrush.xml b/javatests/google/registry/tools/server/testdata/domain_info_landrush.xml deleted file mode 100644 index f5828bc44..000000000 --- a/javatests/google/registry/tools/server/testdata/domain_info_landrush.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - example.tld - - - - - landrush - 123 - - - RegistryTool - - diff --git a/javatests/google/registry/tools/server/testdata/domain_info_sunrush.xml b/javatests/google/registry/tools/server/testdata/domain_info_sunrush.xml deleted file mode 100644 index 3ac43cdf7..000000000 --- a/javatests/google/registry/tools/server/testdata/domain_info_sunrush.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - example.tld - - - - - sunrise - 123 - - - RegistryTool - - diff --git a/javatests/google/registry/ui/server/otesetup/ConsoleOteSetupActionTest.java b/javatests/google/registry/ui/server/otesetup/ConsoleOteSetupActionTest.java index da34d9d0e..7f6acf5d0 100644 --- a/javatests/google/registry/ui/server/otesetup/ConsoleOteSetupActionTest.java +++ b/javatests/google/registry/ui/server/otesetup/ConsoleOteSetupActionTest.java @@ -154,7 +154,6 @@ public final class ConsoleOteSetupActionTest { "" + "The following entities were created in unittest by TestUserId:\n" + " Registrar myclientid-1 with access to TLD myclientid-sunrise\n" - + " Registrar myclientid-2 with access to TLD myclientid-landrush\n" + " Registrar myclientid-3 with access to TLD myclientid-ga\n" + " Registrar myclientid-4 with access to TLD myclientid-ga\n" + " Registrar myclientid-5 with access to TLD myclientid-eap\n" diff --git a/javatests/google/registry/ui/server/registrar/OteStatusActionTest.java b/javatests/google/registry/ui/server/registrar/OteStatusActionTest.java index e9d5ff2d1..1e876bf82 100644 --- a/javatests/google/registry/ui/server/registrar/OteStatusActionTest.java +++ b/javatests/google/registry/ui/server/registrar/OteStatusActionTest.java @@ -105,9 +105,9 @@ public final class OteStatusActionTest { @Test public void testFailure_noRegistrar() { - assertThat(action.handleJsonRequest(ImmutableMap.of("clientId", "nonexistent-id-2"))) + assertThat(action.handleJsonRequest(ImmutableMap.of("clientId", "nonexistent-id-3"))) .containsExactlyEntriesIn( - errorResultWithMessage("TestUserId doesn't have access to registrar nonexistent-id-2")); + errorResultWithMessage("TestUserId doesn't have access to registrar nonexistent-id-3")); } @Test