anchor.diff:  
   request_timeout() ->
       Port = start(gen_tcp, [fun very_slow_response/5]),
  -    URL = "http://localhost:" ++ integer_to_list(Port) ++ "/slow",
  +    URL = url(Port, "/slow"),
       ?assertEqual({error, timeout}, lhttpc:request(URL, get, [], 50)).
   
   connection_timeout() ->
       Port = start(gen_tcp, [fun simple_response/5, fun simple_response/5]),
  -    URL = "http://localhost:" ++ integer_to_list(Port) ++ "/close_conn",
  +    URL = url(Port, "/close_conn"),
       lhttpc_manager:update_connection_timeout(50), % very short keep alive
       {ok, Response} = lhttpc:request(URL, get, [], 100),
       ?assertEqual({200, "OK"}, status(Response)),
  
positive.code: 
  post() ->
      Port = start(gen_tcp, [fun copy_body/5]),
      URL = "http://localhost:" ++ integer_to_list(Port) ++ "/post",
      {X, Y, Z} = now(),
      Body = [
          "This is a rather simple post :)",
  
negative.code:     timer:sleep(50), % give the TCP stack time to deliver messages
      ?assertEqual(0, lhttpc_manager:connection_count()).
  
  invalid_options() ->
      ?assertError({bad_options, [{foo, bar}, bad_option]},
          lhttpc:request("http://localhost/", get, [], <<>>, 1000,
              [bad_option, {foo, bar}])).
  
  %%% Helpers functions
  
  simple(Method) ->
      Port = start(gen_tcp, [fun simple_response/5]),
      URL = url(Port, "/simple"),
      {ok, Response} = lhttpc:request(URL, Method, [], 1000),
      {StatusCode, ReasonPhrase} = status(Response),
      ?assertEqual(200, StatusCode),
      ?assertEqual("OK", ReasonPhrase),
      ?assertEqual(<<?DEFAULT_STRING>>, body(Response)).
  
  url(Port, Path) ->
      "http://localhost:" ++ integer_to_list(Port) ++ Path.
  
  ssl_url(Port, Path) ->
      "https://localhost:" ++ integer_to_list(Port) ++ Path.
  
  status({Status, _, _}) ->
      Status.
  
  body({_, _, Body}) ->
      Body.
  
  headers({_, Headers, _}) ->
      Headers.
  
  %%% Responders
  simple_response(Module, Socket, _Request, _Headers, _Body) ->
  