Beispiel #1
0
    def setUp(self):
        self.mock_resource = MockHttpResource(prefix=PATH_PREFIX)
        self.auth_user_id = self.user_id

        state_handler = Mock(spec=["handle_new_event"])
        state_handler.handle_new_event.return_value = True

        persistence_service = Mock(spec=["get_latest_pdus_in_context"])
        persistence_service.get_latest_pdus_in_context.return_value = []

        hs = HomeServer(
            "red",
            db_pool=None,
            http_client=None,
            datastore=MemoryDataStore(),
            replication_layer=Mock(),
            state_handler=state_handler,
            persistence_service=persistence_service,
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            config=NonCallableMock(),
        )
        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)

        hs.get_handlers().federation_handler = Mock()

        def _get_user_by_token(token=None):
            return hs.parse_userid(self.auth_user_id)
        hs.get_auth().get_user_by_token = _get_user_by_token

        synapse.rest.room.register_servlets(hs, self.mock_resource)

        self.room_id = yield self.create_room_as(self.user_id)
Beispiel #2
0
    def setUp(self):
        self.mock_config = NonCallableMock()
        self.mock_config.signing_key = [MockKey()]
        self.hostname = "red"
        hs = HomeServer(
            self.hostname,
            db_pool=None,
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            datastore=NonCallableMock(spec_set=[
                "persist_event",
                "get_joined_hosts_for_room",
                "get_room_member",
                "get_room",
                "store_room",
                "snapshot_room",
            ]),
            resource_for_federation=NonCallableMock(),
            http_client=NonCallableMock(spec_set=[]),
            notifier=NonCallableMock(spec_set=["on_new_room_event"]),
            handlers=NonCallableMock(spec_set=[
                "room_member_handler",
                "profile_handler",
                "federation_handler",
            ]),
            auth=NonCallableMock(spec_set=["check"]),
            state_handler=NonCallableMock(spec_set=["handle_new_event"]),
            config=self.mock_config,
        )

        self.federation = NonCallableMock(spec_set=[
            "handle_new_event",
            "get_state_for_room",
        ])

        self.datastore = hs.get_datastore()
        self.handlers = hs.get_handlers()
        self.notifier = hs.get_notifier()
        self.state_handler = hs.get_state_handler()
        self.distributor = hs.get_distributor()
        self.hs = hs

        self.handlers.federation_handler = self.federation

        self.distributor.declare("collect_presencelike_data")

        self.handlers.room_member_handler = RoomMemberHandler(self.hs)
        self.handlers.profile_handler = ProfileHandler(self.hs)
        self.room_member_handler = self.handlers.room_member_handler

        self.snapshot = Mock()
        self.datastore.snapshot_room.return_value = self.snapshot

        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)
Beispiel #3
0
    def setUp(self):
        self.mock_resource = MockHttpResource(prefix=PATH_PREFIX)

        persistence_service = Mock(spec=["get_latest_pdus_in_context"])
        persistence_service.get_latest_pdus_in_context.return_value = []

        self.mock_config = NonCallableMock()
        self.mock_config.signing_key = [MockKey()]

        db_pool = SQLiteMemoryDbPool()
        yield db_pool.prepare()

        hs = HomeServer(
            "test",
            db_pool=db_pool,
            http_client=None,
            replication_layer=Mock(),
            persistence_service=persistence_service,
            clock=Mock(spec=[
                "call_later",
                "cancel_call_later",
                "time_msec",
                "time"
            ]),
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            config=self.mock_config,
        )
        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)
        hs.config.enable_registration_captcha = False

        hs.get_handlers().federation_handler = Mock()

        hs.get_clock().time_msec.return_value = 1000000
        hs.get_clock().time.return_value = 1000

        synapse.rest.register.register_servlets(hs, self.mock_resource)
        synapse.rest.events.register_servlets(hs, self.mock_resource)
        synapse.rest.room.register_servlets(hs, self.mock_resource)

        # register an account
        self.user_id = "sid1"
        response = yield self.register(self.user_id)
        self.token = response["access_token"]
        self.user_id = response["user_id"]

        # register a 2nd account
        self.other_user = "******"
        response = yield self.register(self.other_user)
        self.other_token = response["access_token"]
        self.other_user = response["user_id"]
Beispiel #4
0
    def setUp(self):
        self.hostname = "red"
        hs = HomeServer(
            self.hostname,
            db_pool=None,
            datastore=NonCallableMock(spec_set=[
                "store_room",
                "snapshot_room",
                "persist_event",
                "get_joined_hosts_for_room",
            ]),
            http_client=NonCallableMock(spec_set=[]),
            notifier=NonCallableMock(spec_set=["on_new_room_event"]),
            handlers=NonCallableMock(spec_set=[
                "room_creation_handler",
                "room_member_handler",
                "federation_handler",
            ]),
            auth=NonCallableMock(spec_set=["check"]),
            state_handler=NonCallableMock(spec_set=["handle_new_event"]),
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            config=NonCallableMock(),
        )

        self.federation = NonCallableMock(spec_set=[
            "handle_new_event",
        ])

        self.datastore = hs.get_datastore()
        self.handlers = hs.get_handlers()
        self.notifier = hs.get_notifier()
        self.state_handler = hs.get_state_handler()
        self.hs = hs

        self.handlers.federation_handler = self.federation

        self.handlers.room_creation_handler = RoomCreationHandler(self.hs)
        self.room_creation_handler = self.handlers.room_creation_handler

        self.handlers.room_member_handler = NonCallableMock(spec_set=[
            "change_membership"
        ])
        self.room_member_handler = self.handlers.room_member_handler

        def hosts(room):
            return defer.succeed([])
        self.datastore.get_joined_hosts_for_room.side_effect = hosts

        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)
Beispiel #5
0
    def setUp(self):
        self.mock_resource = MockHttpResource(prefix=PATH_PREFIX)

        self.mock_config = NonCallableMock()
        self.mock_config.signing_key = [MockKey()]

        db_pool = SQLiteMemoryDbPool()
        yield db_pool.prepare()

        hs = HomeServer(
            "test",
            db_pool=db_pool,
            http_client=None,
            replication_layer=Mock(),
            clock=Mock(spec=[
                "call_later",
                "cancel_call_later",
                "time_msec",
                "time"
            ]),
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            config=self.mock_config,
        )
        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)
        hs.config.enable_registration_captcha = False

        hs.get_handlers().federation_handler = Mock()

        hs.get_clock().time_msec.return_value = 1000000
        hs.get_clock().time.return_value = 1000

        synapse.rest.register.register_servlets(hs, self.mock_resource)
        synapse.rest.events.register_servlets(hs, self.mock_resource)
        synapse.rest.room.register_servlets(hs, self.mock_resource)

        # register an account
        self.user_id = "sid1"
        response = yield self.register(self.user_id)
        self.token = response["access_token"]
        self.user_id = response["user_id"]

        # register a 2nd account
        self.other_user = "******"
        response = yield self.register(self.other_user)
        self.other_token = response["access_token"]
        self.other_user = response["user_id"]
Beispiel #6
0
    def setUp(self):
        self.mock_resource = MockHttpResource(prefix=PATH_PREFIX)
        self.auth_user_id = self.user_id

        self.mock_config = NonCallableMock()
        self.mock_config.signing_key = [MockKey()]

        db_pool = SQLiteMemoryDbPool()
        yield db_pool.prepare()

        hs = HomeServer(
            "red",
            db_pool=db_pool,
            http_client=None,
            replication_layer=Mock(),
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            config=self.mock_config,
        )
        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)

        hs.get_handlers().federation_handler = Mock()

        def _get_user_by_token(token=None):
            return {
                "user": hs.parse_userid(self.auth_user_id),
                "admin": False,
                "device_id": None,
            }

        hs.get_auth().get_user_by_token = _get_user_by_token

        def _insert_client_ip(*args, **kwargs):
            return defer.succeed(None)

        hs.get_datastore().insert_client_ip = _insert_client_ip

        synapse.rest.room.register_servlets(hs, self.mock_resource)

        # Since I'm getting my own presence I need to exist as far as presence
        # is concerned.
        hs.get_handlers().presence_handler.registered_user(
            hs.parse_userid(self.user_id))

        # create the room
        self.room_id = yield self.create_room_as(self.user_id)
Beispiel #7
0
    def setUp(self):
        self.mock_resource = MockHttpResource(prefix=PATH_PREFIX)
        self.auth_user_id = self.user_id

        self.mock_config = NonCallableMock()
        self.mock_config.signing_key = [MockKey()]

        db_pool = SQLiteMemoryDbPool()
        yield db_pool.prepare()

        hs = HomeServer(
            "red",
            db_pool=db_pool,
            http_client=None,
            replication_layer=Mock(),
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            config=self.mock_config,
        )
        self.hs = hs

        self.event_source = hs.get_event_sources().sources["typing"]

        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)

        hs.get_handlers().federation_handler = Mock()

        def _get_user_by_token(token=None):
            return {
                "user": hs.parse_userid(self.auth_user_id),
                "admin": False,
                "device_id": None,
            }

        hs.get_auth().get_user_by_token = _get_user_by_token

        def _insert_client_ip(*args, **kwargs):
            return defer.succeed(None)

        hs.get_datastore().insert_client_ip = _insert_client_ip

        synapse.rest.room.register_servlets(hs, self.mock_resource)

        self.room_id = yield self.create_room_as(self.user_id)
        # Need another user to make notifications actually work
        yield self.join(self.room_id, user="******")
Beispiel #8
0
    def setUp(self):
        self.mock_resource = MockHttpResource(prefix=PATH_PREFIX)

        state_handler = Mock(spec=["handle_new_event"])
        state_handler.handle_new_event.return_value = True

        persistence_service = Mock(spec=["get_latest_pdus_in_context"])
        persistence_service.get_latest_pdus_in_context.return_value = []

        hs = HomeServer(
            "test",
            db_pool=None,
            http_client=None,
            replication_layer=Mock(),
            state_handler=state_handler,
            datastore=MemoryDataStore(),
            persistence_service=persistence_service,
            clock=Mock(
                spec=["call_later", "cancel_call_later", "time_msec", "time"]),
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            config=NonCallableMock(),
        )
        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)
        hs.config.enable_registration_captcha = False

        hs.get_handlers().federation_handler = Mock()

        hs.get_clock().time_msec.return_value = 1000000

        synapse.rest.register.register_servlets(hs, self.mock_resource)
        synapse.rest.events.register_servlets(hs, self.mock_resource)
        synapse.rest.room.register_servlets(hs, self.mock_resource)

        # register an account
        self.user_id = "sid1"
        response = yield self.register(self.user_id)
        self.token = response["access_token"]
        self.user_id = response["user_id"]

        # register a 2nd account
        self.other_user = "******"
        response = yield self.register(self.other_user)
        self.other_token = response["access_token"]
        self.other_user = response["user_id"]
Beispiel #9
0
    def setUp(self):
        self.mock_resource = MockHttpResource(prefix=PATH_PREFIX)
        self.auth_user_id = self.user_id

        self.mock_config = NonCallableMock()
        self.mock_config.signing_key = [MockKey()]

        db_pool = SQLiteMemoryDbPool()
        yield db_pool.prepare()

        hs = HomeServer(
            "red",
            db_pool=db_pool,
            http_client=None,
            replication_layer=Mock(),
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            config=self.mock_config,
        )
        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)

        hs.get_handlers().federation_handler = Mock()

        def _get_user_by_token(token=None):
            return {
                "user": hs.parse_userid(self.auth_user_id),
                "admin": False,
                "device_id": None,
            }
        hs.get_auth().get_user_by_token = _get_user_by_token

        def _insert_client_ip(*args, **kwargs):
            return defer.succeed(None)
        hs.get_datastore().insert_client_ip = _insert_client_ip

        synapse.rest.room.register_servlets(hs, self.mock_resource)

        # Since I'm getting my own presence I need to exist as far as presence
        # is concerned.
        hs.get_handlers().presence_handler.registered_user(
            hs.parse_userid(self.user_id)
        )

        # create the room
        self.room_id = yield self.create_room_as(self.user_id)
Beispiel #10
0
    def setUp(self):
        self.mock_federation = Mock(spec=[
            "make_query",
        ])

        self.query_handlers = {}

        def register_query_handler(query_type, handler):
            self.query_handlers[query_type] = handler

        self.mock_federation.register_query_handler = register_query_handler

        db_pool = SQLiteMemoryDbPool()
        yield db_pool.prepare()

        self.mock_config = Mock()
        self.mock_config.signing_key = [MockKey()]

        hs = HomeServer("test",
                        db_pool=db_pool,
                        http_client=None,
                        handlers=None,
                        resource_for_federation=Mock(),
                        replication_layer=self.mock_federation,
                        config=self.mock_config,
                        ratelimiter=NonCallableMock(spec_set=[
                            "send_message",
                        ]))

        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)

        hs.handlers = ProfileHandlers(hs)

        self.store = hs.get_datastore()

        self.frank = hs.parse_userid("@1234ABCD:test")
        self.bob = hs.parse_userid("@4567:test")
        self.alice = hs.parse_userid("@alice:remote")

        yield self.store.create_profile(self.frank.localpart)

        self.handler = hs.get_handlers().profile_handler

        # TODO(paul): Icky signal declarings.. booo
        hs.get_distributor().declare("changed_presencelike_data")
Beispiel #11
0
    def setUp(self):
        self.mock_federation = Mock(spec=[
            "make_query",
        ])

        self.query_handlers = {}
        def register_query_handler(query_type, handler):
            self.query_handlers[query_type] = handler
        self.mock_federation.register_query_handler = register_query_handler

        db_pool = SQLiteMemoryDbPool()
        yield db_pool.prepare()

        self.mock_config = Mock()
        self.mock_config.signing_key = [MockKey()]

        hs = HomeServer("test",
                db_pool=db_pool,
                http_client=None,
                handlers=None,
                resource_for_federation=Mock(),
                replication_layer=self.mock_federation,
                config=self.mock_config,
                ratelimiter=NonCallableMock(spec_set=[
                    "send_message",
                ])
            )

        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)

        hs.handlers = ProfileHandlers(hs)

        self.store = hs.get_datastore()

        self.frank = hs.parse_userid("@1234ABCD:test")
        self.bob   = hs.parse_userid("@4567:test")
        self.alice = hs.parse_userid("@alice:remote")

        yield self.store.create_profile(self.frank.localpart)

        self.handler = hs.get_handlers().profile_handler

        # TODO(paul): Icky signal declarings.. booo
        hs.get_distributor().declare("changed_presencelike_data")
Beispiel #12
0
    def setUp(self):
        self.hostname = "red"

        self.mock_config = NonCallableMock()
        self.mock_config.signing_key = [MockKey()]

        hs = HomeServer(
            self.hostname,
            db_pool=None,
            datastore=NonCallableMock(spec_set=[
                "store_room",
                "snapshot_room",
                "persist_event",
                "get_joined_hosts_for_room",
            ]),
            http_client=NonCallableMock(spec_set=[]),
            notifier=NonCallableMock(spec_set=["on_new_room_event"]),
            handlers=NonCallableMock(spec_set=[
                "room_creation_handler",
                "message_handler",
            ]),
            auth=NonCallableMock(spec_set=["check", "add_auth_events"]),
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            config=self.mock_config,
        )

        self.federation = NonCallableMock(spec_set=[
            "handle_new_event",
        ])

        self.handlers = hs.get_handlers()

        self.handlers.room_creation_handler = RoomCreationHandler(hs)
        self.room_creation_handler = self.handlers.room_creation_handler

        self.message_handler = self.handlers.message_handler

        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)
Beispiel #13
0
    def setUp(self):
        self.hostname = "red"

        self.mock_config = NonCallableMock()
        self.mock_config.signing_key = [MockKey()]

        hs = HomeServer(
            self.hostname,
            db_pool=None,
            datastore=NonCallableMock(spec_set=[
                "store_room",
                "snapshot_room",
                "persist_event",
                "get_joined_hosts_for_room",
            ]),
            http_client=NonCallableMock(spec_set=[]),
            notifier=NonCallableMock(spec_set=["on_new_room_event"]),
            handlers=NonCallableMock(spec_set=[
                "room_creation_handler",
                "message_handler",
            ]),
            auth=NonCallableMock(spec_set=["check", "add_auth_events"]),
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            config=self.mock_config,
        )

        self.federation = NonCallableMock(spec_set=[
            "handle_new_event",
        ])

        self.handlers = hs.get_handlers()

        self.handlers.room_creation_handler = RoomCreationHandler(hs)
        self.room_creation_handler = self.handlers.room_creation_handler

        self.message_handler = self.handlers.message_handler

        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)
Beispiel #14
0
    def setUp(self):
        self.mock_config = Mock()
        self.mock_config.signing_key = [MockKey()]

        hs = HomeServer("test",
                        clock=MockClock(),
                        db_pool=None,
                        datastore=Mock(spec=[
                            "set_presence_state",
                            "is_presence_visible",
                            "set_profile_displayname",
                            "get_rooms_for_user_where_membership_is",
                        ]),
                        handlers=None,
                        resource_for_federation=Mock(),
                        http_client=None,
                        replication_layer=MockReplication(),
                        ratelimiter=NonCallableMock(spec_set=[
                            "send_message",
                        ]),
                        config=self.mock_config)
        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)
        hs.handlers = PresenceAndProfileHandlers(hs)

        self.datastore = hs.get_datastore()

        self.replication = hs.get_replication_layer()
        self.replication.send_edu = Mock()

        def send_edu(*args, **kwargs):
            # print "send_edu: %s, %s" % (args, kwargs)
            return defer.succeed((200, "OK"))

        self.replication.send_edu.side_effect = send_edu

        def get_profile_displayname(user_localpart):
            return defer.succeed("Frank")

        self.datastore.get_profile_displayname = get_profile_displayname

        def is_presence_visible(*args, **kwargs):
            return defer.succeed(False)

        self.datastore.is_presence_visible = is_presence_visible

        def get_profile_avatar_url(user_localpart):
            return defer.succeed("http://foo")

        self.datastore.get_profile_avatar_url = get_profile_avatar_url

        self.presence_list = [
            {
                "observed_user_id": "@banana:test"
            },
            {
                "observed_user_id": "@clementine:test"
            },
        ]

        def get_presence_list(user_localpart, accepted=None):
            return defer.succeed(self.presence_list)

        self.datastore.get_presence_list = get_presence_list

        def user_rooms_intersect(userlist):
            return defer.succeed(False)

        self.datastore.user_rooms_intersect = user_rooms_intersect

        self.handlers = hs.get_handlers()

        self.mock_update_client = Mock()

        def update(*args, **kwargs):
            # print "mock_update_client: %s, %s" %(args, kwargs)
            return defer.succeed(None)

        self.mock_update_client.side_effect = update

        self.handlers.presence_handler.push_update_to_clients = (
            self.mock_update_client)

        hs.handlers.room_member_handler = Mock(spec=[
            "get_rooms_for_user",
        ])
        hs.handlers.room_member_handler.get_rooms_for_user = (
            lambda u: defer.succeed([]))

        # Some local users to test with
        self.u_apple = hs.parse_userid("@apple:test")
        self.u_banana = hs.parse_userid("@banana:test")
        self.u_clementine = hs.parse_userid("@clementine:test")

        # Remote user
        self.u_potato = hs.parse_userid("@potato:remote")

        self.mock_get_joined = (
            self.datastore.get_rooms_for_user_where_membership_is)
Beispiel #15
0
    def setUp(self):
        self.mock_resource = MockHttpResource(prefix=PATH_PREFIX)

        self.mock_config = NonCallableMock()
        self.mock_config.signing_key = [MockKey()]

        db_pool = SQLiteMemoryDbPool()
        yield db_pool.prepare()

        hs = HomeServer(
            "red",
            db_pool=db_pool,
            http_client=None,
            replication_layer=Mock(),
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            config=self.mock_config,
        )
        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)

        hs.get_handlers().federation_handler = Mock()

        def _get_user_by_token(token=None):
            return {
                "user": hs.parse_userid(self.auth_user_id),
                "admin": False,
                "device_id": None,
            }

        hs.get_auth().get_user_by_token = _get_user_by_token

        def _insert_client_ip(*args, **kwargs):
            return defer.succeed(None)

        hs.get_datastore().insert_client_ip = _insert_client_ip

        self.auth_user_id = self.rmcreator_id

        synapse.rest.room.register_servlets(hs, self.mock_resource)

        self.auth = hs.get_auth()

        # create some rooms under the name rmcreator_id
        self.uncreated_rmid = "!aa:test"

        self.created_rmid = yield self.create_room_as(self.rmcreator_id,
                                                      is_public=False)

        self.created_public_rmid = yield self.create_room_as(self.rmcreator_id,
                                                             is_public=True)

        # send a message in one of the rooms
        self.created_rmid_msg_path = ("/rooms/%s/send/m.room.message/a1" %
                                      (self.created_rmid))
        (code, response) = yield self.mock_resource.trigger(
            "PUT", self.created_rmid_msg_path,
            '{"msgtype":"m.text","body":"test msg"}')
        self.assertEquals(200, code, msg=str(response))

        # set topic for public room
        (code, response) = yield self.mock_resource.trigger(
            "PUT", "/rooms/%s/state/m.room.topic" % self.created_public_rmid,
            '{"topic":"Public Room Topic"}')
        self.assertEquals(200, code, msg=str(response))

        # auth as user_id now
        self.auth_user_id = self.user_id
Beispiel #16
0
    def setUp(self):
        self.mock_config = NonCallableMock()
        self.mock_config.signing_key = [MockKey()]

        self.hostname = "red"
        hs = HomeServer(
            self.hostname,
            db_pool=None,
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            datastore=NonCallableMock(spec_set=[
                "persist_event",
                "get_room_member",
                "get_room",
                "store_room",
                "get_latest_events_in_room",
            ]),
            resource_for_federation=NonCallableMock(),
            http_client=NonCallableMock(spec_set=[]),
            notifier=NonCallableMock(spec_set=["on_new_room_event"]),
            handlers=NonCallableMock(spec_set=[
                "room_member_handler",
                "profile_handler",
                "federation_handler",
            ]),
            auth=NonCallableMock(spec_set=[
                "check",
                "add_auth_events",
                "check_host_in_room",
            ]),
            state_handler=NonCallableMock(spec_set=[
                "compute_event_context",
                "get_current_state",
            ]),
            config=self.mock_config,
        )

        self.federation = NonCallableMock(spec_set=[
            "handle_new_event",
            "send_invite",
            "get_state_for_room",
        ])

        self.datastore = hs.get_datastore()
        self.handlers = hs.get_handlers()
        self.notifier = hs.get_notifier()
        self.state_handler = hs.get_state_handler()
        self.distributor = hs.get_distributor()
        self.auth = hs.get_auth()
        self.hs = hs

        self.handlers.federation_handler = self.federation

        self.distributor.declare("collect_presencelike_data")

        self.handlers.room_member_handler = RoomMemberHandler(self.hs)
        self.handlers.profile_handler = ProfileHandler(self.hs)
        self.room_member_handler = self.handlers.room_member_handler

        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)
Beispiel #17
0
    def setUp(self):
        self.mock_resource = MockHttpResource(prefix=PATH_PREFIX)

        state_handler = Mock(spec=["handle_new_event"])
        state_handler.handle_new_event.return_value = True

        persistence_service = Mock(spec=["get_latest_pdus_in_context"])
        persistence_service.get_latest_pdus_in_context.return_value = []

        hs = HomeServer(
            "red",
            db_pool=None,
            http_client=None,
            datastore=MemoryDataStore(),
            replication_layer=Mock(),
            state_handler=state_handler,
            persistence_service=persistence_service,
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            config=NonCallableMock(),
        )
        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)

        hs.get_handlers().federation_handler = Mock()

        def _get_user_by_token(token=None):
            return {
                "user": hs.parse_userid(self.auth_user_id),
                "admin": False,
                "device_id": None,
            }
        hs.get_auth().get_user_by_token = _get_user_by_token

        self.auth_user_id = self.rmcreator_id

        synapse.rest.room.register_servlets(hs, self.mock_resource)

        self.auth = hs.get_auth()

        # create some rooms under the name rmcreator_id
        self.uncreated_rmid = "!aa:test"

        self.created_rmid = yield self.create_room_as(self.rmcreator_id,
                                                      is_public=False)

        self.created_public_rmid = yield self.create_room_as(self.rmcreator_id,
                                                             is_public=True)

        # send a message in one of the rooms
        self.created_rmid_msg_path = ("/rooms/%s/send/m.room.message/a1" %
                                (self.created_rmid))
        (code, response) = yield self.mock_resource.trigger(
                           "PUT",
                           self.created_rmid_msg_path,
                           '{"msgtype":"m.text","body":"test msg"}')
        self.assertEquals(200, code, msg=str(response))

        # set topic for public room
        (code, response) = yield self.mock_resource.trigger(
                           "PUT",
                           "/rooms/%s/state/m.room.topic" % self.created_public_rmid,
                           '{"topic":"Public Room Topic"}')
        self.assertEquals(200, code, msg=str(response))

        # auth as user_id now
        self.auth_user_id = self.user_id
Beispiel #18
0
    def setUp(self):
        self.mock_resource = MockHttpResource(prefix=PATH_PREFIX)

        self.mock_config = NonCallableMock()
        self.mock_config.signing_key = [MockKey()]

        db_pool = SQLiteMemoryDbPool()
        yield db_pool.prepare()

        hs = HomeServer(
            "red",
            db_pool=db_pool,
            http_client=None,
            replication_layer=Mock(),
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            config=self.mock_config,
        )
        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)

        hs.get_handlers().federation_handler = Mock()

        def _get_user_by_token(token=None):
            return {
                "user": hs.parse_userid(self.auth_user_id),
                "admin": False,
                "device_id": None,
            }
        hs.get_auth().get_user_by_token = _get_user_by_token

        def _insert_client_ip(*args, **kwargs):
            return defer.succeed(None)
        hs.get_datastore().insert_client_ip = _insert_client_ip

        self.auth_user_id = self.rmcreator_id

        synapse.rest.room.register_servlets(hs, self.mock_resource)

        self.auth = hs.get_auth()

        # create some rooms under the name rmcreator_id
        self.uncreated_rmid = "!aa:test"

        self.created_rmid = yield self.create_room_as(self.rmcreator_id,
                                                      is_public=False)

        self.created_public_rmid = yield self.create_room_as(self.rmcreator_id,
                                                             is_public=True)

        # send a message in one of the rooms
        self.created_rmid_msg_path = ("/rooms/%s/send/m.room.message/a1" %
                                (self.created_rmid))
        (code, response) = yield self.mock_resource.trigger(
                           "PUT",
                           self.created_rmid_msg_path,
                           '{"msgtype":"m.text","body":"test msg"}')
        self.assertEquals(200, code, msg=str(response))

        # set topic for public room
        (code, response) = yield self.mock_resource.trigger(
                           "PUT",
                           "/rooms/%s/state/m.room.topic" % self.created_public_rmid,
                           '{"topic":"Public Room Topic"}')
        self.assertEquals(200, code, msg=str(response))

        # auth as user_id now
        self.auth_user_id = self.user_id
Beispiel #19
0
    def setUp(self):
        self.mock_resource = MockHttpResource(prefix=PATH_PREFIX)

        state_handler = Mock(spec=["handle_new_event"])
        state_handler.handle_new_event.return_value = True

        persistence_service = Mock(spec=["get_latest_pdus_in_context"])
        persistence_service.get_latest_pdus_in_context.return_value = []

        hs = HomeServer(
            "red",
            db_pool=None,
            http_client=None,
            datastore=MemoryDataStore(),
            replication_layer=Mock(),
            state_handler=state_handler,
            persistence_service=persistence_service,
            ratelimiter=NonCallableMock(spec_set=[
                "send_message",
            ]),
            config=NonCallableMock(),
        )
        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)

        hs.get_handlers().federation_handler = Mock()

        def _get_user_by_token(token=None):
            return hs.parse_userid(self.auth_user_id)
        hs.get_auth().get_user_by_token = _get_user_by_token

        self.auth_user_id = self.rmcreator_id

        synapse.rest.room.register_servlets(hs, self.mock_resource)

        self.auth = hs.get_auth()

        # create some rooms under the name rmcreator_id
        self.uncreated_rmid = "!aa:test"

        self.created_rmid = yield self.create_room_as(self.rmcreator_id,
                                                      is_public=False)

        self.created_public_rmid = yield self.create_room_as(self.rmcreator_id,
                                                             is_public=True)

        # send a message in one of the rooms
        self.created_rmid_msg_path = ("/rooms/%s/send/m.room.message/a1" %
                                (self.created_rmid))
        (code, response) = yield self.mock_resource.trigger(
                           "PUT",
                           self.created_rmid_msg_path,
                           '{"msgtype":"m.text","body":"test msg"}')
        self.assertEquals(200, code, msg=str(response))

        # set topic for public room
        (code, response) = yield self.mock_resource.trigger(
                           "PUT",
                           "/rooms/%s/state/m.room.topic" % self.created_public_rmid,
                           '{"topic":"Public Room Topic"}')
        self.assertEquals(200, code, msg=str(response))

        # auth as user_id now
        self.auth_user_id = self.user_id
Beispiel #20
0
    def setUp(self):
        self.mock_config = Mock()
        self.mock_config.signing_key = [MockKey()]

        hs = HomeServer("test",
                clock=MockClock(),
                db_pool=None,
                datastore=Mock(spec=[
                    "set_presence_state",
                    "is_presence_visible",

                    "set_profile_displayname",

                    "get_rooms_for_user_where_membership_is",
                ]),
                handlers=None,
                resource_for_federation=Mock(),
                http_client=None,
                replication_layer=MockReplication(),
                ratelimiter=NonCallableMock(spec_set=[
                "send_message",
                ]),
                config=self.mock_config
        )
        self.ratelimiter = hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)
        hs.handlers = PresenceAndProfileHandlers(hs)

        self.datastore = hs.get_datastore()

        self.replication = hs.get_replication_layer()
        self.replication.send_edu = Mock()

        def send_edu(*args, **kwargs):
            # print "send_edu: %s, %s" % (args, kwargs)
            return defer.succeed((200, "OK"))
        self.replication.send_edu.side_effect = send_edu

        def get_profile_displayname(user_localpart):
            return defer.succeed("Frank")
        self.datastore.get_profile_displayname = get_profile_displayname

        def is_presence_visible(*args, **kwargs):
            return defer.succeed(False)
        self.datastore.is_presence_visible = is_presence_visible

        def get_profile_avatar_url(user_localpart):
            return defer.succeed("http://foo")
        self.datastore.get_profile_avatar_url = get_profile_avatar_url

        self.presence_list = [
            {"observed_user_id": "@banana:test"},
            {"observed_user_id": "@clementine:test"},
        ]
        def get_presence_list(user_localpart, accepted=None):
            return defer.succeed(self.presence_list)
        self.datastore.get_presence_list = get_presence_list

        def user_rooms_intersect(userlist):
            return defer.succeed(False)
        self.datastore.user_rooms_intersect = user_rooms_intersect

        self.handlers = hs.get_handlers()

        self.mock_update_client = Mock()
        def update(*args, **kwargs):
            # print "mock_update_client: %s, %s" %(args, kwargs)
            return defer.succeed(None)
        self.mock_update_client.side_effect = update

        self.handlers.presence_handler.push_update_to_clients = (
                self.mock_update_client)

        hs.handlers.room_member_handler = Mock(spec=[
            "get_rooms_for_user",
        ])
        hs.handlers.room_member_handler.get_rooms_for_user = (
                lambda u: defer.succeed([]))

        # Some local users to test with
        self.u_apple = hs.parse_userid("@apple:test")
        self.u_banana = hs.parse_userid("@banana:test")
        self.u_clementine = hs.parse_userid("@clementine:test")

        # Remote user
        self.u_potato = hs.parse_userid("@potato:remote")

        self.mock_get_joined = (
            self.datastore.get_rooms_for_user_where_membership_is
        )