From 43ccea87bc329d29ac427c32d731753f980fe704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 15 Jun 2016 13:27:31 +0200 Subject: Fix rest_pastebin example --- examples/rest_pastebin/src/rest_pastebin_app.erl | 6 ++--- test/examples_SUITE.erl | 30 ++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/examples/rest_pastebin/src/rest_pastebin_app.erl b/examples/rest_pastebin/src/rest_pastebin_app.erl index 10ba4c5..98ffe84 100644 --- a/examples/rest_pastebin/src/rest_pastebin_app.erl +++ b/examples/rest_pastebin/src/rest_pastebin_app.erl @@ -16,9 +16,9 @@ start(_Type, _Args) -> {"/[:paste_id]", toppage_handler, []} ]} ]), - {ok, _} = cowboy:start_http(http, 100, [{port, 8080}], [ - {env, [{dispatch, Dispatch}]} - ]), + {ok, _} = cowboy:start_clear(http, 100, [{port, 8080}], #{ + env => #{dispatch => Dispatch} + }), rest_pastebin_sup:start_link(). stop(_State) -> diff --git a/test/examples_SUITE.erl b/test/examples_SUITE.erl index 6f651c5..7092701 100644 --- a/test/examples_SUITE.erl +++ b/test/examples_SUITE.erl @@ -277,6 +277,36 @@ do_rest_basic_auth(Transport, Protocol, Config) -> <<"Hello, Alladin!\n">> = do_rest_get(Transport, Protocol, "/", undefined, "Alladin:open sesame", Config), ok. +%% REST pastebin. + +rest_pastebin(Config) -> + doc("REST pastebin example."), + try + do_compile_and_start(rest_pastebin), + do_rest_pastebin(tcp, http, Config), + do_rest_pastebin(tcp, http2, Config) + after + do_stop(rest_pastebin) + end. + +do_rest_pastebin(Transport, Protocol, Config) -> + %% Existing files. + _ = do_rest_get(Transport, Protocol, "/", <<"text/html">>, undefined, Config), + _ = do_rest_get(Transport, Protocol, "/", <<"text/plain">>, undefined, Config), + %% Use POST to upload a new file and download it back. + ConnPid = gun_open([{port, 8080}, {type, Transport}, {protocol, Protocol}|Config]), + Ref = gun:post(ConnPid, "/", [ + {<<"content-type">>, <<"application/x-www-form-urlencoded">>} + ], <<"paste=this+is+fun">>), + %% @todo Not too happy about 303 here, + %% will need to revisit this example. + {response, _, 303, Headers} = gun:await(ConnPid, Ref), + {_, Location} = lists:keyfind(<<"location">>, 1, Headers), + <<"this is fun">> = do_rest_get(Transport, Protocol, Location, <<"text/plain">>, undefined, Config), + << "", _/bits >> + = do_rest_get(Transport, Protocol, Location, <<"text/html">>, undefined, Config), + ok. + %% File server. file_server(Config) -> -- cgit v1.2.3