if Rails.env == 'cucumber'
prepend_before_filter :stub_current_user
before_filter :cucumber_amf
def stub_current_user
if cookies[:stub_user_id]
user = User.find(cookies[:stub_user_id])
sign_in(user)
end
end
def cucumber_amf
if params[:amf]
vo = AMF.deserialize_params(params[:amf], :amf_version => 3)
Rails.logger.debug "vo: #{vo.inspect}"
if vo
if vo.is_a?(Hash)
vo.delete(:action)
vo.delete(:controller)
params.merge! vo
if vo.values.size == 1 && vo.values[0][:id] && params[:id].blank?
params[:id] = vo.values[0][:id]
end
elsif vo.is_a?(Array)
if vo.all?{|item| item.is_a?(String)}
params[:ids] = vo
elsif vo.all?{|item| item.is_a?(Hash)}
keys = vo.map { |item| item.keys[0] }
if keys.uniq.size == 1
params[keys.first.to_sym] = vo.map{|item| item.values[0] }
end
end
elsif vo.is_a?(String)
params[:id] = vo
end
end
Rails.logger.debug "params: #{params.inspect}"
end
end
end