44 lines
1.1 KiB
Ruby
44 lines
1.1 KiB
Ruby
When /^I request post I should get$/ do |table|
|
|
reprocess
|
|
actual = []
|
|
OSRMLoader.load(self,"#{prepared_file}.osrm") do
|
|
table.hashes.each_with_index do |row,ri|
|
|
request_string = row['request'].split("?")
|
|
got = {'request' => row['request'] }
|
|
response = request_post_url request_string[0], request_string[1]
|
|
|
|
row.each_pair do |k,v|
|
|
if k =~ /param:(.*)/
|
|
if v=='(nil)'
|
|
params[$1]=nil
|
|
elsif v!=nil
|
|
params[$1]=v
|
|
end
|
|
got[k]=v
|
|
end
|
|
end
|
|
|
|
if table.headers.include? 'status_code'
|
|
# the only thing we want to test is
|
|
# an accepted request
|
|
got['status_code'] = response.code.to_s
|
|
end
|
|
|
|
ok = true
|
|
row.keys.each do |key|
|
|
if FuzzyMatch.match got[key], row[key]
|
|
got[key] = row[key]
|
|
else
|
|
ok = false
|
|
end
|
|
end
|
|
|
|
unless ok
|
|
log_fail row,got, { 'route' => {:query => @query, :response => response} }
|
|
end
|
|
|
|
actual << got
|
|
end
|
|
end
|
|
table.diff! actual
|
|
end |