From b4545bae084c385cc87e04e9246185f10637ae80 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Mon, 9 Mar 2015 12:31:46 +0200 Subject: [PATCH] Test fixes --- app/models/domain.rb | 19 +++++++++---------- app/models/epp/epp_domain.rb | 22 ++++++++++++++++++++-- spec/epp/domain_spec.rb | 23 ++++++++++++----------- 3 files changed, 41 insertions(+), 23 deletions(-) diff --git a/app/models/domain.rb b/app/models/domain.rb index e86394570..a55669b96 100644 --- a/app/models/domain.rb +++ b/app/models/domain.rb @@ -35,8 +35,7 @@ class Domain < ActiveRecord::Base has_many :keyrelays - accepts_nested_attributes_for :dnskeys, allow_destroy: true, - reject_if: proc { |attrs| attrs[:public_key].blank? } + accepts_nested_attributes_for :dnskeys, allow_destroy: true has_many :legal_documents, as: :documentable accepts_nested_attributes_for :legal_documents, reject_if: proc { |attrs| attrs[:body].blank? } @@ -68,10 +67,10 @@ class Domain < ActiveRecord::Base validate :validate_period - # validates :nameservers, object_count: { - # min: -> { Setting.ns_min_count }, - # max: -> { Setting.ns_max_count } - # } + validates :nameservers, object_count: { + min: -> { Setting.ns_min_count }, + max: -> { Setting.ns_max_count } + } validates :dnskeys, object_count: { min: -> { Setting.dnskeys_min_count }, @@ -90,9 +89,9 @@ class Domain < ActiveRecord::Base max: -> { Setting.tech_contacts_max_count } } - # validates :nameservers, uniqueness_multi: { - # attribute: 'hostname' - # } + validates :nameservers, uniqueness_multi: { + attribute: 'hostname' + } validates :tech_domain_contacts, uniqueness_multi: { association: 'domain_contacts', @@ -112,7 +111,7 @@ class Domain < ActiveRecord::Base attribute: 'public_key' } - # validate :validate_nameserver_ips + validate :validate_nameserver_ips attr_accessor :owner_contact_typeahead, :update_me diff --git a/app/models/epp/epp_domain.rb b/app/models/epp/epp_domain.rb index 1f04e67c1..50a1fb5ad 100644 --- a/app/models/epp/epp_domain.rb +++ b/app/models/epp/epp_domain.rb @@ -88,7 +88,14 @@ class Epp::EppDomain < Domain at[:nameservers_attributes] = nameservers_attrs(frame, action) at[:domain_contacts_attributes] = domain_contacts_attrs(frame, action) at[:domain_statuses_attributes] = domain_statuses_attrs(frame, action) - at[:dnskeys_attributes] = dnskeys_attrs(frame, action) + + if new_record? + dnskey_frame = frame.css('extension create') + else + dnskey_frame = frame + end + + at[:dnskeys_attributes] = dnskeys_attrs(dnskey_frame, action) at[:legal_documents_attributes] = legal_document_from(frame) at @@ -141,8 +148,19 @@ class Epp::EppDomain < Domain frame.css('contact').each do |x| c = Contact.find_by(code: x.text).try(:id) + # contact = Contact.find_by(code: x[:contact]) + # unless contact + # add_epp_error('2303', 'contact', x[:contact], [:domain_contacts, :not_found]) + # next + # end + + # if k == :admin && contact.bic? + # add_epp_error('2306', 'contact', x[:contact], [:domain_contacts, :admin_contact_can_be_only_citizen]) + # next + # end + unless c - add_epp_error('2303', 'contact', x.text, msg: I18n.t('contact_not_found')) + add_epp_error('2303', 'contact', x.text, [:domain_contacts, :not_found]) next end diff --git a/spec/epp/domain_spec.rb b/spec/epp/domain_spec.rb index 1b03e2487..7e3e61e4b 100644 --- a/spec/epp/domain_spec.rb +++ b/spec/epp/domain_spec.rb @@ -59,19 +59,19 @@ describe 'EPP Domain', epp: true do response = epp_plain_request(xml, :xml) response[:results][0][:result_code].should == '2003' - response[:results][0][:msg].should == + response[:results][0][:msg].should == 'Required parameter missing: create > create > ns [ns]' response[:results][1][:result_code].should == '2003' - response[:results][1][:msg].should == + response[:results][1][:msg].should == 'Required parameter missing: create > create > registrant [registrant]' response[:results][2][:result_code].should == '2003' - response[:results][2][:msg].should == + response[:results][2][:msg].should == 'Required parameter missing: create > create > ns > hostAttr [host_attr]' response[:results][3][:result_code].should == '2003' - response[:results][3][:msg].should == + response[:results][3][:msg].should == 'Required parameter missing: extension > extdata > legalDocument [legal_document]' end @@ -170,6 +170,7 @@ describe 'EPP Domain', epp: true do }) response = epp_plain_request(xml, :xml) + response[:result_code].should == '2306' response[:msg].should == 'IPv4 is missing [ipv4]' end @@ -202,7 +203,7 @@ describe 'EPP Domain', epp: true do response = epp_plain_request(xml, :xml) response[:results][0][:result_code].should == '2003' - response[:results][0][:msg].should == + response[:results][0][:msg].should == 'Required parameter missing: create > create > registrant [registrant]' end @@ -210,11 +211,11 @@ describe 'EPP Domain', epp: true do xml = domain_create_xml(ns: []) response = epp_plain_request(xml, :xml) - response[:results][0][:msg].should == + response[:results][0][:msg].should == 'Required parameter missing: create > create > ns [ns]' response[:results][0][:result_code].should == '2003' - response[:results][1][:msg].should == + response[:results][1][:msg].should == 'Required parameter missing: create > create > ns > hostAttr [host_attr]' response[:results][1][:result_code].should == '2003' @@ -402,7 +403,7 @@ describe 'EPP Domain', epp: true do response = epp_plain_request(xml, :xml) - response[:results][0][:msg].should == + response[:results][0][:msg].should == 'Valid algorithms are: 3, 5, 6, 7, 8, 252, 253, 254, 255 [alg]' response[:results][0][:value].should == '9' @@ -865,7 +866,7 @@ describe 'EPP Domain', epp: true do login_as :registrar2 do response = epp_plain_request(xml, :xml) response[:result_code].should == '2003' - response[:msg].should == + response[:msg].should == 'Required parameter missing: extension > extdata > legalDocument [legal_document]' end end @@ -1322,7 +1323,7 @@ describe 'EPP Domain', epp: true do } response = epp_plain_request(domain_update_xml(xml_params), :xml) - response[:results][0][:msg].should == + response[:results][0][:msg].should == 'Required parameter missing: extension > extdata > legalDocument [legal_document]' response[:results][0][:result_code].should == '2003' end @@ -1532,7 +1533,7 @@ describe 'EPP Domain', epp: true do it 'does not delete domain without legal document' do response = epp_plain_request(@epp_xml.domain.delete(name: { value: 'example.ee' }), :xml) response[:result_code].should == '2003' - response[:msg].should == + response[:msg].should == 'Required parameter missing: extension > extdata > legalDocument [legal_document]' end