From 2f61c447a93eb09c6dec69394f81d40656da895b Mon Sep 17 00:00:00 2001
From: Andrew Bettison <andrew@servalproject.org>
Date: Mon, 19 Sep 2016 14:12:37 +0930
Subject: [PATCH] Add a new rhizomerestful test case: update a bundle to empty
 payload

---
 tests/rhizomerestful | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/tests/rhizomerestful b/tests/rhizomerestful
index 751fcc8c..2c81a1b2 100755
--- a/tests/rhizomerestful
+++ b/tests/rhizomerestful
@@ -869,6 +869,42 @@ test_RhizomeInsertEmpty() {
    assert diff xempty.manifest empty.manifest
 }
 
+doc_RhizomeUpdateToEmpty="HTTP RESTful update Rhizome bundle to empty"
+setup_RhizomeUpdateToEmpty() {
+   setup
+   >empty
+   assert [ ! -s empty ]
+   create_file nonempty 101
+   executeOk_servald rhizome add file $SIDA nonempty nonempty.manifest
+   executeOk_servald rhizome list
+   assert_rhizome_list nonempty
+   extract_manifest_id BID nonempty.manifest
+}
+test_RhizomeUpdateToEmpty() {
+   execute curl \
+         -H "Expect:" \
+         --silent --show-error --write-out '%{http_code}' \
+         --output empty.manifest \
+         --dump-header http.header \
+         --basic --user harry:potter \
+         --form "bundle-id=$BID" \
+         --form "manifest=;type=rhizome/manifest;format=\"text+binarysig\"" \
+         --form "payload=@empty;filename=\"lethargic\"" \
+         "http://$addr_localhost:$PORTA/restful/rhizome/insert"
+   tfw_cat http.header empty.manifest
+   assertExitStatus == 0
+   assertStdoutIs 201
+   assertGrep --matches=1 --ignore-case http.header "^Serval-Rhizome-Result-Bundle-Status-Code: 0$CR\$"
+   assertGrep --matches=1 --ignore-case http.header "^Serval-Rhizome-Result-Bundle-Status-Message: .*bundle new to store.*$CR\$"
+   assertGrep --matches=1 --ignore-case http.header "^Serval-Rhizome-Result-Payload-Status-Code: 0$CR\$"
+   assertGrep --matches=1 --ignore-case http.header "^Serval-Rhizome-Result-Payload-Status-Message: .*payload empty.*$CR\$"
+   executeOk_servald rhizome list
+   assert_rhizome_list empty
+   executeOk_servald rhizome extract bundle $BID xempty.manifest xempty
+   assert [ ! -e xempty ]
+   assert diff xempty.manifest empty.manifest
+}
+
 doc_RhizomeInsertLarge="HTTP RESTful insert 50 MiB Rhizome bundle"
 setup_RhizomeInsertLarge() {
    setup