From 5ecd5e3519724b53cd45a615641644e7bc938c65 Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Tue, 18 Jun 2024 14:22:34 +0200 Subject: [PATCH] fix(dav): Add `displayname` and `creationdate` to default props Signed-off-by: Ferdinand Thiessen --- __tests__/dav/davProperties.spec.ts | 23 +++++++++++++++++++++++ lib/dav/davProperties.ts | 2 ++ 2 files changed, 25 insertions(+) diff --git a/__tests__/dav/davProperties.spec.ts b/__tests__/dav/davProperties.spec.ts index aeaa79f0..8d82e408 100644 --- a/__tests__/dav/davProperties.spec.ts +++ b/__tests__/dav/davProperties.spec.ts @@ -105,4 +105,27 @@ describe('DAV Properties', () => { expect(logger.warn).not.toBeCalled() expect(getDavProperties().includes('my:prop')).toBe(false) }) + + test('default properties include all RFC DAV properties', () => { + // Refer to http://www.webdav.org/specs/rfc2518.html#dav.properties + const rfc2518 = [ + 'd:creationdate', + 'd:displayname', + 'd:getcontentlength', + 'd:getcontenttype', + 'd:getetag', + 'd:getlastmodified', + 'd:resourcetype', + // Nextcloud autmatically includes: + // 'd:source' + // Only valid for GET requests + // 'd:getcontentlanguage', + // Not used by default (stub implemented) + // 'd:supportedlock' + // 'd:lockdiscovery' + ] + + const missing = rfc2518.filter((prop) => !defaultDavProperties.includes(prop)) + expect(missing, 'RFC defined prop not included in default DAV properties').toEqual([]) + }) }) diff --git a/lib/dav/davProperties.ts b/lib/dav/davProperties.ts index 7b4f922f..30984492 100644 --- a/lib/dav/davProperties.ts +++ b/lib/dav/davProperties.ts @@ -12,6 +12,8 @@ export const defaultDavProperties = [ 'd:getcontenttype', 'd:getetag', 'd:getlastmodified', + 'd:creationdate', + 'd:displayname', 'd:quota-available-bytes', 'd:resourcetype', 'nc:has-preview',