summary refs log tree commit diff
path: root/tests/rulecheck
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2019-03-21 12:38:25 +0000
committerErik Johnston <erik@matrix.org>2019-03-21 12:48:37 +0000
commit479b7b1effadf8d571f30d111d33bc895409b5d7 (patch)
treea3b0b7c7ba3a637016e2e5358a7837ab4ea3c07c /tests/rulecheck
parentRun black on tests/rulecheck/ (diff)
downloadsynapse-479b7b1effadf8d571f30d111d33bc895409b5d7.tar.xz
Add another test
Diffstat (limited to 'tests/rulecheck')
-rw-r--r--tests/rulecheck/test_domainrulecheck.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/rulecheck/test_domainrulecheck.py b/tests/rulecheck/test_domainrulecheck.py
index 38a14221cd..803d680cec 100644
--- a/tests/rulecheck/test_domainrulecheck.py
+++ b/tests/rulecheck/test_domainrulecheck.py
@@ -260,6 +260,48 @@ class DomainRuleCheckerRoomTestCase(unittest.HomeserverTestCase):
             expect_code=403,
         )
 
+    def test_cannot_3pid_invite(self):
+        """Test that unbound 3pid invites get rejected.
+        """
+        channel = self._create_room(self.admin_access_token)
+        assert channel.result["code"] == b"200", channel.result
+
+        room_id = channel.json_body["room_id"]
+
+        self.helper.invite(
+            room_id,
+            src=self.admin_user_id,
+            targ=self.normal_user_id,
+            tok=self.admin_access_token,
+        )
+
+        self.helper.join(
+            room_id, self.normal_user_id,
+            tok=self.normal_access_token,
+            expect_code=200,
+        )
+
+        self.helper.invite(
+            room_id,
+            src=self.normal_user_id,
+            targ=self.other_user_id,
+            tok=self.normal_access_token,
+            expect_code=403,
+        )
+
+        request, channel = self.make_request(
+            "POST",
+            "rooms/%s/invite" % (room_id),
+            {
+                "address": "foo@bar.com",
+                "medium": "email",
+                "id_server": "localhost"
+            },
+            access_token=self.normal_access_token,
+        )
+        self.render(request)
+        self.assertEqual(channel.code, 403, channel.result["body"])
+
     def _create_room(self, token, content={}):
         path = "/_matrix/client/r0/createRoom?access_token=%s" % (token,)