aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2021-09-13 10:07:45 +0200
committerStefan Boberg <[email protected]>2021-09-13 10:07:45 +0200
commit9e6ab12f40a9b626405bcdda9f51085e04064a42 (patch)
treeb5a71eb8d62cdee5e906a0464001e91ffc2e4f33
parentImplemented generic CbPackage attachments filtering (diff)
downloadzen-9e6ab12f40a9b626405bcdda9f51085e04064a42.tar.xz
zen-9e6ab12f40a9b626405bcdda9f51085e04064a42.zip
Package filtering related test code
-rw-r--r--zenserver-test/zenserver-test.cpp31
-rw-r--r--zenserver-test/zenserver-test.vcxproj3
-rw-r--r--zenserver/testing/httptest.cpp42
-rw-r--r--zenserver/testing/httptest.h17
4 files changed, 86 insertions, 7 deletions
diff --git a/zenserver-test/zenserver-test.cpp b/zenserver-test/zenserver-test.cpp
index 791bf4946..2711698c3 100644
--- a/zenserver-test/zenserver-test.cpp
+++ b/zenserver-test/zenserver-test.cpp
@@ -5,6 +5,7 @@
#include <zencore/compactbinary.h>
#include <zencore/compactbinarybuilder.h>
#include <zencore/compactbinarypackage.h>
+#include <zencore/compress.h>
#include <zencore/except.h>
#include <zencore/filesystem.h>
#include <zencore/fmtutils.h>
@@ -12,6 +13,7 @@
#include <zencore/string.h>
#include <zencore/thread.h>
#include <zencore/timer.h>
+#include <zenhttp/httpclient.h>
#include <zenserverprocess.h>
#include <mimalloc.h>
@@ -1462,11 +1464,30 @@ TEST_CASE("http.package")
ZenServerInstance& Instance = Servers.GetInstance(0);
const std::string BaseUri = Instance.GetBaseUri();
- {
- cpr::Response r = cpr::Post(cpr::Url{"{}/testing/package"_format(BaseUri)}, cpr::Body{"yoyoyoyo"});
- CHECK_EQ(r.status_code, 200);
- CHECK_EQ(r.text, "yoyoyoyo");
- }
+ static const uint8_t Data1[] = {0, 1, 2, 3};
+ static const uint8_t Data2[] = {0, 1, 2, 3, 4, 5, 6, 7, 8};
+
+ zen::CbAttachment Attach1{zen::CompressedBuffer::Compress(zen::SharedBuffer::Clone({Data1, 4}),
+ zen::OodleCompressor::NotSet,
+ zen::OodleCompressionLevel::None)};
+ zen::CbAttachment Attach2{zen::CompressedBuffer::Compress(zen::SharedBuffer::Clone({Data2, 8}),
+ zen::OodleCompressor::NotSet,
+ zen::OodleCompressionLevel::None)};
+
+ zen::CbObjectWriter Writer;
+
+ Writer.AddAttachment("attach1", Attach1);
+ Writer.AddAttachment("attach2", Attach2);
+
+ zen::CbObject CoreObject = Writer.Save();
+
+ zen::CbPackage TestPackage;
+ TestPackage.SetObject(CoreObject);
+ TestPackage.AddAttachment(Attach1);
+ TestPackage.AddAttachment(Attach2);
+
+ zen::HttpClient TestClient(BaseUri);
+ TestClient.TransactPackage("/testing/package"sv, TestPackage);
}
#endif
diff --git a/zenserver-test/zenserver-test.vcxproj b/zenserver-test/zenserver-test.vcxproj
index 54027cba3..a39fce7ec 100644
--- a/zenserver-test/zenserver-test.vcxproj
+++ b/zenserver-test/zenserver-test.vcxproj
@@ -97,6 +97,9 @@
<ProjectReference Include="..\zencore\zencore.vcxproj">
<Project>{d75bf9ab-c61e-4fff-ad59-1563430f05e2}</Project>
</ProjectReference>
+ <ProjectReference Include="..\zenhttp\zenhttp.vcxproj">
+ <Project>{8eeb3be5-7001-46bf-aafd-edb7558ac012}</Project>
+ </ProjectReference>
<ProjectReference Include="..\zenutil\zenutil.vcxproj">
<Project>{77f8315d-b21d-4db0-9a6f-2d3359f88a70}</Project>
</ProjectReference>
diff --git a/zenserver/testing/httptest.cpp b/zenserver/testing/httptest.cpp
index 653f76046..d1955ca27 100644
--- a/zenserver/testing/httptest.cpp
+++ b/zenserver/testing/httptest.cpp
@@ -36,4 +36,46 @@ HttpTestingService::HandleRequest(HttpServerRequest& Request)
m_Router.HandleRequest(Request);
}
+//////////////////////////////////////////////////////////////////////////
+
+Ref<IHttpPackageHandler>
+HttpTestingService::HandlePackageRequest(HttpServerRequest& HttpServiceRequest)
+{
+ return new PackageHandler(HttpServiceRequest);
+}
+
+HttpTestingService::PackageHandler::PackageHandler(const HttpServerRequest& Request)
+{
+ ZEN_UNUSED(Request);
+}
+
+HttpTestingService::PackageHandler::~PackageHandler()
+{
+}
+
+void
+HttpTestingService::PackageHandler::FilterOffer(std::vector<IoHash>& OfferCids)
+{
+ ZEN_UNUSED(OfferCids);
+ // No-op
+ return;
+}
+void
+HttpTestingService::PackageHandler::OnBeginChunks()
+{
+}
+
+zen::IoBuffer
+HttpTestingService::PackageHandler::CreateTarget(const IoHash& Cid, uint64_t StorageSize)
+{
+ ZEN_UNUSED(Cid, StorageSize);
+
+ return {};
+}
+
+void
+HttpTestingService::PackageHandler::OnEndChunks()
+{
+}
+
} // namespace zen
diff --git a/zenserver/testing/httptest.h b/zenserver/testing/httptest.h
index 18652db71..2f3482abc 100644
--- a/zenserver/testing/httptest.h
+++ b/zenserver/testing/httptest.h
@@ -17,8 +17,21 @@ public:
HttpTestingService();
~HttpTestingService();
- virtual const char* BaseUri() const override;
- virtual void HandleRequest(HttpServerRequest& Request) override;
+ virtual const char* BaseUri() const override;
+ virtual void HandleRequest(HttpServerRequest& Request) override;
+ virtual Ref<IHttpPackageHandler> HandlePackageRequest(HttpServerRequest& HttpServiceRequest) override;
+
+ class PackageHandler : public IHttpPackageHandler
+ {
+ public:
+ PackageHandler(const HttpServerRequest& Request);
+ ~PackageHandler();
+
+ void FilterOffer(std::vector<IoHash>& OfferCids) override;
+ void OnBeginChunks() override;
+ IoBuffer CreateTarget(const IoHash& Cid, uint64_t StorageSize) override;
+ void OnEndChunks() override;
+ };
private:
HttpRequestRouter m_Router;