diff --git a/lib/httpx/request.rb b/lib/httpx/request.rb index 1a0984aa..58d10d8f 100644 --- a/lib/httpx/request.rb +++ b/lib/httpx/request.rb @@ -83,7 +83,7 @@ module HTTPX @options = @body.options - if @uri.relative? + if @uri.relative? || @uri.host.nil? origin = @options.origin raise(Error, "invalid URI: #{@uri}") unless origin diff --git a/test/support/requests/errors.rb b/test/support/requests/errors.rb index ba1cca46..3993b903 100644 --- a/test/support/requests/errors.rb +++ b/test/support/requests/errors.rb @@ -2,6 +2,13 @@ module Requests module Errors + def test_errors_invalid_uri + exc = assert_raises { HTTPX.get("/get") } + assert exc.message.include?("invalid URI: /get") + exc = assert_raises { HTTPX.get("http:/smth/get") } + assert exc.message.include?("invalid URI: http:/smth/get") + end + def test_errors_connection_refused unavailable_host = URI(origin("localhost")) unavailable_host.port = next_available_port