summary refs log tree commit diff
path: root/tests/api
diff options
context:
space:
mode:
authorKegan Dougal <kegan@matrix.org>2015-01-29 12:20:59 +0000
committerKegan Dougal <kegan@matrix.org>2015-01-29 12:20:59 +0000
commit83172487b05d7d99ccae0b353daee2f242445011 (patch)
tree45d234afe8aa2420b854a7ce878f27a56b66da2c /tests/api
parentAdd more unit tests for the filter algorithm. (diff)
downloadsynapse-83172487b05d7d99ccae0b353daee2f242445011.tar.xz
Add basic filtering public API unit tests. Use defers in the right places.
Diffstat (limited to 'tests/api')
-rw-r--r--tests/api/test_filtering.py54
1 files changed, 53 insertions, 1 deletions
diff --git a/tests/api/test_filtering.py b/tests/api/test_filtering.py
index 380dd97937..97fb9758e9 100644
--- a/tests/api/test_filtering.py
+++ b/tests/api/test_filtering.py
@@ -24,7 +24,7 @@ from tests.utils import (
 )
 
 from synapse.server import HomeServer
-
+from synapse.types import UserID
 
 user_localpart = "test_user"
 MockEvent = namedtuple("MockEvent", "sender type room_id")
@@ -353,6 +353,58 @@ class FilteringTestCase(unittest.TestCase):
         )
 
     @defer.inlineCallbacks
+    def test_filter_public_user_data_match(self):
+        user_filter = {
+            "public_user_data": {
+                "types": ["m.*"]
+            }
+        }
+        user = UserID.from_string("@" + user_localpart + ":test")
+        filter_id = yield self.datastore.add_user_filter(
+            user_localpart=user_localpart,
+            user_filter=user_filter,
+        )
+        event = MockEvent(
+            sender="@foo:bar",
+            type="m.profile",
+            room_id="!foo:bar"
+        )
+        events = [event]
+
+        results = yield self.filtering.filter_public_user_data(
+            events=events,
+            user=user,
+            filter_id=filter_id
+        )
+        self.assertEquals(events, results)
+
+    @defer.inlineCallbacks
+    def test_filter_public_user_data_no_match(self):
+        user_filter = {
+            "public_user_data": {
+                "types": ["m.*"]
+            }
+        }
+        user = UserID.from_string("@" + user_localpart + ":test")
+        filter_id = yield self.datastore.add_user_filter(
+            user_localpart=user_localpart,
+            user_filter=user_filter,
+        )
+        event = MockEvent(
+            sender="@foo:bar",
+            type="custom.avatar.3d.crazy",
+            room_id="!foo:bar"
+        )
+        events = [event]
+
+        results = yield self.filtering.filter_public_user_data(
+            events=events,
+            user=user,
+            filter_id=filter_id
+        )
+        self.assertEquals([], results)
+
+    @defer.inlineCallbacks
     def test_add_filter(self):
         user_filter = {
             "room": {