def test_POST_user_valid(self):
        user_id = "@kermit:muppet"
        token = "kermits_access_token"
        device_id = "frogfone"
        request_data = json.dumps({
            "username": "******",
            "password": "******",
            "device_id": device_id
        })
        self.registration_handler.check_username = Mock(return_value=True)
        self.auth_result = (None, {
            "username": "******",
            "password": "******"
        }, None)
        self.registration_handler.register = Mock(return_value=(user_id, None))
        self.auth_handler.get_access_token_for_user_id = Mock(
            return_value=token)
        self.device_handler.check_device_registered = Mock(
            return_value=device_id)

        request, channel = make_request(b"POST", self.url, request_data)
        request.render(self.resource)
        wait_until_result(self.clock, channel)

        det_data = {
            "user_id": user_id,
            "access_token": token,
            "home_server": self.hs.hostname,
            "device_id": device_id,
        }
        self.assertEquals(channel.result["code"], b"200", channel.result)
        self.assertDictContainsSubset(det_data,
                                      json.loads(channel.result["body"]))
        self.auth_handler.get_login_tuple_for_user_id(
            user_id, device_id=device_id, initial_device_display_name=None)
Beispiel #2
0
    def test_get_filter_no_id(self):
        request, channel = make_request(
            b"GET", "/_matrix/client/r0/user/%s/filter/" % (self.USER_ID))
        request.render(self.resource)
        wait_until_result(self.clock, channel)

        self.assertEqual(channel.result["code"], b"400")
Beispiel #3
0
    def test_get_filter_non_existant(self):
        request, channel = make_request(
            b"GET", "/_matrix/client/r0/user/%s/filter/12382148321" % (self.USER_ID)
        )
        request.render(self.resource)
        wait_until_result(self.clock, channel)

        self.assertEqual(channel.result["code"], b"400")
        self.assertEquals(channel.json_body["errcode"], Codes.NOT_FOUND)
Beispiel #4
0
    def test_add_filter_for_other_user(self):
        request, channel = make_request(
            b"POST",
            b"/_matrix/client/r0/user/%s/filter" % (b"@watermelon:test"),
            self.EXAMPLE_FILTER_JSON,
        )
        request.render(self.resource)
        wait_until_result(self.clock, channel)

        self.assertEqual(channel.result["code"], b"403")
        self.assertEquals(channel.json_body["errcode"], Codes.FORBIDDEN)
Beispiel #5
0
    def test_get_filter(self):
        filter_id = self.filtering.add_user_filter(
            user_localpart="apple", user_filter=self.EXAMPLE_FILTER)
        self.clock.advance(1)
        filter_id = filter_id.result
        request, channel = make_request(
            b"GET", b"/_matrix/client/r0/user/%s/filter/%s" %
            (self.USER_ID, filter_id))
        request.render(self.resource)
        wait_until_result(self.clock, channel)

        self.assertEqual(channel.result["code"], b"200")
        self.assertEquals(channel.json_body, self.EXAMPLE_FILTER)
Beispiel #6
0
    def test_add_filter_non_local_user(self):
        _is_mine = self.hs.is_mine
        self.hs.is_mine = lambda target_user: False
        request, channel = make_request(
            b"POST",
            b"/_matrix/client/r0/user/%s/filter" % (self.USER_ID),
            self.EXAMPLE_FILTER_JSON,
        )
        request.render(self.resource)
        wait_until_result(self.clock, channel)

        self.hs.is_mine = _is_mine
        self.assertEqual(channel.result["code"], b"403")
        self.assertEquals(channel.json_body["errcode"], Codes.FORBIDDEN)
Beispiel #7
0
    def test_add_filter(self):
        request, channel = make_request(
            b"POST",
            b"/_matrix/client/r0/user/%s/filter" % (self.USER_ID),
            self.EXAMPLE_FILTER_JSON,
        )
        request.render(self.resource)
        wait_until_result(self.clock, channel)

        self.assertEqual(channel.result["code"], b"200")
        self.assertEqual(channel.json_body, {"filter_id": "0"})
        filter = self.store.get_user_filter(user_localpart="apple", filter_id=0)
        self.clock.advance(0)
        self.assertEquals(filter.result, self.EXAMPLE_FILTER)
Beispiel #8
0
        def post_json(destination, path, data):
            self.assertEqual(destination, self.hs.hostname)
            self.assertEqual(
                path, "/_matrix/key/v2/query",
            )

            channel = FakeChannel(self.site, self.reactor)
            req = SynapseRequest(channel)
            req.content = BytesIO(encode_canonical_json(data))

            req.requestReceived(
                b"POST", path.encode("utf-8"), b"1.1",
            )
            wait_until_result(self.reactor, req)
            self.assertEqual(channel.code, 200)
            resp = channel.json_body
            return resp
    def test_POST_disabled_registration(self):
        self.hs.config.enable_registration = False
        request_data = json.dumps({"username": "******", "password": "******"})
        self.registration_handler.check_username = Mock(return_value=True)
        self.auth_result = (None, {
            "username": "******",
            "password": "******"
        }, None)
        self.registration_handler.register = Mock(return_value=("@user:id",
                                                                "t"))

        request, channel = make_request(b"POST", self.url, request_data)
        request.render(self.resource)
        wait_until_result(self.clock, channel)

        self.assertEquals(channel.result["code"], b"403", channel.result)
        self.assertEquals(
            json.loads(channel.result["body"])["error"],
            "Registration has been disabled",
        )