11e934351Sopenharmony_ci/* 21e934351Sopenharmony_ci * Copyright (c) 2023-2024 Huawei Device Co., Ltd. 31e934351Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 41e934351Sopenharmony_ci * you may not use this file except in compliance with the License. 51e934351Sopenharmony_ci * You may obtain a copy of the License at 61e934351Sopenharmony_ci * 71e934351Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 81e934351Sopenharmony_ci * 91e934351Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 101e934351Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 111e934351Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121e934351Sopenharmony_ci * See the License for the specific language governing permissions and 131e934351Sopenharmony_ci * limitations under the License. 141e934351Sopenharmony_ci */ 151e934351Sopenharmony_ci 161e934351Sopenharmony_ci#include <cstring> 171e934351Sopenharmony_ci#include "gtest/gtest.h" 181e934351Sopenharmony_ci#include "http_client_request.h" 191e934351Sopenharmony_ci#include "http_client_constant.h" 201e934351Sopenharmony_ci#include "netstack_log.h" 211e934351Sopenharmony_ci 221e934351Sopenharmony_ciusing namespace OHOS::NetStack::HttpClient; 231e934351Sopenharmony_ci 241e934351Sopenharmony_ciclass HttpClientRequestTest : public testing::Test { 251e934351Sopenharmony_cipublic: 261e934351Sopenharmony_ci static void SetUpTestCase() {} 271e934351Sopenharmony_ci 281e934351Sopenharmony_ci static void TearDownTestCase() {} 291e934351Sopenharmony_ci 301e934351Sopenharmony_ci virtual void SetUp() {} 311e934351Sopenharmony_ci 321e934351Sopenharmony_ci virtual void TearDown() {} 331e934351Sopenharmony_ci}; 341e934351Sopenharmony_ci 351e934351Sopenharmony_cinamespace { 361e934351Sopenharmony_ciusing namespace std; 371e934351Sopenharmony_ciusing namespace testing::ext; 381e934351Sopenharmony_ciconstexpr char OTHER_CA_PATH[] = "/etc/ssl/certs/other.pem"; 391e934351Sopenharmony_cistatic constexpr const uint32_t HTTP_DEFAULT_PRIORITY = 500; 401e934351Sopenharmony_ci 411e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, GetCaPathTest001, TestSize.Level1) 421e934351Sopenharmony_ci{ 431e934351Sopenharmony_ci HttpClientRequest req; 441e934351Sopenharmony_ci 451e934351Sopenharmony_ci string path = req.GetCaPath(); 461e934351Sopenharmony_ci EXPECT_EQ(path, ""); 471e934351Sopenharmony_ci} 481e934351Sopenharmony_ci 491e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, SetCaPathTest001, TestSize.Level1) 501e934351Sopenharmony_ci{ 511e934351Sopenharmony_ci HttpClientRequest req; 521e934351Sopenharmony_ci 531e934351Sopenharmony_ci req.SetCaPath(""); 541e934351Sopenharmony_ci string path = req.GetCaPath(); 551e934351Sopenharmony_ci 561e934351Sopenharmony_ci EXPECT_EQ(path, ""); 571e934351Sopenharmony_ci} 581e934351Sopenharmony_ci 591e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, SetCaPathTest002, TestSize.Level1) 601e934351Sopenharmony_ci{ 611e934351Sopenharmony_ci HttpClientRequest req; 621e934351Sopenharmony_ci 631e934351Sopenharmony_ci req.SetCaPath(OTHER_CA_PATH); 641e934351Sopenharmony_ci string path = req.GetCaPath(); 651e934351Sopenharmony_ci 661e934351Sopenharmony_ci EXPECT_EQ(path, OTHER_CA_PATH); 671e934351Sopenharmony_ci} 681e934351Sopenharmony_ci 691e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, GetURLTest001, TestSize.Level1) 701e934351Sopenharmony_ci{ 711e934351Sopenharmony_ci HttpClientRequest req; 721e934351Sopenharmony_ci 731e934351Sopenharmony_ci string urlTest = req.GetURL(); 741e934351Sopenharmony_ci EXPECT_EQ(urlTest, ""); 751e934351Sopenharmony_ci} 761e934351Sopenharmony_ci 771e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, SetURLTest001, TestSize.Level1) 781e934351Sopenharmony_ci{ 791e934351Sopenharmony_ci HttpClientRequest req; 801e934351Sopenharmony_ci std::string url = "http://www.httpbin.org/get"; 811e934351Sopenharmony_ci req.SetURL(url); 821e934351Sopenharmony_ci string urlTest = req.GetURL(); 831e934351Sopenharmony_ci EXPECT_EQ(urlTest, url); 841e934351Sopenharmony_ci} 851e934351Sopenharmony_ci 861e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, GetMethodTest001, TestSize.Level1) 871e934351Sopenharmony_ci{ 881e934351Sopenharmony_ci HttpClientRequest req; 891e934351Sopenharmony_ci 901e934351Sopenharmony_ci string method = req.GetMethod(); 911e934351Sopenharmony_ci EXPECT_EQ(method, HttpConstant::HTTP_METHOD_GET); 921e934351Sopenharmony_ci} 931e934351Sopenharmony_ci 941e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, SetMethodTest001, TestSize.Level1) 951e934351Sopenharmony_ci{ 961e934351Sopenharmony_ci HttpClientRequest req; 971e934351Sopenharmony_ci req.SetMethod("abc"); 981e934351Sopenharmony_ci string method = req.GetMethod(); 991e934351Sopenharmony_ci NETSTACK_LOGI("SetMethodTest001 GetMethod = %{public}s", method.c_str()); 1001e934351Sopenharmony_ci EXPECT_EQ(method, HttpConstant::HTTP_METHOD_GET); 1011e934351Sopenharmony_ci} 1021e934351Sopenharmony_ci 1031e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, SetMethodTest002, TestSize.Level1) 1041e934351Sopenharmony_ci{ 1051e934351Sopenharmony_ci HttpClientRequest req; 1061e934351Sopenharmony_ci req.SetMethod(HttpConstant::HTTP_METHOD_POST); 1071e934351Sopenharmony_ci string method = req.GetMethod(); 1081e934351Sopenharmony_ci EXPECT_EQ(method, HttpConstant::HTTP_METHOD_POST); 1091e934351Sopenharmony_ci} 1101e934351Sopenharmony_ci 1111e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, GetBodyTest001, TestSize.Level1) 1121e934351Sopenharmony_ci{ 1131e934351Sopenharmony_ci HttpClientRequest req; 1141e934351Sopenharmony_ci std::string body = ""; 1151e934351Sopenharmony_ci 1161e934351Sopenharmony_ci string bodyTest = req.GetBody(); 1171e934351Sopenharmony_ci EXPECT_EQ(bodyTest, body); 1181e934351Sopenharmony_ci} 1191e934351Sopenharmony_ci 1201e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, SetBodyTest001, TestSize.Level1) 1211e934351Sopenharmony_ci{ 1221e934351Sopenharmony_ci HttpClientRequest req; 1231e934351Sopenharmony_ci std::string body = "hello world"; 1241e934351Sopenharmony_ci 1251e934351Sopenharmony_ci req.SetBody(body.data(), body.length()); 1261e934351Sopenharmony_ci string bodyTest = req.GetBody(); 1271e934351Sopenharmony_ci 1281e934351Sopenharmony_ci EXPECT_EQ(bodyTest, body); 1291e934351Sopenharmony_ci} 1301e934351Sopenharmony_ci 1311e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, GetTimeoutTest001, TestSize.Level1) 1321e934351Sopenharmony_ci{ 1331e934351Sopenharmony_ci HttpClientRequest req; 1341e934351Sopenharmony_ci 1351e934351Sopenharmony_ci int timeouTest = req.GetTimeout(); 1361e934351Sopenharmony_ci EXPECT_EQ(timeouTest, HttpConstant::DEFAULT_READ_TIMEOUT); 1371e934351Sopenharmony_ci} 1381e934351Sopenharmony_ci 1391e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, SetTimeoutTest001, TestSize.Level1) 1401e934351Sopenharmony_ci{ 1411e934351Sopenharmony_ci HttpClientRequest req; 1421e934351Sopenharmony_ci req.SetTimeout(1000); 1431e934351Sopenharmony_ci int timeouTest = req.GetTimeout(); 1441e934351Sopenharmony_ci EXPECT_EQ(timeouTest, 1000); 1451e934351Sopenharmony_ci} 1461e934351Sopenharmony_ci 1471e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, GetConnectTimeoutTest001, TestSize.Level1) 1481e934351Sopenharmony_ci{ 1491e934351Sopenharmony_ci HttpClientRequest req; 1501e934351Sopenharmony_ci 1511e934351Sopenharmony_ci int timeouTest = req.GetConnectTimeout(); 1521e934351Sopenharmony_ci EXPECT_EQ(timeouTest, HttpConstant::DEFAULT_CONNECT_TIMEOUT); 1531e934351Sopenharmony_ci} 1541e934351Sopenharmony_ci 1551e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, SetConnectTimeoutTest001, TestSize.Level1) 1561e934351Sopenharmony_ci{ 1571e934351Sopenharmony_ci HttpClientRequest req; 1581e934351Sopenharmony_ci req.SetConnectTimeout(1000); 1591e934351Sopenharmony_ci int timeouTest = req.GetConnectTimeout(); 1601e934351Sopenharmony_ci EXPECT_EQ(timeouTest, 1000); 1611e934351Sopenharmony_ci} 1621e934351Sopenharmony_ci 1631e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, GetHttpProtocolTest001, TestSize.Level1) 1641e934351Sopenharmony_ci{ 1651e934351Sopenharmony_ci HttpClientRequest req; 1661e934351Sopenharmony_ci 1671e934351Sopenharmony_ci int timeouTest = req.GetHttpProtocol(); 1681e934351Sopenharmony_ci EXPECT_EQ(timeouTest, HttpProtocol::HTTP_NONE); 1691e934351Sopenharmony_ci} 1701e934351Sopenharmony_ci 1711e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, SetHttpProtocolTest001, TestSize.Level1) 1721e934351Sopenharmony_ci{ 1731e934351Sopenharmony_ci HttpClientRequest req; 1741e934351Sopenharmony_ci req.SetHttpProtocol(HttpProtocol::HTTP1_1); 1751e934351Sopenharmony_ci int protocolTest = req.GetHttpProtocol(); 1761e934351Sopenharmony_ci EXPECT_EQ(protocolTest, HttpProtocol::HTTP1_1); 1771e934351Sopenharmony_ci} 1781e934351Sopenharmony_ci 1791e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, GetHttpProxyTest001, TestSize.Level1) 1801e934351Sopenharmony_ci{ 1811e934351Sopenharmony_ci HttpClientRequest req; 1821e934351Sopenharmony_ci 1831e934351Sopenharmony_ci const OHOS::NetStack::HttpClient::HttpProxy &proxyType = req.GetHttpProxy(); 1841e934351Sopenharmony_ci EXPECT_EQ(proxyType.host, ""); 1851e934351Sopenharmony_ci} 1861e934351Sopenharmony_ci 1871e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, SetHttpProxyTest001, TestSize.Level1) 1881e934351Sopenharmony_ci{ 1891e934351Sopenharmony_ci HttpClientRequest req; 1901e934351Sopenharmony_ci HttpProxy proxy; 1911e934351Sopenharmony_ci proxy.host = "192.168.147.60"; 1921e934351Sopenharmony_ci req.SetHttpProxy(proxy); 1931e934351Sopenharmony_ci const OHOS::NetStack::HttpClient::HttpProxy &proxyType = req.GetHttpProxy(); 1941e934351Sopenharmony_ci EXPECT_EQ(proxyType.host, proxy.host); 1951e934351Sopenharmony_ci} 1961e934351Sopenharmony_ci 1971e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, GetHttpProxyTypeTest001, TestSize.Level1) 1981e934351Sopenharmony_ci{ 1991e934351Sopenharmony_ci HttpClientRequest req; 2001e934351Sopenharmony_ci 2011e934351Sopenharmony_ci int proxyType = req.GetHttpProxyType(); 2021e934351Sopenharmony_ci EXPECT_EQ(proxyType, HttpProxyType::NOT_USE); 2031e934351Sopenharmony_ci} 2041e934351Sopenharmony_ci 2051e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, SetHttpProxyTypeTest001, TestSize.Level1) 2061e934351Sopenharmony_ci{ 2071e934351Sopenharmony_ci HttpClientRequest req; 2081e934351Sopenharmony_ci req.SetHttpProxyType(HttpProxyType::USE_SPECIFIED); 2091e934351Sopenharmony_ci int proxyType = req.GetHttpProxyType(); 2101e934351Sopenharmony_ci EXPECT_EQ(proxyType, HttpProxyType::USE_SPECIFIED); 2111e934351Sopenharmony_ci} 2121e934351Sopenharmony_ci 2131e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, GetPriorityTest001, TestSize.Level1) 2141e934351Sopenharmony_ci{ 2151e934351Sopenharmony_ci HttpClientRequest req; 2161e934351Sopenharmony_ci 2171e934351Sopenharmony_ci uint32_t priorityTest = req.GetPriority(); 2181e934351Sopenharmony_ci EXPECT_EQ(priorityTest, HTTP_DEFAULT_PRIORITY); 2191e934351Sopenharmony_ci} 2201e934351Sopenharmony_ci 2211e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, SetPriorityTest001, TestSize.Level1) 2221e934351Sopenharmony_ci{ 2231e934351Sopenharmony_ci HttpClientRequest req; 2241e934351Sopenharmony_ci req.SetPriority(0); 2251e934351Sopenharmony_ci uint32_t priorityTest = req.GetPriority(); 2261e934351Sopenharmony_ci EXPECT_EQ(priorityTest, HTTP_DEFAULT_PRIORITY); 2271e934351Sopenharmony_ci} 2281e934351Sopenharmony_ci 2291e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, SetPriorityTest002, TestSize.Level1) 2301e934351Sopenharmony_ci{ 2311e934351Sopenharmony_ci HttpClientRequest req; 2321e934351Sopenharmony_ci 2331e934351Sopenharmony_ci req.SetPriority(1001); 2341e934351Sopenharmony_ci uint32_t priorityTest = req.GetPriority(); 2351e934351Sopenharmony_ci 2361e934351Sopenharmony_ci EXPECT_EQ(priorityTest, HTTP_DEFAULT_PRIORITY); 2371e934351Sopenharmony_ci} 2381e934351Sopenharmony_ci 2391e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, SetPriorityTest003, TestSize.Level1) 2401e934351Sopenharmony_ci{ 2411e934351Sopenharmony_ci HttpClientRequest req; 2421e934351Sopenharmony_ci 2431e934351Sopenharmony_ci req.SetPriority(500); 2441e934351Sopenharmony_ci uint32_t priorityTest = req.GetPriority(); 2451e934351Sopenharmony_ci 2461e934351Sopenharmony_ci EXPECT_EQ(priorityTest, HTTP_DEFAULT_PRIORITY); 2471e934351Sopenharmony_ci} 2481e934351Sopenharmony_ci 2491e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, GetHeaderTest001, TestSize.Level1) 2501e934351Sopenharmony_ci{ 2511e934351Sopenharmony_ci HttpClientRequest req; 2521e934351Sopenharmony_ci 2531e934351Sopenharmony_ci std::map<std::string, std::string> headers = req.GetHeaders(); 2541e934351Sopenharmony_ci EXPECT_EQ(headers.empty(), true); 2551e934351Sopenharmony_ci} 2561e934351Sopenharmony_ci 2571e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, SetHeaderTest001, TestSize.Level1) 2581e934351Sopenharmony_ci{ 2591e934351Sopenharmony_ci HttpClientRequest req; 2601e934351Sopenharmony_ci 2611e934351Sopenharmony_ci std::string header = "application/json"; 2621e934351Sopenharmony_ci req.SetHeader("content-type", "application/json"); 2631e934351Sopenharmony_ci std::map<std::string, std::string> headers = req.GetHeaders(); 2641e934351Sopenharmony_ci EXPECT_EQ(headers["content-type"], header); 2651e934351Sopenharmony_ci} 2661e934351Sopenharmony_ci 2671e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, MethodForGetTest001, TestSize.Level1) 2681e934351Sopenharmony_ci{ 2691e934351Sopenharmony_ci HttpClientRequest req; 2701e934351Sopenharmony_ci bool method = req.MethodForGet(""); 2711e934351Sopenharmony_ci EXPECT_EQ(method, false); 2721e934351Sopenharmony_ci} 2731e934351Sopenharmony_ci 2741e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, MethodForGetTest002, TestSize.Level1) 2751e934351Sopenharmony_ci{ 2761e934351Sopenharmony_ci HttpClientRequest req; 2771e934351Sopenharmony_ci bool method = req.MethodForGet("GET"); 2781e934351Sopenharmony_ci EXPECT_EQ(method, true); 2791e934351Sopenharmony_ci} 2801e934351Sopenharmony_ci 2811e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, MethodForPostTest001, TestSize.Level1) 2821e934351Sopenharmony_ci{ 2831e934351Sopenharmony_ci HttpClientRequest req; 2841e934351Sopenharmony_ci bool method = req.MethodForPost(""); 2851e934351Sopenharmony_ci EXPECT_EQ(method, false); 2861e934351Sopenharmony_ci} 2871e934351Sopenharmony_ci 2881e934351Sopenharmony_ciHWTEST_F(HttpClientRequestTest, MethodForPostTest002, TestSize.Level1) 2891e934351Sopenharmony_ci{ 2901e934351Sopenharmony_ci HttpClientRequest req; 2911e934351Sopenharmony_ci bool method = req.MethodForPost("POST"); 2921e934351Sopenharmony_ci EXPECT_EQ(method, true); 2931e934351Sopenharmony_ci} 2941e934351Sopenharmony_ci 2951e934351Sopenharmony_ci} // namespace 296