diff --git a/test/integration/epp/domain/domain_renew_test.rb b/test/integration/epp/domain/domain_renew_test.rb deleted file mode 100644 index e1dfbdae1b..0000000000 --- a/test/integration/epp/domain/domain_renew_test.rb +++ /dev/null @@ -1,31 +0,0 @@ -require 'test_helper' - -class EppDomainRenewTest < EppTestCase - self.use_transactional_fixtures = false - - setup do - travel_to Time.zone.parse('2010-07-05') - end - - def test_domain_cannot_be_renewed_when_invalid - request_xml = <<-XML - - - - - - invalid.test - 2010-07-05 - 1 - - - - - XML - - assert_no_changes -> { domains(:invalid).valid_to } do - post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' - end - assert_epp_response :object_status_prohibits_operation - end -end diff --git a/test/integration/epp/domain/renew/base_test.rb b/test/integration/epp/domain/renew/base_test.rb new file mode 100644 index 0000000000..537e697c9e --- /dev/null +++ b/test/integration/epp/domain/renew/base_test.rb @@ -0,0 +1,166 @@ +require 'test_helper' + +class EppDomainRenewBaseTest < EppTestCase + self.use_transactional_fixtures = false + + def test_renews_domain + travel_to Time.zone.parse('2010-07-05') + domain = domains(:shop) + original_valid_to = domain.valid_to + default_renewal_period = 1.year + + request_xml = <<-XML + + + + + + #{domain.name} + #{domain.expire_time.to_date} + 1 + + + + + XML + + post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + domain.reload + + assert_epp_response :completed_successfully + assert_equal original_valid_to + default_renewal_period, domain.valid_to + end + + def test_domain_cannot_be_renewed_when_invalid + domain = domains(:invalid) + + request_xml = <<-XML + + + + + + #{domain.name} + #{domain.valid_to.to_date} + 1 + + + + + XML + + assert_no_changes -> { domain.valid_to } do + post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + domain.reload + end + assert_epp_response :object_status_prohibits_operation + end + + def test_domain_cannot_be_renewed_when_belongs_to_another_registrar + domain = domains(:metro) + session = epp_sessions(:api_bestnames) + assert_not_equal session.user.registrar, domain.registrar + + request_xml = <<-XML + + + + + + #{domain.name} + #{domain.valid_to.to_date} + 1 + + + + + XML + + assert_no_changes -> { domain.valid_to } do + post '/epp/command/renew', { frame: request_xml }, + 'HTTP_COOKIE' => "session=#{session.session_id}" + domain.reload + end + assert_epp_response :authorization_error + end + + def test_insufficient_funds + domain = domains(:shop) + session = epp_sessions(:api_bestnames) + session.user.registrar.accounts.first.update!(balance: 0) + + request_xml = <<-XML + + + + + + #{domain.name} + #{domain.expire_time.to_date} + 1 + + + + + XML + + assert_no_difference -> { domain.valid_to } do + post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => + "session=#{session.session_id}" + domain.reload + end + assert_epp_response :billing_failure + end + + def test_no_price + domain = domains(:shop) + assert_nil Billing::Price.find_by(duration: '2 months') + + request_xml = <<-XML + + + + + + #{domain.name} + #{domain.expire_time.to_date} + 2 + + + + + XML + + assert_no_changes -> { domain.valid_to } do + post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + domain.reload + end + assert_epp_response :billing_failure + end + + def test_fails_when_provided_expiration_date_is_wrong + domain = domains(:shop) + provided_expiration_date = Date.parse('2010-07-06') + assert_not_equal provided_expiration_date, domain.valid_to + + request_xml = <<-XML + + + + + + #{domain.name} + #{provided_expiration_date} + + + + + XML + + assert_no_changes -> { domain.valid_to } do + post '/epp/command/renew', { frame: request_xml }, 'HTTP_COOKIE' => 'session=api_bestnames' + domain.reload + end + assert_epp_response :parameter_value_policy_error + end +end