aboutsummaryrefslogtreecommitdiffstats
path: root/test
AgeCommit message (Collapse)Author
2018-11-12Add deflate options for Websocket compressionLoïc Hoguin
They allow the server to configure what it is willing to accept for both the negotiated configuration (takeover and window bits) and the other zlib options (level, mem_level and strategy). This can be used to reduce the memory and/or CPU footprint of the compressed data, which comes with a cost in compression ratio.
2018-11-11Enable range requests support in cowboy_staticLoïc Hoguin
2018-11-11Add ProvideRangeCallback tests using sendfileLoïc Hoguin
And fix this case when multiple ranges are requested.
2018-11-11Add automatic ranged request handling for bytes unitsLoïc Hoguin
Returning the atom auto instead of a callback informs Cowboy that it needs to handle range requests automatically. This changes the behavior so that the ProvideCallback function is called and then Cowboy splits the data on its own and sends the response without any other user involvement other than defining the ranges_provided/2 callback. This is a quick and dirty way to add range request support to resources, and will be good enough for many cases including for cowboy_static as it also works when the normal response body is a sendfile tuple.
2018-11-09Add sendfile support to cowboy_req:stream_bodyLoïc Hoguin
It is now possible to stream one or more sendfile tuples. A simple example of what can now be done would be for example to build a tar file on the fly using the sendfile syscall for sending the files, or to support Range requests with more than one range with the sendfile syscall. When using cowboy_compress_h unfortunately we have to read the file in order to send it. More options will be added at a later time to make sure users don't read too much into memory. This is a new feature however so existing code is not affected. Also rework cowboy_http's data sending to be flatter.
2018-11-07Add support for range requests (RFC7233) in cowboy_restLoïc Hoguin
This is currently undocumented but is planned to be documented in the next version.
2018-11-05Test stop against all relevant REST callbacksLoïc Hoguin
2018-11-05Test switch_handler against all relevant REST callbacksLoïc Hoguin
2018-11-04Add the rate_limited/2 REST callbackLoïc Hoguin
2018-11-03Add a test suite for RFC6585Loïc Hoguin
2018-11-03Add an option to disable sendfile for a listenerLoïc Hoguin
2018-11-02Add a charset option to cowboy_staticLoïc Hoguin
2018-11-02Add tests for charsets_providedLoïc Hoguin
Fix cases where the q-value is 0 and where a wildcard was sent in the accept-charset header. Also don't send a charset in the content-type of the response if the media type is not text. Thanks to Philip Witty for help figuring this out.
2018-11-02Better handle content negotiation when accept contains charsetsLoïc Hoguin
Thanks to Philip Witty for help figuring this out.
2018-10-31Add a cowboy_rest test for malformed if-*-match headersLoïc Hoguin
2018-10-31Add compress_threshold protocol optionSteve Domin
Currently the compression threshold is set to 300 and hardcoded in the codebase. There are cases where it make sense to allow this to be configured, for instance when you want to enforce all responses to be compressed regarldess of their size.
2018-10-31Handle error_response command in cowboy_metrics_hGrigory Starinkin
2018-10-31Improve a few types, including cowboy_req:req()Loïc Hoguin
2018-10-31Always dialyze tests and fix some cowboy_req specsLoïc Hoguin
2018-10-31Fix a test listener not being stoppedLoïc Hoguin
2018-10-30Initial support for the PROXY protocol headerLoïc Hoguin
Depend on Ranch master for now since it isn't in any release yet.
2018-10-28Fix the sys trap_exit testsLoïc Hoguin
The processes go down slower now so that caused intermittent issues.
2018-10-28Exit gracefully on parent exit/sys:terminate/2,3Loïc Hoguin
2018-10-26Switch cowboy_http2 to the new cow_http2_machineLoïc Hoguin
The new module is a merge of the Cowboy and Gun HTTP/2 state machines. Using a common code will help future developments rather than duplicating the work. A notable change is in how streams are terminated when the handler stops before the body is sent. The cowboy_stream:terminate function is now called only after the body has been sent fully (or the stream is reset in-between), not when the stop command is returned. This will most likely have an impact on metrics but will be closer to reality. I had to comment a broken test in rfc7231_SUITE that was cheating, cheating is no longer possible. This depends on Cowlib master for the time being. A new Cowlib version will be released once both Cowboy and Gun are ported to use cow_http2_machine and I'm satisfied with it.
2018-09-26Use gun:info instead of hacks for test socket operationsLoïc Hoguin
2018-09-23Fix stream_handler_SUITE test failures due to compressionLoïc Hoguin
We always compress when streaming the body back to the client regardless of the size actually streamed.
2018-09-23Correct two tests that introspect the Gun stateLoïc Hoguin
It has changed in Gun 1.2.
2018-09-21Rename the HTTP/2 Websocket test suite to rfc8441_SUITELoïc Hoguin
2018-09-21Add the {active, boolean()} Websocket commandLoïc Hoguin
This command is currently not documented. It allows disabling the reading of incoming data from the socket, and can be used as a poor man's flow control.
2018-09-12Do not send a 101 after a final response in switch_protocolLoïc Hoguin
2018-09-11Swap the ws and autobahn test groups to run autobahn lastLoïc Hoguin
If there's an error it makes sense to have feedback as early as possible.
2018-09-11Add a commands-based interface to Websocket handlersLoïc Hoguin
This feature is currently experimental. It will become the preferred way to use Websocket handlers once it becomes documented. A commands-based interface enables adding commands without having to change the interface much. It mirrors the interface of stream handlers or gen_statem. It will enable adding commands that have been needed for some time but were not implemented for fear of making the interface too complex.
2018-09-07Add cowboy_req:read_and_match_urlencoded_body/2,3Loïc Hoguin
2018-08-13Improve errors for when the ProvideCallback is missingLoïc Hoguin
2018-08-13Fix the infinity timeout testsLoïc Hoguin
Make sure the test fails when the code is incorrect.
2018-08-13Move some test functions off to ct_helperLoïc Hoguin
2018-08-13Fix cancelling undefined settings timerBing Han
when settings_timeout is infinity
2018-06-27Add test cases for cowboy_req:stream_eventsLoïc Hoguin
2018-06-26Fix tests for most recent GunLoïc Hoguin
2018-06-25Add streaming without chunking for HTTP/1.1Eric Meadows-Jönsson
If content-length is set in the response headers we can skip chunked transfer-encoding.
2018-06-04Add a test for an empty host header in rfc7230Loïc Hoguin
2018-05-22Fix intermittent test failures in rfc7540_SUITELoïc Hoguin
2018-05-22Ensure tests in rfc7540_SUITE can be repeatedLoïc Hoguin
2018-05-20Fix intermittent failure of max_frame_size_sent testLoïc Hoguin
2018-05-18Remove two broken absolute URI tests from old_http_SUITELoïc Hoguin
2018-05-18Remove the trailer header from HTTP/1.1 response if no TELoïc Hoguin
2018-05-18Don't send transfer-encoding when streaming 204 responsesLoïc Hoguin
2018-05-18Improve the limit_requests_keepalive testLoïc Hoguin
We now check that the connection gets closed.
2018-05-18Fix the ignore_requests_after_response_connection_close testLoïc Hoguin
It was not working at all.
2018-05-18Comment out the origin_form_reject_if_connect testLoïc Hoguin
We don't implement CONNECT yet so we unconditionally return a 501 for these requests and that makes this test fail.