From 9bffb09e34ae93163c4709233056582b8d3011d2 Mon Sep 17 00:00:00 2001 From: Oleg Hasjanov Date: Tue, 7 Sep 2021 12:22:12 +0300 Subject: [PATCH 01/10] added dnskey update prohibited status --- app/controllers/epp/domains_controller.rb | 43 +++++ app/models/domain.rb | 8 + app/models/domain_status.rb | 17 +- app/models/epp/domain.rb | 1 + .../epp/domain/update/base_test.rb | 174 ++++++++++++++++++ 5 files changed, 238 insertions(+), 5 deletions(-) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index d017fbcce..0e5f56e42 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -162,9 +162,52 @@ module Epp @prefix = 'update > update >' requires 'name' + dnskey_update_enabled + dnkey_update_prohibited status_editing_disabled end + def parsed_response_for_dnskey(value) + doc = Nokogiri::Slop params[:parsed_frame].css(value).to_html + + return true if doc.document.children.empty? + + store = [] + doc.document.add.children.each_with_index do |x, i| + store << doc.document.add.children[i].name + end + + return true if store.size == 1 and store[0] == "keyData" + + store.empty? + end + + def dnskey_update_enabled + find_domain + + if @domain.dnskey_update_enabled? && !params[:parsed_frame].css('update').empty? + + return if parsed_response_for_dnskey('add') + return if parsed_response_for_dnskey('rem') + + return epp_errors.add(:epp_errors, + code: '2304', + msg: "#{I18n.t(:object_status_prohibits_operation)} + :serverDnskeyUpdateEnabled") + end + end + + def dnkey_update_prohibited + find_domain + + if @domain.extension_update_prohibited? && !params[:parsed_frame].css('keyData').empty? + return epp_errors.add(:epp_errors, + code: '2304', + msg: "#{I18n.t(:object_status_prohibits_operation)} + :serverExtensionUpdateProhibited") + end + end + def validate_delete @prefix = 'delete > delete >' requires 'name' diff --git a/app/models/domain.rb b/app/models/domain.rb index 4686e270f..ab4fdfadc 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -220,6 +220,14 @@ class Domain < ApplicationRecord nameservers.select { |x| !x.hostname.end_with?(name) } end + def extension_update_prohibited? + statuses.include? DomainStatus::SERVER_EXTENSION_UPDATE_PROHIBITED + end + + def dnskey_update_enabled? + statuses.include? DomainStatus::SERVER_DNSKEY_UPDATE_ENABLED + end + def admin_change_prohibited? statuses.include? DomainStatus::SERVER_ADMIN_CHANGE_PROHIBITED end diff --git a/app/models/domain_status.rb b/app/models/domain_status.rb index 6210da2fa..ec157a60c 100644 --- a/app/models/domain_status.rb +++ b/app/models/domain_status.rb @@ -9,6 +9,8 @@ class DomainStatus < ApplicationRecord # Requests to delete the object MUST be rejected. CLIENT_DELETE_PROHIBITED = 'clientDeleteProhibited' SERVER_DELETE_PROHIBITED = 'serverDeleteProhibited' + SERVER_EXTENSION_UPDATE_PROHIBITED = 'serverExtensionUpdateProhibited' + SERVER_DNSKEY_UPDATE_ENABLED = 'serverDnskeyUpdateEnabled' # DNS delegation information MUST NOT be published for the object. CLIENT_HOLD = 'clientHold' @@ -80,10 +82,12 @@ class DomainStatus < ApplicationRecord CLIENT_DELETE_PROHIBITED, SERVER_DELETE_PROHIBITED, CLIENT_HOLD, SERVER_HOLD, CLIENT_RENEW_PROHIBITED, SERVER_RENEW_PROHIBITED, CLIENT_TRANSFER_PROHIBITED, SERVER_TRANSFER_PROHIBITED, CLIENT_UPDATE_PROHIBITED, SERVER_UPDATE_PROHIBITED, - INACTIVE, OK, PENDING_CREATE, PENDING_DELETE, PENDING_DELETE_CONFIRMATION, PENDING_RENEW, PENDING_TRANSFER, - PENDING_UPDATE, SERVER_MANUAL_INZONE, SERVER_REGISTRANT_CHANGE_PROHIBITED, - SERVER_ADMIN_CHANGE_PROHIBITED, SERVER_TECH_CHANGE_PROHIBITED, FORCE_DELETE, - DELETE_CANDIDATE, EXPIRED, DISPUTED, SERVER_RELEASE_PROHIBITED + INACTIVE, OK, PENDING_CREATE, PENDING_DELETE, PENDING_DELETE_CONFIRMATION, + PENDING_RENEW, PENDING_TRANSFER, PENDING_UPDATE, SERVER_MANUAL_INZONE, + SERVER_REGISTRANT_CHANGE_PROHIBITED, SERVER_ADMIN_CHANGE_PROHIBITED, + SERVER_TECH_CHANGE_PROHIBITED, FORCE_DELETE, DELETE_CANDIDATE, EXPIRED, DISPUTED, + SERVER_RELEASE_PROHIBITED, SERVER_EXTENSION_UPDATE_PROHIBITED, + SERVER_DNSKEY_UPDATE_ENABLED ].freeze CLIENT_STATUSES = [ @@ -94,7 +98,8 @@ class DomainStatus < ApplicationRecord SERVER_STATUSES = [ SERVER_DELETE_PROHIBITED, SERVER_HOLD, SERVER_RENEW_PROHIBITED, SERVER_TRANSFER_PROHIBITED, SERVER_UPDATE_PROHIBITED, SERVER_MANUAL_INZONE, SERVER_REGISTRANT_CHANGE_PROHIBITED, - SERVER_ADMIN_CHANGE_PROHIBITED, SERVER_TECH_CHANGE_PROHIBITED, SERVER_RELEASE_PROHIBITED + SERVER_ADMIN_CHANGE_PROHIBITED, SERVER_TECH_CHANGE_PROHIBITED, SERVER_RELEASE_PROHIBITED, + SERVER_EXTENSION_UPDATE_PROHIBITED, SERVER_DNSKEY_UPDATE_ENABLED ].freeze UPDATE_PROHIBIT_STATES = [ @@ -161,6 +166,8 @@ class DomainStatus < ApplicationRecord ['UpdateProhibited', SERVER_UPDATE_PROHIBITED], ['DeleteProhibited', SERVER_DELETE_PROHIBITED], ['ReleaseProhibited', SERVER_RELEASE_PROHIBITED], + ['serverExtensionUpdateProhibited', SERVER_EXTENSION_UPDATE_PROHIBITED], + ['serverDnskeyUpdateEnabled', SERVER_DNSKEY_UPDATE_ENABLED], ] end diff --git a/app/models/epp/domain.rb b/app/models/epp/domain.rb index 0b3f1ad7f..51871cce5 100644 --- a/app/models/epp/domain.rb +++ b/app/models/epp/domain.rb @@ -16,6 +16,7 @@ class Epp::Domain < Domain return unless update_prohibited? stat = (statuses & (DomainStatus::UPDATE_PROHIBIT_STATES + DomainStatus::DELETE_PROHIBIT_STATES)).first + add_epp_error('2304', 'status', stat, I18n.t(:object_status_prohibits_operation)) throw(:abort) end diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb index bff325307..032754f6e 100644 --- a/test/integration/epp/domain/update/base_test.rb +++ b/test/integration/epp/domain/update/base_test.rb @@ -48,6 +48,180 @@ class EppDomainUpdateBaseTest < EppTestCase assert_epp_response :parameter_value_syntax_error end + def test_update_domain_data_out_of_extension_block_with_serverDnskeyUpdateEnabled + @domain = domains(:shop) + @domain.statuses << DomainStatus::SERVER_DNSKEY_UPDATE_ENABLED + @domain.save + @dnskey = dnskeys(:one) + @dnskey.update(domain: @domain) + + request_xml = <<-XML + + + + + + shop.test + + + + #{nameservers(:shop_ns1).hostname} + + + #{nameservers(:shop_ns2).hostname} + + + + #{@dnskey.flags} + #{@dnskey.protocol} + #{@dnskey.alg} + #{@dnskey.public_key} + + + + + + + XML + + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + response_xml = Nokogiri::XML(response.body) + assert_correct_against_schema response_xml + @domain.reload + + assert_epp_response :completed_successfully + end + + def test_update_domain_dns_with_serverDnskeyUpdateEnabled + @domain = domains(:shop) + @domain.statuses << DomainStatus::SERVER_DNSKEY_UPDATE_ENABLED + @domain.save + @dnskey = dnskeys(:one) + @dnskey.update(domain: @domain) + + request_xml = <<-XML + + + + + + shop.test + + + f0ff7d17b0 + + + + + + + + + #{@dnskey.flags} + #{@dnskey.protocol} + #{@dnskey.alg} + #{@dnskey.public_key} + + + + + + + XML + + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + response_xml = Nokogiri::XML(response.body) + assert_correct_against_schema response_xml + @domain.reload + + assert_epp_response :completed_successfully + end + + def test_update_domain_data_out_of_extension_block_with_extension_update_prohibited + @domain = domains(:shop) + @domain.statuses << DomainStatus::SERVER_EXTENSION_UPDATE_PROHIBITED + @domain.save + + request_xml = <<-XML + + + + + + shop.test + + + + #{nameservers(:shop_ns1).hostname} + + + #{nameservers(:shop_ns2).hostname} + + + + + + + + XML + + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + response_xml = Nokogiri::XML(response.body) + assert_correct_against_schema response_xml + @domain.reload + + assert_epp_response :completed_successfully + end + + def test_update_domain_dns_with_extension_update_prohibited + @domain = domains(:shop) + @domain.statuses << DomainStatus::SERVER_EXTENSION_UPDATE_PROHIBITED + @domain.save + @dnskey = dnskeys(:one) + @dnskey.update(domain: @domain) + + request_xml = <<-XML + + + + + + shop.test + + + f0ff7d17b0 + + + + + + + + + #{@dnskey.flags} + #{@dnskey.protocol} + #{@dnskey.alg} + #{@dnskey.public_key} + + + + + + + XML + + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + response_xml = Nokogiri::XML(response.body) + assert_correct_against_schema response_xml + @domain.reload + + assert_epp_response :object_status_prohibits_operation + end + def test_update_domain request_xml = <<-XML From 49fc79244f3480ab3e67d3ed9244375cf51870b6 Mon Sep 17 00:00:00 2001 From: olegphenomenon Date: Wed, 8 Sep 2021 13:52:28 +0300 Subject: [PATCH 02/10] updated schemas --- .../registrar/xml_consoles_controller.rb | 2 +- app/models/domain.rb | 2 +- app/models/domain_status.rb | 8 ++-- config/initializers/load_schemas.rb | 2 +- lib/schemas/all-ee-1.3.xsd | 43 +++++++++++++++++++ lib/schemas/domain-ee-1.2.xsd | 6 ++- .../epp/domain/update/base_test.rb | 4 +- 7 files changed, 56 insertions(+), 11 deletions(-) create mode 100644 lib/schemas/all-ee-1.3.xsd diff --git a/app/controllers/registrar/xml_consoles_controller.rb b/app/controllers/registrar/xml_consoles_controller.rb index fd6804159..4c0a768c6 100644 --- a/app/controllers/registrar/xml_consoles_controller.rb +++ b/app/controllers/registrar/xml_consoles_controller.rb @@ -49,7 +49,7 @@ class Registrar when 'contact-ee' insert_prefix_and_version(xml, pref, '1.1') else - insert_prefix_and_version(xml, pref, '1.1') + insert_prefix_and_version(xml, pref, '1.2') end end diff --git a/app/models/domain.rb b/app/models/domain.rb index ab4fdfadc..e9b5c3f74 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -225,7 +225,7 @@ class Domain < ApplicationRecord end def dnskey_update_enabled? - statuses.include? DomainStatus::SERVER_DNSKEY_UPDATE_ENABLED + statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED end def admin_change_prohibited? diff --git a/app/models/domain_status.rb b/app/models/domain_status.rb index ec157a60c..a53978836 100644 --- a/app/models/domain_status.rb +++ b/app/models/domain_status.rb @@ -10,7 +10,7 @@ class DomainStatus < ApplicationRecord CLIENT_DELETE_PROHIBITED = 'clientDeleteProhibited' SERVER_DELETE_PROHIBITED = 'serverDeleteProhibited' SERVER_EXTENSION_UPDATE_PROHIBITED = 'serverExtensionUpdateProhibited' - SERVER_DNSKEY_UPDATE_ENABLED = 'serverDnskeyUpdateEnabled' + SERVER_OBJ_UPDATE_PROHIBITED = 'serverObjUpdateProhibited' # DNS delegation information MUST NOT be published for the object. CLIENT_HOLD = 'clientHold' @@ -87,7 +87,7 @@ class DomainStatus < ApplicationRecord SERVER_REGISTRANT_CHANGE_PROHIBITED, SERVER_ADMIN_CHANGE_PROHIBITED, SERVER_TECH_CHANGE_PROHIBITED, FORCE_DELETE, DELETE_CANDIDATE, EXPIRED, DISPUTED, SERVER_RELEASE_PROHIBITED, SERVER_EXTENSION_UPDATE_PROHIBITED, - SERVER_DNSKEY_UPDATE_ENABLED + SERVER_OBJ_UPDATE_PROHIBITED ].freeze CLIENT_STATUSES = [ @@ -99,7 +99,7 @@ class DomainStatus < ApplicationRecord SERVER_DELETE_PROHIBITED, SERVER_HOLD, SERVER_RENEW_PROHIBITED, SERVER_TRANSFER_PROHIBITED, SERVER_UPDATE_PROHIBITED, SERVER_MANUAL_INZONE, SERVER_REGISTRANT_CHANGE_PROHIBITED, SERVER_ADMIN_CHANGE_PROHIBITED, SERVER_TECH_CHANGE_PROHIBITED, SERVER_RELEASE_PROHIBITED, - SERVER_EXTENSION_UPDATE_PROHIBITED, SERVER_DNSKEY_UPDATE_ENABLED + SERVER_EXTENSION_UPDATE_PROHIBITED, SERVER_OBJ_UPDATE_PROHIBITED ].freeze UPDATE_PROHIBIT_STATES = [ @@ -167,7 +167,7 @@ class DomainStatus < ApplicationRecord ['DeleteProhibited', SERVER_DELETE_PROHIBITED], ['ReleaseProhibited', SERVER_RELEASE_PROHIBITED], ['serverExtensionUpdateProhibited', SERVER_EXTENSION_UPDATE_PROHIBITED], - ['serverDnskeyUpdateEnabled', SERVER_DNSKEY_UPDATE_ENABLED], + ['serverObjUpdateProhibited', SERVER_OBJ_UPDATE_PROHIBITED], ] end diff --git a/config/initializers/load_schemas.rb b/config/initializers/load_schemas.rb index 1f34d58df..e07f08331 100644 --- a/config/initializers/load_schemas.rb +++ b/config/initializers/load_schemas.rb @@ -1 +1 @@ -EPP_ALL_SCHEMA = Nokogiri::XML::Schema(File.read('lib/schemas/all-ee-1.2.xsd')) +EPP_ALL_SCHEMA = Nokogiri::XML::Schema(File.read('lib/schemas/all-ee-1.3.xsd')) diff --git a/lib/schemas/all-ee-1.3.xsd b/lib/schemas/all-ee-1.3.xsd new file mode 100644 index 000000000..305cce231 --- /dev/null +++ b/lib/schemas/all-ee-1.3.xsd @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + Extensible Provisioning Protocol v1.0 + all schema's grouped together + + + + diff --git a/lib/schemas/domain-ee-1.2.xsd b/lib/schemas/domain-ee-1.2.xsd index 073986ac7..0420dd134 100644 --- a/lib/schemas/domain-ee-1.2.xsd +++ b/lib/schemas/domain-ee-1.2.xsd @@ -1,7 +1,7 @@ - + + diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb index 032754f6e..ab093d89f 100644 --- a/test/integration/epp/domain/update/base_test.rb +++ b/test/integration/epp/domain/update/base_test.rb @@ -50,7 +50,7 @@ class EppDomainUpdateBaseTest < EppTestCase def test_update_domain_data_out_of_extension_block_with_serverDnskeyUpdateEnabled @domain = domains(:shop) - @domain.statuses << DomainStatus::SERVER_DNSKEY_UPDATE_ENABLED + @domain.statuses << DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED @domain.save @dnskey = dnskeys(:one) @dnskey.update(domain: @domain) @@ -95,7 +95,7 @@ class EppDomainUpdateBaseTest < EppTestCase def test_update_domain_dns_with_serverDnskeyUpdateEnabled @domain = domains(:shop) - @domain.statuses << DomainStatus::SERVER_DNSKEY_UPDATE_ENABLED + @domain.statuses << DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED @domain.save @dnskey = dnskeys(:one) @dnskey.update(domain: @domain) From 825f81343711ab2190d21f39205b819fac0b6aa9 Mon Sep 17 00:00:00 2001 From: olegphenomenon Date: Wed, 8 Sep 2021 14:22:12 +0300 Subject: [PATCH 03/10] updated tests --- .../admin_area/domain_update_confirms_test.rb | 4 +- test/integration/epp/base_test.rb | 8 +-- test/integration/epp/domain/base_test.rb | 2 +- .../epp/domain/check/auction_test.rb | 30 +++++------ .../integration/epp/domain/check/base_test.rb | 44 ++++++++-------- .../epp/domain/create/auction_idn_test.rb | 12 ++--- .../epp/domain/create/auction_test.rb | 14 ++--- .../epp/domain/create/base_test.rb | 44 ++++++++-------- .../epp/domain/delete/base_test.rb | 16 +++--- test/integration/epp/domain/info/base_test.rb | 32 ++++++------ .../integration/epp/domain/renew/base_test.rb | 16 +++--- .../epp/domain/transfer/query_test.rb | 12 ++--- .../epp/domain/transfer/request_test.rb | 6 +-- .../epp/domain/update/base_test.rb | 52 +++++++++---------- .../epp/domain/update/rem_dns_test.rb | 4 +- test/integration/epp/login_test.rb | 10 ++-- .../registrar_area/xml_consoles_test.rb | 2 +- 17 files changed, 154 insertions(+), 154 deletions(-) diff --git a/test/integration/admin_area/domain_update_confirms_test.rb b/test/integration/admin_area/domain_update_confirms_test.rb index 3cd64a872..55b00005f 100644 --- a/test/integration/admin_area/domain_update_confirms_test.rb +++ b/test/integration/admin_area/domain_update_confirms_test.rb @@ -18,7 +18,7 @@ class AdminAreaBlockedDomainsIntegrationTest < JavaScriptApplicationSystemTestCa - + #{@domain.name} #{new_registrant.code} @@ -53,7 +53,7 @@ class AdminAreaBlockedDomainsIntegrationTest < JavaScriptApplicationSystemTestCa - + #{@domain.name} #{new_registrant.code} diff --git a/test/integration/epp/base_test.rb b/test/integration/epp/base_test.rb index 4aa89e1ed..400702b28 100644 --- a/test/integration/epp/base_test.rb +++ b/test/integration/epp/base_test.rb @@ -91,7 +91,7 @@ class EppBaseTest < EppTestCase - + #{domains(:shop).name} @@ -115,7 +115,7 @@ class EppBaseTest < EppTestCase - + #{domains(:shop).name} @@ -141,7 +141,7 @@ class EppBaseTest < EppTestCase - + #{domains(:shop).name} @@ -168,7 +168,7 @@ class EppBaseTest < EppTestCase - + #{domains(:shop).name} diff --git a/test/integration/epp/domain/base_test.rb b/test/integration/epp/domain/base_test.rb index 9b117f3d4..4e19dcd77 100644 --- a/test/integration/epp/domain/base_test.rb +++ b/test/integration/epp/domain/base_test.rb @@ -7,7 +7,7 @@ class EppDomainBaseTest < EppTestCase - + non-existent.test diff --git a/test/integration/epp/domain/check/auction_test.rb b/test/integration/epp/domain/check/auction_test.rb index ad134794a..df0430287 100644 --- a/test/integration/epp/domain/check/auction_test.rb +++ b/test/integration/epp/domain/check/auction_test.rb @@ -20,7 +20,7 @@ class EppDomainCheckAuctionTest < EppTestCase - + auction.test @@ -34,8 +34,8 @@ class EppDomainCheckAuctionTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_correct_against_schema response_xml assert_epp_response :completed_successfully - assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}")['avail'] - assert_equal 'Domain is at auction', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}").text + assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}")['avail'] + assert_equal 'Domain is at auction', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}").text end def test_idn_ascii_domain_is_unavailable_when_at_auction @@ -46,7 +46,7 @@ class EppDomainCheckAuctionTest < EppTestCase - + xn--pramiid-n2a.test @@ -60,8 +60,8 @@ class EppDomainCheckAuctionTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_correct_against_schema response_xml assert_epp_response :completed_successfully - assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}")['avail'] - assert_equal 'Domain is at auction', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}").text + assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}")['avail'] + assert_equal 'Domain is at auction', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}").text end def test_idn_unicode_domain_is_unavailable_when_at_auction @@ -72,7 +72,7 @@ class EppDomainCheckAuctionTest < EppTestCase - + püramiid.test @@ -86,8 +86,8 @@ class EppDomainCheckAuctionTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_correct_against_schema response_xml assert_epp_response :completed_successfully - assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}")['avail'] - assert_equal 'Domain is at auction', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}").text + assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}")['avail'] + assert_equal 'Domain is at auction', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}").text end def test_domain_is_unavailable_when_awaiting_payment @@ -98,7 +98,7 @@ class EppDomainCheckAuctionTest < EppTestCase - + auction.test @@ -112,8 +112,8 @@ class EppDomainCheckAuctionTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_correct_against_schema response_xml assert_epp_response :completed_successfully - assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}")['avail'] - assert_equal 'Awaiting payment', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}").text + assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}")['avail'] + assert_equal 'Awaiting payment', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}").text end def test_domain_is_available_when_payment_received @@ -124,7 +124,7 @@ class EppDomainCheckAuctionTest < EppTestCase - + auction.test @@ -138,7 +138,7 @@ class EppDomainCheckAuctionTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_correct_against_schema response_xml assert_epp_response :completed_successfully - assert_equal '1', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}")['avail'] - assert_nil response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}") + assert_equal '1', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}")['avail'] + assert_nil response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}") end end diff --git a/test/integration/epp/domain/check/base_test.rb b/test/integration/epp/domain/check/base_test.rb index 3a5b9bd76..7a1c20c88 100644 --- a/test/integration/epp/domain/check/base_test.rb +++ b/test/integration/epp/domain/check/base_test.rb @@ -7,7 +7,7 @@ class EppDomainCheckBaseTest < EppTestCase - + some.test @@ -21,7 +21,7 @@ class EppDomainCheckBaseTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_epp_response :completed_successfully assert_correct_against_schema response_xml - assert_equal 'some.test', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}").text + assert_equal 'some.test', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}").text end def test_domain_is_available_when_not_registered_or_blocked @@ -30,7 +30,7 @@ class EppDomainCheckBaseTest < EppTestCase - + available.test @@ -43,8 +43,8 @@ class EppDomainCheckBaseTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_correct_against_schema response_xml - assert_equal '1', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}")['avail'] - assert_nil response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}") + assert_equal '1', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}")['avail'] + assert_nil response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}") end def test_domain_is_available_when_reserved @@ -55,7 +55,7 @@ class EppDomainCheckBaseTest < EppTestCase - + reserved.test @@ -68,8 +68,8 @@ class EppDomainCheckBaseTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_correct_against_schema response_xml - assert_equal '1', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}")['avail'] - assert_nil response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}") + assert_equal '1', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}")['avail'] + assert_nil response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}") end def test_domain_is_unavailable_when_format_is_invalid @@ -78,7 +78,7 @@ class EppDomainCheckBaseTest < EppTestCase - + invalid @@ -91,8 +91,8 @@ class EppDomainCheckBaseTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_correct_against_schema response_xml - assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}")['avail'] - assert_equal 'invalid format', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}").text + assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}")['avail'] + assert_equal 'invalid format', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}").text end def test_domain_is_unavailable_when_registered @@ -103,7 +103,7 @@ class EppDomainCheckBaseTest < EppTestCase - + shop.test @@ -116,8 +116,8 @@ class EppDomainCheckBaseTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_correct_against_schema response_xml - assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}")['avail'] - assert_equal 'in use', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}").text + assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}")['avail'] + assert_equal 'in use', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}").text end def test_domain_is_unavailable_when_blocked @@ -128,7 +128,7 @@ class EppDomainCheckBaseTest < EppTestCase - + blocked.test @@ -141,8 +141,8 @@ class EppDomainCheckBaseTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_correct_against_schema response_xml - assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}")['avail'] - assert_equal 'Blocked', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}").text + assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}")['avail'] + assert_equal 'Blocked', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}").text end def test_domain_is_unavailable_when_zone_with_the_same_origin_exists @@ -153,7 +153,7 @@ class EppDomainCheckBaseTest < EppTestCase - + test @@ -166,8 +166,8 @@ class EppDomainCheckBaseTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_correct_against_schema response_xml - assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}")['avail'] - assert_equal 'Zone with the same origin exists', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}").text + assert_equal '0', response_xml.at_xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}")['avail'] + assert_equal 'Zone with the same origin exists', response_xml.at_xpath('//domain:reason', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}").text end def test_multiple_domains @@ -176,7 +176,7 @@ class EppDomainCheckBaseTest < EppTestCase - + one.test two.test three.test @@ -191,6 +191,6 @@ class EppDomainCheckBaseTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_correct_against_schema response_xml - assert_equal 3, response_xml.xpath('//domain:cd', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}").size + assert_equal 3, response_xml.xpath('//domain:cd', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}").size end end diff --git a/test/integration/epp/domain/create/auction_idn_test.rb b/test/integration/epp/domain/create/auction_idn_test.rb index 604b74c7d..76532ca51 100644 --- a/test/integration/epp/domain/create/auction_idn_test.rb +++ b/test/integration/epp/domain/create/auction_idn_test.rb @@ -24,7 +24,7 @@ class EppDomainCreateAuctionIdnTest < EppTestCase - + xn--pramiid-n2a.test #{contacts(:john).code} @@ -62,7 +62,7 @@ class EppDomainCreateAuctionIdnTest < EppTestCase - + püramiid.test #{contacts(:john).code} @@ -99,7 +99,7 @@ class EppDomainCreateAuctionIdnTest < EppTestCase - + xn--pramiid-n2a.test #{contacts(:john).code} @@ -136,7 +136,7 @@ class EppDomainCreateAuctionIdnTest < EppTestCase - + püramiid.test #{contacts(:john).code} @@ -174,7 +174,7 @@ class EppDomainCreateAuctionIdnTest < EppTestCase - + püramiid.test #{contacts(:john).code} @@ -214,7 +214,7 @@ class EppDomainCreateAuctionIdnTest < EppTestCase - + xn--pramiid-n2a.test #{contacts(:john).code} diff --git a/test/integration/epp/domain/create/auction_test.rb b/test/integration/epp/domain/create/auction_test.rb index cd20f2dac..ebebfb9bf 100644 --- a/test/integration/epp/domain/create/auction_test.rb +++ b/test/integration/epp/domain/create/auction_test.rb @@ -16,7 +16,7 @@ class EppDomainCreateAuctionTest < EppTestCase - + not-at-auction.test #{contacts(:john).code} @@ -53,7 +53,7 @@ class EppDomainCreateAuctionTest < EppTestCase - + auction.test #{contacts(:john).code} @@ -88,7 +88,7 @@ class EppDomainCreateAuctionTest < EppTestCase - + auction.test #{contacts(:john).code} @@ -126,7 +126,7 @@ class EppDomainCreateAuctionTest < EppTestCase - + auction.test #{contacts(:john).code} @@ -158,7 +158,7 @@ class EppDomainCreateAuctionTest < EppTestCase - + auction.test #{contacts(:john).code} @@ -192,7 +192,7 @@ class EppDomainCreateAuctionTest < EppTestCase - + auction.test #{contacts(:john).code} @@ -226,7 +226,7 @@ class EppDomainCreateAuctionTest < EppTestCase - + auction.test diff --git a/test/integration/epp/domain/create/base_test.rb b/test/integration/epp/domain/create/base_test.rb index de36e7a02..63212d2fa 100644 --- a/test/integration/epp/domain/create/base_test.rb +++ b/test/integration/epp/domain/create/base_test.rb @@ -17,7 +17,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{name} #{registrant.code} @@ -59,7 +59,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{name} #{registrant.code} @@ -94,7 +94,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{name} #{registrant.code} @@ -132,7 +132,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{name} #{registrant.code} @@ -170,7 +170,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{name} #{registrant.code} @@ -201,7 +201,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{name} #{registrant.code} #{contacts(:jane).code} @@ -239,7 +239,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{name} #{registrant.code} #{contact.code} @@ -279,7 +279,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{name} #{registrant.code} #{contact.code} @@ -318,7 +318,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{name} #{registrant.code} #{contact.code} @@ -358,7 +358,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{name} #{registrant.code} #{contact.code} @@ -398,7 +398,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{name} #{registrant.code} #{contact_two.code} @@ -437,7 +437,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{name} #{registrant.code} @@ -487,7 +487,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{name} #{registrant.code} @@ -525,7 +525,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{name} #{registrant.code} @@ -562,7 +562,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{reserved_domain.name} #{contacts(:john).code} @@ -600,7 +600,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{name} #{contacts(:john).code} @@ -635,7 +635,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{blocked_domain} #{contacts(:john).code} @@ -667,7 +667,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{SimpleIDN.to_ascii('blockedäöüõ.test')} #{contacts(:john).code} @@ -696,7 +696,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{reserved_domains(:one).name} #{contacts(:john).code} @@ -730,7 +730,7 @@ class EppDomainCreateBaseTest < EppTestCase - + #{reserved_domain.name} #{contacts(:john).code} @@ -762,7 +762,7 @@ class EppDomainCreateBaseTest < EppTestCase - + new.test #{contacts(:john).code} @@ -792,7 +792,7 @@ class EppDomainCreateBaseTest < EppTestCase - + new.test 2 john-001 diff --git a/test/integration/epp/domain/delete/base_test.rb b/test/integration/epp/domain/delete/base_test.rb index 04c6fe714..95e5e6afd 100644 --- a/test/integration/epp/domain/delete/base_test.rb +++ b/test/integration/epp/domain/delete/base_test.rb @@ -21,7 +21,7 @@ class EppDomainDeleteBaseTest < EppTestCase - + invalid.test @@ -50,7 +50,7 @@ class EppDomainDeleteBaseTest < EppTestCase - + shop.test @@ -80,7 +80,7 @@ class EppDomainDeleteBaseTest < EppTestCase - + shop.test @@ -116,7 +116,7 @@ class EppDomainDeleteBaseTest < EppTestCase - + shop.test @@ -153,7 +153,7 @@ class EppDomainDeleteBaseTest < EppTestCase - + shop.test @@ -189,7 +189,7 @@ class EppDomainDeleteBaseTest < EppTestCase - + shop.test @@ -224,7 +224,7 @@ class EppDomainDeleteBaseTest < EppTestCase - + shop.test @@ -248,7 +248,7 @@ class EppDomainDeleteBaseTest < EppTestCase - + shop.test diff --git a/test/integration/epp/domain/info/base_test.rb b/test/integration/epp/domain/info/base_test.rb index 3e4178054..da3be1d38 100644 --- a/test/integration/epp/domain/info/base_test.rb +++ b/test/integration/epp/domain/info/base_test.rb @@ -13,7 +13,7 @@ class EppDomainInfoBaseTest < EppTestCase - + shop.test @@ -30,22 +30,22 @@ class EppDomainInfoBaseTest < EppTestCase assert assert_schema_is_bigger(response_xml, 'domain-ee', 1.1) assert_equal 'shop.test', response_xml.at_xpath('//domain:name', - 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1').to_s).text + 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2').to_s).text assert_equal 'ok', response_xml.at_xpath('//domain:status', - 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1').to_s)['s'] + 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2').to_s)['s'] assert_equal 'john-001', response_xml.at_xpath('//domain:registrant', - 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1').to_s).text + 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2').to_s).text assert_equal '2010-07-05T00:00:00+03:00', response_xml.at_xpath('//domain:crDate', - 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1').to_s).text + 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2').to_s).text assert_equal '2010-07-06T00:00:00+03:00', response_xml.at_xpath('//domain:upDate', - 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1').to_s).text + 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2').to_s).text assert_equal '2010-07-07T00:00:00+03:00', response_xml.at_xpath('//domain:exDate', - 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1').to_s).text + 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2').to_s).text end def test_return_wrong_schema_with_invalid_version @@ -74,7 +74,7 @@ class EppDomainInfoBaseTest < EppTestCase - + shop.test @@ -164,7 +164,7 @@ class EppDomainInfoBaseTest < EppTestCase - + shop.test @@ -192,7 +192,7 @@ class EppDomainInfoBaseTest < EppTestCase - + shop.test @@ -216,7 +216,7 @@ class EppDomainInfoBaseTest < EppTestCase - + shop.test @@ -230,7 +230,7 @@ class EppDomainInfoBaseTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_equal '65078d5', response_xml.at_xpath('//domain:authInfo/domain:pw', - 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1').to_s).text + 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2').to_s).text assert_correct_against_schema response_xml end @@ -244,7 +244,7 @@ class EppDomainInfoBaseTest < EppTestCase - + shop.test 65078d5 @@ -261,7 +261,7 @@ class EppDomainInfoBaseTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_equal '65078d5', response_xml.at_xpath('//domain:authInfo/domain:pw', - 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1').to_s).text + 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2').to_s).text assert_correct_against_schema response_xml end @@ -271,7 +271,7 @@ class EppDomainInfoBaseTest < EppTestCase - + shop.test @@ -288,6 +288,6 @@ class EppDomainInfoBaseTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_correct_against_schema response_xml assert_nil response_xml.at_xpath('//domain:authInfo/domain:pw', - 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1').to_s) + 'domain' => Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2').to_s) end end diff --git a/test/integration/epp/domain/renew/base_test.rb b/test/integration/epp/domain/renew/base_test.rb index 6cbe619d4..68d4f7d2a 100644 --- a/test/integration/epp/domain/renew/base_test.rb +++ b/test/integration/epp/domain/renew/base_test.rb @@ -14,7 +14,7 @@ class EppDomainRenewBaseTest < EppTestCase - + #{domain.name} #{domain.expire_time.to_date} 1 @@ -48,7 +48,7 @@ class EppDomainRenewBaseTest < EppTestCase - + #{domain.name} #{domain.expire_time.to_date} 1 @@ -78,7 +78,7 @@ class EppDomainRenewBaseTest < EppTestCase - + #{domain.name} #{domain.valid_to.to_date} 1 @@ -109,7 +109,7 @@ class EppDomainRenewBaseTest < EppTestCase - + #{domain.name} #{domain.valid_to.to_date} 1 @@ -140,7 +140,7 @@ class EppDomainRenewBaseTest < EppTestCase - + #{domain.name} #{domain.expire_time.to_date} 1 @@ -170,7 +170,7 @@ class EppDomainRenewBaseTest < EppTestCase - + #{domain.name} #{domain.expire_time.to_date} 2 @@ -201,7 +201,7 @@ class EppDomainRenewBaseTest < EppTestCase - + #{domain.name} #{provided_expiration_date} @@ -235,7 +235,7 @@ class EppDomainRenewBaseTest < EppTestCase - + #{domain.name} #{domain.expire_time.to_date} 1 diff --git a/test/integration/epp/domain/transfer/query_test.rb b/test/integration/epp/domain/transfer/query_test.rb index 7635d8a8b..6f9ad9516 100644 --- a/test/integration/epp/domain/transfer/query_test.rb +++ b/test/integration/epp/domain/transfer/query_test.rb @@ -9,10 +9,10 @@ class EppDomainTransferQueryTest < EppTestCase assert_correct_against_schema xml_doc assert_epp_response :completed_successfully - assert_equal 'shop.test', xml_doc.xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}").text - assert_equal 'serverApproved', xml_doc.xpath('//domain:trStatus', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}").text - assert_equal 'goodnames', xml_doc.xpath('//domain:reID', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}").text - assert_equal 'bestnames', xml_doc.xpath('//domain:acID', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}").text + assert_equal 'shop.test', xml_doc.xpath('//domain:name', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}").text + assert_equal 'serverApproved', xml_doc.xpath('//domain:trStatus', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}").text + assert_equal 'goodnames', xml_doc.xpath('//domain:reID', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}").text + assert_equal 'bestnames', xml_doc.xpath('//domain:acID', 'domain' => "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}").text end def test_wrong_transfer_code @@ -21,7 +21,7 @@ class EppDomainTransferQueryTest < EppTestCase - + shop.test wrong @@ -57,7 +57,7 @@ class EppDomainTransferQueryTest < EppTestCase - + shop.test 65078d5 diff --git a/test/integration/epp/domain/transfer/request_test.rb b/test/integration/epp/domain/transfer/request_test.rb index 1e706ce6b..b1be6a97b 100644 --- a/test/integration/epp/domain/transfer/request_test.rb +++ b/test/integration/epp/domain/transfer/request_test.rb @@ -133,7 +133,7 @@ class EppDomainTransferRequestTest < EppTestCase response_xml = Nokogiri::XML(response.body) assert_correct_against_schema response_xml assert_equal 'serverApproved', Nokogiri::XML(response.body).xpath('//domain:trStatus', 'domain' => - "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')}").text + "#{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')}").text end def test_assigns_new_registrar @@ -236,7 +236,7 @@ class EppDomainTransferRequestTest < EppTestCase - + shop.test wrong @@ -265,7 +265,7 @@ class EppDomainTransferRequestTest < EppTestCase - + shop.test 65078d5 diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb index ab093d89f..a98ddf37d 100644 --- a/test/integration/epp/domain/update/base_test.rb +++ b/test/integration/epp/domain/update/base_test.rb @@ -23,7 +23,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + shop.test @@ -60,7 +60,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + shop.test @@ -105,7 +105,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + shop.test @@ -149,7 +149,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + shop.test @@ -188,7 +188,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + shop.test @@ -228,7 +228,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + shop.test @@ -258,7 +258,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + shop.test @@ -279,7 +279,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + shop.test @@ -302,7 +302,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} @@ -329,7 +329,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} #{new_registrant.code} @@ -375,7 +375,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} #{new_registrant.code} @@ -412,7 +412,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} #{new_registrant.code} @@ -457,7 +457,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} #{new_registrant.code} @@ -495,7 +495,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} #{new_registrant.code} @@ -531,7 +531,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} #{new_registrant.code} @@ -567,7 +567,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} #{@domain.registrant.code} @@ -608,7 +608,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} #{new_registrant.code} @@ -653,7 +653,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} #{new_registrant.code} @@ -694,7 +694,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} #{new_registrant.code} @@ -733,7 +733,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} #{new_registrant.code} @@ -781,7 +781,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} #{new_registrant.code} @@ -818,7 +818,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} #{new_registrant.code} @@ -857,7 +857,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} @@ -892,7 +892,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + shop.test Test @@ -923,7 +923,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + shop.test Test @@ -951,7 +951,7 @@ class EppDomainUpdateBaseTest < EppTestCase - + #{@domain.name} diff --git a/test/integration/epp/domain/update/rem_dns_test.rb b/test/integration/epp/domain/update/rem_dns_test.rb index a34b52063..fd46338e7 100644 --- a/test/integration/epp/domain/update/rem_dns_test.rb +++ b/test/integration/epp/domain/update/rem_dns_test.rb @@ -25,7 +25,7 @@ class EppDomainUpdateRemDnsTest < EppTestCase - + shop.test @@ -65,7 +65,7 @@ class EppDomainUpdateRemDnsTest < EppTestCase - + shop.test diff --git a/test/integration/epp/login_test.rb b/test/integration/epp/login_test.rb index 4ac3ad6e6..80d7251d6 100644 --- a/test/integration/epp/login_test.rb +++ b/test/integration/epp/login_test.rb @@ -25,7 +25,7 @@ class EppLoginTest < EppTestCase en - #{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')} + #{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')} #{Xsd::Schema.filename(for_prefix: 'contact-ee', for_version: '1.1')} urn:ietf:params:xml:ns:host-1.0 urn:ietf:params:xml:ns:keyrelay-1.0 @@ -60,7 +60,7 @@ class EppLoginTest < EppTestCase en - #{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')} + #{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')} #{Xsd::Schema.filename(for_prefix: 'contact-ee', for_version: '1.1')} urn:ietf:params:xml:ns:host-1.0 urn:ietf:params:xml:ns:keyrelay-1.0 @@ -94,7 +94,7 @@ class EppLoginTest < EppTestCase en - #{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')} + #{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')} #{Xsd::Schema.filename(for_prefix: 'contact-ee', for_version: '1.1')} urn:ietf:params:xml:ns:host-1.0 urn:ietf:params:xml:ns:keyrelay-1.0 @@ -129,7 +129,7 @@ class EppLoginTest < EppTestCase en - #{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')} + #{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')} #{Xsd::Schema.filename(for_prefix: 'contact-ee', for_version: '1.1')} urn:ietf:params:xml:ns:host-1.0 urn:ietf:params:xml:ns:keyrelay-1.0 @@ -164,7 +164,7 @@ class EppLoginTest < EppTestCase en - #{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.1')} + #{Xsd::Schema.filename(for_prefix: 'domain-ee', for_version: '1.2')} #{Xsd::Schema.filename(for_prefix: 'contact-ee', for_version: '1.1')} urn:ietf:params:xml:ns:host-1.0 urn:ietf:params:xml:ns:keyrelay-1.0 diff --git a/test/integration/registrar_area/xml_consoles_test.rb b/test/integration/registrar_area/xml_consoles_test.rb index 442e6f2c0..443abfb78 100644 --- a/test/integration/registrar_area/xml_consoles_test.rb +++ b/test/integration/registrar_area/xml_consoles_test.rb @@ -58,7 +58,7 @@ class RegistrarXmlConsolesIntegrationTest < ApplicationIntegrationTest + xmlns:domain="https://epp.tld.ee/schema/domain-ee-1.2.xsd"> example.ee From 2016c55cb9f9eae05f97ceaaad867ed7977e3e7d Mon Sep 17 00:00:00 2001 From: olegphenomenon Date: Thu, 9 Sep 2021 15:05:17 +0300 Subject: [PATCH 04/10] fixed dsnkey enabled method --- app/controllers/epp/domains_controller.rb | 13 ++++++++++--- test/system/registrar_area/xml_consoles_test.rb | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 0e5f56e42..62ada777c 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -173,8 +173,15 @@ module Epp return true if doc.document.children.empty? store = [] - doc.document.add.children.each_with_index do |x, i| - store << doc.document.add.children[i].name + + if value == 'add' + doc.document.add.children.each_with_index do |x, i| + store << doc.document.add.children[i].name + end + else + doc.document.rem.children.each_with_index do |x, i| + store << doc.document.rem.children[i].name + end end return true if store.size == 1 and store[0] == "keyData" @@ -184,7 +191,7 @@ module Epp def dnskey_update_enabled find_domain - + if @domain.dnskey_update_enabled? && !params[:parsed_frame].css('update').empty? return if parsed_response_for_dnskey('add') diff --git a/test/system/registrar_area/xml_consoles_test.rb b/test/system/registrar_area/xml_consoles_test.rb index 6fe855a5b..51cc362eb 100644 --- a/test/system/registrar_area/xml_consoles_test.rb +++ b/test/system/registrar_area/xml_consoles_test.rb @@ -22,7 +22,7 @@ class RegistrarAreaXmlConsolesTest < ApplicationSystemTestCase - + auction.test From c1c4e3db66cd87e15d20e9705882d9ac408c5e20 Mon Sep 17 00:00:00 2001 From: olegphenomenon Date: Fri, 10 Sep 2021 08:51:28 +0300 Subject: [PATCH 05/10] add ability to check registrant change and add-remove object properties --- app/controllers/epp/domains_controller.rb | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 62ada777c..6cb1f8bd1 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -178,6 +178,10 @@ module Epp doc.document.add.children.each_with_index do |x, i| store << doc.document.add.children[i].name end + elsif value == 'chg' + doc.document.chg.children.each_with_index do |x, i| + store << doc.document.chg.children[i].name + end else doc.document.rem.children.each_with_index do |x, i| store << doc.document.rem.children[i].name @@ -192,10 +196,22 @@ module Epp def dnskey_update_enabled find_domain - if @domain.dnskey_update_enabled? && !params[:parsed_frame].css('update').empty? + # binding.pry - return if parsed_response_for_dnskey('add') - return if parsed_response_for_dnskey('rem') + if @domain.dnskey_update_enabled? && !params[:parsed_frame].css('update').empty? + flag = true + + flag = false unless parsed_response_for_dnskey('chg') + + if flag + flag = false unless parsed_response_for_dnskey('add') + end + + if flag + return if parsed_response_for_dnskey('rem') + end + + # binding.pry return epp_errors.add(:epp_errors, code: '2304', From 2dc0f03856ac0db2bad061c0891e4980a09cf14e Mon Sep 17 00:00:00 2001 From: olegphenomenon Date: Fri, 10 Sep 2021 09:03:21 +0300 Subject: [PATCH 06/10] updated tests --- .../epp/domain/update/base_test.rb | 55 +------------------ 1 file changed, 2 insertions(+), 53 deletions(-) diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb index a98ddf37d..3a3826622 100644 --- a/test/integration/epp/domain/update/base_test.rb +++ b/test/integration/epp/domain/update/base_test.rb @@ -48,7 +48,7 @@ class EppDomainUpdateBaseTest < EppTestCase assert_epp_response :parameter_value_syntax_error end - def test_update_domain_data_out_of_extension_block_with_serverDnskeyUpdateEnabled + def test_update_domain_data_out_of_extension_block_with_serverObjUpdateProhibited @domain = domains(:shop) @domain.statuses << DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED @domain.save @@ -90,53 +90,7 @@ class EppDomainUpdateBaseTest < EppTestCase assert_correct_against_schema response_xml @domain.reload - assert_epp_response :completed_successfully - end - - def test_update_domain_dns_with_serverDnskeyUpdateEnabled - @domain = domains(:shop) - @domain.statuses << DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED - @domain.save - @dnskey = dnskeys(:one) - @dnskey.update(domain: @domain) - - request_xml = <<-XML - - - - - - shop.test - - - f0ff7d17b0 - - - - - - - - - #{@dnskey.flags} - #{@dnskey.protocol} - #{@dnskey.alg} - #{@dnskey.public_key} - - - - - - - XML - - post epp_update_path, params: { frame: request_xml }, - headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } - response_xml = Nokogiri::XML(response.body) - assert_correct_against_schema response_xml - @domain.reload - - assert_epp_response :completed_successfully + assert_epp_response :object_status_prohibits_operation end def test_update_domain_data_out_of_extension_block_with_extension_update_prohibited @@ -190,11 +144,6 @@ class EppDomainUpdateBaseTest < EppTestCase shop.test - - - f0ff7d17b0 - - From ca80846577c1b884c26592001f7b791c4530e86a Mon Sep 17 00:00:00 2001 From: olegphenomenon Date: Fri, 10 Sep 2021 10:26:05 +0300 Subject: [PATCH 07/10] fixed statuses named --- app/controllers/epp/domains_controller.rb | 6 +----- app/models/domain_status.rb | 4 ++-- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 6cb1f8bd1..792d3e4cc 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -196,8 +196,6 @@ module Epp def dnskey_update_enabled find_domain - # binding.pry - if @domain.dnskey_update_enabled? && !params[:parsed_frame].css('update').empty? flag = true @@ -211,12 +209,10 @@ module Epp return if parsed_response_for_dnskey('rem') end - # binding.pry - return epp_errors.add(:epp_errors, code: '2304', msg: "#{I18n.t(:object_status_prohibits_operation)} - :serverDnskeyUpdateEnabled") + :serverObjUpdateEnabled") end end diff --git a/app/models/domain_status.rb b/app/models/domain_status.rb index a53978836..3c8494ae8 100644 --- a/app/models/domain_status.rb +++ b/app/models/domain_status.rb @@ -166,8 +166,8 @@ class DomainStatus < ApplicationRecord ['UpdateProhibited', SERVER_UPDATE_PROHIBITED], ['DeleteProhibited', SERVER_DELETE_PROHIBITED], ['ReleaseProhibited', SERVER_RELEASE_PROHIBITED], - ['serverExtensionUpdateProhibited', SERVER_EXTENSION_UPDATE_PROHIBITED], - ['serverObjUpdateProhibited', SERVER_OBJ_UPDATE_PROHIBITED], + ['ExtensionUpdateProhibited', SERVER_EXTENSION_UPDATE_PROHIBITED], + ['ObjUpdateProhibited', SERVER_OBJ_UPDATE_PROHIBITED], ] end From 00aae6b51f23011ed50eceaed87a698166b4b8af Mon Sep 17 00:00:00 2001 From: olegphenomenon Date: Fri, 10 Sep 2021 12:58:00 +0300 Subject: [PATCH 08/10] added customization feature for enable new statuses --- app/controllers/epp/domains_controller.rb | 4 ++-- app/models/domain_status.rb | 11 ++++++++--- app/models/feature.rb | 6 ++++++ config/application.yml.sample | 1 + test/integration/epp/domain/update/base_test.rb | 3 +++ 5 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 app/models/feature.rb diff --git a/app/controllers/epp/domains_controller.rb b/app/controllers/epp/domains_controller.rb index 792d3e4cc..f49666490 100644 --- a/app/controllers/epp/domains_controller.rb +++ b/app/controllers/epp/domains_controller.rb @@ -162,8 +162,8 @@ module Epp @prefix = 'update > update >' requires 'name' - dnskey_update_enabled - dnkey_update_prohibited + dnskey_update_enabled if Feature.obj_and_extensions_statuses_enabled? + dnkey_update_prohibited if Feature.obj_and_extensions_statuses_enabled? status_editing_disabled end diff --git a/app/models/domain_status.rb b/app/models/domain_status.rb index 3c8494ae8..d29c85149 100644 --- a/app/models/domain_status.rb +++ b/app/models/domain_status.rb @@ -155,7 +155,7 @@ class DomainStatus < ApplicationRecord def admin_statuses_map - [ + admin_statuses = [ ['Hold', SERVER_HOLD], ['ManualInzone', SERVER_MANUAL_INZONE], ['RenewProhibited', SERVER_RENEW_PROHIBITED], @@ -166,9 +166,14 @@ class DomainStatus < ApplicationRecord ['UpdateProhibited', SERVER_UPDATE_PROHIBITED], ['DeleteProhibited', SERVER_DELETE_PROHIBITED], ['ReleaseProhibited', SERVER_RELEASE_PROHIBITED], - ['ExtensionUpdateProhibited', SERVER_EXTENSION_UPDATE_PROHIBITED], - ['ObjUpdateProhibited', SERVER_OBJ_UPDATE_PROHIBITED], ] + + if Feature.obj_and_extensions_statuses_enabled? + admin_statuses << ['ExtensionUpdateProhibited', SERVER_EXTENSION_UPDATE_PROHIBITED] + admin_statuses << ['ObjUpdateProhibited', SERVER_OBJ_UPDATE_PROHIBITED] + end + + admin_statuses end def admin_not_deletable_statuses diff --git a/app/models/feature.rb b/app/models/feature.rb new file mode 100644 index 000000000..ab406b195 --- /dev/null +++ b/app/models/feature.rb @@ -0,0 +1,6 @@ +class Feature + def self.obj_and_extensions_statuses_enabled? + return false if ENV['obj_and_extensions_prohibited'] == 'false' + ENV['obj_and_extensions_prohibited'] || false + end +end \ No newline at end of file diff --git a/config/application.yml.sample b/config/application.yml.sample index 4bf0bb384..7d0cbc864 100644 --- a/config/application.yml.sample +++ b/config/application.yml.sample @@ -59,6 +59,7 @@ contact_org_enabled: 'false' # System default for legal document types is: pdf,asice,sce,asics,scs,adoc,edoc,bdoc,ddoc,zip,rar,gz,tar,7z,odt,doc,docx # legal_document_types: "pdf,asice,sce,asics,scs,adoc,edoc,bdoc,ddoc,zip,rar,gz,tar,7z,odt,doc,docx" +# obj_and_extensions_prohibited: 'true' # # REGISTRAR configuration (DEPP) diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb index 3a3826622..22021667f 100644 --- a/test/integration/epp/domain/update/base_test.rb +++ b/test/integration/epp/domain/update/base_test.rb @@ -49,6 +49,7 @@ class EppDomainUpdateBaseTest < EppTestCase end def test_update_domain_data_out_of_extension_block_with_serverObjUpdateProhibited + ENV['obj_and_extensions_prohibited'] = 'true' @domain = domains(:shop) @domain.statuses << DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED @domain.save @@ -94,6 +95,7 @@ class EppDomainUpdateBaseTest < EppTestCase end def test_update_domain_data_out_of_extension_block_with_extension_update_prohibited + ENV['obj_and_extensions_prohibited'] = 'true' @domain = domains(:shop) @domain.statuses << DomainStatus::SERVER_EXTENSION_UPDATE_PROHIBITED @domain.save @@ -131,6 +133,7 @@ class EppDomainUpdateBaseTest < EppTestCase end def test_update_domain_dns_with_extension_update_prohibited + ENV['obj_and_extensions_prohibited'] = 'true' @domain = domains(:shop) @domain.statuses << DomainStatus::SERVER_EXTENSION_UPDATE_PROHIBITED @domain.save From 285c0e78a22a947b993759f959b2debbf25ec672 Mon Sep 17 00:00:00 2001 From: olegphenomenon Date: Fri, 10 Sep 2021 15:58:03 +0300 Subject: [PATCH 09/10] added test for feature absctraction --- app/models/feature.rb | 3 +- .../epp/domain/update/base_test.rb | 97 +++++++++++++++++++ test/models/feature_test.rb | 30 ++++++ 3 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 test/models/feature_test.rb diff --git a/app/models/feature.rb b/app/models/feature.rb index ab406b195..098949045 100644 --- a/app/models/feature.rb +++ b/app/models/feature.rb @@ -1,6 +1,7 @@ class Feature def self.obj_and_extensions_statuses_enabled? return false if ENV['obj_and_extensions_prohibited'] == 'false' + ENV['obj_and_extensions_prohibited'] || false end -end \ No newline at end of file +end diff --git a/test/integration/epp/domain/update/base_test.rb b/test/integration/epp/domain/update/base_test.rb index 22021667f..fa1ed1f79 100644 --- a/test/integration/epp/domain/update/base_test.rb +++ b/test/integration/epp/domain/update/base_test.rb @@ -48,6 +48,100 @@ class EppDomainUpdateBaseTest < EppTestCase assert_epp_response :parameter_value_syntax_error end + def test_set_false_for_obj_and_extensions_prohibited + ENV['obj_and_extensions_prohibited'] = 'false' + @domain = domains(:shop) + @domain.statuses << DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED + @domain.save + @dnskey = dnskeys(:one) + @dnskey.update(domain: @domain) + + request_xml = <<-XML + + + + + + shop.test + + + + #{nameservers(:shop_ns1).hostname} + + + #{nameservers(:shop_ns2).hostname} + + + + #{@dnskey.flags} + #{@dnskey.protocol} + #{@dnskey.alg} + #{@dnskey.public_key} + + + + + + + XML + + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + response_xml = Nokogiri::XML(response.body) + p response.body + assert_correct_against_schema response_xml + @domain.reload + + assert_epp_response :completed_successfully + ENV['obj_and_extensions_prohibited'] = nil + end + + def test_set_nil_for_obj_and_extensions_prohibited + ENV['obj_and_extensions_prohibited'] = nil + @domain = domains(:shop) + @domain.statuses << DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED + @domain.save + @dnskey = dnskeys(:one) + @dnskey.update(domain: @domain) + + request_xml = <<-XML + + + + + + shop.test + + + + #{nameservers(:shop_ns1).hostname} + + + #{nameservers(:shop_ns2).hostname} + + + + #{@dnskey.flags} + #{@dnskey.protocol} + #{@dnskey.alg} + #{@dnskey.public_key} + + + + + + + XML + + post epp_update_path, params: { frame: request_xml }, + headers: { 'HTTP_COOKIE' => 'session=api_bestnames' } + response_xml = Nokogiri::XML(response.body) + assert_correct_against_schema response_xml + @domain.reload + + assert_epp_response :completed_successfully + end + def test_update_domain_data_out_of_extension_block_with_serverObjUpdateProhibited ENV['obj_and_extensions_prohibited'] = 'true' @domain = domains(:shop) @@ -92,6 +186,7 @@ class EppDomainUpdateBaseTest < EppTestCase @domain.reload assert_epp_response :object_status_prohibits_operation + ENV['obj_and_extensions_prohibited'] = nil end def test_update_domain_data_out_of_extension_block_with_extension_update_prohibited @@ -130,6 +225,7 @@ class EppDomainUpdateBaseTest < EppTestCase @domain.reload assert_epp_response :completed_successfully + ENV['obj_and_extensions_prohibited'] = nil end def test_update_domain_dns_with_extension_update_prohibited @@ -172,6 +268,7 @@ class EppDomainUpdateBaseTest < EppTestCase @domain.reload assert_epp_response :object_status_prohibits_operation + ENV['obj_and_extensions_prohibited'] = nil end def test_update_domain diff --git a/test/models/feature_test.rb b/test/models/feature_test.rb new file mode 100644 index 000000000..1c5019a59 --- /dev/null +++ b/test/models/feature_test.rb @@ -0,0 +1,30 @@ +require 'test_helper' + +class FeatureTest < ActiveSupport::TestCase + def test_if_obj_and_extensions_prohibited_enabled + ENV['obj_and_extensions_prohibited'] = 'true' + + assert Feature.obj_and_extensions_statuses_enabled? + + statuses = DomainStatus.admin_statuses + assert statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED + end + + def test_if_obj_and_extensions_prohibited_is_nil + ENV['obj_and_extensions_prohibited'] = nil + + assert_not Feature.obj_and_extensions_statuses_enabled? + + statuses = DomainStatus.admin_statuses + assert_not statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED + end + + def test_if_obj_and_extensions_prohibited_is_false + ENV['obj_and_extensions_prohibited'] = 'false' + + assert_not Feature.obj_and_extensions_statuses_enabled? + + statuses = DomainStatus.admin_statuses + assert_not statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED + end +end \ No newline at end of file From 26c64a7124c52a7880e9d1a1316e340ea84f8b2f Mon Sep 17 00:00:00 2001 From: OlegPhenomenon <37714103+OlegPhenomenon@users.noreply.github.com> Date: Fri, 10 Sep 2021 16:29:43 +0300 Subject: [PATCH 10/10] Update feature_test.rb --- test/models/feature_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/models/feature_test.rb b/test/models/feature_test.rb index 1c5019a59..23fd86171 100644 --- a/test/models/feature_test.rb +++ b/test/models/feature_test.rb @@ -27,4 +27,4 @@ class FeatureTest < ActiveSupport::TestCase statuses = DomainStatus.admin_statuses assert_not statuses.include? DomainStatus::SERVER_OBJ_UPDATE_PROHIBITED end -end \ No newline at end of file +end