From 3b7289607c32be796b641fd49c4050cb3e5891f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andres=20Keskk=C3=BCla?= Date: Tue, 26 Aug 2014 16:04:59 +0300 Subject: [PATCH] Updated contact#update request validation --- app/helpers/epp/contacts_helper.rb | 8 ++++++++ spec/epp/contact_spec.rb | 7 ++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/helpers/epp/contacts_helper.rb b/app/helpers/epp/contacts_helper.rb index 497188887..38008d868 100644 --- a/app/helpers/epp/contacts_helper.rb +++ b/app/helpers/epp/contacts_helper.rb @@ -61,6 +61,7 @@ module Epp ## UPDATE def validate_contact_update_request @ph = params_hash['epp']['command']['update']['update'] + update_attrs_present? xml_attrs_present?(@ph, [['id']]) end @@ -70,6 +71,13 @@ module Epp value: { obj: 'id', val: code } } end + def update_attrs_present? + return true if parsed_frame.css('add').present? + return true if parsed_frame.css('rem').present? + return true if parsed_frame.css('chg').present? + epp_errors << { code: '2003', msg: I18n.t('errors.messages.required_parameter_missing', key: 'add, rem or chg') } + end + ## DELETE def validate_contact_delete_request @ph = params_hash['epp']['command']['delete']['delete'] diff --git a/spec/epp/contact_spec.rb b/spec/epp/contact_spec.rb index 59f29445e..206a4827f 100644 --- a/spec/epp/contact_spec.rb +++ b/spec/epp/contact_spec.rb @@ -84,11 +84,12 @@ describe 'EPP Contact', epp: true do context 'update command' do it 'fails if request is invalid' do response = epp_request('contacts/update_missing_attr.xml') - # response = epp_request(contact_update_xml( {id: false} ), :xml) expect(response[:results][0][:result_code]).to eq('2003') - expect(response[:results][0][:msg]).to eq('Required parameter missing: id') - expect(response[:results].count).to eq 1 + expect(response[:results][0][:msg]).to eq('Required parameter missing: add, rem or chg') + expect(response[:results][1][:result_code]).to eq('2003') + expect(response[:results][1][:msg]).to eq('Required parameter missing: id') + expect(response[:results].count).to eq 2 end it 'fails with wrong authentication info' do