1 /* 2 * Copyright (c) 2023 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 22 using namespace OHOS::NetStack::HttpClient; 23 24 class HttpClientRequestTest : public testing::Test { 25 public: SetUpTestCase()26 static void SetUpTestCase() {} 27 TearDownTestCase()28 static void TearDownTestCase() {} 29 SetUp()30 virtual void SetUp() {} 31 TearDown()32 virtual void TearDown() {} 33 }; 34 35 namespace { 36 using namespace std; 37 using namespace testing::ext; 38 constexpr char OTHER_CA_PATH[] = "/etc/ssl/certs/other.pem"; 39 static constexpr const uint32_t HTTP_DEFAULT_PRIORITY = 500; 40 41 HWTEST_F(HttpClientRequestTest, GetCaPathTest001, TestSize.Level1) 42 { 43 HttpClientRequest req; 44 45 string path = req.GetCaPath(); 46 EXPECT_EQ(path, HttpConstant::HTTP_DEFAULT_CA_PATH); 47 } 48 49 HWTEST_F(HttpClientRequestTest, SetCaPathTest001, TestSize.Level1) 50 { 51 HttpClientRequest req; 52 53 req.SetCaPath(""); 54 string path = req.GetCaPath(); 55 56 EXPECT_EQ(path, HttpConstant::HTTP_DEFAULT_CA_PATH); 57 } 58 59 HWTEST_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 69 HWTEST_F(HttpClientRequestTest, GetURLTest001, TestSize.Level1) 70 { 71 HttpClientRequest req; 72 73 string urlTest = req.GetURL(); 74 EXPECT_EQ(urlTest, ""); 75 } 76 77 HWTEST_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 86 HWTEST_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 94 HWTEST_F(HttpClientRequestTest, SetMethodTest001, TestSize.Level1) 95 { 96 HttpClientRequest req; 97 req.SetMethod(""); 98 string method = req.GetMethod(); 99 EXPECT_EQ(method, HttpConstant::HTTP_METHOD_GET); 100 } 101 102 HWTEST_F(HttpClientRequestTest, SetMethodTest002, TestSize.Level1) 103 { 104 HttpClientRequest req; 105 req.SetMethod(HttpConstant::HTTP_METHOD_POST); 106 string method = req.GetMethod(); 107 EXPECT_EQ(method, HttpConstant::HTTP_METHOD_POST); 108 } 109 110 HWTEST_F(HttpClientRequestTest, GetBodyTest001, TestSize.Level1) 111 { 112 HttpClientRequest req; 113 std::string body = ""; 114 115 string bodyTest = req.GetBody(); 116 EXPECT_EQ(bodyTest, body); 117 } 118 119 HWTEST_F(HttpClientRequestTest, SetBodyTest001, TestSize.Level1) 120 { 121 HttpClientRequest req; 122 std::string body = "hello world"; 123 124 req.SetBody(body.data(), body.length()); 125 string bodyTest = req.GetBody(); 126 127 EXPECT_EQ(bodyTest, body); 128 } 129 130 HWTEST_F(HttpClientRequestTest, GetTimeoutTest001, TestSize.Level1) 131 { 132 HttpClientRequest req; 133 134 int timeouTest = req.GetTimeout(); 135 EXPECT_EQ(timeouTest, HttpConstant::DEFAULT_READ_TIMEOUT); 136 } 137 138 HWTEST_F(HttpClientRequestTest, SetTimeoutTest001, TestSize.Level1) 139 { 140 HttpClientRequest req; 141 req.SetTimeout(1000); 142 int timeouTest = req.GetTimeout(); 143 EXPECT_EQ(timeouTest, 1000); 144 } 145 146 HWTEST_F(HttpClientRequestTest, GetConnectTimeoutTest001, TestSize.Level1) 147 { 148 HttpClientRequest req; 149 150 int timeouTest = req.GetConnectTimeout(); 151 EXPECT_EQ(timeouTest, HttpConstant::DEFAULT_CONNECT_TIMEOUT); 152 } 153 154 HWTEST_F(HttpClientRequestTest, SetConnectTimeoutTest001, TestSize.Level1) 155 { 156 HttpClientRequest req; 157 req.SetConnectTimeout(1000); 158 int timeouTest = req.GetConnectTimeout(); 159 EXPECT_EQ(timeouTest, 1000); 160 } 161 162 HWTEST_F(HttpClientRequestTest, GetHttpProtocolTest001, TestSize.Level1) 163 { 164 HttpClientRequest req; 165 166 int timeouTest = req.GetHttpProtocol(); 167 EXPECT_EQ(timeouTest, HttpProtocol::HTTP_NONE); 168 } 169 170 HWTEST_F(HttpClientRequestTest, SetHttpProtocolTest001, TestSize.Level1) 171 { 172 HttpClientRequest req; 173 req.SetHttpProtocol(HttpProtocol::HTTP1_1); 174 int protocolTest = req.GetHttpProtocol(); 175 EXPECT_EQ(protocolTest, HttpProtocol::HTTP1_1); 176 } 177 178 HWTEST_F(HttpClientRequestTest, GetHttpProxyTest001, TestSize.Level1) 179 { 180 HttpClientRequest req; 181 182 const OHOS::NetStack::HttpClient::HttpProxy &proxyType = req.GetHttpProxy(); 183 EXPECT_EQ(proxyType.host, ""); 184 } 185 186 HWTEST_F(HttpClientRequestTest, SetHttpProxyTest001, TestSize.Level1) 187 { 188 HttpClientRequest req; 189 HttpProxy proxy; 190 proxy.host = "192.168.147.60"; 191 req.SetHttpProxy(proxy); 192 const OHOS::NetStack::HttpClient::HttpProxy &proxyType = req.GetHttpProxy(); 193 EXPECT_EQ(proxyType.host, proxy.host); 194 } 195 196 HWTEST_F(HttpClientRequestTest, GetHttpProxyTypeTest001, TestSize.Level1) 197 { 198 HttpClientRequest req; 199 200 int proxyType = req.GetHttpProxyType(); 201 EXPECT_EQ(proxyType, HttpProxyType::NOT_USE); 202 } 203 204 HWTEST_F(HttpClientRequestTest, SetHttpProxyTypeTest001, TestSize.Level1) 205 { 206 HttpClientRequest req; 207 req.SetHttpProxyType(HttpProxyType::USE_SPECIFIED); 208 int proxyType = req.GetHttpProxyType(); 209 EXPECT_EQ(proxyType, HttpProxyType::USE_SPECIFIED); 210 } 211 212 HWTEST_F(HttpClientRequestTest, GetPriorityTest001, TestSize.Level1) 213 { 214 HttpClientRequest req; 215 216 uint32_t priorityTest = req.GetPriority(); 217 EXPECT_EQ(priorityTest, HTTP_DEFAULT_PRIORITY); 218 } 219 220 HWTEST_F(HttpClientRequestTest, SetPriorityTest001, TestSize.Level1) 221 { 222 HttpClientRequest req; 223 req.SetPriority(0); 224 uint32_t priorityTest = req.GetPriority(); 225 EXPECT_EQ(priorityTest, HTTP_DEFAULT_PRIORITY); 226 } 227 228 HWTEST_F(HttpClientRequestTest, SetPriorityTest002, TestSize.Level1) 229 { 230 HttpClientRequest req; 231 232 req.SetPriority(1001); 233 uint32_t priorityTest = req.GetPriority(); 234 235 EXPECT_EQ(priorityTest, HTTP_DEFAULT_PRIORITY); 236 } 237 238 HWTEST_F(HttpClientRequestTest, SetPriorityTest003, TestSize.Level1) 239 { 240 HttpClientRequest req; 241 242 req.SetPriority(500); 243 uint32_t priorityTest = req.GetPriority(); 244 245 EXPECT_EQ(priorityTest, HTTP_DEFAULT_PRIORITY); 246 } 247 248 HWTEST_F(HttpClientRequestTest, GetHeaderTest001, TestSize.Level1) 249 { 250 HttpClientRequest req; 251 252 std::map<std::string, std::string> headers = req.GetHeaders(); 253 EXPECT_EQ(headers.empty(), true); 254 } 255 256 HWTEST_F(HttpClientRequestTest, SetHeaderTest001, TestSize.Level1) 257 { 258 HttpClientRequest req; 259 260 std::string header = "application/json"; 261 req.SetHeader("content-type", "application/json"); 262 std::map<std::string, std::string> headers = req.GetHeaders(); 263 EXPECT_EQ(headers["content-type"], header); 264 } 265 266 HWTEST_F(HttpClientRequestTest, MethodForGetTest001, TestSize.Level1) 267 { 268 HttpClientRequest req; 269 bool method = req.MethodForGet(""); 270 EXPECT_EQ(method, false); 271 } 272 273 HWTEST_F(HttpClientRequestTest, MethodForGetTest002, TestSize.Level1) 274 { 275 HttpClientRequest req; 276 bool method = req.MethodForGet("GET"); 277 EXPECT_EQ(method, true); 278 } 279 280 HWTEST_F(HttpClientRequestTest, MethodForPostTest001, TestSize.Level1) 281 { 282 HttpClientRequest req; 283 bool method = req.MethodForPost(""); 284 EXPECT_EQ(method, false); 285 } 286 287 HWTEST_F(HttpClientRequestTest, MethodForPostTest002, TestSize.Level1) 288 { 289 HttpClientRequest req; 290 bool method = req.MethodForPost("POST"); 291 EXPECT_EQ(method, true); 292 } 293 294 } // namespace