1
0
mirror of https://github.com/matrix-org/matrix-js-sdk.git synced 2025-08-07 23:02:56 +03:00

1457 Commits

Author SHA1 Message Date
Richard van der Hoff
0034bdf4ad Set the back-pagination token before raising Room.timelineReset
This fixes another race condition on gappy syncs, wherein we weren't
back-paginating back from the start of the gappy sync.
2016-03-01 13:35:22 +00:00
David Baker
48f7aca121 Merge pull request #89 from matrix-org/dbkr/invite_name_from_member_event
Use our inviter's member event to get their display name if it exists.
2016-02-29 18:05:27 +00:00
David Baker
5fefcd8ce3 pep8 2016-02-29 13:53:55 +00:00
David Baker
76f1d24c7b Make room name generation slightly more sane and add unit tests fir invite naming. 2016-02-29 13:51:55 +00:00
Richard van der Hoff
abf908b14f Fire a 'Room.timelineReset' event when we get a gappy sync
We need to reset things at the UI level when we get a gappy sync, so give the
clients something to listen for.

Also add a bunch of tests for that bit of code.
2016-02-25 18:26:11 +00:00
Richard van der Hoff
46912431cc make the tests pass again 2016-02-24 16:15:08 +00:00
Richard van der Hoff
1baf14861c Merge pull request #81 from matrix-org/rav/fix_timeline_after_join
EventTimeline: Fix baseIndex after removing the last event
2016-02-17 12:23:29 +00:00
Richard van der Hoff
8e47fe2968 Fix lint 2016-02-16 22:32:50 +00:00
Richard van der Hoff
88827fab84 EventTimeline: Fix baseIndex after removing the last event
Removing the last event in an EventTimeline (as we might, for instance, if it
was a local echo in an empty timeline) got us into a state where the baseIndex
would increment when adding events to the end of the timeline, causing much
confusion.
2016-02-16 22:22:26 +00:00
David Baker
5c8f73019e lint 2016-02-09 16:22:12 +00:00
David Baker
4d46251b15 Just use the keepalive logic to recover from lost internet connections.
* This should fix the problem where we could end up with two concurrent syncs
   due to both retrying /sync and hitting /versions. There is now one and only
   one mechanism for connection recovery.
 * Hit /versions a little less often as I think every 2 seconds is a little
   over-aggressive. Also introduce randomness to minimize possibility of
   thundering herds.
 * Add a listener for the 'online' event in case any browser is nice enough
   to ever fire it.
 * Treat a 400 response from /versions as successful since older synapses
   will not support it.
2016-02-09 16:08:14 +00:00
Richard van der Hoff
f3e5e03009 Give precedence to later Read Receipts
In order to resolve the conflict between local and remote read-receipts, try to
give precedence to the read-receipt which refers to the most recent event.

Also fix the read-receipt synthesis in _addLiveEvents so that it actually works
(drop the spurious MatrixEvent wrapper), and remove the synthesis in
recalculate() (which appears to be redundant).
2016-02-04 15:35:27 +00:00
Richard van der Hoff
1499087098 TimelineWindow: fix canPaginate during load
We should return false rather than throw an exception if someone calls
canPaginate before the timeline finishes loading.
2016-01-30 00:09:12 +00:00
Richard van der Hoff
8db95f42fb Add some unit tests for TimelineWindow. 2016-01-28 16:38:45 +00:00
Richard van der Hoff
a87cefa035 Replace the boolean args on EventTimeline methods with constants 2016-01-26 22:38:26 +00:00
Richard van der Hoff
101d3952d3 Test that the pagination tokens actually start at null 2016-01-26 21:25:10 +00:00
Richard van der Hoff
a01501b42c Address a number of review comments.
Make sure that room state is copied correctly when resetting the live
timeline.

Also comments and bits.
2016-01-26 18:09:15 +00:00
Richard van der Hoff
840b8f0bc0 Merge branch 'develop' into rav/context
Conflicts:
	lib/models/room.js
2016-01-25 10:45:22 +00:00
Kegan Dougal
c5e7df8975 Hit /versions instead of / since it is actually a known endpoint 2016-01-21 17:52:52 +00:00
Kegan Dougal
7bdab05785 Unbreak tests 2016-01-21 17:34:12 +00:00
Matthew Hodgson
787c0ebabc fix another test 2016-01-21 00:14:29 +00:00
Matthew Hodgson
d559ad794a STUPID LINE LENGTH LIMITS 2016-01-21 00:10:15 +00:00
Matthew Hodgson
5fd0ea2f6f fix test 2016-01-20 23:56:16 +00:00
Kegan Dougal
a0d81fccdb Fix test 2016-01-20 17:29:27 +00:00
Kegan Dougal
6df9d08dc1 Fix tests 2016-01-20 15:59:34 +00:00
Richard van der Hoff
706966ffe9 Support for non-contiguous event timelines
This provides optional support for fetching old events via the /context API,
and paginating backwards and forwards from them, eventually merging into the
live timeline.

To support it, events are now stored in an EventTimeline, rather than directly
in an array in the Room; the old names are maintained as references for
compatibility.

The feature has to be enabled explicitly, otherwise it would be impossible for
existing clients to back-paginate to the old events after a gappy /sync.

Still TODO here:

* An object which provides a window into the timelines to make them possible to
  use. This will be a separate PR.

* Rewrite the 'EventContext' used by the searchRoomEvents API in terms of an
  EventTimeline - it is essentially a subset.
2016-01-15 13:19:11 +00:00
Kegan Dougal
d36c928d95 Fix tests 2016-01-06 17:35:56 +00:00
Kegan Dougal
445491c4ad Fix guest rooms UT to reflect reality 2016-01-05 16:57:59 +00:00
Kegan Dougal
65ef1dfd75 Lint and tests 2015-12-15 15:57:24 +00:00
Kegan Dougal
a6f64b5f03 v2 filter test 2015-12-11 15:27:40 +00:00
Kegan Dougal
26d9fed537 Fix MatrixClient unit tests 2015-12-11 11:07:31 +00:00
Kegan Dougal
86a162c818 Add filter UTs and fix bugs 2015-12-08 15:39:55 +00:00
Kegan Dougal
61db191835 Add UTs 2015-12-07 15:45:13 +00:00
Kegan Dougal
02a605f368 Guest room ID fixes / initialSync support 2015-12-04 15:31:07 +00:00
Kegan Dougal
2866743ce6 Fix broken test 2015-12-04 09:33:53 +00:00
David Baker
14a9f6c444 lint & quote style 2015-11-12 12:14:13 +00:00
David Baker
588870b479 lint 2015-11-12 12:08:20 +00:00
David Baker
f74bb3c145 Update UTs 2015-11-12 12:05:06 +00:00
Kegan Dougal
959c588658 Guest rooms UTs 2015-11-10 16:49:50 +00:00
Kegan Dougal
46329ceb94 Remove the ability to set display_name in line with new spec 2015-11-09 16:58:52 +00:00
Kegan Dougal
b231f19ec6 Make the display_name check for contains rather than equality. Add UT. 2015-11-09 16:50:10 +00:00
Kegan Dougal
b0655d0431 Add UTs 2015-11-09 14:45:17 +00:00
Matthew Hodgson
b9ace61ccb split long lines 2015-11-07 20:26:16 +00:00
Matthew Hodgson
21273582a4 room tagging unit tests 2015-11-07 20:23:21 +00:00
Kegsay
455ce26741 Merge pull request #40 from matrix-org/kegan/syncing
Syncing bugs/fixes
2015-11-05 14:53:47 +00:00
Kegan Dougal
8500f404a9 Finish implementing UTs 2015-11-05 13:12:37 +00:00
Kegan Dougal
5d782a317c Add some sync emission tests. Emit after starting timers.
We want to emit AFTER starting the timers so tests can speed
up time. We also want to do this because clients may want to
retryImmediately() on sync errors (which would be lost unless
the timer had already been started)
2015-11-04 16:09:30 +00:00
Kegan Dougal
af435204a0 More helpful logging 2015-11-04 15:40:42 +00:00
Kegan Dougal
b4c353e65f Linting 2015-11-04 15:37:10 +00:00
Kegan Dougal
e42f6c0cad Add http fixings to allow MatrixClient UTs 2015-11-04 15:35:31 +00:00