Commit graph

97 commits

Author SHA1 Message Date
Jakob Ackermann
91e296533f [misc] test/acceptance: add tests for the draining of connections 2020-06-09 18:00:44 +01:00
Jakob Ackermann
acb7d7df5a [misc] add test cases for the validation of the callback argument
When the user provides a function as last argument for socket.emit,
 socket.io will flag this as an RPC and add a cb as the last argument
 to the client.on('event', ...) handler on the server side.
Without a function as last argument for socket.emit, the callback
 argument on the server side is undefined, leading to invalid function
 calls (`undefined()`) and an unhandled exception.
The user can also provide lots of other arguments, so the 2nd/3rd ...
 argument is of arbitrary type, again leading to invalid function calls
 -- e.g. `1()`.
2020-06-09 16:30:03 +01:00
Jakob Ackermann
dc553c4150 [misc] vendor a patched session.socket.io middleware 2020-06-09 15:21:33 +01:00
Jakob Ackermann
5238e6ad36 Merge pull request #145 from overleaf/jpa-backport-140
[backport] 140: stop processing requests as we detect a client disconnect
2020-06-09 14:41:12 +02:00
Jakob Ackermann
589bedc3dd Merge pull request #146 from overleaf/jpa-downgrade-logging
[misc] downgrade logging when running tests
2020-06-09 14:40:59 +02:00
Jakob Ackermann
f40241a037 [misc] downgrade logging when running tests 2020-06-05 11:38:09 +01:00
Jakob Ackermann
ddcb9cf8c8 [misc] downgrade a warning message from clients leaving non-joined rooms
This can now happen all the time, as we skip the join for clients that
 disconnect before joinProject/joinDoc completed.

(cherry-picked from commit f357931de74e088800f3cced3898cce4f251dad0)
2020-06-05 11:32:43 +01:00
Jakob Ackermann
7fa9061015 [misc] stop processing requests as we detect a client disconnect
v2 expose `client.connected`; v0 exposes `client.disconnected`

(cherry-picked from commit a9d70484343ca9be367d45bf7bb949e4be449647)
2020-06-05 11:32:13 +01:00
Jakob Ackermann
c6d08647c7 [misc] socket.io: use a secondary publicId for public facing usages 2020-06-04 17:18:07 +01:00
Jakob Ackermann
d13acb8ca3 [ChannelManager] port related and still mostly valid test from v2
I skipped the bulk of verifyConsistentBehaviour tests which are not
 valid for the new implementation -- there is no optimization and
 always cleanup.
2020-05-15 18:39:33 +02:00
Jakob Ackermann
af53d3b603 [misc] skip duplicate JSON serialization for size check 2020-03-24 11:22:28 +01:00
Jakob Ackermann
15244a54be [misc] WebsocketController: limit the update size to 7mb
bail out early on -- especially do not push the update into redis for
 doc-updater to discard it.

Confirm the update silently, otherwise the frontend will send it again.
Broadcast a 'otUpdateError' message and disconnect the client, like
 doc-updater would do.
2020-03-24 09:12:12 +01:00
Simon Detheridge
21e294c6eb Generate retryable error when hitting rate limits in web 2019-09-02 11:27:04 +01:00
Brian Gough
478a727c61 ignore spurious requests to leave other docs 2019-07-29 15:19:08 +01:00
Brian Gough
04a171171f fix async behaviour of join/leave 2019-07-29 11:54:02 +01:00
Henry Oswald
2c9b222437 fix breaking tests from using ioredis with inbuilt promises
because a promise is returned from ioredis it errors in mocha as it
can't take a promise and a callback
2019-05-30 10:58:05 +01:00
Chrystal Griffiths
507c4e5ce2 Fix test to accommodate changes to anonymous users 2019-02-15 15:18:17 +00:00
Henry Oswald
a07e516f65 update redis key 2019-02-04 10:22:26 +00:00
Henry Oswald
327fa79f1c update build scripts, acceptence tests now pass. includes dockerfile 1.1.3 2018-05-23 15:00:46 +01:00
Brian Gough
168d646328 exit if mock servers fail to start 2017-10-20 15:19:20 +01:00
Alasdair Smith
6470577c3f Add acceptance tests for joinDoc variadic 2017-09-22 11:01:11 +01:00
James Allen
a8917b933f Remove multi call to make compatible with redis-cluster 2017-05-11 17:27:28 +01:00
James Allen
d8ff8ba098 Merge pull request #11 from sharelatex/ja-allow-readonly-comments
Allow readonly users to submit comments
2017-03-20 14:25:03 +00:00
James Allen
8766646149 Allow users to send a comment update if they are read-only 2017-03-15 15:45:52 +00:00
Shane Kilkelly
50930cd7b1 Don't npm rebuild inside container 2017-02-20 10:14:41 +00:00
James Allen
bf2620ee0c Return ranges from docupdater to client 2016-12-08 11:37:31 +00:00
James Allen
5d377713d6 Try to fix issue with acceptance tests timing out 2016-12-08 11:25:25 +00:00
James Allen
9cf0eb5540 Add in acceptance test script 2016-12-08 11:14:27 +00:00
James Allen
4cff89becc Fix acceptance tests 2016-12-08 11:12:07 +00:00
James Allen
030abc5340 Don't flush to track changes now that this happens in doc updater 2016-01-20 17:51:24 +00:00
James Allen
a48c8aad92 Support anonymous access 2014-11-21 11:48:59 +00:00
James Allen
7b275e9e0e Add acceptence tests for leaving(disconnecting) from a project 2014-11-17 12:23:30 +00:00
James Allen
80b7875414 Add in leaveProject handler 2014-11-14 16:51:55 +00:00
James Allen
fd56655529 Add in track changes and doc updater flushing calls 2014-11-14 15:53:59 +00:00
James Allen
347ceaaf03 Listen for updates from doc updater and send them to clients 2014-11-14 15:30:18 +00:00
James Allen
b6f51fdafd Refactor acceptance tests to wait for connection before proceeding 2014-11-14 10:21:54 +00:00
James Allen
fef5f6b775 Add acceptance tests for applyOtUpdate 2014-11-14 10:12:35 +00:00
James Allen
f0e69bfe2d Add appltOtUpdate end point (sans acceptance tests for now) 2014-11-13 17:07:05 +00:00
James Allen
cc1c85ebf8 Distribute server side socket.io updates over Redis Pub/Sub 2014-11-13 16:03:37 +00:00
James Allen
e769819521 Add in clientTracking.updatePosition end point 2014-11-13 15:27:18 +00:00
James Allen
84778b5961 Mark user as connected for cursor updates when joining project 2014-11-13 13:05:49 +00:00
James Allen
431abdc6eb Add leaveDoc acceptance tests 2014-11-13 11:54:10 +00:00
James Allen
0b18edeff3 Add in /clients and /client/:client_id status end points 2014-11-13 11:48:49 +00:00
James Allen
eb8ccc0298 Create joinDoc socket.io end point 2014-11-12 15:54:55 +00:00
James Allen
dc60f2b736 Add acceptance test for unauthorized project joining 2014-11-10 11:38:26 +00:00
James Allen
02c0a3a867 Create joinProject socket.io endpoint 2014-11-10 11:27:08 +00:00
James Allen
fbf983c2ff Create framework for real-time API with session authentication 2014-11-07 17:38:12 +00:00