From 07c3a58c264cea1bff6a371357ccf10e6715c273 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Fri, 16 Jan 2015 15:50:30 +0200 Subject: [PATCH] Fix keyrelay tests --- app/controllers/epp/keyrelays_controller.rb | 8 ++++---- app/controllers/epp/sessions_controller.rb | 2 -- config/routes.rb | 13 ++++++++----- spec/epp/keyrelay_spec.rb | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/app/controllers/epp/keyrelays_controller.rb b/app/controllers/epp/keyrelays_controller.rb index d822f2618..d4ce7688a 100644 --- a/app/controllers/epp/keyrelays_controller.rb +++ b/app/controllers/epp/keyrelays_controller.rb @@ -6,8 +6,8 @@ class Epp::KeyrelaysController < ApplicationController @domain = find_domain handle_errors(@domain) and return unless @domain - handle_errors(@domain) and return unless @domain.authenticate(parsed_frame.css('pw').text) - handle_errors(@domain) and return unless @domain.keyrelay(parsed_frame, current_epp_user.registrar) + handle_errors(@domain) and return unless @domain.authenticate(params[:parsed_frame].css('pw').text) + handle_errors(@domain) and return unless @domain.keyrelay(params[:parsed_frame], current_epp_user.registrar) render_epp_response '/epp/shared/success' end @@ -18,7 +18,7 @@ class Epp::KeyrelaysController < ApplicationController epp_request_valid?('pubKey', 'flags', 'protocol', 'alg', 'name', 'pw') begin - abs_datetime = parsed_frame.css('absolute').text + abs_datetime = params[:parsed_frame].css('absolute').text abs_datetime = DateTime.parse(abs_datetime) if abs_datetime.present? rescue => _e epp_errors << { @@ -34,7 +34,7 @@ class Epp::KeyrelaysController < ApplicationController # rubocop: enable Metrics/CyclomaticComplexity def find_domain - domain_name = parsed_frame.css('name').text.strip.downcase + domain_name = params[:parsed_frame].css('name').text.strip.downcase domain = Epp::EppDomain.find_by(name: domain_name) unless domain diff --git a/app/controllers/epp/sessions_controller.rb b/app/controllers/epp/sessions_controller.rb index cfb00c521..07228cbf4 100644 --- a/app/controllers/epp/sessions_controller.rb +++ b/app/controllers/epp/sessions_controller.rb @@ -2,8 +2,6 @@ class Epp::SessionsController < ApplicationController include Epp::Common layout false - private - def hello render_epp_response('greeting') end diff --git a/config/routes.rb b/config/routes.rb index de6e9406e..a4e9fafab 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -9,9 +9,12 @@ class EppConstraint end def matches?(request) - element = "//#{@type}:#{request.params[:action]}" parsed_frame = Nokogiri::XML(request.params[:raw_frame]) - return false if parsed_frame.xpath("#{element}", OBJECT_TYPES[@type]).none? + + unless [:keyrelay].include?(@type) + element = "//#{@type}:#{request.params[:action]}" + return false if parsed_frame.xpath("#{element}", OBJECT_TYPES[@type]).none? + end request.params[:parsed_frame] = parsed_frame.remove_namespaces! request.params[:epp_object_type] = @type @@ -24,11 +27,11 @@ Rails.application.routes.draw do post 'command/:action', controller: 'domains', constraints: EppConstraint.new(:domain) post 'command/:action', controller: 'contacts', constraints: EppConstraint.new(:contact) post 'command/poll', to: 'polls#poll' - post 'command/keyrelay', to: 'keyrelays#keyrelay' + post 'command/keyrelay', to: 'keyrelays#keyrelay', constraints: EppConstraint.new(:keyrelay) - match 'session/:command', to: 'sessions#proxy', defaults: { format: :xml }, via: [:get, :post] + match 'session/:action', controller: 'sessions', via: :all # match 'command/:command', to: 'commands#proxy', defaults: { format: :xml }, via: [:post, :get] - get 'error/:command', to: 'errors#error', defaults: { format: :xml } + get 'error/:command', to: 'errors#error' end mount Repp::API => '/' diff --git a/spec/epp/keyrelay_spec.rb b/spec/epp/keyrelay_spec.rb index 9962a19a1..6fb42d336 100644 --- a/spec/epp/keyrelay_spec.rb +++ b/spec/epp/keyrelay_spec.rb @@ -52,7 +52,7 @@ describe 'EPP Keyrelay', epp: true do expect(log[1].api_user_registrar).to eq('Elkdata') expect(log[2].request_command).to eq('keyrelay') - expect(log[2].request_object).to eq('domain') + expect(log[2].request_object).to eq('keyrelay') expect(log[2].request_successful).to eq(true) expect(log[2].api_user_name).to eq('elkdata') expect(log[2].api_user_registrar).to eq('Elkdata')