Fix context returned in JSON error (had null bytes).
Update status test cases to match new API.
This commit is contained in:
		
							parent
							
								
									7f7d7816e5
								
							
						
					
					
						commit
						7f1f044fa0
					
				@ -39,29 +39,29 @@ Feature: Status messages
 | 
			
		||||
        Given the node locations
 | 
			
		||||
            | node | lat  | lon  |
 | 
			
		||||
            | a    | 1.00 | 1.00 |
 | 
			
		||||
            | b    | 1.01 | 1.00 |
 | 
			
		||||
            | b    | 2.00 | 1.00 |
 | 
			
		||||
 | 
			
		||||
        And the ways
 | 
			
		||||
            | nodes |
 | 
			
		||||
            | ab    |
 | 
			
		||||
 | 
			
		||||
        When I route I should get
 | 
			
		||||
            | request                     | status | message                                     |
 | 
			
		||||
            | viaroute?loc=1,1&loc=1.01,1 | 200    |                                             |
 | 
			
		||||
            | nonsense                    | 400    | Service not found                           |
 | 
			
		||||
            | nonsense?loc=1,1&loc=1.01,1 | 400    | Service not found                           |
 | 
			
		||||
            |                             | 400    | Query string malformed close to position 0  |
 | 
			
		||||
            | /                           | 400    | Query string malformed close to position 0  |
 | 
			
		||||
            | ?                           | 400    | Query string malformed close to position 0  |
 | 
			
		||||
            | viaroute?loc=               | 400    | Query string malformed close to position 9  |
 | 
			
		||||
            | viaroute?loc=1              | 400    | Query string malformed close to position 9  |
 | 
			
		||||
            | viaroute?loc=1,1            | 400    | Invalid coordinates                         |
 | 
			
		||||
            | viaroute?loc=1,1,1          | 400    | Query string malformed close to position 17 |
 | 
			
		||||
            | viaroute?loc=x              | 400    | Query string malformed close to position 9  |
 | 
			
		||||
            | viaroute?loc=x,y            | 400    | Query string malformed close to position 9  |
 | 
			
		||||
            | viaroute?loc=1,1&loc=       | 400    | Query string malformed close to position 17 |
 | 
			
		||||
            | viaroute?loc=1,1&loc=1      | 400    | Query string malformed close to position 17 |
 | 
			
		||||
            | viaroute?loc=1,1&loc=1,1    | 200    |                                             |
 | 
			
		||||
            | viaroute?loc=1,1&loc=1,1,1  | 400    | Query string malformed close to position 25 |
 | 
			
		||||
            | viaroute?loc=1,1&loc=x      | 400    | Query string malformed close to position 17 |
 | 
			
		||||
            | viaroute?loc=1,1&loc=x,y    | 400    | Query string malformed close to position 17 |
 | 
			
		||||
            | request                     | status | message                                         |
 | 
			
		||||
            | route/v1/driving/1,1;1,2    | 200    |                                                 |
 | 
			
		||||
            | nonsense                    | 400    | URL string malformed close to position 0: "/no" |
 | 
			
		||||
            | nonsense/v1/driving/1,1;1,2 | 400    | Service nonsense not found!                     |
 | 
			
		||||
            |                             | 400    | URL string malformed close to position 0: "/"   |
 | 
			
		||||
            | /                           | 400    | URL string malformed close to position 0: "//"  |
 | 
			
		||||
            | ?                           | 400    | URL string malformed close to position 0: "/?"  |
 | 
			
		||||
            | route/v1/driving            | 400    | URL string malformed close to position 0: "/ro" |
 | 
			
		||||
            | route/v1/driving/           | 400    | URL string malformed close to position 0: "/ro" |
 | 
			
		||||
            | route/v1/driving/1          | 400    | Query string malformed close to position 0      |
 | 
			
		||||
            | route/v1/driving/1,1        | 400    | Number of coordinates needs to be at least two. |
 | 
			
		||||
            | route/v1/driving/1,1,1      | 400    | Query string malformed close to position 3      |
 | 
			
		||||
            | route/v1/driving/x          | 400    | Query string malformed close to position 0      |
 | 
			
		||||
            | route/v1/driving/x,y        | 400    | Query string malformed close to position 0      |
 | 
			
		||||
            | route/v1/driving/1,1;       | 400    | Query string malformed close to position 3      |
 | 
			
		||||
            | route/v1/driving/1,1;1      | 400    | Query string malformed close to position 3      |
 | 
			
		||||
            | route/v1/driving/1,1;1,1,1  | 400    | Query string malformed close to position 7      |
 | 
			
		||||
            | route/v1/driving/1,1;x      | 400    | Query string malformed close to position 3      |
 | 
			
		||||
            | route/v1/driving/1,1;x,y    | 400    | Query string malformed close to position 3      |
 | 
			
		||||
 | 
			
		||||
@ -99,9 +99,12 @@ void RequestHandler::HandleRequest(const http::request ¤t_request, http::r
 | 
			
		||||
        else
 | 
			
		||||
        {
 | 
			
		||||
            const auto position = std::distance(request_string.begin(), api_iterator);
 | 
			
		||||
            const auto context_begin = request_string.begin() + std::max(position - 3UL, 0UL);
 | 
			
		||||
            BOOST_ASSERT(position >= 0);
 | 
			
		||||
            const auto context_begin = request_string.begin() + ((position < 3) ? 0 : (position - 3UL));
 | 
			
		||||
            BOOST_ASSERT(context_begin >= request_string.begin());
 | 
			
		||||
            const auto context_end =
 | 
			
		||||
                request_string.begin() + std::min(position + 3UL, request_string.size());
 | 
			
		||||
            BOOST_ASSERT(context_end <= request_string.end());
 | 
			
		||||
            std::string context(context_begin, context_end);
 | 
			
		||||
 | 
			
		||||
            current_reply.status = http::reply::bad_request;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user