1
0

fix(caldav): make sure colors are correctly saved and returned

Resolves https://community.vikunja.io/t/caldav-sync-tasks-org-strips-colour-and-end-date-values/2753/2

(cherry picked from commit ffcc48ec871f50c6732eb2f2cf1a49d41e7f47fe)
This commit is contained in:
kolaente
2024-09-04 23:08:03 +02:00
parent 08b4bcaff9
commit eb89f68f73
4 changed files with 332 additions and 1 deletions

View File

@ -353,6 +353,142 @@ END:VCALENDAR`,
},
},
},
{
name: "with apple hex color",
args: args{content: `BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
X-PUBLISHED-TTL:PT4H
X-WR-CALNAME:test
PRODID:-//RandomProdID which is not random//EN
BEGIN:VTODO
X-APPLE-CALENDAR-COLOR:#affffeFF
END:VTODO
END:VCALENDAR`,
},
wantVTask: &models.Task{
HexColor: "affffe",
},
},
{
name: "with apple css color",
args: args{content: `BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
X-PUBLISHED-TTL:PT4H
X-WR-CALNAME:test
PRODID:-//RandomProdID which is not random//EN
BEGIN:VTODO
X-APPLE-CALENDAR-COLOR:mediumslateblue
END:VTODO
END:VCALENDAR`,
},
wantVTask: &models.Task{
HexColor: "7b68ee",
},
},
{
name: "with outlook hex color",
args: args{content: `BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
X-PUBLISHED-TTL:PT4H
X-WR-CALNAME:test
PRODID:-//RandomProdID which is not random//EN
BEGIN:VTODO
X-OUTLOOK-COLOR:#affffeFF
END:VTODO
END:VCALENDAR`,
},
wantVTask: &models.Task{
HexColor: "affffe",
},
},
{
name: "with outlook css color",
args: args{content: `BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
X-PUBLISHED-TTL:PT4H
X-WR-CALNAME:test
PRODID:-//RandomProdID which is not random//EN
BEGIN:VTODO
X-OUTLOOK-COLOR:mediumslateblue
END:VTODO
END:VCALENDAR`,
},
wantVTask: &models.Task{
HexColor: "7b68ee",
},
},
{
name: "with funambol hex color",
args: args{content: `BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
X-PUBLISHED-TTL:PT4H
X-WR-CALNAME:test
PRODID:-//RandomProdID which is not random//EN
BEGIN:VTODO
X-FUNAMBOL-COLOR:#affffeFF
END:VTODO
END:VCALENDAR`,
},
wantVTask: &models.Task{
HexColor: "affffe",
},
},
{
name: "with funambol css color",
args: args{content: `BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
X-PUBLISHED-TTL:PT4H
X-WR-CALNAME:test
PRODID:-//RandomProdID which is not random//EN
BEGIN:VTODO
X-FUNAMBOL-COLOR:mediumslateblue
END:VTODO
END:VCALENDAR`,
},
wantVTask: &models.Task{
HexColor: "7b68ee",
},
},
{
name: "with hex color",
args: args{content: `BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
X-PUBLISHED-TTL:PT4H
X-WR-CALNAME:test
PRODID:-//RandomProdID which is not random//EN
BEGIN:VTODO
COLOR:#affffeFF
END:VTODO
END:VCALENDAR`,
},
wantVTask: &models.Task{
HexColor: "affffe",
},
},
{
name: "with css color",
args: args{content: `BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
X-PUBLISHED-TTL:PT4H
X-WR-CALNAME:test
PRODID:-//RandomProdID which is not random//EN
BEGIN:VTODO
COLOR:mediumslateblue
END:VTODO
END:VCALENDAR`,
},
wantVTask: &models.Task{
HexColor: "7b68ee",
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {