tests added
This commit is contained in:
parent
daa6d02887
commit
eb711787ae
44
features/step_definitions/post.rb
Normal file
44
features/step_definitions/post.rb
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
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
|
23
features/support/post.rb
Normal file
23
features/support/post.rb
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
require 'net/http'
|
||||||
|
|
||||||
|
HOST = "http://127.0.0.1:#{OSRM_PORT}"
|
||||||
|
|
||||||
|
def request_post_url service, param_string
|
||||||
|
uri = URI.parse"#{HOST}/#{service}"
|
||||||
|
@query = uri.to_s
|
||||||
|
Timeout.timeout(OSRM_TIMEOUT) do
|
||||||
|
params = {}
|
||||||
|
values = param_string.split("loc=")
|
||||||
|
locs = []
|
||||||
|
values.each do |value|
|
||||||
|
locs << "#{value}".gsub(/[&]/, '')
|
||||||
|
end
|
||||||
|
locs.reject! { |c| c.empty? }
|
||||||
|
params.merge!(loc: locs)
|
||||||
|
Net::HTTP.post_form uri, params
|
||||||
|
end
|
||||||
|
rescue Errno::ECONNREFUSED => e
|
||||||
|
raise "*** osrm-routed is not running."
|
||||||
|
rescue Timeout::Error
|
||||||
|
raise "*** osrm-routed did not respond."
|
||||||
|
end
|
23
features/testbot/post.feature
Normal file
23
features/testbot/post.feature
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
@post @testbot
|
||||||
|
Feature: POST request
|
||||||
|
|
||||||
|
Background:
|
||||||
|
Given the profile "testbot"
|
||||||
|
|
||||||
|
Scenario: Accept POST Request
|
||||||
|
Given the node locations
|
||||||
|
| node | lat | lon |
|
||||||
|
| a | 1.00 | 1.00 |
|
||||||
|
| b | 1.01 | 1.00 |
|
||||||
|
|
||||||
|
And the ways
|
||||||
|
| nodes |
|
||||||
|
| ab |
|
||||||
|
|
||||||
|
When I request post I should get
|
||||||
|
| request | status_code |
|
||||||
|
| locate?loc=1.0,1.0 | 200 |
|
||||||
|
| nearest?loc=1.0,1.0 | 200 |
|
||||||
|
| viaroute?loc=1,1&loc=1.01,1 | 200 |
|
||||||
|
| match?loc=1,1&loc=1.01,1 | 200 |
|
||||||
|
| table?loc=1,1&loc=1.01,1 | 200 |
|
Loading…
Reference in New Issue
Block a user