• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tito10047 / php-calendar / 29684814725

19 Jul 2026 11:10AM UTC coverage: 87.251% (+2.7%) from 84.598%
29684814725

Pull #4

github

tito10047
feat: implement P2 (v1.2) and P3 (v2.0) — full RFC 5545 + CalDAV

P2 — RFC 5545 completeness:
- RECURRENCE-ID: parser attaches overrides to master event via
  withModifiedOccurrence(); expandOccurrences() returns full ICalEvent
  objects with overrides substituted; JsonSerializer uses expandOccurrences
- X-* extension properties: parser collects all X-* lines into
  extensionProperties map; exporter outputs them; getExtendedProperty() accessor
- WKST in RRULE: RecurrenceRule::weekStart(), parsed from RRULE, serialised
  back with WKST= only when non-Monday
- TRANSP, CLASS, PRIORITY: EventTransp and EventClass enums; parsed and
  exported; default values (OPAQUE/0) suppressed in output
- DST-aware expansion: expandOccurrences() preserves original DateTimeZone
  so local clock time stays correct across DST transitions
- DTSTAMP, CREATED, LAST-MODIFIED, SEQUENCE: parsed, stored, exported;
  zero/null defaults suppressed

P3 — v2.0 extensions:
- CalDAVClient: fluent HTTP client (PROPFIND + REPORT) with Basic auth;
  parses multi-status XML, extracts calendar-data blocks via DOMDocument,
  delegates to ICalParser; src/ICal/CalDAVClient.php
- Streaming export: ICalExporter::exportToStream(resource $stream) writes
  folded RFC 5545 lines one-by-one; export() refactored to share
  buildEventLines() private method — zero code duplication

Tests: 25 new tests (14 P2 + 11 P3), total 212 tests / 826 assertions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Pull Request #4: Feature 2

697 of 782 new or added lines in 16 files covered. (89.13%)

12 existing lines in 3 files now uncovered.

1403 of 1608 relevant lines covered (87.25%)

9.25 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

97.3
/src/Serializer/JsonSerializer.php


Source Not Available

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc