aboutsummaryrefslogtreecommitdiffstats
path: root/test/ws_SUITE.erl
AgeCommit message (Collapse)Author
2014-09-26Unify the init and terminate callbacksLoïc Hoguin
This set of changes is the first step to simplify the writing of handlers, by removing some extraneous callbacks and making others optional. init/3 is now init/2, its first argument being removed. rest_init/2 and rest_terminate/2 have been removed. websocket_init/3 and websocket_terminate/3 have been removed. terminate/3 is now optional. It is called regardless of the type of handler, including rest and websocket. The return value of init/2 changed. It now returns {Mod, Req, Opts} with Mod being either one of the four handler type or a custom module. It can also return extra timeout and hibernate options. The signature for sub protocols has changed, they now receive these extra timeout and hibernate options. Loop handlers are now implemented in cowboy_long_polling, and will be renamed throughout the project in a future commit.
2014-04-22Move listener initialization to cowboy_testLoïc Hoguin
2014-04-22Start applications directly from the ct hookLoïc Hoguin
2014-04-20Enable Autobahn Test Suite by defaultLoïc Hoguin
Includes a variety of small changes that are a first step to improving the test system heavily.
2014-02-06Update copyright yearsLoïc Hoguin
2013-09-04Make cowlib a proper dependencyLoïc Hoguin
Start moving a few functions from Cowboy into cowlib.
2013-07-02Add failing tests for the websocket deflate supportAli Sabil
2013-06-20Add support for the webkit deflate frame extensionAli Sabil
2013-04-22Reorganize the websocket test suiteLoïc Hoguin
We now have the suite specific modules in the data folder. Compilation is performed by the Makefile instead of ct_run.
2013-03-02Run tests in parallelLoïc Hoguin
2013-03-02Use random ports for testsLoïc Hoguin
2013-01-28New routingLoïc Hoguin
Ultimately few things change, it's mostly just a nicer syntax and slightly different expectations. The name of the value `dispatch` did not change, because the previous dispatch values will now fail if the code is not updated to using `cowboy_router:compile/1`. No constraints have been implemented in this commit.
2013-01-22Do not require inets for running tests anymoreLoïc Hoguin
2013-01-14Improve websocket close handlingLoïc Hoguin
We now always send a failure reason (bad protocol, bad encoding, etc.) unless the closure was initiated by the client and it didn't send a close code. We now check that the close frames have a payload that is valid UTF-8, unless they don't have a payload at all. We now do not crash the process anymore when bad opcodes are sent, or when the opcode 0 is sent before fragmentation was initiated. Overall this makes us closer to full compliance with the RFC.
2013-01-12All frames sent from client to server MUST be maskedLoïc Hoguin
Good in theory, but implementations may vary. If something stops working after this commit we might need some tweaks to support existing clients. Please try it and give feedback.
2013-01-10Remove support for Websocket hixie76 draftLoïc Hoguin
It was only used by Safari 5.0.1 and possibly 5.1. Their market share is dropping as we speak. It was also insecure (disabled in Firefox for that reason). This will allow us to make much more efficient and cleaner code for the rest of the Websocket versions we support (drafts 7 to 17 + RFC), which are pretty much all versions seen in the wild excluding the one we're removing here.
2013-01-10Update autobahntestsuite to 0.5.2Loïc Hoguin
Also small mostly insignificant changes to tests.
2013-01-04Hello 2013Loïc Hoguin
2013-01-03Add middleware supportLoïc Hoguin
Middlewares allow customizing the request processing. All existing Cowboy project are incompatible with this commit. You need to change `{dispatch, Dispatch}` in the protocol options to `{env, [{dispatch, Dispatch}]}` to fix your code.
2012-12-22Cancel timer only on websocket_data receives or sendsJeremy Ong
This commit prevents erlang messages from keeping a websocket connection alive. Previously, the timer was canceled upon any activity. Now, the timeout is only canceled when actual data is sent from the client. The handler_loop_timeout/1 function is called from websocket_data/4 instead of handler_before_loop/4. It is also called after every successful reply in handler_call/4.
2012-12-08Add {close, StatusCode, Payload} and fix {close, Payload}Loïc Hoguin
2012-12-03Allow passing the Req and an updated Opts when upgrading protocolsLoïc Hoguin
2012-12-02Add more frame types available in websocket repliesLoïc Hoguin
We can now reply empty close, ping and pong frames, or close frames with a payload. This means that we can send a frame and then close the connection in a single operation. If a close packet is sent, the connection is closed immediately, even if there was frames that remained to be sent. Cowboy will silently drop any extra frames in the list given as a reply.
2012-11-27Fix a test that worked intermittentlyLoïc Hoguin
2012-10-11Allow websocket handlers to reply more than one frameLoïc Hoguin
Instead of returning {text, Data}, you can now return [{text, Data}, {text, Data2}, ...].
2012-10-11Add crypto into the required applicationsLoïc Hoguin
As suggested by @prof3ta.
2012-08-27Switch to Ranch for connection handlingLoïc Hoguin
This is the first of many API incompatible changes. You have been warned.
2012-05-23Update version to 0.6.00.6.0Loïc Hoguin
Also update the CHANGELOG and copyright years.
2012-04-05Add support for fragmented websocket messagesMagnus Klaar
2011-12-22Add ct tests for binary websocket framesLoïc Hoguin
2011-12-22Move the websocket tests in a separate suiteLoïc Hoguin