/src/mochiweb_request_tests.erl
Erlang | 152 lines | 119 code | 33 blank | 0 comment | 0 complexity | 3ac9447edc1eef131b81dd29a7062fca MD5 | raw file
Possible License(s): MIT
- -module(mochiweb_request_tests).
- -ifdef(TEST).
- -include_lib("eunit/include/eunit.hrl").
- accepts_content_type_test() ->
- Req1 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "multipart/related"}])),
- ?assertEqual(true, Req1:accepts_content_type("multipart/related")),
- ?assertEqual(true, Req1:accepts_content_type(<<"multipart/related">>)),
- Req2 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/html"}])),
- ?assertEqual(false, Req2:accepts_content_type("multipart/related")),
- Req3 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/html, multipart/*"}])),
- ?assertEqual(true, Req3:accepts_content_type("multipart/related")),
- Req4 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/html, multipart/*; q=0.0"}])),
- ?assertEqual(false, Req4:accepts_content_type("multipart/related")),
- Req5 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/html, multipart/*; q=0"}])),
- ?assertEqual(false, Req5:accepts_content_type("multipart/related")),
- Req6 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/html, */*; q=0.0"}])),
- ?assertEqual(false, Req6:accepts_content_type("multipart/related")),
- Req7 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "multipart/*; q=0.0, */*"}])),
- ?assertEqual(false, Req7:accepts_content_type("multipart/related")),
- Req8 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "*/*; q=0.0, multipart/*"}])),
- ?assertEqual(true, Req8:accepts_content_type("multipart/related")),
- Req9 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "*/*; q=0.0, multipart/related"}])),
- ?assertEqual(true, Req9:accepts_content_type("multipart/related")),
- Req10 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/html; level=1"}])),
- ?assertEqual(true, Req10:accepts_content_type("text/html;level=1")),
- Req11 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/html; level=1, text/html"}])),
- ?assertEqual(true, Req11:accepts_content_type("text/html")),
- Req12 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/html; level=1; q=0.0, text/html"}])),
- ?assertEqual(false, Req12:accepts_content_type("text/html;level=1")),
- Req13 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/html; level=1; q=0.0, text/html"}])),
- ?assertEqual(false, Req13:accepts_content_type("text/html; level=1")),
- Req14 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/html;level=1;q=0.1, text/html"}])),
- ?assertEqual(true, Req14:accepts_content_type("text/html; level=1")).
- accepted_encodings_test() ->
- Req1 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([])),
- ?assertEqual(["identity"],
- Req1:accepted_encodings(["gzip", "identity"])),
- Req2 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept-Encoding", "gzip, deflate"}])),
- ?assertEqual(["gzip", "identity"],
- Req2:accepted_encodings(["gzip", "identity"])),
- Req3 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept-Encoding", "gzip;q=0.5, deflate"}])),
- ?assertEqual(["deflate", "gzip", "identity"],
- Req3:accepted_encodings(["gzip", "deflate", "identity"])),
- Req4 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept-Encoding", "identity, *;q=0"}])),
- ?assertEqual(["identity"],
- Req4:accepted_encodings(["gzip", "deflate", "identity"])),
- Req5 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept-Encoding", "gzip; q=0.1, *;q=0"}])),
- ?assertEqual(["gzip"],
- Req5:accepted_encodings(["gzip", "deflate", "identity"])),
- Req6 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept-Encoding", "gzip; q=, *;q=0"}])),
- ?assertEqual(bad_accept_encoding_value,
- Req6:accepted_encodings(["gzip", "deflate", "identity"])),
- Req7 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept-Encoding", "gzip;q=2.0, *;q=0"}])),
- ?assertEqual(bad_accept_encoding_value,
- Req7:accepted_encodings(["gzip", "identity"])),
- Req8 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept-Encoding", "deflate, *;q=0.0"}])),
- ?assertEqual([],
- Req8:accepted_encodings(["gzip", "identity"])).
- accepted_content_types_test() ->
- Req1 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/html"}])),
- ?assertEqual(["text/html"],
- Req1:accepted_content_types(["text/html", "application/json"])),
- Req2 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/html, */*;q=0"}])),
- ?assertEqual(["text/html"],
- Req2:accepted_content_types(["text/html", "application/json"])),
- Req3 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/*, */*;q=0"}])),
- ?assertEqual(["text/html"],
- Req3:accepted_content_types(["text/html", "application/json"])),
- Req4 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/*;q=0.8, */*;q=0.5"}])),
- ?assertEqual(["text/html", "application/json"],
- Req4:accepted_content_types(["application/json", "text/html"])),
- Req5 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/*;q=0.8, */*;q=0.5"}])),
- ?assertEqual(["text/html", "application/json"],
- Req5:accepted_content_types(["text/html", "application/json"])),
- Req6 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/*;q=0.5, */*;q=0.5"}])),
- ?assertEqual(["application/json", "text/html"],
- Req6:accepted_content_types(["application/json", "text/html"])),
- Req7 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make(
- [{"Accept", "text/html;q=0.5, application/json;q=0.5"}])),
- ?assertEqual(["application/json", "text/html"],
- Req7:accepted_content_types(["application/json", "text/html"])),
- Req8 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/html"}])),
- ?assertEqual([],
- Req8:accepted_content_types(["application/json"])),
- Req9 = mochiweb_request:new(nil, 'GET', "/foo", {1, 1},
- mochiweb_headers:make([{"Accept", "text/*;q=0.9, text/html;q=0.5, */*;q=0.7"}])),
- ?assertEqual(["application/json", "text/html"],
- Req9:accepted_content_types(["text/html", "application/json"])).
- -endif.