diff --git a/test/integration/epp/domain/create/transfer_code_test.rb b/test/integration/epp/domain/create/transfer_code_test.rb
new file mode 100644
index 000000000..f7d70a4ea
--- /dev/null
+++ b/test/integration/epp/domain/create/transfer_code_test.rb
@@ -0,0 +1,63 @@
+require 'test_helper'
+
+class EppDomainCreateTransferCodeTest < ActionDispatch::IntegrationTest
+ def setup
+ travel_to Time.zone.parse('2010-07-05')
+ login_as users(:api_bestnames)
+ end
+
+ def test_generates_default
+ request_xml = <<-XML
+
+
+
+
+
+ brandnew.test
+ 1
+ john-001
+
+
+
+
+ #{'test' * 2000}
+
+
+
+
+ XML
+
+ session_id = epp_sessions(:api_bestnames).session_id
+ post '/epp/command/create', { frame: request_xml }, { 'HTTP_COOKIE' => "session=#{session_id}" }
+ refute_empty Domain.find_by(name: 'brandnew.test').transfer_code
+ end
+
+ def test_honors_custom
+ request_xml = <<-XML
+
+
+
+
+
+ brandnew.test
+ 1
+ john-001
+
+ 1058ad73
+
+
+
+
+
+ #{'test' * 2000}
+
+
+
+
+ XML
+
+ session_id = epp_sessions(:api_bestnames).session_id
+ post '/epp/command/create', { frame: request_xml }, { 'HTTP_COOKIE' => "session=#{session_id}" }
+ assert_equal '1058ad73', Domain.find_by(name: 'brandnew.test').transfer_code
+ end
+end
diff --git a/test/integration/epp/domain/transfer/domain_transfer_test.rb b/test/integration/epp/domain/transfer/domain_transfer_test.rb
index e50685aa8..1b1e604ba 100644
--- a/test/integration/epp/domain/transfer/domain_transfer_test.rb
+++ b/test/integration/epp/domain/transfer/domain_transfer_test.rb
@@ -5,7 +5,7 @@ class EppDomainTransferTest < ActionDispatch::IntegrationTest
login_as users(:api_goodnames)
end
- def test_transfers_domain
+ def test_successfully_transfers_domain
request_xml = <<-XML
@@ -24,7 +24,30 @@ class EppDomainTransferTest < ActionDispatch::IntegrationTest
session_id = epp_sessions(:api_goodnames).session_id
post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => "session=#{session_id}" }
- assert_response 200
assert_equal registrars(:goodnames), domains(:shop).registrar
+ assert Nokogiri::XML(response.body).at_css('result[code="1000"]')
+ assert_equal 1, Nokogiri::XML(response.body).css('result').size
+ end
+
+ def test_non_existent_domain
+ request_xml = <<-XML
+
+
+
+
+
+ non-existent.test
+
+ any
+
+
+
+
+
+ XML
+
+ session_id = epp_sessions(:api_goodnames).session_id
+ post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => "session=#{session_id}" }
+ assert Nokogiri::XML(response.body).at_css('result[code="2303"]')
end
end
diff --git a/test/integration/epp/domain/transfer/transfer_code_test.rb b/test/integration/epp/domain/transfer/transfer_code_test.rb
new file mode 100644
index 000000000..0db6ba0d6
--- /dev/null
+++ b/test/integration/epp/domain/transfer/transfer_code_test.rb
@@ -0,0 +1,30 @@
+require 'test_helper'
+
+class EppDomainTransferTransferCodeTest < ActionDispatch::IntegrationTest
+ def setup
+ login_as users(:api_goodnames)
+ end
+
+ def test_wrong
+ request_xml = <<-XML
+
+
+
+
+
+ shop.test
+
+ wrong
+
+
+
+
+
+ XML
+
+ session_id = epp_sessions(:api_goodnames).session_id
+ post '/epp/command/transfer', { frame: request_xml }, { 'HTTP_COOKIE' => "session=#{session_id}" }
+ refute_equal registrars(:goodnames), domains(:shop).registrar
+ assert Nokogiri::XML(response.body).at_css('result[code="2201"]')
+ end
+end
diff --git a/test/integration/epp/domain/update/domain_update_test.rb b/test/integration/epp/domain/update/transfer_code_test.rb
similarity index 94%
rename from test/integration/epp/domain/update/domain_update_test.rb
rename to test/integration/epp/domain/update/transfer_code_test.rb
index 7302f8cd6..6208c2899 100644
--- a/test/integration/epp/domain/update/domain_update_test.rb
+++ b/test/integration/epp/domain/update/transfer_code_test.rb
@@ -5,7 +5,7 @@ class EppDomainUpdateTest < ActionDispatch::IntegrationTest
login_as users(:api_bestnames)
end
- def test_updates_transfer_code
+ def test_overwrites_existing
request_xml = <<-XML
@@ -26,7 +26,6 @@ class EppDomainUpdateTest < ActionDispatch::IntegrationTest
session_id = epp_sessions(:api_bestnames).session_id
post '/epp/command/update', { frame: request_xml }, { 'HTTP_COOKIE' => "session=#{session_id}" }
- assert_response 200
assert_equal 'f0ff7d17b0', domains(:shop).transfer_code
end
end