diff --git a/frameworks/js/builtin/CMakeLists.txt b/frameworks/js/builtin/CMakeLists.txt index 6ce2e1312e84cba250fdf71172c95622e59f1ff4..ea24a271865e0c95ef31ce78980865cace0b3b49 100644 --- a/frameworks/js/builtin/CMakeLists.txt +++ b/frameworks/js/builtin/CMakeLists.txt @@ -58,5 +58,6 @@ target_link_libraries(test_fetch_module curl-d) target_link_libraries(test_fetch_module securec) add_compile_definitions(NO_SSL_CERTIFICATION=1) +add_compile_definitions(__LITEOS__=1) add_subdirectory(test) \ No newline at end of file diff --git a/frameworks/js/builtin/fetch_module.cpp b/frameworks/js/builtin/fetch_module.cpp index b7f95e1a060770d344399978e4f79e357ec6a691..05143e9468465d4ef83917da3c817bdaf90419c1 100644 --- a/frameworks/js/builtin/fetch_module.cpp +++ b/frameworks/js/builtin/fetch_module.cpp @@ -14,8 +14,11 @@ */ #include "fetch_module.h" + +#include + #include "http_request/http_async_callback.h" -#include "http_request/http_request.h" +#include "http_request/http_constant.h" #include "http_request/http_request_utils.h" #include "js_async_work.h" #include "securec.h" diff --git a/frameworks/js/builtin/fetch_module.h b/frameworks/js/builtin/fetch_module.h index fa239919f4952e862f39638684fc19b7e7ec5bb0..98aba9f999143ce9da6b4e130527a281122812d3 100644 --- a/frameworks/js/builtin/fetch_module.h +++ b/frameworks/js/builtin/fetch_module.h @@ -16,10 +16,9 @@ #ifndef OHOS_ACELITE_FETCH_MODULE_H #define OHOS_ACELITE_FETCH_MODULE_H -#include "http_request/http_request.h" +#include "http_request/request_data.h" #include "jsi.h" #include "non_copyable.h" -#include namespace OHOS { namespace ACELite { diff --git a/frameworks/js/builtin/http_request/http_async_callback.cpp b/frameworks/js/builtin/http_request/http_async_callback.cpp index ca07b5e8bd03522ac76470975279b5f3eaede00a..6f84fca81318eaa61ad3ff5e815a8a119165ec4b 100644 --- a/frameworks/js/builtin/http_request/http_async_callback.cpp +++ b/frameworks/js/builtin/http_request/http_async_callback.cpp @@ -14,12 +14,14 @@ */ #include "http_async_callback.h" -#include "http_request.h" -#include "http_request_utils.h" -#include "securec.h" + #include #include +#include "http_constant.h" +#include "http_request.h" +#include "http_request_utils.h" + namespace OHOS { namespace ACELite { diff --git a/frameworks/js/builtin/http_request/http_async_callback.h b/frameworks/js/builtin/http_request/http_async_callback.h index 5328e4d147c1b83a57ca271eb9e545b3222329a2..944c68e9c4bd189652519cb2a0ad19fec0749677 100644 --- a/frameworks/js/builtin/http_request/http_async_callback.h +++ b/frameworks/js/builtin/http_request/http_async_callback.h @@ -19,7 +19,6 @@ #include "../fetch_module.h" #include "jsi.h" #include "non_copyable.h" -#include "request_data.h" #include "response_data.h" namespace OHOS { diff --git a/frameworks/js/builtin/http_request/http_constant.cpp b/frameworks/js/builtin/http_request/http_constant.cpp index 6dd52733ed4c2b57b98df66b9eeeb39b6b1f9073..09ded8e39037590c80cc397efbf6713fc94b4aea 100644 --- a/frameworks/js/builtin/http_request/http_constant.cpp +++ b/frameworks/js/builtin/http_request/http_constant.cpp @@ -13,44 +13,44 @@ * limitations under the License. */ +#include "http_constant.h" + namespace OHOS { namespace ACELite { -namespace HttpConstant { -int HTTP_RESPONSE_CODE_INVALID = -1; +const int HttpConstant::HTTP_RESPONSE_CODE_INVALID = -1; -const char *HTTP_RESPONSE_TYPE_JSON = "json"; +const char *const HttpConstant::HTTP_RESPONSE_TYPE_JSON = "json"; -const char *HTTP_HEADER_SEPARATOR = ":"; +const char *const HttpConstant::HTTP_HEADER_SEPARATOR = ":"; -const char *HTTP_DEFAULT_USER_AGENT = "libcurl-agent/1.0"; +const char *const HttpConstant::HTTP_DEFAULT_USER_AGENT = "libcurl-agent/1.0"; -const char *HTTP_DEFAULT_CONTENT_TYPE = "text/plain"; -const char *HTTP_HEADER_KEY_CONTENT_TYPE = "content-type"; -const char *HTTP_CONTENT_TYPE_URL_ENCODE = "application/x-www-form-urlencoded"; -const char *HTTP_CONTENT_TYPE_JSON = "application/json"; +const char *const HttpConstant::HTTP_DEFAULT_CONTENT_TYPE = "text/plain"; +const char *const HttpConstant::HTTP_HEADER_KEY_CONTENT_TYPE = "content-type"; +const char *const HttpConstant::HTTP_CONTENT_TYPE_URL_ENCODE = "application/x-www-form-urlencoded"; +const char *const HttpConstant::HTTP_CONTENT_TYPE_JSON = "application/json"; -const char *HTTP_URL_PARAM_SEPARATOR = "?"; -const char *HTTP_URL_PARAM_DELIMITER = "&"; +const char *const HttpConstant::HTTP_URL_PARAM_SEPARATOR = "?"; +const char *const HttpConstant::HTTP_URL_PARAM_DELIMITER = "&"; -const char *HTTP_METHOD_GET = "GET"; -const char *HTTP_METHOD_HEAD = "HEAD"; -const char *HTTP_METHOD_OPTIONS = "OPTIONS"; -const char *HTTP_METHOD_TRACE = "TRACE"; -const char *HTTP_METHOD_DELETE = "DELETE"; -const char *HTTP_METHOD_POST = "POST"; -const char *HTTP_METHOD_PUT = "PUT"; +const char *const HttpConstant::HTTP_METHOD_GET = "GET"; +const char *const HttpConstant::HTTP_METHOD_HEAD = "HEAD"; +const char *const HttpConstant::HTTP_METHOD_OPTIONS = "OPTIONS"; +const char *const HttpConstant::HTTP_METHOD_TRACE = "TRACE"; +const char *const HttpConstant::HTTP_METHOD_DELETE = "DELETE"; +const char *const HttpConstant::HTTP_METHOD_POST = "POST"; +const char *const HttpConstant::HTTP_METHOD_PUT = "PUT"; -const char *KEY_HTTP_RESPONSE_CODE = "code"; -const char *KEY_HTTP_RESPONSE_DATA = "data"; -const char *KEY_HTTP_RESPONSE_HEADERS = "headers"; +const char *const HttpConstant::KEY_HTTP_RESPONSE_CODE = "code"; +const char *const HttpConstant::KEY_HTTP_RESPONSE_DATA = "data"; +const char *const HttpConstant::KEY_HTTP_RESPONSE_HEADERS = "headers"; -const char *KEY_HTTP_REQUEST_URL = "url"; -const char *KEY_HTTP_REQUEST_DATA = "data"; -const char *KEY_HTTP_REQUEST_HEADER = "header"; -const char *KEY_HTTP_REQUEST_METHOD = "method"; -const char *KEY_HTTP_REQUEST_RESPONSE_TYPE = "responseType"; +const char *const HttpConstant::KEY_HTTP_REQUEST_URL = "url"; +const char *const HttpConstant::KEY_HTTP_REQUEST_DATA = "data"; +const char *const HttpConstant::KEY_HTTP_REQUEST_HEADER = "header"; +const char *const HttpConstant::KEY_HTTP_REQUEST_METHOD = "method"; +const char *const HttpConstant::KEY_HTTP_REQUEST_RESPONSE_TYPE = "responseType"; -} // namespace HttpConstant } // namespace ACELite } // namespace OHOS \ No newline at end of file diff --git a/frameworks/js/builtin/http_request/http_constant.h b/frameworks/js/builtin/http_request/http_constant.h index a1bba27c48627ec856d03a2bd07f7e0ee5e0ef64..75be041d6392a1fd222f0918cd9571314e2ad2f6 100644 --- a/frameworks/js/builtin/http_request/http_constant.h +++ b/frameworks/js/builtin/http_request/http_constant.h @@ -16,45 +16,48 @@ #ifndef OHOS_ACELITE_HTTP_CONSTANT_H #define OHOS_ACELITE_HTTP_CONSTANT_H +#include "non_copyable.h" + namespace OHOS { namespace ACELite { -namespace HttpConstant { - -extern const int HTTP_RESPONSE_CODE_INVALID; +class HttpConstant final { +public: + ACE_DISALLOW_COPY_AND_MOVE(HttpConstant); + static const int HTTP_RESPONSE_CODE_INVALID; -extern const char *const HTTP_RESPONSE_TYPE_JSON; + static const char *const HTTP_RESPONSE_TYPE_JSON; -extern const char *const HTTP_HEADER_SEPARATOR; + static const char *const HTTP_HEADER_SEPARATOR; -extern const char *const HTTP_DEFAULT_USER_AGENT; + static const char *const HTTP_DEFAULT_USER_AGENT; -extern const char *const HTTP_DEFAULT_CONTENT_TYPE; -extern const char *const HTTP_HEADER_KEY_CONTENT_TYPE; -extern const char *const HTTP_CONTENT_TYPE_URL_ENCODE; -extern const char *const HTTP_CONTENT_TYPE_JSON; + static const char *const HTTP_DEFAULT_CONTENT_TYPE; + static const char *const HTTP_HEADER_KEY_CONTENT_TYPE; + static const char *const HTTP_CONTENT_TYPE_URL_ENCODE; + static const char *const HTTP_CONTENT_TYPE_JSON; -extern const char *const HTTP_URL_PARAM_SEPARATOR; -extern const char *const HTTP_URL_PARAM_DELIMITER; + static const char *const HTTP_URL_PARAM_SEPARATOR; + static const char *const HTTP_URL_PARAM_DELIMITER; -extern const char *const HTTP_METHOD_GET; -extern const char *const HTTP_METHOD_HEAD; -extern const char *const HTTP_METHOD_OPTIONS; -extern const char *const HTTP_METHOD_TRACE; -extern const char *const HTTP_METHOD_DELETE; -extern const char *const HTTP_METHOD_POST; -extern const char *const HTTP_METHOD_PUT; + static const char *const HTTP_METHOD_GET; + static const char *const HTTP_METHOD_HEAD; + static const char *const HTTP_METHOD_OPTIONS; + static const char *const HTTP_METHOD_TRACE; + static const char *const HTTP_METHOD_DELETE; + static const char *const HTTP_METHOD_POST; + static const char *const HTTP_METHOD_PUT; -extern const char *const KEY_HTTP_RESPONSE_CODE; -extern const char *const KEY_HTTP_RESPONSE_DATA; -extern const char *const KEY_HTTP_RESPONSE_HEADERS; + static const char *const KEY_HTTP_RESPONSE_CODE; + static const char *const KEY_HTTP_RESPONSE_DATA; + static const char *const KEY_HTTP_RESPONSE_HEADERS; -extern const char *const KEY_HTTP_REQUEST_URL; -extern const char *const KEY_HTTP_REQUEST_DATA; -extern const char *const KEY_HTTP_REQUEST_HEADER; -extern const char *const KEY_HTTP_REQUEST_METHOD; -extern const char *const KEY_HTTP_REQUEST_RESPONSE_TYPE; + static const char *const KEY_HTTP_REQUEST_URL; + static const char *const KEY_HTTP_REQUEST_DATA; + static const char *const KEY_HTTP_REQUEST_HEADER; + static const char *const KEY_HTTP_REQUEST_METHOD; + static const char *const KEY_HTTP_REQUEST_RESPONSE_TYPE; -} // namespace HttpConstant +}; } // namespace ACELite } // namespace OHOS diff --git a/frameworks/js/builtin/http_request/http_request.cpp b/frameworks/js/builtin/http_request/http_request.cpp index cc5d5579103f9ead4cf86973620ea01042216afb..8c83441e7755db3f1b29b5686efac0f3f6bdc591 100644 --- a/frameworks/js/builtin/http_request/http_request.cpp +++ b/frameworks/js/builtin/http_request/http_request.cpp @@ -14,8 +14,11 @@ */ #include "http_request.h" + +#include + +#include "http_constant.h" #include "http_request_utils.h" -#include #define ACE_CURL_EASY_SET_OPTION(handle, opt, data, respData) \ do { \ @@ -23,22 +26,22 @@ if (result != CURLE_OK) { \ const char *err = curl_easy_strerror(result); \ HTTP_REQUEST_ERROR("Failed to set option: %s, %s", #opt, err); \ - respData->SetErrString(err); \ - respData->SetCode(result); \ + (respData)->SetErrString(err); \ + (respData)->SetCode(result); \ return false; \ } \ } while (0) -#define ACE_CURL_EASY_PERFORM(handle, reqData, respData) \ - do { \ - CURLcode result = curl_easy_perform(handle); \ - if (result != CURLE_OK) { \ - const char *err = curl_easy_strerror(result); \ - HTTP_REQUEST_ERROR("Failed to fetch, url:%s, %s", reqData->GetUrl().c_str(), err); \ - respData->SetErrString(err); \ - respData->SetCode(result); \ - return false; \ - } \ +#define ACE_CURL_EASY_PERFORM(handle, reqData, respData) \ + do { \ + CURLcode result = curl_easy_perform(handle); \ + if (result != CURLE_OK) { \ + const char *err = curl_easy_strerror(result); \ + HTTP_REQUEST_ERROR("Failed to fetch, url:%s, %s", (reqData)->GetUrl().c_str(), err); \ + (respData)->SetErrString(err); \ + (respData)->SetCode(result); \ + return false; \ + } \ } while (0) #define ACE_CURL_EASY_GET_INFO(handle, opt, data, respData) \ @@ -47,8 +50,8 @@ if (result != CURLE_OK) { \ const char *err = curl_easy_strerror(result); \ HTTP_REQUEST_ERROR("Failed to get info: %s, %s", #opt, err); \ - respData->SetErrString(err); \ - respData->SetCode(result); \ + (respData)->SetErrString(err); \ + (respData)->SetCode(result); \ return false; \ } \ } while (0) diff --git a/frameworks/js/builtin/http_request/http_request.h b/frameworks/js/builtin/http_request/http_request.h index c5b84d021332686d480d2789d23858243b67096a..4831942868eaaf4ff26201c3f9f1bed7d299ffc2 100644 --- a/frameworks/js/builtin/http_request/http_request.h +++ b/frameworks/js/builtin/http_request/http_request.h @@ -16,15 +16,13 @@ #ifndef OHOS_ACELITE_HTTP_REQUEST_H #define OHOS_ACELITE_HTTP_REQUEST_H +#include +#include + #include "curl/curl.h" -#include "http_constant.h" #include "non_copyable.h" #include "request_data.h" #include "response_data.h" -#include "securec.h" -#include -#include -#include namespace OHOS { namespace ACELite { diff --git a/frameworks/js/builtin/http_request/http_request_utils.cpp b/frameworks/js/builtin/http_request/http_request_utils.cpp index 080417f4a0d242ab25e85818c48758003e6a5fd5..7e029f1a47b9cfabbde7a6637d249e65db823958 100644 --- a/frameworks/js/builtin/http_request/http_request_utils.cpp +++ b/frameworks/js/builtin/http_request/http_request_utils.cpp @@ -14,10 +14,10 @@ */ #include "http_request_utils.h" -#include "http_constant.h" -#include + #include -#include + +#include "http_constant.h" namespace OHOS { namespace ACELite { diff --git a/frameworks/js/builtin/http_request/http_request_utils.h b/frameworks/js/builtin/http_request/http_request_utils.h index d3332e194e569b19d47f0d8a166fdc07101c7dec..a626511249d7d9fefeec6a1480e5c1d0ae0c23df 100644 --- a/frameworks/js/builtin/http_request/http_request_utils.h +++ b/frameworks/js/builtin/http_request/http_request_utils.h @@ -16,12 +16,12 @@ #ifndef OHOS_ACELITE_HTTP_REQUEST_UTILS_H #define OHOS_ACELITE_HTTP_REQUEST_UTILS_H -#include "ace_log.h" -#include "curl/curl.h" -#include "securec.h" #include #include +#include "ace_log.h" +#include "curl/curl.h" + #define HTTP_REQUEST_INFO(...) \ do { \ HILOG_INFO(HILOG_MODULE_ACE, "[HTTP][INFO] " __VA_ARGS__); \ diff --git a/frameworks/js/builtin/http_request/request_data.cpp b/frameworks/js/builtin/http_request/request_data.cpp index 6fdc744000223b6dba7225960dc94bf7e8f69385..bc48a313243c55a040b2b6597f4922c73f125f4f 100644 --- a/frameworks/js/builtin/http_request/request_data.cpp +++ b/frameworks/js/builtin/http_request/request_data.cpp @@ -14,6 +14,7 @@ */ #include "request_data.h" + #include "http_constant.h" namespace OHOS { diff --git a/frameworks/js/builtin/http_request/request_data.h b/frameworks/js/builtin/http_request/request_data.h index 71f8cb489f2dc5d156ef70b1d4df44d59fed41cf..35d742612071959860376f21280f69d0b4a8fadb 100644 --- a/frameworks/js/builtin/http_request/request_data.h +++ b/frameworks/js/builtin/http_request/request_data.h @@ -16,7 +16,6 @@ #ifndef OHOS_ACELITE_REQUEST_DATA_H #define OHOS_ACELITE_REQUEST_DATA_H -#include #include #include @@ -26,13 +25,13 @@ class RequestData { public: RequestData(); - void SetUrl(const std::string &url); + void SetUrl(const std::string &urlPara); - void SetMethod(const std::string &method); + void SetMethod(const std::string &methodPara); void SetHeader(const std::string &key, const std::string &val); - void SetBody(const std::string &body); + void SetBody(const std::string &bodyPara); void SetResponseType(const std::string &respType); diff --git a/frameworks/js/builtin/http_request/response_data.cpp b/frameworks/js/builtin/http_request/response_data.cpp index ca81d0109524133935417d62b7823be23eafd700..4b48243102f38dc14e2b40a40bc91f4f09c87a3e 100644 --- a/frameworks/js/builtin/http_request/response_data.cpp +++ b/frameworks/js/builtin/http_request/response_data.cpp @@ -14,6 +14,8 @@ */ #include "response_data.h" + +#include "http_constant.h" #include "http_request_utils.h" namespace OHOS { diff --git a/frameworks/js/builtin/http_request/response_data.h b/frameworks/js/builtin/http_request/response_data.h index 56bd0e259822bc11d1dc605a68041471daf16c89..ecea2075a251adf98df18a3204948755d770be61 100644 --- a/frameworks/js/builtin/http_request/response_data.h +++ b/frameworks/js/builtin/http_request/response_data.h @@ -16,10 +16,8 @@ #ifndef OHOS_ACELITE_RESPONSE_DATA_H #define OHOS_ACELITE_RESPONSE_DATA_H -#include "http_constant.h" #include #include -#include namespace OHOS { namespace ACELite { @@ -27,13 +25,13 @@ class ResponseData { public: ResponseData(); - void SetCode(int32_t code); + void SetCode(int32_t codePara); void SetErrString(const std::string &err); void ParseHeaders(const std::string &headersStr); - void AppendData(const char *data, size_t size); + void AppendData(const char *dataPara, size_t size); [[nodiscard]] int32_t GetCode() const; diff --git a/frameworks/js/builtin/test/include/ace_log.h b/frameworks/js/builtin/test/include/ace_log.h index 9f298047a85b16602871ae2549cff37c4ea67349..c2c3d7ac7ffffd17ebaac0c904900452d12183eb 100644 --- a/frameworks/js/builtin/test/include/ace_log.h +++ b/frameworks/js/builtin/test/include/ace_log.h @@ -18,8 +18,6 @@ #include -#define __LITEOS__ - #define HILOG_ERROR(mod, ...) \ do { \ printf(__VA_ARGS__); \ diff --git a/frameworks/js/builtin/test/include/memory_heap.h b/frameworks/js/builtin/test/include/memory_heap.h index b7d7fdb18c6f1e1cc59db396f891cbefd5bbd0e3..9a949dcb40e5f61d282a6f98a031cdd2bac67712 100644 --- a/frameworks/js/builtin/test/include/memory_heap.h +++ b/frameworks/js/builtin/test/include/memory_heap.h @@ -13,4 +13,9 @@ * limitations under the License. */ -#include "../../../../../../../ace/ace_engine_lite/interfaces/innerkits/builtin/base/memory_heap.h" \ No newline at end of file +#ifndef TEST_OHOS_ACELITE_MEMORY_HEAP_H +#define TEST_OHOS_ACELITE_MEMORY_HEAP_H + +#include "../../../../../../../ace/ace_engine_lite/interfaces/innerkits/builtin/base/memory_heap.h" + +#endif \ No newline at end of file diff --git a/frameworks/js/builtin/test/test_fetch_module.cpp b/frameworks/js/builtin/test/test_fetch_module.cpp index 50f05957a4aac5493b272913b30b0f33a60a50be..6bc4b90aa14e87f28a68e786582bf295c8d33aa5 100644 --- a/frameworks/js/builtin/test/test_fetch_module.cpp +++ b/frameworks/js/builtin/test/test_fetch_module.cpp @@ -14,7 +14,7 @@ */ #include "../fetch_module.h" -#include "../http_request/http_async_callback.h" +#include "../http_request/http_constant.h" #include "../http_request/http_request_utils.h" #include "jerryscript-core.h" #include "js_async_work.h" @@ -80,7 +80,7 @@ JSIValue TestCallbackOnSuccess(const JSIValue thisVal, const JSIValue *args, uin static_cast(JSI::GetNumberProperty(para, HttpConstant::KEY_HTTP_RESPONSE_CODE))); size_t size = 0; - char *data = JSI::GetStringProperty(para, HttpConstant::KEY_HTTP_RESPONSE_DATA, size); + char *data = JSI::GetStringPropertyWithBufferSize(para, HttpConstant::KEY_HTTP_RESPONSE_DATA, size); std::string body; for (uint32_t index = 0; index < size; ++index) { if (data[index] != 0) {