Exemple #1
0
    def setUp(self):
        self.reactor = ThreadedMemoryReactorClock()

        self.mock_resolver = Mock()

        config_dict = default_config("test", parse=False)
        config_dict["federation_custom_ca_list"] = [get_test_ca_cert_file()]

        self._config = config = HomeServerConfig()
        config.parse_config_dict(config_dict, "", "")

        self.tls_factory = FederationPolicyForHTTPS(config)

        self.well_known_cache = TTLCache("test_cache",
                                         timer=self.reactor.seconds)
        self.had_well_known_cache = TTLCache("test_cache",
                                             timer=self.reactor.seconds)
        self.well_known_resolver = WellKnownResolver(
            self.reactor,
            Agent(self.reactor, contextFactory=self.tls_factory),
            b"test-agent",
            well_known_cache=self.well_known_cache,
            had_well_known_cache=self.had_well_known_cache,
        )

        self.agent = MatrixFederationAgent(
            reactor=self.reactor,
            tls_client_options_factory=self.tls_factory,
            user_agent=
            "test-agent",  # Note that this is unused since _well_known_resolver is provided.
            ip_blacklist=IPSet(),
            _srv_resolver=self.mock_resolver,
            _well_known_resolver=self.well_known_resolver,
        )
 def setUp(self):
     self.reactor = ThreadedMemoryReactorClock()
     self.hs_clock = Clock(self.reactor)
     self.homeserver = setup_test_homeserver(self.addCleanup,
                                             http_client=None,
                                             clock=self.hs_clock,
                                             reactor=self.reactor)
Exemple #3
0
    def setUp(self):
        self.reactor = ThreadedMemoryReactorClock()
        self.clock = Clock(self.reactor)

        self.hs = setup_test_homeserver(
            self.addCleanup,
            "red",
            http_client=None,
            clock=self.clock,
            reactor=self.reactor,
            federation_client=Mock(),
            ratelimiter=NonCallableMock(spec_set=["send_message"]),
        )

        self.store = self.hs.get_datastore()

        self.hs.config.registrations_require_3pid = []
        self.hs.config.enable_registration_captcha = False
        self.hs.config.recaptcha_public_key = []

        self.hs.config.limit_usage_by_mau = True
        self.hs.config.hs_disabled = False
        self.hs.config.max_mau_value = 2
        self.hs.config.mau_trial_days = 0
        self.hs.config.server_notices_mxid = "@server:red"
        self.hs.config.server_notices_mxid_display_name = None
        self.hs.config.server_notices_mxid_avatar_url = None
        self.hs.config.server_notices_room_name = "Test Server Notice Room"

        self.resource = JsonResource(self.hs)
        register.register_servlets(self.hs, self.resource)
        sync.register_servlets(self.hs, self.resource)
Exemple #4
0
    def setUp(self):

        self.clock = ThreadedMemoryReactorClock()
        self.hs_clock = Clock(self.clock)
        self.url = "/_matrix/client/r0/admin/register"

        self.registration_handler = Mock()
        self.identity_handler = Mock()
        self.login_handler = Mock()
        self.device_handler = Mock()
        self.device_handler.check_device_registered = Mock(return_value="FAKE")

        self.datastore = Mock(return_value=Mock())
        self.datastore.get_current_state_deltas = Mock(return_value=[])

        self.secrets = Mock()

        self.hs = setup_test_homeserver(self.addCleanup,
                                        http_client=None,
                                        clock=self.hs_clock,
                                        reactor=self.clock)

        self.hs.config.registration_shared_secret = u"shared"

        self.hs.get_media_repository = Mock()
        self.hs.get_deactivate_account_handler = Mock()

        self.resource = JsonResource(self.hs)
        register_servlets(self.hs, self.resource)
Exemple #5
0
    def setUp(self):
        self.reactor = ThreadedMemoryReactorClock()

        self.mock_resolver = Mock()

        config_dict = default_config("test", parse=False)
        config_dict["federation_custom_ca_list"] = [get_test_ca_cert_file()]

        self._config = config = HomeServerConfig()
        config.parse_config_dict(config_dict, "", "")

        self.tls_factory = ClientTLSOptionsFactory(config)

        self.well_known_cache = TTLCache("test_cache",
                                         timer=self.reactor.seconds)
        self.had_well_known_cache = TTLCache("test_cache",
                                             timer=self.reactor.seconds)
        self.well_known_resolver = WellKnownResolver(
            self.reactor,
            Agent(self.reactor, contextFactory=self.tls_factory),
            well_known_cache=self.well_known_cache,
            had_well_known_cache=self.had_well_known_cache,
        )

        self.agent = MatrixFederationAgent(
            reactor=self.reactor,
            tls_client_options_factory=self.tls_factory,
            _srv_resolver=self.mock_resolver,
            _well_known_resolver=self.well_known_resolver,
        )
Exemple #6
0
    def setUp(self):
        self.reactor = ThreadedMemoryReactorClock()

        class DummyResource(Resource):
            isLeaf = True

            def render(self, request):
                return request.path

        # Setup a resource with some children.
        self.resource = OptionsResource()
        self.resource.putChild(b"res", DummyResource())
Exemple #7
0
    def setUp(self) -> None:
        self.reactor = ThreadedMemoryReactorClock()

        class DummyResource(Resource):
            isLeaf = True

            def render(self, request: SynapseRequest) -> bytes:
                # Type-ignore: mypy thinks request.path is Optional[Any], not bytes.
                return request.path  # type: ignore[return-value]

        # Setup a resource with some children.
        self.resource = OptionsResource()
        self.resource.putChild(b"res", DummyResource())
    def setUp(self):
        self.reactor = ThreadedMemoryReactorClock()

        self.mock_resolver = Mock()

        self.well_known_cache = TTLCache("test_cache",
                                         timer=self.reactor.seconds)

        self.agent = MatrixFederationAgent(
            reactor=self.reactor,
            tls_client_options_factory=ClientTLSOptionsFactory(None),
            _well_known_tls_policy=TrustingTLSPolicyForHTTPS(),
            _srv_resolver=self.mock_resolver,
            _well_known_cache=self.well_known_cache,
        )
Exemple #9
0
    def setUp(self):

        self.clock = ThreadedMemoryReactorClock()
        self.hs_clock = Clock(self.clock)

        self.hs = setup_test_homeserver(
            self.addCleanup,
            "red",
            http_client=None,
            clock=self.hs_clock,
            reactor=self.clock,
            federation_client=Mock(),
            ratelimiter=NonCallableMock(spec_set=["send_message"]),
        )
        self.ratelimiter = self.hs.get_ratelimiter()
        self.ratelimiter.send_message.return_value = (True, 0)

        self.hs.get_federation_handler = Mock(return_value=Mock())

        def get_user_by_access_token(token=None, allow_guest=False):
            return {
                "user": UserID.from_string(self.helper.auth_user_id),
                "token_id": 1,
                "is_guest": False,
            }

        def get_user_by_req(request, allow_guest=False, rights="access"):
            return synapse.types.create_requester(
                UserID.from_string(self.helper.auth_user_id), 1, False, None)

        self.hs.get_auth().get_user_by_req = get_user_by_req
        self.hs.get_auth().get_user_by_access_token = get_user_by_access_token
        self.hs.get_auth().get_access_token_from_request = Mock(
            return_value=b"1234")

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

        self.hs.get_datastore().insert_client_ip = _insert_client_ip

        self.resource = JsonResource(self.hs)
        synapse.rest.client.v1.room.register_servlets(self.hs, self.resource)
        synapse.rest.client.v1.room.register_deprecated_servlets(
            self.hs, self.resource)
        self.helper = RestHelper(self.hs, self.resource, self.user_id)
Exemple #10
0
    def setUp(self):
        self.reactor = ThreadedMemoryReactorClock()

        self.mock_resolver = Mock()

        self.well_known_cache = TTLCache("test_cache",
                                         timer=self.reactor.seconds)

        config_dict = default_config("test", parse=False)
        config_dict["federation_custom_ca_list"] = [get_test_ca_cert_file()]
        # config_dict["trusted_key_servers"] = []

        self._config = config = HomeServerConfig()
        config.parse_config_dict(config_dict)

        self.agent = MatrixFederationAgent(
            reactor=self.reactor,
            tls_client_options_factory=ClientTLSOptionsFactory(config),
            _well_known_tls_policy=TrustingTLSPolicyForHTTPS(),
            _srv_resolver=self.mock_resolver,
            _well_known_cache=self.well_known_cache,
        )
Exemple #11
0
 def setUp(self) -> None:
     self.reactor = ThreadedMemoryReactorClock()
     self.clock = Clock(self.reactor)
     self.resource = CancellableDirectServeHtmlResource(self.clock)
     self.site = FakeSite(self.resource, self.reactor)
Exemple #12
0
 def setUp(self) -> None:
     self.reactor = ThreadedMemoryReactorClock()
Exemple #13
0
    def setUp(self):

        self.http_client = Mock()
        self.reactor = ThreadedMemoryReactorClock()
        self.hs_clock = Clock(self.reactor)
        self.homeserver = setup_test_homeserver(
            self.addCleanup,
            http_client=self.http_client,
            clock=self.hs_clock,
            reactor=self.reactor,
        )

        user_id = UserID("us", "test")
        our_user = Requester(user_id, None, False, None, None)
        room_creator = self.homeserver.get_room_creation_handler()
        room = room_creator.create_room(
            our_user,
            room_creator.PRESETS_DICT["public_chat"],
            ratelimit=False)
        self.reactor.advance(0.1)
        self.room_id = self.successResultOf(room)["room_id"]

        # Figure out what the most recent event is
        most_recent = self.successResultOf(
            maybeDeferred(
                self.homeserver.datastore.get_latest_event_ids_in_room,
                self.room_id))[0]

        join_event = FrozenEvent({
            "room_id": self.room_id,
            "sender": "@baduser:test.serv",
            "state_key": "@baduser:test.serv",
            "event_id": "$join:test.serv",
            "depth": 1000,
            "origin_server_ts": 1,
            "type": "m.room.member",
            "origin": "test.servx",
            "content": {
                "membership": "join"
            },
            "auth_events": [],
            "prev_state": [(most_recent, {})],
            "prev_events": [(most_recent, {})],
        })

        self.handler = self.homeserver.get_handlers().federation_handler
        self.handler.do_auth = lambda *a, **b: succeed(True)
        self.client = self.homeserver.get_federation_client()
        self.client._check_sigs_and_hash_and_fetch = lambda dest, pdus, **k: succeed(
            pdus)

        # Send the join, it should return None (which is not an error)
        d = self.handler.on_receive_pdu("test.serv",
                                        join_event,
                                        sent_to_us_directly=True)
        self.reactor.advance(1)
        self.assertEqual(self.successResultOf(d), None)

        # Make sure we actually joined the room
        self.assertEqual(
            self.successResultOf(
                maybeDeferred(
                    self.homeserver.datastore.get_latest_event_ids_in_room,
                    self.room_id))[0],
            "$join:test.serv",
        )
Exemple #14
0
    def setUp(self):

        self.http_client = Mock()
        self.reactor = ThreadedMemoryReactorClock()
        self.hs_clock = Clock(self.reactor)
        self.homeserver = setup_test_homeserver(
            self.addCleanup,
            federation_http_client=self.http_client,
            clock=self.hs_clock,
            reactor=self.reactor,
        )

        user_id = UserID("us", "test")
        our_user = create_requester(user_id)
        room_creator = self.homeserver.get_room_creation_handler()
        self.room_id = self.get_success(
            room_creator.create_room(our_user,
                                     room_creator._presets_dict["public_chat"],
                                     ratelimit=False))[0]["room_id"]

        self.store = self.homeserver.get_datastore()

        # Figure out what the most recent event is
        most_recent = self.get_success(
            self.homeserver.get_datastore().get_latest_event_ids_in_room(
                self.room_id))[0]

        join_event = make_event_from_dict({
            "room_id": self.room_id,
            "sender": "@baduser:test.serv",
            "state_key": "@baduser:test.serv",
            "event_id": "$join:test.serv",
            "depth": 1000,
            "origin_server_ts": 1,
            "type": "m.room.member",
            "origin": "test.servx",
            "content": {
                "membership": "join"
            },
            "auth_events": [],
            "prev_state": [(most_recent, {})],
            "prev_events": [(most_recent, {})],
        })

        self.handler = self.homeserver.get_federation_handler()
        self.handler.do_auth = lambda origin, event, context, auth_events: succeed(
            context)
        self.client = self.homeserver.get_federation_client()
        self.client._check_sigs_and_hash_and_fetch = lambda dest, pdus, **k: succeed(
            pdus)

        # Send the join, it should return None (which is not an error)
        self.assertEqual(
            self.get_success(
                self.handler.on_receive_pdu("test.serv",
                                            join_event,
                                            sent_to_us_directly=True)),
            None,
        )

        # Make sure we actually joined the room
        self.assertEqual(
            self.get_success(
                self.store.get_latest_event_ids_in_room(self.room_id))[0],
            "$join:test.serv",
        )