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