From 9f30ec3cc71aee2b993b395ffaf0e3317910c57a Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Wed, 25 Jun 2014 14:12:03 +0300 Subject: [PATCH] Refactor + dummy domain spec --- spec/epp/domain_spec.rb | 14 ++++++++++++++ spec/epp/session_spec.rb | 16 ++++++++-------- spec/support/epp.rb | 15 ++++++++++++--- 3 files changed, 34 insertions(+), 11 deletions(-) create mode 100644 spec/epp/domain_spec.rb diff --git a/spec/epp/domain_spec.rb b/spec/epp/domain_spec.rb new file mode 100644 index 000000000..d9d9b9cb0 --- /dev/null +++ b/spec/epp/domain_spec.rb @@ -0,0 +1,14 @@ +require 'rails_helper' + +describe 'EPP Domain', epp: true do + let(:server) { server = Epp::Server.new({server: 'localhost', tag: 'test', password: 'test'}) } + + context 'with valid user' do + before(:each) { Fabricate(:epp_user) } + + it 'creates a domain' do + response = epp_request('create_domain.xml') + end + + end +end diff --git a/spec/epp/session_spec.rb b/spec/epp/session_spec.rb index 123e5e430..c9a19da5d 100644 --- a/spec/epp/session_spec.rb +++ b/spec/epp/session_spec.rb @@ -16,18 +16,18 @@ describe 'EPP Session', epp: true do after(:each) { server.close_connection } it 'does not log in with invalid user' do - response = epp_request('login.xml') + response = epp_plain_request('login.xml') expect(response[:result_code]).to eq('2501') expect(response[:msg]).to eq('Authentication error; server closing connection') Fabricate(:epp_user, active: false) - response = epp_request('login.xml') + response = epp_plain_request('login.xml') expect(response[:result_code]).to eq('2501') end it 'prohibits further actions unless logged in' do - response = epp_request('create_domain.xml') + response = epp_plain_request('create_domain.xml') expect(response[:result_code]).to eq('2002') expect(response[:msg]).to eq('You need to login first.') end @@ -36,23 +36,23 @@ describe 'EPP Session', epp: true do before(:each) { Fabricate(:epp_user) } it 'logs in epp user' do - response = epp_request('login.xml') + response = epp_plain_request('login.xml') expect(response[:result_code]).to eq('1000') expect(response[:msg]).to eq('Command completed successfully') end it 'logs out epp user' do - epp_request('login.xml') + epp_plain_request('login.xml') - response = epp_request('logout.xml') + response = epp_plain_request('logout.xml') expect(response[:result_code]).to eq('1500') expect(response[:msg]).to eq('Command completed successfully; ending session') end it 'does not log in twice' do - epp_request('login.xml') + epp_plain_request('login.xml') - response = epp_request('login.xml') + response = epp_plain_request('login.xml') expect(response[:result_code]).to eq('2002') expect(response[:msg]).to match(/Already logged in. Use/) end diff --git a/spec/support/epp.rb b/spec/support/epp.rb index 57cb096bc..5331968df 100644 --- a/spec/support/epp.rb +++ b/spec/support/epp.rb @@ -3,12 +3,21 @@ module Epp File.read("spec/epp/requests/#{filename}") end + # handles connection and login automatically def epp_request filename - response = Nokogiri::XML(server.send_request(read_body(filename))) + res = Nokogiri::XML(server.request(read_body(filename))) + parse_response(res) + end + def epp_plain_request filename + res = Nokogiri::XML(server.send_request(read_body(filename))) + parse_response(res) + end + + def parse_response res { - result_code: response.css('epp response result').first[:code], - msg: response.css('epp response result msg').text + result_code: res.css('epp response result').first[:code], + msg: res.css('epp response result msg').text } end