aboutsummaryrefslogtreecommitdiffstats
path: root/actioncable/test
Commit message (Collapse)AuthorAgeFilesLines
...
| * Fix `unsubscribed` server side behaviorJon Moss2016-02-182-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | Before this commit, the `unsubscribed` callbacks in Action Cable server side channels were never called. This is because when a WebSocket "goodbye" message was sent from the client, the Action Cable server didn't properly clean up after the now closed WebSocket. This means that memory could possibly skyrocket with this behavior, since part of this commit is to properly remove closed subscriptions from the global subscriptions hash. Say you have 10,000 users currently connected, and then all 10,000 disconnect -- before this patch, Action Cable would still hold onto information (and Ruby objects!) for all of these now dead connections.
* | Use a semaphore to signal message availabilityMatthew Draper2016-02-191-7/+8
|/ | | | | The Event hack was too much of a hack: on actually thinking about it, there's a rather obvious race.
* Don't rely on the global server as a receiver.Kasper Timm Hansen2016-02-143-10/+4
| | | | | | | | | | | | | | | | The `WorkerTest`'s `Receiver` is imporsonating an `ActionCable::Connection::Base`, but just delegates the logger to `ActionCable.logger`. This creates a mismatch as the connection requires the logger to be a `TaggedLoggerProxy`'ied logger, while the server doesn't. Thus to ensure an exception isn't raised when the worker tries to call `tag` other tests have to assign a proxied logger to their test server. Instead of forcing change on other tests, have Receiver adhere to the connection contract and use a `TaggedLoggerProxy`. As a consequence remove more setup from the tests.
* Default connection class to ActionCable::Connection::Base.Kasper Timm Hansen2016-02-142-16/+0
| | | | | | | Instead of depending on ApplicationCable::Connection being defined at initialize we should inject it in the Railtie. Thus we can kill more setup in the tests too.
* Inject Rails' channel paths in engine.Kasper Timm Hansen2016-02-142-17/+1
| | | | | | | | | | | | | We were explicitly referencing Rails.root in ActionCable::Server::Configuration.initialize, thereby coupling ourselves to Rails. Instead add `app/channels` to Rails' app paths and assign the existent files to `channel_paths`. Users can still append to those load paths with `<<` and `push` in `config/application.rb`. This means we can remove the custom `Dir` lookup in `channel_paths` and the Rails and root definitions in the tests.
* Cant run on an out-of-the-box OSX installation without running out of TOO ↵David Heinemeier Hansson2016-02-051-1/+1
| | | | MANY FILES OPEN
* Merge pull request #23381 from matthewd/uneventful-redisMatthew Draper2016-02-022-1/+17
|\ | | | | Redis sans EventMachine
| * Switch the default redis adapter to a single-stream modelMatthew Draper2016-02-012-1/+17
| | | | | | | | | | | | This new adapter does get a little more intimate with the redis-rb gem's implementation than I would like, but it's the least bad of the approaches I've come up with.
* | Merge pull request #23370 from maclover7/actioncable-main-travis-buildGuillermo Iguaran2016-01-311-9/+0
|\ \ | | | | | | Move Action Cable back to the main build
| * | Remove unused methodJon Moss2016-01-311-9/+0
| |/
* / Wait for EventMachine to finish startingMatthew Draper2016-02-011-0/+1
|/
* Use a gentler disconnectMatthew Draper2016-01-301-2/+2
| | | | The detach used by close! seems to be making EM very sad on Travis.
* Don't bother stopping EM between testsMatthew Draper2016-01-301-38/+3
| | | | | It's not strictly necessary, and maybe this will help with the current test failure.
* Keep the socket reference after closeMatthew Draper2016-01-301-3/+2
| | | | We may still try to send to it.
* Reduce the client count, in hope of a more consistent testMatthew Draper2016-01-301-3/+3
|
* Be more patient while gathering the expected responsesMatthew Draper2016-01-301-4/+3
|
* Handle more IO errors (especially, ECONNRESET)Matthew Draper2016-01-302-0/+31
| | | | | | Also, address the possibility of the listen thread dying and needing to be respawned. As a bonus, we now defer construction of the thread until we are first given something to monitor.
* Add a couple of tests that connect with a WS clientMatthew Draper2016-01-302-0/+251
|
* Revert "Revert "Eliminate the EventMachine dependency""Matthew Draper2016-01-308-51/+32
|
* Revert "Eliminate the EventMachine dependency"David Heinemeier Hansson2016-01-278-32/+51
|
* Ditch the EM error logging helperMatthew Draper2016-01-241-1/+0
| | | | | | We're no longer doing our work in the EM event loop, so errors are quite unlikely, and if they do occur, they're not really our responsibility to handle.
* Import the relevant portions of faye-websocketMatthew Draper2016-01-244-8/+9
| | | | (as adapted to use concurrent-ruby / nio4r instead of eventmachine)
* Using a hacked faye-websocket, drop EventMachineMatthew Draper2016-01-245-42/+23
|
* Add tests for the ActionCable adaptersMatthew Draper2016-01-247-0/+227
|
* Fix code review commentsJon Moss2016-01-184-9/+9
| | | | | | | - adapter -> pubsub (re)rename internally - Change variable names to match method names - Add EventMachine `~> 1.0` as a runtime dependency of ActionCable - Refactor dependency loading for adapters
* ActionCable::StorageAdapter ==> ActionCable::SubscriptionAdapterJon Moss2016-01-183-6/+6
|
* All Redis deps are now optional, Postgres --> PostgreSQL adapterJon Moss2016-01-182-2/+0
|
* Tests passing and small refactoringJon Moss2016-01-186-36/+64
|
* Adapterize ActionCable storage and extract behaviorJon Moss2016-01-181-0/+64
|
* Revert "Merge pull request #22977 from rails/revert-22934-master"David Heinemeier Hansson2016-01-167-12/+0
| | | | | This reverts commit d0393fccffc118a5de37654aa222774b66123393, reversing changes made to 3b7ccadfc1c8dfec61af898167e1300b17f5cf25.
* Revert "Move async execution from celluloid to concurrent-ruby"David Heinemeier Hansson2016-01-087-0/+12
|
* Remove celluloid referencesMike Perham2016-01-055-5/+0
|
* Move async execution from celluloid to concurrent-rubyMike Perham2016-01-052-7/+0
| | | | | | | | | | | | | | This removes 8 runtime gem dependencies from Rails: ``` Using hitimes 1.2.3 Using timers 4.1.1 Using celluloid-essentials 0.20.5 Using celluloid-extras 0.20.5 Using celluloid-fsm 0.20.5 Using celluloid-pool 0.20.5 Using celluloid-supervision 0.20.5 Using celluloid 0.17.2 ```
* [ActionCable] declare asset_logged privateAkshay Vishnoi2015-12-191-14/+14
|
* Merge pull request #22668 from ryohashimoto/151219_receiveKasper Timm Hansen2015-12-181-1/+1
|\ | | | | Fix `receive` spelling
| * Fix `receive` spellingRyo Hashimoto2015-12-191-1/+1
| |
* | Merge pull request #22667 from akshay-vishnoi/base_test_caseRafael França2015-12-181-0/+22
|\ \ | |/ |/| [ActionCable] Test invalid action on channel
| * [ActionCable] Test invalid action on channelAkshay Vishnoi2015-12-181-0/+22
| |
* | Fix `receive` spelling and add whitespaceKasper Timm Hansen2015-12-181-3/+3
|/ | | | | Found `recieve` next to the correctly spelled method name, fixed it. Also we prefer a one space padding within hashes, add that.
* [ActionCable] test perform action with default actionAkshay Vishnoi2015-12-181-1/+11
|
* [ActionCable] Test available actions on ChannelAkshay Vishnoi2015-12-181-0/+4
|
* Remove warnings from actioncableArun Agrawal2015-12-172-2/+2
| | | | Warnings coming from code and test are removed
* Quiet warningsDavid Heinemeier Hansson2015-12-161-2/+2
|
* Initial stab at adding Action Cable to rails/masterDavid Heinemeier Hansson2015-12-141-10/+5
|
* Get ready to merge into RailsDavid Heinemeier Hansson2015-12-1420-0/+1013