diff options
author | Richard van der Hoff <github@rvanderhoff.org.uk> | 2017-10-23 14:39:20 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-23 14:39:20 +0100 |
commit | 3267b81b8103ad0302dd2a031063c216be9cbcb2 (patch) | |
tree | 2df2d95434e4b92775711f3b091d78dd8ab914bc /tests | |
parent | Merge branch 'master' of github.com:matrix-org/synapse into develop (diff) | |
parent | Validate group ids when parsing (diff) | |
download | synapse-3267b81b8103ad0302dd2a031063c216be9cbcb2.tar.xz |
Merge pull request #2561 from matrix-org/rav/id_checking
Updates to ID checking
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_types.py | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/tests/test_types.py b/tests/test_types.py index 24d61dbe54..115def2287 100644 --- a/tests/test_types.py +++ b/tests/test_types.py @@ -17,7 +17,7 @@ from tests import unittest from synapse.api.errors import SynapseError from synapse.server import HomeServer -from synapse.types import UserID, RoomAlias +from synapse.types import UserID, RoomAlias, GroupID mock_homeserver = HomeServer(hostname="my.domain") @@ -60,3 +60,25 @@ class RoomAliasTestCase(unittest.TestCase): room = RoomAlias("channel", "my.domain") self.assertEquals(room.to_string(), "#channel:my.domain") + + +class GroupIDTestCase(unittest.TestCase): + def test_parse(self): + group_id = GroupID.from_string("+group/=_-.123:my.domain") + self.assertEqual("group/=_-.123", group_id.localpart) + self.assertEqual("my.domain", group_id.domain) + + def test_validate(self): + bad_ids = [ + "$badsigil:domain", + "+:empty", + ] + [ + "+group" + c + ":domain" for c in "A%?æ£" + ] + for id_string in bad_ids: + try: + GroupID.from_string(id_string) + self.fail("Parsing '%s' should raise exception" % id_string) + except SynapseError as exc: + self.assertEqual(400, exc.code) + self.assertEqual("M_UNKNOWN", exc.errcode) |