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