1/* 2 * Copyright (c) 2023-2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16#include <cstring> 17#include "gtest/gtest.h" 18#include "http_client_request.h" 19#include "http_client_constant.h" 20#include "netstack_log.h" 21 22using namespace OHOS::NetStack::HttpClient; 23 24class HttpClientRequestTest : public testing::Test { 25public: 26 static void SetUpTestCase() {} 27 28 static void TearDownTestCase() {} 29 30 virtual void SetUp() {} 31 32 virtual void TearDown() {} 33}; 34 35namespace { 36using namespace std; 37using namespace testing::ext; 38constexpr char OTHER_CA_PATH[] = "/etc/ssl/certs/other.pem"; 39static constexpr const uint32_t HTTP_DEFAULT_PRIORITY = 500; 40 41HWTEST_F(HttpClientRequestTest, GetCaPathTest001, TestSize.Level1) 42{ 43 HttpClientRequest req; 44 45 string path = req.GetCaPath(); 46 EXPECT_EQ(path, ""); 47} 48 49HWTEST_F(HttpClientRequestTest, SetCaPathTest001, TestSize.Level1) 50{ 51 HttpClientRequest req; 52 53 req.SetCaPath(""); 54 string path = req.GetCaPath(); 55 56 EXPECT_EQ(path, ""); 57} 58 59HWTEST_F(HttpClientRequestTest, SetCaPathTest002, TestSize.Level1) 60{ 61 HttpClientRequest req; 62 63 req.SetCaPath(OTHER_CA_PATH); 64 string path = req.GetCaPath(); 65 66 EXPECT_EQ(path, OTHER_CA_PATH); 67} 68 69HWTEST_F(HttpClientRequestTest, GetURLTest001, TestSize.Level1) 70{ 71 HttpClientRequest req; 72 73 string urlTest = req.GetURL(); 74 EXPECT_EQ(urlTest, ""); 75} 76 77HWTEST_F(HttpClientRequestTest, SetURLTest001, TestSize.Level1) 78{ 79 HttpClientRequest req; 80 std::string url = "http://www.httpbin.org/get"; 81 req.SetURL(url); 82 string urlTest = req.GetURL(); 83 EXPECT_EQ(urlTest, url); 84} 85 86HWTEST_F(HttpClientRequestTest, GetMethodTest001, TestSize.Level1) 87{ 88 HttpClientRequest req; 89 90 string method = req.GetMethod(); 91 EXPECT_EQ(method, HttpConstant::HTTP_METHOD_GET); 92} 93 94HWTEST_F(HttpClientRequestTest, SetMethodTest001, TestSize.Level1) 95{ 96 HttpClientRequest req; 97 req.SetMethod("abc"); 98 string method = req.GetMethod(); 99 NETSTACK_LOGI("SetMethodTest001 GetMethod = %{public}s", method.c_str()); 100 EXPECT_EQ(method, HttpConstant::HTTP_METHOD_GET); 101} 102 103HWTEST_F(HttpClientRequestTest, SetMethodTest002, TestSize.Level1) 104{ 105 HttpClientRequest req; 106 req.SetMethod(HttpConstant::HTTP_METHOD_POST); 107 string method = req.GetMethod(); 108 EXPECT_EQ(method, HttpConstant::HTTP_METHOD_POST); 109} 110 111HWTEST_F(HttpClientRequestTest, GetBodyTest001, TestSize.Level1) 112{ 113 HttpClientRequest req; 114 std::string body = ""; 115 116 string bodyTest = req.GetBody(); 117 EXPECT_EQ(bodyTest, body); 118} 119 120HWTEST_F(HttpClientRequestTest, SetBodyTest001, TestSize.Level1) 121{ 122 HttpClientRequest req; 123 std::string body = "hello world"; 124 125 req.SetBody(body.data(), body.length()); 126 string bodyTest = req.GetBody(); 127 128 EXPECT_EQ(bodyTest, body); 129} 130 131HWTEST_F(HttpClientRequestTest, GetTimeoutTest001, TestSize.Level1) 132{ 133 HttpClientRequest req; 134 135 int timeouTest = req.GetTimeout(); 136 EXPECT_EQ(timeouTest, HttpConstant::DEFAULT_READ_TIMEOUT); 137} 138 139HWTEST_F(HttpClientRequestTest, SetTimeoutTest001, TestSize.Level1) 140{ 141 HttpClientRequest req; 142 req.SetTimeout(1000); 143 int timeouTest = req.GetTimeout(); 144 EXPECT_EQ(timeouTest, 1000); 145} 146 147HWTEST_F(HttpClientRequestTest, GetConnectTimeoutTest001, TestSize.Level1) 148{ 149 HttpClientRequest req; 150 151 int timeouTest = req.GetConnectTimeout(); 152 EXPECT_EQ(timeouTest, HttpConstant::DEFAULT_CONNECT_TIMEOUT); 153} 154 155HWTEST_F(HttpClientRequestTest, SetConnectTimeoutTest001, TestSize.Level1) 156{ 157 HttpClientRequest req; 158 req.SetConnectTimeout(1000); 159 int timeouTest = req.GetConnectTimeout(); 160 EXPECT_EQ(timeouTest, 1000); 161} 162 163HWTEST_F(HttpClientRequestTest, GetHttpProtocolTest001, TestSize.Level1) 164{ 165 HttpClientRequest req; 166 167 int timeouTest = req.GetHttpProtocol(); 168 EXPECT_EQ(timeouTest, HttpProtocol::HTTP_NONE); 169} 170 171HWTEST_F(HttpClientRequestTest, SetHttpProtocolTest001, TestSize.Level1) 172{ 173 HttpClientRequest req; 174 req.SetHttpProtocol(HttpProtocol::HTTP1_1); 175 int protocolTest = req.GetHttpProtocol(); 176 EXPECT_EQ(protocolTest, HttpProtocol::HTTP1_1); 177} 178 179HWTEST_F(HttpClientRequestTest, GetHttpProxyTest001, TestSize.Level1) 180{ 181 HttpClientRequest req; 182 183 const OHOS::NetStack::HttpClient::HttpProxy &proxyType = req.GetHttpProxy(); 184 EXPECT_EQ(proxyType.host, ""); 185} 186 187HWTEST_F(HttpClientRequestTest, SetHttpProxyTest001, TestSize.Level1) 188{ 189 HttpClientRequest req; 190 HttpProxy proxy; 191 proxy.host = "192.168.147.60"; 192 req.SetHttpProxy(proxy); 193 const OHOS::NetStack::HttpClient::HttpProxy &proxyType = req.GetHttpProxy(); 194 EXPECT_EQ(proxyType.host, proxy.host); 195} 196 197HWTEST_F(HttpClientRequestTest, GetHttpProxyTypeTest001, TestSize.Level1) 198{ 199 HttpClientRequest req; 200 201 int proxyType = req.GetHttpProxyType(); 202 EXPECT_EQ(proxyType, HttpProxyType::NOT_USE); 203} 204 205HWTEST_F(HttpClientRequestTest, SetHttpProxyTypeTest001, TestSize.Level1) 206{ 207 HttpClientRequest req; 208 req.SetHttpProxyType(HttpProxyType::USE_SPECIFIED); 209 int proxyType = req.GetHttpProxyType(); 210 EXPECT_EQ(proxyType, HttpProxyType::USE_SPECIFIED); 211} 212 213HWTEST_F(HttpClientRequestTest, GetPriorityTest001, TestSize.Level1) 214{ 215 HttpClientRequest req; 216 217 uint32_t priorityTest = req.GetPriority(); 218 EXPECT_EQ(priorityTest, HTTP_DEFAULT_PRIORITY); 219} 220 221HWTEST_F(HttpClientRequestTest, SetPriorityTest001, TestSize.Level1) 222{ 223 HttpClientRequest req; 224 req.SetPriority(0); 225 uint32_t priorityTest = req.GetPriority(); 226 EXPECT_EQ(priorityTest, HTTP_DEFAULT_PRIORITY); 227} 228 229HWTEST_F(HttpClientRequestTest, SetPriorityTest002, TestSize.Level1) 230{ 231 HttpClientRequest req; 232 233 req.SetPriority(1001); 234 uint32_t priorityTest = req.GetPriority(); 235 236 EXPECT_EQ(priorityTest, HTTP_DEFAULT_PRIORITY); 237} 238 239HWTEST_F(HttpClientRequestTest, SetPriorityTest003, TestSize.Level1) 240{ 241 HttpClientRequest req; 242 243 req.SetPriority(500); 244 uint32_t priorityTest = req.GetPriority(); 245 246 EXPECT_EQ(priorityTest, HTTP_DEFAULT_PRIORITY); 247} 248 249HWTEST_F(HttpClientRequestTest, GetHeaderTest001, TestSize.Level1) 250{ 251 HttpClientRequest req; 252 253 std::map<std::string, std::string> headers = req.GetHeaders(); 254 EXPECT_EQ(headers.empty(), true); 255} 256 257HWTEST_F(HttpClientRequestTest, SetHeaderTest001, TestSize.Level1) 258{ 259 HttpClientRequest req; 260 261 std::string header = "application/json"; 262 req.SetHeader("content-type", "application/json"); 263 std::map<std::string, std::string> headers = req.GetHeaders(); 264 EXPECT_EQ(headers["content-type"], header); 265} 266 267HWTEST_F(HttpClientRequestTest, MethodForGetTest001, TestSize.Level1) 268{ 269 HttpClientRequest req; 270 bool method = req.MethodForGet(""); 271 EXPECT_EQ(method, false); 272} 273 274HWTEST_F(HttpClientRequestTest, MethodForGetTest002, TestSize.Level1) 275{ 276 HttpClientRequest req; 277 bool method = req.MethodForGet("GET"); 278 EXPECT_EQ(method, true); 279} 280 281HWTEST_F(HttpClientRequestTest, MethodForPostTest001, TestSize.Level1) 282{ 283 HttpClientRequest req; 284 bool method = req.MethodForPost(""); 285 EXPECT_EQ(method, false); 286} 287 288HWTEST_F(HttpClientRequestTest, MethodForPostTest002, TestSize.Level1) 289{ 290 HttpClientRequest req; 291 bool method = req.MethodForPost("POST"); 292 EXPECT_EQ(method, true); 293} 294 295} // namespace 296