Write the brand in lowercase where people see it
ci / fork-checks (pull_request) Successful in 47s
ci / build (pull_request) Successful in 5m4s

The name is inbuxa, lowercase, like the wordmark; INBUXA reads as an
acronym. The admin and webmail already changed. Here that's everything
the server shows people: the brand macro behind the protocol greetings,
the HTTP and SCIM realms, the startup banner and the calendar and contact
PRODID; the first-party OAuth client descriptions; the legacy-protocol
refusals; the default calendar and address book names and the SMTP
greeting default, in the code and the schema served to the admin
(checksum regenerated); startup and shutdown events; the User-Agent;
the sign-in and RSVP pages; the service units; the OpenAPI realm; the
crate descriptions and the README, where it's set in bold.

Identifiers that are uppercase for their own reasons stay: INBUXA_*
settings, SUBSPACE_INBUXA. So do code comments and the AGPL 5(a) notice
lines.

Tests follow: the IMAP ID name, the default collection names, the PRODID
in the iTIP fixtures and the CalDAV free-busy expectations, and the e2e
legacy-protocol refusals. The webdav, imap and jmap suites pass, so do
the unit tests of every crate touched, and 73 of 75 SMTP tests; of the
other two, antispam fails on main too, and queue_retry is a timing flake
that passes on its own.
This commit is contained in:
2026-09-22 20:08:10 -07:00
parent cc6f1eb298
commit a993f9ab01
43 changed files with 131 additions and 131 deletions
+4 -4
View File
@@ -49,7 +49,7 @@ HTTP = "http://127.0.0.1:18080"
# made to speak.
PORTS = {"imap": 18993, "pop3": 18995, "submissions": 18465, "smtp": 18025}
TLS_PORTS = {18993, 18995, 18465}
SMTP_REFUSAL = ("535 5.7.0 This server allows only INBUXA webmail and JMAP apps. "
SMTP_REFUSAL = ("535 5.7.0 This server allows only inbuxa webmail and JMAP apps. "
"This mail app can't send.")
INBUXA = "urn:inbuxa:jmap"
failures = []
@@ -333,7 +333,7 @@ def tenant_checks(admin, admin_pw, account):
"and still enabled for an account outside the tenant (test 13)")
# Refused on the tenant's domain, every way in the same words (tests 6-8).
imap_no = ("NO [ALERT] Your organization allows only INBUXA webmail and JMAP apps. "
imap_no = ("NO [ALERT] Your organization allows only inbuxa webmail and JMAP apps. "
"This mail app can't sign in.")
check(imap_login(PORTS["imap"], tu, user_pw) == imap_no,
"the tenant's user is refused over IMAP with the right password (test 6)")
@@ -341,10 +341,10 @@ def tenant_checks(admin, admin_pw, account):
check(imap_login(PORTS["imap"], "[email protected]", "x") == imap_no,
"and a made-up address on the domain gets the same (test 7)")
check(pop3_login(PORTS["pop3"], tu, user_pw) ==
"-ERR [AUTH] Your organization allows only INBUXA webmail and JMAP apps. "
"-ERR [AUTH] Your organization allows only inbuxa webmail and JMAP apps. "
"This mail app can't sign in.", "POP3 refuses in its own form (test 8)")
check(smtp_auths(PORTS["submissions"], tu, [user_pw])[0] ==
"535 5.7.0 Your organization allows only INBUXA webmail and JMAP apps. "
"535 5.7.0 Your organization allows only inbuxa webmail and JMAP apps. "
"This mail app can't send.", "submission refuses in its own form (test 8)")
check(imap_login(PORTS["imap"], admin, admin_pw).startswith("OK"),
"an account on another domain signs in over IMAP normally (test 6)")
+3 -3
View File
@@ -61,7 +61,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count:
summary.summary: Text("Meet me maybe")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
X-MICROSOFT-CDO-OWNERAPPTID:299828133
@@ -176,7 +176,7 @@ summary.summary: Text("Meet me maybe")
~summary.description: Text("This is the event description")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
X-MICROSOFT-CDO-OWNERAPPTID:299828133
@@ -224,7 +224,7 @@ END:VCALENDAR
# Make sure the original alarms are preserved
> get [email protected] [email protected]
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
X-MICROSOFT-CDO-OWNERAPPTID:299828133
+2 -2
View File
@@ -64,7 +64,7 @@ summary.location: Text("Conference Room A")
summary.summary: Text("Review Accounts")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
LOCATION:Conference Room A
@@ -114,7 +114,7 @@ summary.location: Text("Conference Room A")
summary.summary: Text("Review Accounts")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
LOCATION:Conference Room A
+3 -3
View File
@@ -146,7 +146,7 @@ summary.dtstart: Time(ItipTime { start: 867787200, tz_id: 32768 })
summary.summary: Text("Conference")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CONFIRMED
@@ -402,7 +402,7 @@ summary.dtstart: Time(ItipTime { start: 867787200, tz_id: 32768 })
summary.summary: Text("Conference")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CONFIRMED
@@ -450,7 +450,7 @@ summary.dtstart: Time(ItipTime { start: 867787200, tz_id: 32768 })
summary.summary: Text("Conference")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CONFIRMED
@@ -37,7 +37,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Monthly, until: Some(Partia
summary.summary: Text("IETF Calendaring Working Group Meeting")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
CLASS:PUBLIC
@@ -117,7 +117,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Monthly, until: Some(Partia
summary.summary: Text("IETF Calendaring Working Group Meeting")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
CLASS:PUBLIC
@@ -207,7 +207,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Monthly, until: Some(Partia
summary.summary: Text("IETF Calendaring Working Group Meeting")
BEGIN:VCALENDAR
METHOD:CANCEL
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CANCELLED
@@ -226,7 +226,7 @@ END:VCALENDAR
# Make sure B has the cancelled event
> get [email protected] [email protected]
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
CLASS:PUBLIC
@@ -358,7 +358,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Monthly, until: Some(Partia
summary.summary: Text("IETF Calendaring Working Group Meeting")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
CLASS:PUBLIC
@@ -386,7 +386,7 @@ END:VCALENDAR
# Make sure B has the complete event including all updates
> get [email protected] [email protected]
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
CLASS:PUBLIC
@@ -538,7 +538,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Monthly, until: Some(Partia
summary.summary: Text("IETF Calendaring Working Group Meeting")
BEGIN:VCALENDAR
METHOD:CANCEL
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
DESCRIPTION:IETF-C&S Conference Call
@@ -564,7 +564,7 @@ END:VCALENDAR
# Make sure all instances in B were deleted
> get [email protected] [email protected]
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
CLASS:PUBLIC
@@ -677,7 +677,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count:
summary.summary: Text("Review Accounts")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
LOCATION:The White Room
@@ -742,7 +742,7 @@ summary.summary: Text("Review Accounts")
~summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count: None, interval: None, bysecond: [], byminute: [], byhour: [], byday: [ICalendarDay { ordwk: None, weekday: Tuesday }], bymonthday: [], byyearday: [], byweekno: [], bymonth: [], bysetpos: [], wkst: Some(Sunday), rscale: None, skip: None })
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
LOCATION:The White Room
@@ -770,7 +770,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count:
summary.summary: Text("Review Accounts")
BEGIN:VCALENDAR
METHOD:CANCEL
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
LOCATION:The Red Room
@@ -791,7 +791,7 @@ END:VCALENDAR
# Make sure B has the updated event
> get [email protected] [email protected]
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
LOCATION:The White Room
@@ -812,7 +812,7 @@ END:VCALENDAR
# Make sure C has the updated event
> get [email protected] [email protected]
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
LOCATION:The Red Room
@@ -853,7 +853,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count:
summary.summary: Text("Review Accounts")
BEGIN:VCALENDAR
METHOD:REPLY
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Review Accounts
@@ -919,7 +919,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count:
summary.summary: Text("Weekly Sync")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Weekly Sync
@@ -967,7 +967,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Weekly, until: None, count:
summary.summary: Text("Weekly Sync")
BEGIN:VCALENDAR
METHOD:REPLY
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Weekly Sync
+20 -20
View File
@@ -32,7 +32,7 @@ summary.dtstart: Time(ItipTime { start: 867787200, tz_id: 32768 })
summary.summary: Text("Conference")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CONFIRMED
@@ -61,7 +61,7 @@ END:VCALENDAR
# Make sure B receives the request
> get [email protected] [email protected]
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CONFIRMED
@@ -88,7 +88,7 @@ END:VCALENDAR
> put [email protected] [email protected]
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
BEGIN:VEVENT
DTSTAMP:19970701T200000Z
SEQUENCE:1
@@ -119,7 +119,7 @@ summary.dtstart: Time(ItipTime { start: 867787200, tz_id: 32768 })
summary.summary: Text("Conference")
BEGIN:VCALENDAR
METHOD:REPLY
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Conference
@@ -198,7 +198,7 @@ summary.summary: Text("Phone Conference")
~summary.summary: Text("Conference")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CONFIRMED
@@ -228,7 +228,7 @@ END:VCALENDAR
# Make sure C receives the request
> get [email protected] [email protected]
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CONFIRMED
@@ -256,7 +256,7 @@ END:VCALENDAR
> put [email protected] [email protected]
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
BEGIN:VEVENT
DTSTAMP:19970701T180000Z
UID:[email protected]
@@ -287,7 +287,7 @@ summary.dtstart: Time(ItipTime { start: 867780000, tz_id: 32768 })
summary.summary: Text("Phone Conference")
BEGIN:VCALENDAR
METHOD:REPLY
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Phone Conference
@@ -313,7 +313,7 @@ summary.dtstart: Time(ItipTime { start: 867780000, tz_id: 32768 })
summary.summary: Text("Phone Conference")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CONFIRMED
@@ -343,7 +343,7 @@ END:VCALENDAR
# Make sure E receives the request
> get [email protected] [email protected]
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CONFIRMED
@@ -398,7 +398,7 @@ END:VCALENDAR
> put [email protected] [email protected]
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
BEGIN:VEVENT
DTSTAMP:19970701T180000Z
SEQUENCE:2
@@ -430,7 +430,7 @@ summary.dtstart: Time(ItipTime { start: 867780000, tz_id: 32768 })
summary.summary: Text("Phone Conference")
BEGIN:VCALENDAR
METHOD:REPLY
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Phone Conference
@@ -479,7 +479,7 @@ END:VCALENDAR
# Make sure C receives the reply
> get [email protected] [email protected]
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CONFIRMED
@@ -508,7 +508,7 @@ END:VCALENDAR
> put [email protected] [email protected]
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
BEGIN:VEVENT
DTSTAMP:19970701T180000Z
SEQUENCE:2
@@ -540,7 +540,7 @@ summary.dtstart: Time(ItipTime { start: 867780000, tz_id: 32768 })
summary.summary: Text("Phone Conference")
BEGIN:VCALENDAR
METHOD:REPLY
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Phone Conference
@@ -564,7 +564,7 @@ END:VCALENDAR
# Make sure C receives the reply
> get [email protected] [email protected]
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CONFIRMED
@@ -650,7 +650,7 @@ summary.summary: Text("Phone Conference")
~summary.attendee: Participants([ItipParticipant { email: "[email protected]", name: None, is_organizer: true }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }, ItipParticipant { email: "[email protected]", name: Some("Hal"), is_organizer: false }, ItipParticipant { email: "[email protected]", name: None, is_organizer: false }])
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CONFIRMED
@@ -681,7 +681,7 @@ summary.dtstart: Time(ItipTime { start: 867780000, tz_id: 32768 })
summary.summary: Text("Phone Conference")
BEGIN:VCALENDAR
METHOD:CANCEL
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CANCELLED
@@ -702,7 +702,7 @@ END:VCALENDAR
# Make sure B receives the cancelation
> get [email protected] [email protected]
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CANCELLED
@@ -727,7 +727,7 @@ summary.dtstart: Time(ItipTime { start: 867780000, tz_id: 32768 })
summary.summary: Text("Phone Conference")
BEGIN:VCALENDAR
METHOD:CANCEL
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CANCELLED
+9 -9
View File
@@ -32,7 +32,7 @@ summary.dtstart: Time(ItipTime { start: 867776400, tz_id: 32768 })
summary.summary: Text("Create the requirements document")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VTODO
PRIORITY:1
@@ -57,7 +57,7 @@ END:VCALENDAR
# Make sure B received the todo
> get [email protected] [email protected]
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VTODO
PRIORITY:1
@@ -103,7 +103,7 @@ summary.attendee: Participants([ItipParticipant { email: "[email protected]", name:
summary.dtstart: Time(ItipTime { start: 867776400, tz_id: 32768 })
BEGIN:VCALENDAR
METHOD:REPLY
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VTODO
STATUS:IN-PROCESS
@@ -172,7 +172,7 @@ summary.attendee: Participants([ItipParticipant { email: "[email protected]", name:
summary.dtstart: Time(ItipTime { start: 867776400, tz_id: 32768 })
BEGIN:VCALENDAR
METHOD:REPLY
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VTODO
PERCENT-COMPLETE:75
@@ -241,7 +241,7 @@ summary.attendee: Participants([ItipParticipant { email: "[email protected]", name:
summary.dtstart: Time(ItipTime { start: 867776400, tz_id: 32768 })
BEGIN:VCALENDAR
METHOD:REPLY
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VTODO
DUE:19970722T170000Z
@@ -317,7 +317,7 @@ summary.summary: Text("Send Status Reports to Area Managers")
~summary.summary: Text("Create the requirements document")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VTODO
PRIORITY:1
@@ -347,7 +347,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Monthly, until: None, count
summary.summary: Text("Create the requirements document")
BEGIN:VCALENDAR
METHOD:CANCEL
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VTODO
STATUS:CANCELLED
@@ -367,7 +367,7 @@ END:VCALENDAR
# Make sure "C" received the cancel request
> get [email protected] [email protected]
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VTODO
PRIORITY:1
@@ -451,7 +451,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Monthly, until: None, count
summary.summary: Text("Send Status Reports to Area Managers")
BEGIN:VCALENDAR
METHOD:REPLY
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VTODO
PERCENT-COMPLETE:75
+4 -4
View File
@@ -47,7 +47,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Daily, until: None, count:
summary.summary: Text("Review Internet-Draft")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Review Internet-Draft
@@ -89,7 +89,7 @@ END:VCALENDAR
# Make sure the participant receives the event
> get [email protected] 9263504FD3AD
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Review Internet-Draft
@@ -185,7 +185,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Daily, until: None, count:
summary.summary: Text("Review Internet-Draft")
BEGIN:VCALENDAR
METHOD:REPLY
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Review Internet-Draft
@@ -343,7 +343,7 @@ summary.rrule: Rrule(ICalendarRecurrenceRule { freq: Daily, until: None, count:
summary.summary: Text("Review Internet-Draft")
BEGIN:VCALENDAR
METHOD:REPLY
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Review Internet-Draft
+3 -3
View File
@@ -30,7 +30,7 @@ summary.dtstart: Time(ItipTime { start: 1243958400, tz_id: 32768 })
summary.summary: Text("Lunch")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Lunch
@@ -83,7 +83,7 @@ END:VCALENDAR
# Make sure the message was received by the attendees
> get [email protected] 9263504FD3AD
BEGIN:VCALENDAR
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Lunch
@@ -170,7 +170,7 @@ summary.dtstart: Time(ItipTime { start: 1243958400, tz_id: 32768 })
summary.summary: Text("Lunch")
BEGIN:VCALENDAR
METHOD:REPLY
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Lunch
+4 -4
View File
@@ -26,7 +26,7 @@ summary.dtstart: Time(ItipTime { start: 1794322800, tz_id: 433 })
summary.summary: Text("Berlin meeting")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Berlin meeting
@@ -92,7 +92,7 @@ summary.dtstart: Time(ItipTime { start: 1794322800, tz_id: 433 })
summary.summary: Text("Berlin meeting")
BEGIN:VCALENDAR
METHOD:REPLY
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Berlin meeting
@@ -144,7 +144,7 @@ summary.dtstart: Time(ItipTime { start: 1794322800, tz_id: 433 })
summary.summary: Text("Berlin meeting")
BEGIN:VCALENDAR
METHOD:CANCEL
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
STATUS:CANCELLED
@@ -228,7 +228,7 @@ summary.dtstart: Time(ItipTime { start: 1794322800, tz_id: 433 })
summary.summary: Text("Berlin meeting")
BEGIN:VCALENDAR
METHOD:REQUEST
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
VERSION:2.0
BEGIN:VEVENT
SUMMARY:Berlin meeting
+1 -1
View File
@@ -47,7 +47,7 @@ pub async fn test(imap: &mut ImapConnection, _imap_check: &mut ImapConnection) {
imap.send("ID").await;
imap.assert_read(Type::Tagged, ResponseType::Ok)
.await
.assert_contains("* ID (\"name\" \"INBUXA\" \"version\" ");
.assert_contains("* ID (\"name\" \"inbuxa\" \"version\" ");
// Login should be disabled
imap.send("LOGIN [email protected] secret").await;
+2 -2
View File
@@ -45,7 +45,7 @@ pub async fn test(test: &TestServer) {
list[0],
json!({
"id": default_calendar_id,
"name": "INBUXA Calendar ([email protected])",
"name": "inbuxa Calendar ([email protected])",
"description": null,
"sortOrder": 0,
"isSubscribed": true,
@@ -310,7 +310,7 @@ pub async fn test(test: &TestServer) {
}));
response.list()[1].assert_is_equal(json!({
"id": default_calendar_id,
"name": "INBUXA Calendar ([email protected])",
"name": "inbuxa Calendar ([email protected])",
"description": (),
"sortOrder": 0,
"isSubscribed": true,
+2 -2
View File
@@ -38,7 +38,7 @@ pub async fn test(test: &TestServer) {
assert_eq!(
list[0],
json!({
"name": "INBUXA Address Book ([email protected])",
"name": "inbuxa Address Book ([email protected])",
"description": (),
"sortOrder": 0,
"isSubscribed": true,
@@ -148,7 +148,7 @@ pub async fn test(test: &TestServer) {
"id": addressbook_id,
}),
json!({
"name": "INBUXA Address Book ([email protected])",
"name": "inbuxa Address Book ([email protected])",
"description": (),
"sortOrder": 0,
"isSubscribed": true,
+1 -1
View File
@@ -106,7 +106,7 @@ async fn discovery(scim: &ScimTest) {
);
assert!(
!config.body.contains("stalw"),
"SCIM-4: documentation is INBUXA's own"
"SCIM-4: documentation is inbuxa's own"
);
let types = anonymous.get("/ResourceTypes").await;
+1 -1
View File
@@ -503,7 +503,7 @@ pub async fn branding_compat() {
let admin = std::env::var("INBUXA_COMPAT_ADMIN").expect("INBUXA_COMPAT_ADMIN");
assert!(
std::env::var("NO_INSERT").is_ok(),
"NO_INSERT must be set, or the copy of INBUXA's data is wiped"
"NO_INSERT must be set, or the copy of inbuxa's data is wiped"
);
let test = TestServerBuilder::new("branding_compat")
.await
+1 -1
View File
@@ -431,7 +431,7 @@ pub async fn masked_email_compat() {
.expect("masks JSON");
assert!(
std::env::var("NO_INSERT").is_ok(),
"NO_INSERT must be set, or the copy of INBUXA's data is wiped"
"NO_INSERT must be set, or the copy of inbuxa's data is wiped"
);
let test = TestServerBuilder::new("masked_email_compat")
+1 -1
View File
@@ -908,7 +908,7 @@ pub async fn tenant_compat() {
.expect("expected JSON");
assert!(
std::env::var("NO_INSERT").is_ok(),
"NO_INSERT must be set, or the copy of INBUXA's data is wiped"
"NO_INSERT must be set, or the copy of inbuxa's data is wiped"
);
let test = TestServerBuilder::new("tenant_compat")
+1 -1
View File
@@ -618,7 +618,7 @@ pub async fn undelete_compat() {
.expect("archived items JSON");
assert!(
std::env::var("NO_INSERT").is_ok(),
"NO_INSERT must be set, or the copy of INBUXA's data is wiped"
"NO_INSERT must be set, or the copy of inbuxa's data is wiped"
);
let test = TestServerBuilder::new("undelete_compat")
+2 -2
View File
@@ -907,7 +907,7 @@ const REPORT_10: &str = r#"<?xml version="1.0" encoding="utf-8" ?>
const REPORT_10_RESPONSE: &str = r#"BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
BEGIN:VFREEBUSY
DTSTART:20060104T140000Z
DTEND:20060105T220000Z
@@ -928,7 +928,7 @@ const REPORT_11: &str = r#"<?xml version="1.0" encoding="utf-8" ?>
const REPORT_11_RESPONSE: &str = r#"BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//INBUXA//INBUXA Server//EN
PRODID:-//inbuxa//inbuxa Server//EN
BEGIN:VFREEBUSY
DTSTART:20060101T000000Z
DTEND:20060104T140000Z