diff --git a/radicale/tests/test_base.py b/radicale/tests/test_base.py
index d2b26949..eb25bd1f 100644
--- a/radicale/tests/test_base.py
+++ b/radicale/tests/test_base.py
@@ -1214,6 +1214,90 @@ permissions: RrWw""")
"""], items=(9,))
assert "/calendar.ics/event9.ics" not in answer
+ def test_time_range_filter_without_comp_filter(self) -> None:
+ """Report request with time-range filter without comp-filter on events."""
+ answer = self._test_filter(["""\
+
+
+"""], "event", items=range(1, 6))
+ assert "/calendar.ics/event1.ics" in answer
+ assert "/calendar.ics/event2.ics" in answer
+ assert "/calendar.ics/event3.ics" in answer
+ assert "/calendar.ics/event4.ics" in answer
+ assert "/calendar.ics/event5.ics" in answer
+ answer = self._test_filter(["""\
+
+
+"""], items=range(1, 6))
+ assert "/calendar.ics/event1.ics" not in answer
+ assert "/calendar.ics/event2.ics" in answer
+ assert "/calendar.ics/event3.ics" in answer
+ assert "/calendar.ics/event4.ics" in answer
+ assert "/calendar.ics/event5.ics" in answer
+ answer = self._test_filter(["""\
+
+
+"""], items=range(1, 6))
+ assert "/calendar.ics/event1.ics" not in answer
+ assert "/calendar.ics/event2.ics" not in answer
+ assert "/calendar.ics/event3.ics" in answer
+ assert "/calendar.ics/event4.ics" in answer
+ assert "/calendar.ics/event5.ics" in answer
+ answer = self._test_filter(["""\
+
+
+"""], items=range(1, 6))
+ assert "/calendar.ics/event1.ics" not in answer
+ assert "/calendar.ics/event2.ics" not in answer
+ assert "/calendar.ics/event3.ics" in answer
+ assert "/calendar.ics/event4.ics" not in answer
+ assert "/calendar.ics/event5.ics" not in answer
+ answer = self._test_filter(["""\
+
+
+"""], items=range(1, 6))
+ assert "/calendar.ics/event1.ics" not in answer
+ assert "/calendar.ics/event2.ics" not in answer
+ assert "/calendar.ics/event3.ics" not in answer
+ assert "/calendar.ics/event4.ics" not in answer
+ assert "/calendar.ics/event5.ics" not in answer
+ # HACK: VObject doesn't match RECURRENCE-ID to recurrences, the
+ # overwritten recurrence is still used for filtering.
+ answer = self._test_filter(["""\
+
+
+"""], items=(6, 7, 8, 9))
+ assert "/calendar.ics/event6.ics" in answer
+ assert "/calendar.ics/event7.ics" in answer
+ assert "/calendar.ics/event8.ics" in answer
+ assert "/calendar.ics/event9.ics" in answer
+ answer = self._test_filter(["""\
+
+
+"""], items=(6, 7, 8, 9))
+ assert "/calendar.ics/event6.ics" in answer
+ assert "/calendar.ics/event7.ics" in answer
+ assert "/calendar.ics/event8.ics" in answer
+ assert "/calendar.ics/event9.ics" not in answer
+ answer = self._test_filter(["""\
+
+
+"""], items=(6, 7, 8, 9))
+ assert "/calendar.ics/event6.ics" not in answer
+ assert "/calendar.ics/event7.ics" not in answer
+ assert "/calendar.ics/event8.ics" not in answer
+ assert "/calendar.ics/event9.ics" not in answer
+ answer = self._test_filter(["""\
+
+
+"""], items=(9,))
+ assert "/calendar.ics/event9.ics" in answer
+ answer = self._test_filter(["""\
+
+
+"""], items=(9,))
+ assert "/calendar.ics/event9.ics" not in answer
+
def test_time_range_filter_events_rrule(self) -> None:
"""Report request with time-range filter on events with rrules."""
answer = self._test_filter(["""\