Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor
						commit
						b1e98ddc09
					
				|  | @ -99,7 +99,6 @@ class FederationTestCase(unittest.TestCase): | |||
|         new_event = mem_handler.change_membership.call_args[0][0] | ||||
|         self.assertEquals(RoomMemberEvent.TYPE, new_event.type) | ||||
|         self.assertEquals(room_id, new_event.room_id) | ||||
|         self.assertEquals(user_id, new_event.target_user_id) | ||||
|         self.assertEquals(user_id, new_event.state_key) | ||||
|         self.assertEquals(Membership.JOIN, new_event.membership) | ||||
| 
 | ||||
|  |  | |||
|  | @ -85,7 +85,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase): | |||
|         event = self.hs.get_event_factory().create_event( | ||||
|             etype=RoomMemberEvent.TYPE, | ||||
|             user_id=user_id, | ||||
|             target_user_id=target_user_id, | ||||
|             state_key=target_user_id, | ||||
|             room_id=room_id, | ||||
|             membership=Membership.INVITE, | ||||
|             content=content, | ||||
|  | @ -133,7 +133,7 @@ class RoomMemberHandlerTestCase(unittest.TestCase): | |||
|         event = self.hs.get_event_factory().create_event( | ||||
|             etype=RoomMemberEvent.TYPE, | ||||
|             user_id=user_id, | ||||
|             target_user_id=target_user_id, | ||||
|             state_key=target_user_id, | ||||
|             room_id=room_id, | ||||
|             membership=Membership.JOIN, | ||||
|             content=content, | ||||
|  | @ -359,7 +359,7 @@ class RoomCreationTest(unittest.TestCase): | |||
|         self.assertEquals(RoomMemberEvent.TYPE, join_event.type) | ||||
|         self.assertEquals(room_id, join_event.room_id) | ||||
|         self.assertEquals(user_id, join_event.user_id) | ||||
|         self.assertEquals(user_id, join_event.target_user_id) | ||||
|         self.assertEquals(user_id, join_event.state_key) | ||||
| 
 | ||||
|         self.assertTrue(self.state_handler.handle_new_event.called) | ||||
| 
 | ||||
|  |  | |||
|  | @ -94,7 +94,7 @@ class RoomPermissionsTestCase(RestTestCase): | |||
|         # set topic for public room | ||||
|         (code, response) = yield self.mock_resource.trigger( | ||||
|                            "PUT", | ||||
|                            "/rooms/%s/topic" % self.created_public_rmid, | ||||
|                            "/rooms/%s/state/m.room.topic" % self.created_public_rmid, | ||||
|                            '{"topic":"Public Room Topic"}') | ||||
|         self.assertEquals(200, code, msg=str(response)) | ||||
| 
 | ||||
|  | @ -175,15 +175,15 @@ class RoomPermissionsTestCase(RestTestCase): | |||
|     @defer.inlineCallbacks | ||||
|     def test_topic_perms(self): | ||||
|         topic_content = '{"topic":"My Topic Name"}' | ||||
|         topic_path = "/rooms/%s/topic" % self.created_rmid | ||||
|         topic_path = "/rooms/%s/state/m.room.topic" % self.created_rmid | ||||
| 
 | ||||
|         # set/get topic in uncreated room, expect 403 | ||||
|         (code, response) = yield self.mock_resource.trigger( | ||||
|                            "PUT", "/rooms/%s/topic" % self.uncreated_rmid, | ||||
|                            "PUT", "/rooms/%s/state/m.room.topic" % self.uncreated_rmid, | ||||
|                            topic_content) | ||||
|         self.assertEquals(403, code, msg=str(response)) | ||||
|         (code, response) = yield self.mock_resource.trigger_get( | ||||
|                            "/rooms/%s/topic" % self.uncreated_rmid) | ||||
|                            "/rooms/%s/state/m.room.topic" % self.uncreated_rmid) | ||||
|         self.assertEquals(403, code, msg=str(response)) | ||||
| 
 | ||||
|         # set/get topic in created PRIVATE room not joined, expect 403 | ||||
|  | @ -223,19 +223,19 @@ class RoomPermissionsTestCase(RestTestCase): | |||
| 
 | ||||
|         # get topic in PUBLIC room, not joined, expect 200 (or 404) | ||||
|         (code, response) = yield self.mock_resource.trigger_get( | ||||
|                            "/rooms/%s/topic" % self.created_public_rmid) | ||||
|                            "/rooms/%s/state/m.room.topic" % self.created_public_rmid) | ||||
|         self.assertEquals(200, code, msg=str(response)) | ||||
| 
 | ||||
|         # set topic in PUBLIC room, not joined, expect 403 | ||||
|         (code, response) = yield self.mock_resource.trigger( | ||||
|                            "PUT", | ||||
|                            "/rooms/%s/topic" % self.created_public_rmid, | ||||
|                            "/rooms/%s/state/m.room.topic" % self.created_public_rmid, | ||||
|                            topic_content) | ||||
|         self.assertEquals(403, code, msg=str(response)) | ||||
| 
 | ||||
|     @defer.inlineCallbacks | ||||
|     def _test_get_membership(self, room=None, members=[], expect_code=None): | ||||
|         path = "/rooms/%s/members/%s/state" | ||||
|         path = "/rooms/%s/state/m.room.member/%s" | ||||
|         for member in members: | ||||
|             (code, response) = yield self.mock_resource.trigger_get( | ||||
|                                path % | ||||
|  | @ -291,12 +291,12 @@ class RoomPermissionsTestCase(RestTestCase): | |||
|     def test_membership_public_room_perms(self): | ||||
|         room = self.created_public_rmid | ||||
|         # get membership of self, get membership of other, public room + invite | ||||
|         # expect all 403s | ||||
|         # expect all 200s - public rooms, you can see who is in them. | ||||
|         yield self.invite(room=room, src=self.rmcreator_id, | ||||
|                           targ=self.user_id) | ||||
|         yield self._test_get_membership( | ||||
|             members=[self.user_id, self.rmcreator_id], | ||||
|             room=room, expect_code=403) | ||||
|             room=room, expect_code=200) | ||||
| 
 | ||||
|         # get membership of self, get membership of other, public room + joined | ||||
|         # expect all 200s | ||||
|  | @ -306,11 +306,11 @@ class RoomPermissionsTestCase(RestTestCase): | |||
|             room=room, expect_code=200) | ||||
| 
 | ||||
|         # get membership of self, get membership of other, public room + left | ||||
|         # expect all 403s | ||||
|         # expect all 200s - public rooms, you can always see who is in them. | ||||
|         yield self.leave(room=room, user=self.user_id) | ||||
|         yield self._test_get_membership( | ||||
|             members=[self.user_id, self.rmcreator_id], | ||||
|             room=room, expect_code=403) | ||||
|             room=room, expect_code=200) | ||||
| 
 | ||||
|     @defer.inlineCallbacks | ||||
|     def test_invited_permissions(self): | ||||
|  | @ -614,7 +614,7 @@ class RoomTopicTestCase(RestTestCase): | |||
|         self.mock_resource = MockHttpResource(prefix=PATH_PREFIX) | ||||
|         self.auth_user_id = self.user_id | ||||
|         self.room_id = "!rid1:test" | ||||
|         self.path = "/rooms/%s/topic" % self.room_id | ||||
|         self.path = "/rooms/%s/state/m.room.topic" % self.room_id | ||||
| 
 | ||||
|         state_handler = Mock(spec=["handle_new_event"]) | ||||
|         state_handler.handle_new_event.return_value = True | ||||
|  | @ -749,7 +749,7 @@ class RoomMemberStateTestCase(RestTestCase): | |||
| 
 | ||||
|     @defer.inlineCallbacks | ||||
|     def test_invalid_puts(self): | ||||
|         path = "/rooms/%s/members/%s/state" % (self.room_id, self.user_id) | ||||
|         path = "/rooms/%s/state/m.room.member/%s" % (self.room_id, self.user_id) | ||||
|         # missing keys or invalid json | ||||
|         (code, response) = yield self.mock_resource.trigger("PUT", | ||||
|                            path, '{}') | ||||
|  | @ -783,7 +783,7 @@ class RoomMemberStateTestCase(RestTestCase): | |||
| 
 | ||||
|     @defer.inlineCallbacks | ||||
|     def test_rooms_members_self(self): | ||||
|         path = "/rooms/%s/members/%s/state" % ( | ||||
|         path = "/rooms/%s/state/m.room.member/%s" % ( | ||||
|             urllib.quote(self.room_id), self.user_id | ||||
|         ) | ||||
| 
 | ||||
|  | @ -804,7 +804,7 @@ class RoomMemberStateTestCase(RestTestCase): | |||
|     @defer.inlineCallbacks | ||||
|     def test_rooms_members_other(self): | ||||
|         self.other_id = "@zzsid1:red" | ||||
|         path = "/rooms/%s/members/%s/state" % ( | ||||
|         path = "/rooms/%s/state/m.room.member/%s" % ( | ||||
|             urllib.quote(self.room_id), self.other_id | ||||
|         ) | ||||
| 
 | ||||
|  | @ -820,7 +820,7 @@ class RoomMemberStateTestCase(RestTestCase): | |||
|     @defer.inlineCallbacks | ||||
|     def test_rooms_members_other_custom_keys(self): | ||||
|         self.other_id = "@zzsid1:red" | ||||
|         path = "/rooms/%s/members/%s/state" % ( | ||||
|         path = "/rooms/%s/state/m.room.member/%s" % ( | ||||
|             urllib.quote(self.room_id), self.other_id | ||||
|         ) | ||||
| 
 | ||||
|  |  | |||
|  | @ -21,6 +21,7 @@ from twisted.trial import unittest | |||
| 
 | ||||
| from synapse.api.constants import Membership | ||||
| 
 | ||||
| import json | ||||
| import time | ||||
| 
 | ||||
| class RestTestCase(unittest.TestCase): | ||||
|  | @ -71,23 +72,22 @@ class RestTestCase(unittest.TestCase): | |||
|                                      expect_code=expect_code) | ||||
| 
 | ||||
|     @defer.inlineCallbacks | ||||
|     def change_membership(self, room=None, src=None, targ=None, | ||||
|                           membership=None, expect_code=200, tok=None): | ||||
|     def change_membership(self, room, src, targ, membership, tok=None, | ||||
|                           expect_code=200): | ||||
|         temp_id = self.auth_user_id | ||||
|         self.auth_user_id = src | ||||
| 
 | ||||
|         path = "/rooms/%s/members/%s/state" % (room, targ) | ||||
|         path = "/rooms/%s/state/m.room.member/%s" % (room, targ) | ||||
|         if tok: | ||||
|             path = path + "?access_token=%s" % tok | ||||
| 
 | ||||
|         if membership == Membership.LEAVE: | ||||
|             (code, response) = yield self.mock_resource.trigger("DELETE", path, | ||||
|                                     None) | ||||
|             self.assertEquals(expect_code, code, msg=str(response)) | ||||
|         else: | ||||
|             (code, response) = yield self.mock_resource.trigger("PUT", path, | ||||
|                                     '{"membership":"%s"}' % membership) | ||||
|             self.assertEquals(expect_code, code, msg=str(response)) | ||||
|         data = { | ||||
|             "membership": membership | ||||
|         } | ||||
| 
 | ||||
|         (code, response) = yield self.mock_resource.trigger("PUT", path, | ||||
|             json.dumps(data)) | ||||
|         self.assertEquals(expect_code, code, msg=str(response)) | ||||
| 
 | ||||
|         self.auth_user_id = temp_id | ||||
| 
 | ||||
|  |  | |||
|  | @ -183,7 +183,7 @@ class MemoryDataStore(object): | |||
|     def persist_event(self, event): | ||||
|         if event.type == RoomMemberEvent.TYPE: | ||||
|             room_id = event.room_id | ||||
|             user = event.target_user_id | ||||
|             user = event.state_key | ||||
|             membership = event.membership | ||||
|             self.members.setdefault(room_id, {})[user] = event | ||||
| 
 | ||||
|  | @ -196,7 +196,9 @@ class MemoryDataStore(object): | |||
|     def get_current_state(self, room_id, event_type=None, state_key=""): | ||||
|         if event_type: | ||||
|             key = (room_id, event_type, state_key) | ||||
|             return self.current_state.get(key) | ||||
|             if self.current_state.get(key): | ||||
|                 return [self.current_state.get(key)] | ||||
|             return None | ||||
|         else: | ||||
|             return [ | ||||
|                 e for e in self.current_state | ||||
|  | @ -214,7 +216,7 @@ class MemoryDataStore(object): | |||
| 
 | ||||
| def _format_call(args, kwargs): | ||||
|     return ", ".join( | ||||
|         ["%r" % (a) for a in args] +  | ||||
|         ["%r" % (a) for a in args] + | ||||
|         ["%s=%r" % (k, v) for k, v in kwargs.items()] | ||||
|     ) | ||||
| 
 | ||||
|  |  | |||
|  | @ -76,9 +76,9 @@ angular.module('HomeController', ['matrixService', 'mFileInput', 'mFileUpload', | |||
|         return data; | ||||
|     }; | ||||
| 
 | ||||
|     $scope.refresh = function() { | ||||
|     var refresh = function() { | ||||
|         // List all rooms joined or been invited to
 | ||||
|         matrixService.rooms().then( | ||||
|         matrixService.rooms(1,true).then( | ||||
|             function(response) { | ||||
|                 var data = assignRoomAliases(response.data.rooms); | ||||
|                 $scope.feedback = "Success"; | ||||
|  | @ -118,7 +118,7 @@ angular.module('HomeController', ['matrixService', 'mFileInput', 'mFileUpload', | |||
|                 response.data.room_id); | ||||
|                 matrixService.createRoomIdToAliasMapping( | ||||
|                     response.data.room_id, response.data.room_alias); | ||||
|                 $scope.refresh(); | ||||
|                 refresh(); | ||||
|             }, | ||||
|             function(error) { | ||||
|                 $scope.feedback = "Failure: " + error.data; | ||||
|  | @ -158,5 +158,7 @@ angular.module('HomeController', ['matrixService', 'mFileInput', 'mFileUpload', | |||
|         ); | ||||
|     }; | ||||
|   | ||||
|     $scope.refresh(); | ||||
|     $scope.onInit = function() { | ||||
|         refresh(); | ||||
|     }; | ||||
| }]); | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| <div ng-controller="HomeController"> | ||||
| <div ng-controller="HomeController" data-ng-init="onInit()"> | ||||
| 
 | ||||
|     <div id="page"> | ||||
|     <div id="wrapper"> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Erik Johnston
						Erik Johnston