diff --git a/test/fixtures/dnskeys.yml b/test/fixtures/dnskeys.yml
index b740a6ec0..2b75b4603 100644
--- a/test/fixtures/dnskeys.yml
+++ b/test/fixtures/dnskeys.yml
@@ -18,3 +18,13 @@ with_whitespace:
ds_alg: 13
ds_digest_type: 2
ds_digest: 39456058862EA09DD96992ED2BDAFAEDE8C7E949589E3DA903A46F4F9CD373EA
+two:
+ domain:
+ flags: 257
+ protocol: 3
+ alg: 8
+ public_key: AwEAAdas/oY6xQV2MYd+o5pcUHK0f/mtETRNyBhh/TSABqRM9JikXlSrwLFT9sAfOsTiRNbPnvEiCKdEdoN0f0Oel0WNXadLlVINmxtCue93bSX7zxrVvjhbkHffOVdpBL0CIDQoX1HPZmoBXXPdZtWLpDQ7nVfUtdC/McTFSRawUYaoCWOEAgC8YY+kh6C8TUZzHMl+JiVE6YFkTIFf+z4MxA920UxUnGpdcfRbcB0CYjCxe+PuiA+aZHFheEe5S5tlW7tO96hxK/k2l93N//T2mEM53TKomk62HoWvNVdPrs7jdZbGzeY2eBPDWMAIIpgOv9ApORi+kHSQm2POCwf/KYs=
+ ds_key_tag: 23527
+ ds_alg: 8
+ ds_digest_type: 2
+ ds_digest: 5937141E8D3D91E15D94263A723C4E804513C71CB642AB86B41BDB65EF2FA4F4
diff --git a/test/system/registrar_area/xml_consoles_test.rb b/test/system/registrar_area/xml_consoles_test.rb
index 51cc362eb..7c4a074a9 100644
--- a/test/system/registrar_area/xml_consoles_test.rb
+++ b/test/system/registrar_area/xml_consoles_test.rb
@@ -14,8 +14,98 @@ class RegistrarAreaXmlConsolesTest < ApplicationSystemTestCase
assert el.text.include? 'CONNECTION ERROR - Is the EPP server running?'
end
+ def test_update_dnskey
+ @domain = domains(:shop)
+ visit registrar_xml_console_path
+ fill_in 'payload', with: schema_dnskey_add
+ click_on 'Send EPP Request'
+
+ el = page.find('.CodeRay', visible: :all)
+ assert el.text.include? 'Command completed successfully'
+
+ @domain.statuses << DomainStatus::SERVER_UPDATE_PROHIBITED
+ assert @domain.statuses.include? DomainStatus::SERVER_UPDATE_PROHIBITED
+
+ ENV['obj_and_extensions_prohibited'] = 'true'
+ assert Feature.obj_and_extensions_statuses_enabled?
+
+ visit registrar_xml_console_path
+ fill_in 'payload', with: schema_dnskey_update
+ click_on 'Send EPP Request'
+
+ el = page.find('.CodeRay', visible: :all)
+ assert el.text.include? 'Command completed successfully'
+ end
+
private
+ def schema_dnskey_add
+ @dnskey = dnskeys(:one)
+ <<~XML
+
+
+
+
+
+ shop.test
+
+
+
+
+
+
+ #{@dnskey.flags}
+ #{@dnskey.protocol}
+ #{@dnskey.alg}
+ #{@dnskey.public_key}
+
+
+
+
+ 0.04946500 1632965705
+
+
+ XML
+ end
+
+ def schema_dnskey_update
+ @dnskey = dnskeys(:one)
+ @dnskeynew = dnskeys(:two)
+ <<~XML
+
+
+
+
+
+ shop.test
+
+
+
+
+ \n
+
+ #{@dnskey.flags}
+ #{@dnskey.protocol}
+ #{@dnskey.alg}
+ #{@dnskey.public_key}
+ \n
+
+ \n
+
+ #{@dnskeynew.flags}
+ #{@dnskeynew.protocol}
+ #{@dnskeynew.alg}
+ #{@dnskeynew.public_key}
+ \n
+
+
+
+ 0.04946500 1632965705
+
+
+ XML
+ end
+
def schema_example
<<~XML