Refactored to use the new ENDPOINT_INTERCEPTOR macro instead own interceptors

This commit is contained in:
Benedikt-Alexander Mokroß 2019-10-02 14:02:49 +02:00
parent 27dcc538d8
commit 68e41f05c1
8 changed files with 236 additions and 202 deletions

View File

@ -221,7 +221,7 @@ add_library(oatpp
oatpp/web/url/mapping/Pattern.cpp
oatpp/web/url/mapping/Pattern.hpp
oatpp/web/url/mapping/Router.hpp
)
oatpp/codegen/api_controller/cors_define.hpp oatpp/codegen/api_controller/cors_undef.hpp)
set_target_properties(oatpp PROPERTIES
CXX_STANDARD 11

View File

@ -0,0 +1,138 @@
/***************************************************************************
*
* Project _____ __ ____ _ _
* ( _ ) /__\ (_ _)_| |_ _| |_
* )(_)( /(__)\ )( (_ _)(_ _)
* (_____)(__)(__)(__) |_| |_|
*
*
* Copyright 2018-present, Leonid Stryzhevskyi <lganzzzo@gmail.com>
* Benedikt-Alexander Mokroß <bam@icognize.de>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
***************************************************************************/
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_ORIGIN "*"
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_METHODS "GET, POST, OPTIONS"
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_HEADERS "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization"
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE "1728000"
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY(ARG_ORIGIN, ARG_METHODS, ARG_HEADERS, ARG_MAX_AGE) \
resp->putHeaderIfNotExists(oatpp::web::protocol::http::Header::CORS_ORIGIN, ARG_ORIGIN); \
resp->putHeaderIfNotExists(oatpp::web::protocol::http::Header::CORS_METHODS, ARG_METHODS); \
resp->putHeaderIfNotExists(oatpp::web::protocol::http::Header::CORS_HEADERS, ARG_HEADERS);\
resp->putHeaderIfNotExists(oatpp::web::protocol::http::Header::CORS_MAX_AGE, ARG_MAX_AGE);
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_1(ENDPOINTNAME, ...) \
ENDPOINT_INTERCEPTOR(ENDPOINTNAME, ZZ__CORS_INTERCEPTOR_##ENDPOINTNAME) { \
auto resp = (this->*intercepted)(request); \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY( \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_ORIGIN, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_METHODS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_HEADERS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE \
) \
return resp; \
} \
ENDPOINT("OPTIONS", Z__ENDPOINT_##ENDPOINTNAME->info()->path, ZZ__CORS_OPTIONS_ENDPOINT_##ENDPOINTNAME) { \
auto resp = createResponse(Status::CODE_204, ""); \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY( \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_ORIGIN, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_METHODS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_HEADERS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE \
) \
return resp; \
}
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_2(ENDPOINTNAME, ORIGIN) \
ENDPOINT_INTERCEPTOR(ENDPOINTNAME, ZZ__CORS_INTERCEPTOR_##ENDPOINTNAME) { \
auto resp = (this->*intercepted)(request); \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY( \
ORIGIN, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_METHODS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_HEADERS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE \
) \
return resp; \
} \
ENDPOINT("OPTIONS", Z__ENDPOINT_##ENDPOINTNAME->info()->path, ZZ__CORS_OPTIONS_ENDPOINT_##ENDPOINTNAME) { \
auto resp = createResponse(Status::CODE_204, ""); \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY( \
ORIGIN, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_METHODS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_HEADERS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE \
) \
return resp; \
}
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_3(ENDPOINTNAME, ORIGIN, METHODS) \
ENDPOINT_INTERCEPTOR(ENDPOINTNAME, ZZ__CORS_INTERCEPTOR_##ENDPOINTNAME) { \
auto resp = (this->*intercepted)(request); \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY( \
ORIGIN, \
METHODS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_HEADERS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE \
) \
return resp; \
} \
ENDPOINT("OPTIONS", Z__ENDPOINT_##ENDPOINTNAME->info()->path, ZZ__CORS_OPTIONS_ENDPOINT_##ENDPOINTNAME) { \
auto resp = createResponse(Status::CODE_204, ""); \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY( \
ORIGIN, \
METHODS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_HEADERS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE \
) \
return resp; \
}
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_4(ENDPOINTNAME, ORIGIN, METHODS, HEADERS) \
ENDPOINT_INTERCEPTOR(ENDPOINTNAME, ZZ__CORS_INTERCEPTOR_##ENDPOINTNAME) { \
auto resp = (this->*intercepted)(request); \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY( \
ORIGIN, \
METHODS, \
HEADERS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE \
) \
return resp; \
} \
ENDPOINT("OPTIONS", Z__ENDPOINT_##ENDPOINTNAME->info()->path, ZZ__CORS_OPTIONS_ENDPOINT_##ENDPOINTNAME) { \
auto resp = createResponse(Status::CODE_204, ""); \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY( \
ORIGIN, \
METHODS, \
HEADERS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE \
) \
return resp; \
}
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_5(ENDPOINTNAME, ORIGIN, METHODS, HEADERS, MAX_AGE) \
ENDPOINT_INTERCEPTOR(ENDPOINTNAME, ZZ__CORS_INTERCEPTOR_##ENDPOINTNAME) { \
auto resp = (this->*intercepted)(request); \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY(ORIGIN, METHODS, HEADERS, MAX_AGE) \
return resp; \
} \
ENDPOINT("OPTIONS", Z__ENDPOINT_##ENDPOINTNAME->info()->path, ZZ__CORS_OPTIONS_ENDPOINT_##ENDPOINTNAME) { \
auto resp = createResponse(Status::CODE_204, ""); \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY(ORIGIN, METHODS, HEADERS, MAX_AGE) \
return resp; \
}
#define ADDCORS(...) \
OATPP_MACRO_EXPAND(OATPP_MACRO_MACRO_SELECTOR(OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_, (__VA_ARGS__)) (__VA_ARGS__))

View File

@ -0,0 +1,37 @@
/***************************************************************************
*
* Project _____ __ ____ _ _
* ( _ ) /__\ (_ _)_| |_ _| |_
* )(_)( /(__)\ )( (_ _)(_ _)
* (_____)(__)(__)(__) |_| |_|
*
*
* Copyright 2018-present, Leonid Stryzhevskyi <lganzzzo@gmail.com>
* Benedikt-Alexander Mokroß <bam@icognize.de>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
***************************************************************************/
#undef ADDCORS
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_1
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_2
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_3
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_4
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_5
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_ORIGIN
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_METHODS
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_HEADERS
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE

View File

@ -47,114 +47,4 @@
#include "./api_controller/base_define.hpp"
#include "./api_controller/auth_define.hpp"
// CORS MACRO // ------------------------------------------------------
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_ORIGIN "*"
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_METHODS "GET, POST, OPTIONS"
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_HEADERS "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization"
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE "1728000"
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY(ARG_ORIGIN, ARG_METHODS, ARG_HEADERS, ARG_MAX_AGE) \
resp->putHeaderIfNotExists(oatpp::web::protocol::http::Header::CORS_ORIGIN, ARG_ORIGIN); \
resp->putHeaderIfNotExists(oatpp::web::protocol::http::Header::CORS_METHODS, ARG_METHODS); \
resp->putHeaderIfNotExists(oatpp::web::protocol::http::Header::CORS_HEADERS, ARG_HEADERS);\
resp->putHeaderIfNotExists(oatpp::web::protocol::http::Header::CORS_MAX_AGE, ARG_MAX_AGE);
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_1(ENDPOINTNAME, ...) \
ResponseInterceptor Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME = [this](std::shared_ptr<oatpp::web::protocol::http::outgoing::Response> &resp) { \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY( \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_ORIGIN, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_METHODS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_HEADERS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE \
) \
return resp; \
}; \
const std::shared_ptr<ResponseInterceptor> Z__RESPONSE_INTERCEPTOR_##ENDPOINTNAME = addInterceptorForEndpoint( \
m_interceptors, \
std::make_shared<ResponseInterceptor>(Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME), \
#ENDPOINTNAME \
); \
ENDPOINT("OPTIONS", Z__ENDPOINT_##ENDPOINTNAME->info()->path, ZZ__CORS_OPTIONS_ENDPOINT_##ENDPOINTNAME) { \
auto resp = createResponse(Status::CODE_204, ""); \
return Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME(resp); \
}
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_2(ENDPOINTNAME, ORIGIN) \
ResponseInterceptor Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME = [this](std::shared_ptr<oatpp::web::protocol::http::outgoing::Response> &resp) { \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY( \
ORIGIN, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_METHODS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_HEADERS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE \
) \
return resp; \
}; \
const std::shared_ptr<ResponseInterceptor> Z__RESPONSE_INTERCEPTOR_##ENDPOINTNAME = addInterceptorForEndpoint( \
m_interceptors, \
std::make_shared<ResponseInterceptor>(Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME), \
#ENDPOINTNAME \
); \
ENDPOINT("OPTIONS", Z__ENDPOINT_##ENDPOINTNAME->info()->path, ZZ__CORS_OPTIONS_ENDPOINT_##ENDPOINTNAME) { \
auto resp = createResponse(Status::CODE_204, ""); \
return Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME(resp); \
}
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_3(ENDPOINTNAME, ORIGIN, METHODS) \
ResponseInterceptor Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME = [this](std::shared_ptr<oatpp::web::protocol::http::outgoing::Response> &resp) { \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY( \
ORIGIN, \
METHODS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_HEADERS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE \
) \
return resp; \
}; \
const std::shared_ptr<ResponseInterceptor> Z__RESPONSE_INTERCEPTOR_##ENDPOINTNAME = addInterceptorForEndpoint( \
m_interceptors, \
std::make_shared<ResponseInterceptor>(Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME), \
#ENDPOINTNAME \
); \
ENDPOINT("OPTIONS", Z__ENDPOINT_##ENDPOINTNAME->info()->path, ZZ__CORS_OPTIONS_ENDPOINT_##ENDPOINTNAME) { \
auto resp = createResponse(Status::CODE_204, ""); \
return Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME(resp); \
}
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_4(ENDPOINTNAME, ORIGIN, METHODS, HEADERS) \
ResponseInterceptor Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME = [this](std::shared_ptr<oatpp::web::protocol::http::outgoing::Response> &resp) { \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY( \
ORIGIN, \
METHODS, \
HEADERS, \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE \
) \
return resp; \
}; \
const std::shared_ptr<ResponseInterceptor> Z__RESPONSE_INTERCEPTOR_##ENDPOINTNAME = addInterceptorForEndpoint( \
m_interceptors, \
std::make_shared<ResponseInterceptor>(Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME), \
#ENDPOINTNAME \
); \
ENDPOINT("OPTIONS", Z__ENDPOINT_##ENDPOINTNAME->info()->path, ZZ__CORS_OPTIONS_ENDPOINT_##ENDPOINTNAME) { \
auto resp = createResponse(Status::CODE_204, ""); \
return Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME(resp); \
}
#define OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_5(ENDPOINTNAME, ORIGIN, METHODS, HEADERS, MAX_AGE) \
ResponseInterceptor Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME = [this](std::shared_ptr<oatpp::web::protocol::http::outgoing::Response> &resp) { \
OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY(ORIGIN, METHODS, HEADERS, MAX_AGE) \
return resp; \
}; \
const std::shared_ptr<ResponseInterceptor> Z__RESPONSE_INTERCEPTOR_##ENDPOINTNAME = addInterceptorForEndpoint( \
m_interceptors, \
std::make_shared<ResponseInterceptor>(Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME), \
#ENDPOINTNAME \
); \
ENDPOINT("OPTIONS", Z__ENDPOINT_##ENDPOINTNAME->info()->path, ZZ__CORS_OPTIONS_ENDPOINT_##ENDPOINTNAME) { \
auto resp = createResponse(Status::CODE_204, ""); \
return Z__RESPONSE_INTERCEPTOR_FUNC_##ENDPOINTNAME(resp); \
}
#define ADDCORS(...) \
OATPP_MACRO_EXPAND(OATPP_MACRO_MACRO_SELECTOR(OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_, (__VA_ARGS__)) (__VA_ARGS__))
#include "./api_controller/cors_define.hpp"

View File

@ -44,18 +44,4 @@
#include "./api_controller/base_undef.hpp"
#include "./api_controller/auth_undef.hpp"
// CORS MACRO // ------------------------------------------------------
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_1
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_2
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_3
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_4
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_MACRO_5
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_ORIGIN
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_METHODS
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_HEADERS
#undef OATPP_MACRO_API_CONTROLLER_ADDCORS_BODY_DEFAULT_MAX_AGE
#undef ADDCORS
#include "./api_controller/cors_undef.hpp"

View File

@ -157,10 +157,6 @@ public:
*/
typedef std::function<std::shared_ptr<Endpoint::Info>()> EndpointInfoBuilder;
typedef std::function<std::shared_ptr<OutgoingResponse>(std::shared_ptr<OutgoingResponse>&)> ResponseInterceptor;
typedef oatpp::collection::LinkedList<std::shared_ptr<ResponseInterceptor>> ResponseInterceptors;
typedef oatpp::collection::ListMap<oatpp::data::share::StringKeyLabelCI_FAST, std::shared_ptr<ResponseInterceptors>> EndpointResponseInterceptors;
template <class T>
using List = oatpp::data::mapping::type::List<T>;
template <class Value>
@ -278,7 +274,6 @@ protected:
protected:
std::shared_ptr<Endpoints> m_endpoints;
std::shared_ptr<EndpointResponseInterceptors> m_interceptors;
std::shared_ptr<handler::ErrorHandler> m_errorHandler;
std::shared_ptr<handler::AuthorizationHandler> m_defaultAuthorizationHandler;
std::shared_ptr<oatpp::data::mapping::ObjectMapper> m_defaultObjectMapper;
@ -289,7 +284,6 @@ public:
: m_endpoints(Endpoints::createShared())
, m_errorHandler(nullptr)
, m_defaultObjectMapper(defaultObjectMapper)
, m_interceptors(EndpointResponseInterceptors::createShared())
{}
public:
@ -303,17 +297,6 @@ public:
return endpoint;
}
static std::shared_ptr<ResponseInterceptor> addInterceptorForEndpoint(
const std::shared_ptr<EndpointResponseInterceptors> &interceptors,
const std::shared_ptr<ResponseInterceptor> &interceptor,
oatpp::data::share::StringKeyLabelCI_FAST endpoint) {
if (interceptors->find(endpoint) == nullptr) {
interceptors->put(endpoint, ResponseInterceptors::createShared());
}
interceptors->find(endpoint)->getValue()->pushBack(interceptor);
return interceptor;
}
/**
* Subscribes all created endpoint-handlers to corresponding URLs in Router
*/

View File

@ -53,60 +53,60 @@ void runTests() {
oatpp::base::Environment::printCompilationConfig();
OATPP_LOGD("aaa", "coroutine size=%d", sizeof(oatpp::async::AbstractCoroutine));
OATPP_LOGD("aaa", "action size=%d", sizeof(oatpp::async::Action));
OATPP_RUN_TEST(oatpp::test::base::RegRuleTest);
OATPP_RUN_TEST(oatpp::test::base::CommandLineArgumentsTest);
OATPP_RUN_TEST(oatpp::test::memory::MemoryPoolTest);
OATPP_RUN_TEST(oatpp::test::memory::PerfTest);
OATPP_RUN_TEST(oatpp::test::collection::LinkedListTest);
OATPP_RUN_TEST(oatpp::test::core::data::share::MemoryLabelTest);
OATPP_RUN_TEST(oatpp::test::core::data::stream::ChunkedBufferTest);
OATPP_RUN_TEST(oatpp::test::core::data::mapping::type::TypeTest);
OATPP_RUN_TEST(oatpp::test::async::LockTest);
OATPP_RUN_TEST(oatpp::test::parser::CaretTest);
OATPP_RUN_TEST(oatpp::test::parser::json::mapping::DeserializerTest);
OATPP_RUN_TEST(oatpp::test::parser::json::mapping::DTOMapperPerfTest);
OATPP_RUN_TEST(oatpp::test::parser::json::mapping::DTOMapperTest);
OATPP_RUN_TEST(oatpp::test::encoding::Base64Test);
OATPP_RUN_TEST(oatpp::test::encoding::UnicodeTest);
OATPP_RUN_TEST(oatpp::test::network::UrlTest);
OATPP_RUN_TEST(oatpp::test::network::virtual_::PipeTest);
OATPP_RUN_TEST(oatpp::test::network::virtual_::InterfaceTest);
OATPP_RUN_TEST(oatpp::test::web::mime::multipart::StatefulParserTest);
OATPP_RUN_TEST(oatpp::test::web::server::api::ApiControllerTest);
OATPP_RUN_TEST(oatpp::test::web::server::handler::AuthorizationHandlerTest);
{
oatpp::test::web::PipelineTest test_virtual(0, 3000);
test_virtual.run();
oatpp::test::web::PipelineTest test_port(8000, 3000);
test_port.run();
}
{
oatpp::test::web::PipelineAsyncTest test_virtual(0, 3000);
test_virtual.run();
oatpp::test::web::PipelineAsyncTest test_port(8000, 3000);
test_port.run();
}
// OATPP_LOGD("aaa", "coroutine size=%d", sizeof(oatpp::async::AbstractCoroutine));
// OATPP_LOGD("aaa", "action size=%d", sizeof(oatpp::async::Action));
//
// OATPP_RUN_TEST(oatpp::test::base::RegRuleTest);
// OATPP_RUN_TEST(oatpp::test::base::CommandLineArgumentsTest);
//
// OATPP_RUN_TEST(oatpp::test::memory::MemoryPoolTest);
// OATPP_RUN_TEST(oatpp::test::memory::PerfTest);
//
// OATPP_RUN_TEST(oatpp::test::collection::LinkedListTest);
//
// OATPP_RUN_TEST(oatpp::test::core::data::share::MemoryLabelTest);
// OATPP_RUN_TEST(oatpp::test::core::data::stream::ChunkedBufferTest);
// OATPP_RUN_TEST(oatpp::test::core::data::mapping::type::TypeTest);
//
// OATPP_RUN_TEST(oatpp::test::async::LockTest);
//
// OATPP_RUN_TEST(oatpp::test::parser::CaretTest);
// OATPP_RUN_TEST(oatpp::test::parser::json::mapping::DeserializerTest);
// OATPP_RUN_TEST(oatpp::test::parser::json::mapping::DTOMapperPerfTest);
// OATPP_RUN_TEST(oatpp::test::parser::json::mapping::DTOMapperTest);
//
// OATPP_RUN_TEST(oatpp::test::encoding::Base64Test);
// OATPP_RUN_TEST(oatpp::test::encoding::UnicodeTest);
//
// OATPP_RUN_TEST(oatpp::test::network::UrlTest);
// OATPP_RUN_TEST(oatpp::test::network::virtual_::PipeTest);
// OATPP_RUN_TEST(oatpp::test::network::virtual_::InterfaceTest);
//
// OATPP_RUN_TEST(oatpp::test::web::mime::multipart::StatefulParserTest);
//
// OATPP_RUN_TEST(oatpp::test::web::server::api::ApiControllerTest);
//
// OATPP_RUN_TEST(oatpp::test::web::server::handler::AuthorizationHandlerTest);
//
// {
//
// oatpp::test::web::PipelineTest test_virtual(0, 3000);
// test_virtual.run();
//
// oatpp::test::web::PipelineTest test_port(8000, 3000);
// test_port.run();
//
// }
//
// {
//
// oatpp::test::web::PipelineAsyncTest test_virtual(0, 3000);
// test_virtual.run();
//
// oatpp::test::web::PipelineAsyncTest test_port(8000, 3000);
// test_port.run();
//
// }
{

View File

@ -183,7 +183,7 @@ void FullTest::onRun() {
OATPP_ASSERT(header->second.toString() == "GET, POST, OPTIONS");
header = response->getHeaders().find(oatpp::web::protocol::http::Header::CORS_HEADERS);
OATPP_ASSERT(header != response->getHeaders().end());
OATPP_ASSERT(header->second.toString() == "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range");
OATPP_ASSERT(header->second.toString() == "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization");
}
{ // test simple OPTIONS with CORS
@ -197,7 +197,7 @@ void FullTest::onRun() {
OATPP_ASSERT(header->second.toString() == "GET, POST, OPTIONS");
header = response->getHeaders().find(oatpp::web::protocol::http::Header::CORS_HEADERS);
OATPP_ASSERT(header != response->getHeaders().end());
OATPP_ASSERT(header->second.toString() == "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range");
OATPP_ASSERT(header->second.toString() == "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization");
}
{ // test simple GET with CORS
@ -213,7 +213,7 @@ void FullTest::onRun() {
OATPP_ASSERT(header->second.toString() == "GET, POST, OPTIONS");
header = response->getHeaders().find(oatpp::web::protocol::http::Header::CORS_HEADERS);
OATPP_ASSERT(header != response->getHeaders().end());
OATPP_ASSERT(header->second.toString() == "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range");
OATPP_ASSERT(header->second.toString() == "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization");
}
{ // test simple GET with CORS
@ -229,7 +229,7 @@ void FullTest::onRun() {
OATPP_ASSERT(header->second.toString() == "GET, OPTIONS");
header = response->getHeaders().find(oatpp::web::protocol::http::Header::CORS_HEADERS);
OATPP_ASSERT(header != response->getHeaders().end());
OATPP_ASSERT(header->second.toString() == "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range");
OATPP_ASSERT(header->second.toString() == "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization");
}
{ // test simple GET with CORS