%%%============================================================================= %%% @copyright (C) 1999-2013, Erlang Solutions Ltd %%% @author Diana Corbacho %%% @doc %%% @end %%%============================================================================= -module(fusco_protocol_tests). -copyright("2013, Erlang Solutions Ltd."). -include_lib("eunit/include/eunit.hrl"). -include("fusco.hrl"). -export([test_decode_header/0]). fusco_protocol_test_() -> [{"HTTP version", ?_test(http_version())}, {"Cookies", ?_test(cookies())}, {"Decode header", ?_test(decode_header())}]. http_version() -> L = {_, _, Socket} = test_utils:start_listener(cookie_message()), test_utils:send_message(Socket), ?assertMatch(#response{version = {1,1}, status_code = <<"200">>, reason = <<"OK">>, body = <<"Great success!">>}, fusco_protocol:recv(Socket, false)), test_utils:stop_listener(L). cookies() -> L = {_, _, Socket} = test_utils:start_listener(cookie_message()), test_utils:send_message(Socket), Recv = fusco_protocol:recv(Socket, false), test_utils:stop_listener(L), ?assertMatch(#response{version = {1,1}, status_code = <<"200">>, reason = <<"OK">>, headers = [{<<"set-cookie">>,<<"name2=value2; Expires=Wed, 09 Jun 2021 10:18:14 GMT">>}, {<<"set-cookie">>,<<"name=value">>} | _], body = <<"Great success!">>}, Recv). decode_header() -> ?assertMatch(#response{ headers = [{<<"set-cookie">>,<<"name2=value2; Expires=Wed, 09 Jun 2021 10:18:14 GMT">>}, {<<"set-cookie">>,<<"name=value">>}, {<<"content-length">>, <<"14">>}, {<<"content-type">>,<<"text/plain">>}], body = <<"Great success!">>}, test_decode_header()). test_decode_header() -> fusco_protocol:decode_header(header(), <<>>, #response{}). header() -> <<"Content-type: text/plain\r\nContent-length: 14\r\nSet-Cookie: name=value\r\nSet-Cookie: name2=value2; Expires=Wed, 09 Jun 2021 10:18:14 GMT\r\n\r\nGreat success!">>. cookie_message() -> [ "HTTP/1.1 200 OK\r\n" "Content-type: text/plain\r\nContent-length: 14\r\n" "Set-Cookie: name=value\r\n" "Set-Cookie: name2=value2; Expires=Wed, 09 Jun 2021 10:18:14 GMT\r\n" "\r\n" "Great success!" ].