Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit 698c288

Browse files
author
David Robertson
committed
Also test that bad values are rejected by event auth
1 parent 289983c commit 698c288

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

tests/test_event_auth.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# limitations under the License.
1414

1515
import unittest
16-
from typing import Collection, Dict, Iterable, List, Optional
16+
from typing import Any, Collection, Dict, Iterable, List, Optional
1717

1818
from parameterized import parameterized
1919

@@ -728,6 +728,31 @@ def test_room_v10_rejects_string_power_levels(self) -> None:
728728
pl_event.room_version, pl_event2, {("fake_type", "fake_key"): pl_event}
729729
)
730730

731+
def test_room_v10_rejects_other_non_integer_power_levels(self) -> None:
732+
def create_event(pl_event_content: Dict[str, Any]) -> EventBase:
733+
return make_event_from_dict(
734+
{
735+
"room_id": TEST_ROOM_ID,
736+
**_maybe_get_event_id_dict_for_room_version(RoomVersions.V10),
737+
"type": "m.room.power_levels",
738+
"sender": "@test:test.com",
739+
"state_key": "",
740+
"content": pl_event_content,
741+
"signatures": {"test.com": {"ed25519:0": "some9signature"}},
742+
},
743+
room_version=RoomVersions.V10,
744+
)
745+
746+
contents: Iterable[Dict[str, Any]] = [
747+
{"notifications": {"room": None}},
748+
{"users": {"@alice:wonderland": []}},
749+
{"users_default": {}},
750+
]
751+
for content in contents:
752+
event = create_event(content)
753+
with self.assertRaises(SynapseError):
754+
event_auth._check_power_levels(event.room_version, event, {})
755+
731756

732757
# helpers for making events
733758
TEST_DOMAIN = "example.com"

0 commit comments

Comments
 (0)