diff options
| author | Stefan Boberg <[email protected]> | 2021-09-13 10:07:45 +0200 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2021-09-13 10:07:45 +0200 |
| commit | 9e6ab12f40a9b626405bcdda9f51085e04064a42 (patch) | |
| tree | b5a71eb8d62cdee5e906a0464001e91ffc2e4f33 | |
| parent | Implemented generic CbPackage attachments filtering (diff) | |
| download | zen-9e6ab12f40a9b626405bcdda9f51085e04064a42.tar.xz zen-9e6ab12f40a9b626405bcdda9f51085e04064a42.zip | |
Package filtering related test code
| -rw-r--r-- | zenserver-test/zenserver-test.cpp | 31 | ||||
| -rw-r--r-- | zenserver-test/zenserver-test.vcxproj | 3 | ||||
| -rw-r--r-- | zenserver/testing/httptest.cpp | 42 | ||||
| -rw-r--r-- | zenserver/testing/httptest.h | 17 |
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; |