aboutsummaryrefslogtreecommitdiff
path: root/zenserver-test/zenserver-test.cpp
diff options
context:
space:
mode:
authorPer Larsson <[email protected]>2021-09-20 10:28:28 +0200
committerPer Larsson <[email protected]>2021-09-20 10:28:28 +0200
commit0fee64c8c3f7fc350e2030c56cb6938369606013 (patch)
tree41710a54210ef659d8a8fa7089ac6204e1918f58 /zenserver-test/zenserver-test.cpp
parentTry authenticate with Jupiter instance when initializing upstream cache. (diff)
downloadzen-0fee64c8c3f7fc350e2030c56cb6938369606013.tar.xz
zen-0fee64c8c3f7fc350e2030c56cb6938369606013.zip
Added support for skipping package attachments.
Diffstat (limited to 'zenserver-test/zenserver-test.cpp')
-rw-r--r--zenserver-test/zenserver-test.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/zenserver-test/zenserver-test.cpp b/zenserver-test/zenserver-test.cpp
index a556d896e..3ca5747f5 100644
--- a/zenserver-test/zenserver-test.cpp
+++ b/zenserver-test/zenserver-test.cpp
@@ -1682,6 +1682,59 @@ TEST_CASE("zcache.policy")
CHECK(Result.status_code == 200);
}
}
+
+ SUBCASE("skip - 'attachments' does not return attachments")
+ {
+ ZenConfig LocalCfg = ZenConfig::New();
+ ZenServerInstance LocalInst(TestEnv);
+ const auto Bucket = "texture"sv;
+
+ LocalCfg.Spawn(LocalInst);
+
+ zen::IoHash Key;
+ zen::CbPackage Package = GeneratePackage(Key);
+ auto Buf = ToBuffer(Package);
+
+ // Store package locally
+ {
+ CHECK(Package.GetAttachments().size() != 0);
+ cpr::Response Result = cpr::Put(cpr::Url{"{}/{}/{}"_format(LocalCfg.BaseUri, Bucket, Key)},
+ cpr::Body{(const char*)Buf.GetData(), Buf.GetSize()},
+ cpr::Header{{"Content-Type", "application/x-ue-cbpkg"}});
+ CHECK(Result.status_code == 201);
+ }
+
+ {
+ cpr::Response Result = cpr::Get(cpr::Url{"{}/{}/{}?skip=attachments"_format(LocalCfg.BaseUri, Bucket, Key)},
+ cpr::Header{{"Accept", "application/x-ue-cbpkg"}});
+ CHECK(Result.status_code == 200);
+
+ zen::IoBuffer Body(zen::IoBuffer::Wrap, Result.text.data(), Result.text.size());
+ zen::CbPackage Package;
+ const bool Ok = Package.TryLoad(Body);
+
+ CbObject CacheRecord = Package.GetObject();
+ std::vector<IoHash> AttachmentKeys;
+
+ CacheRecord.IterateAttachments(
+ [&AttachmentKeys](CbFieldView AttachmentKey) { AttachmentKeys.push_back(AttachmentKey.AsHash()); });
+
+ CHECK(AttachmentKeys.size() != 0);
+ CHECK(Package.GetAttachments().size() == 0);
+ }
+
+ {
+ cpr::Response Result =
+ cpr::Get(cpr::Url{"{}/{}/{}"_format(LocalCfg.BaseUri, Bucket, Key)}, cpr::Header{{"Accept", "application/x-ue-cbpkg"}});
+ CHECK(Result.status_code == 200);
+
+ zen::IoBuffer Body(zen::IoBuffer::Wrap, Result.text.data(), Result.text.size());
+ zen::CbPackage Package;
+ const bool Ok = Package.TryLoad(Body);
+
+ CHECK(Package.GetAttachments().size() != 0);
+ }
+ }
}
struct RemoteExecutionRequest