Advertise sync-collection on the address book
Round 3c: three warm-sync polls received ctag-2 and still issued no
REPORT, so the client appears to gate sync-collection on the
collection advertising it (RFC 3253 discovery). Restores exactly that
one report; the multiget and query entries stay dropped.

Assisted-by: GLM 5.2 via pi
change vzwwqwlqlttvmxtlvyxtvxtmqrvvywpy
commit 999e375dc11a3736f08e435b628a2cfa8f2b7488
author Alpha Chen <alpha@kejadlen.dev>
date
parent rqxkmxun
diff --git a/lib/pro_tacts/web.rb b/lib/pro_tacts/web.rb
index ae8a7c7..83b4e6d 100644
--- a/lib/pro_tacts/web.rb
+++ b/lib/pro_tacts/web.rb
@@ -194,6 +194,11 @@ module ProTacts
                         <d:collection/>
                         <card:addressbook/>
                       </d:resourcetype>
+                      <d:supported-report-set>
+                        <d:supported-report>
+                          <d:report><d:sync-collection/></d:report>
+                        </d:supported-report>
+                      </d:supported-report-set>
                       <cs:getctag>#{collection_ctag}</cs:getctag>
                       <d:sync-token>http://pro-tacts/sync/2</d:sync-token>
                     </d:prop>
diff --git a/test/fixtures/macos-exchange/05-propfind-addressbook-ctag/response b/test/fixtures/macos-exchange/05-propfind-addressbook-ctag/response
index 8217e8b..0d4b71c 100644
--- a/test/fixtures/macos-exchange/05-propfind-addressbook-ctag/response
+++ b/test/fixtures/macos-exchange/05-propfind-addressbook-ctag/response
@@ -11,6 +11,11 @@ Content-Type: text/xml
         <d:collection/>
         <card:addressbook/>
       </d:resourcetype>
+      <d:supported-report-set>
+        <d:supported-report>
+          <d:report><d:sync-collection/></d:report>
+        </d:supported-report>
+      </d:supported-report-set>
       <cs:getctag>ctag-2</cs:getctag>
       <d:sync-token>http://pro-tacts/sync/2</d:sync-token>
     </d:prop>
diff --git a/test/fixtures/macos-exchange/09-propfind-addressbook-bootstrap/response b/test/fixtures/macos-exchange/09-propfind-addressbook-bootstrap/response
index 7c2184e..e1bcf12 100644
--- a/test/fixtures/macos-exchange/09-propfind-addressbook-bootstrap/response
+++ b/test/fixtures/macos-exchange/09-propfind-addressbook-bootstrap/response
@@ -11,6 +11,11 @@ Content-Type: text/xml
         <d:collection/>
         <card:addressbook/>
       </d:resourcetype>
+      <d:supported-report-set>
+        <d:supported-report>
+          <d:report><d:sync-collection/></d:report>
+        </d:supported-report>
+      </d:supported-report-set>
       <cs:getctag>ctag-2</cs:getctag>
       <d:sync-token>http://pro-tacts/sync/2</d:sync-token>
     </d:prop>