mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-12-10 19:56:26 -05:00
Fix error in is_mine_id when encountering a malformed ID (#13746)
Previously, `is_mine_id` would raise an exception when passed an ID with no colons. Return `False` instead. Fixes #13040. Signed-off-by: Sean Quah <seanq@matrix.org>
This commit is contained in:
parent
cf11919ddd
commit
8ef0c8ff14
3 changed files with 37 additions and 2 deletions
|
|
@ -13,11 +13,35 @@
|
|||
# limitations under the License.
|
||||
|
||||
from synapse.api.errors import SynapseError
|
||||
from synapse.types import RoomAlias, UserID, map_username_to_mxid_localpart
|
||||
from synapse.types import (
|
||||
RoomAlias,
|
||||
UserID,
|
||||
get_domain_from_id,
|
||||
get_localpart_from_id,
|
||||
map_username_to_mxid_localpart,
|
||||
)
|
||||
|
||||
from tests import unittest
|
||||
|
||||
|
||||
class IsMineIDTests(unittest.HomeserverTestCase):
|
||||
def test_is_mine_id(self) -> None:
|
||||
self.assertTrue(self.hs.is_mine_id("@user:test"))
|
||||
self.assertTrue(self.hs.is_mine_id("#room:test"))
|
||||
self.assertTrue(self.hs.is_mine_id("invalid:test"))
|
||||
|
||||
self.assertFalse(self.hs.is_mine_id("@user:test\0"))
|
||||
self.assertFalse(self.hs.is_mine_id("@user"))
|
||||
|
||||
def test_two_colons(self) -> None:
|
||||
"""Test handling of IDs containing more than one colon."""
|
||||
# The domain starts after the first colon.
|
||||
# These functions must interpret things consistently.
|
||||
self.assertFalse(self.hs.is_mine_id("@user:test:test"))
|
||||
self.assertEqual("user", get_localpart_from_id("@user:test:test"))
|
||||
self.assertEqual("test:test", get_domain_from_id("@user:test:test"))
|
||||
|
||||
|
||||
class UserIDTestCase(unittest.HomeserverTestCase):
|
||||
def test_parse(self):
|
||||
user = UserID.from_string("@1234abcd:test")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue