anchor.diff:  -ifdef(TEST).
   
   url_test() ->
  +	{undefined, _} =
  +		url(#http_req{transport=ranch_tcp, host= <<>>, port= undefined,
  +			path= <<>>, qs= <<>>, fragment= <<>>, pid=self()}),
   	{<<"http://localhost/path">>, _ } =
   		url(#http_req{transport=ranch_tcp, host= <<"localhost">>, port=80,
   			path= <<"/path">>, qs= <<>>, fragment= <<>>, pid=self()}),
  
positive.code: 		<<>> -> <<>>;
  		_ -> << "#", Fragment/binary >>
  	end,
  	{<< HostURL/binary, Path/binary, QS2/binary, Fragment2/binary >>, Req2}.
  
  %% @equiv binding(Name, Req, undefined)
  -spec binding(atom(), Req) -> {binary() | undefined, Req} when Req::req().
  
negative.code: %% @doc Return the full request URL as a binary.
  %%
  %% The URL includes the scheme, host, port, path, query string and fragment.
  -spec url(Req) -> {undefined | binary(), Req} when Req::req().
  url(Req=#http_req{}) ->
  	{HostURL, Req2} = host_url(Req),
  	url2(HostURL, Req2).
  
  url2(undefined, Req=#http_req{}) ->
  	{undefined, Req};
  url2(HostURL, Req=#http_req{path=Path, qs=QS, fragment=Fragment}) ->
  	QS2 = case QS of
  		<<>> -> <<>>;
  		_ -> << "?", QS/binary >>
  