11e934351Sopenharmony_ci/* 21e934351Sopenharmony_ci * Copyright (c) 2023 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 <iostream> 171e934351Sopenharmony_ci#include <cstring> 181e934351Sopenharmony_ci#include "gtest/gtest.h" 191e934351Sopenharmony_ci#include "http_client_constant.h" 201e934351Sopenharmony_ci#include "netstack_log.h" 211e934351Sopenharmony_ci 221e934351Sopenharmony_ci#define private public 231e934351Sopenharmony_ci#include "http_client_response.h" 241e934351Sopenharmony_ci 251e934351Sopenharmony_ciusing namespace OHOS::NetStack::HttpClient; 261e934351Sopenharmony_ci 271e934351Sopenharmony_ciclass HttpClientResponseTest : public testing::Test { 281e934351Sopenharmony_cipublic: 291e934351Sopenharmony_ci static void SetUpTestCase() {} 301e934351Sopenharmony_ci 311e934351Sopenharmony_ci static void TearDownTestCase() {} 321e934351Sopenharmony_ci 331e934351Sopenharmony_ci virtual void SetUp() {} 341e934351Sopenharmony_ci 351e934351Sopenharmony_ci virtual void TearDown() {} 361e934351Sopenharmony_ci}; 371e934351Sopenharmony_ci 381e934351Sopenharmony_cinamespace { 391e934351Sopenharmony_ciusing namespace std; 401e934351Sopenharmony_ciusing namespace testing::ext; 411e934351Sopenharmony_ci 421e934351Sopenharmony_ciHWTEST_F(HttpClientResponseTest, GetResponseCodeTest001, TestSize.Level1) 431e934351Sopenharmony_ci{ 441e934351Sopenharmony_ci HttpClientResponse req; 451e934351Sopenharmony_ci 461e934351Sopenharmony_ci int responseTest = req.GetResponseCode(); 471e934351Sopenharmony_ci EXPECT_EQ(responseTest, ResponseCode::NONE); 481e934351Sopenharmony_ci} 491e934351Sopenharmony_ci 501e934351Sopenharmony_ciHWTEST_F(HttpClientResponseTest, GetHeaderTest001, TestSize.Level1) 511e934351Sopenharmony_ci{ 521e934351Sopenharmony_ci HttpClientResponse req; 531e934351Sopenharmony_ci 541e934351Sopenharmony_ci string header = req.GetHeader(); 551e934351Sopenharmony_ci EXPECT_EQ(header, ""); 561e934351Sopenharmony_ci} 571e934351Sopenharmony_ci 581e934351Sopenharmony_ciHWTEST_F(HttpClientResponseTest, GetRequestTimeTest001, TestSize.Level1) 591e934351Sopenharmony_ci{ 601e934351Sopenharmony_ci HttpClientResponse req; 611e934351Sopenharmony_ci 621e934351Sopenharmony_ci string requestTime = req.GetRequestTime(); 631e934351Sopenharmony_ci EXPECT_EQ(requestTime, ""); 641e934351Sopenharmony_ci} 651e934351Sopenharmony_ci 661e934351Sopenharmony_ciHWTEST_F(HttpClientResponseTest, GetResponseTimeTest001, TestSize.Level1) 671e934351Sopenharmony_ci{ 681e934351Sopenharmony_ci HttpClientResponse req; 691e934351Sopenharmony_ci 701e934351Sopenharmony_ci string responseTime = req.GetResponseTime(); 711e934351Sopenharmony_ci EXPECT_EQ(responseTime, ""); 721e934351Sopenharmony_ci} 731e934351Sopenharmony_ci 741e934351Sopenharmony_ciHWTEST_F(HttpClientResponseTest, SetRequestTimeTest001, TestSize.Level1) 751e934351Sopenharmony_ci{ 761e934351Sopenharmony_ci HttpClientResponse req; 771e934351Sopenharmony_ci 781e934351Sopenharmony_ci req.SetRequestTime("10"); 791e934351Sopenharmony_ci string requestTime = req.GetRequestTime(); 801e934351Sopenharmony_ci EXPECT_EQ(requestTime, "10"); 811e934351Sopenharmony_ci} 821e934351Sopenharmony_ci 831e934351Sopenharmony_ciHWTEST_F(HttpClientResponseTest, SetResponseTimeTest001, TestSize.Level1) 841e934351Sopenharmony_ci{ 851e934351Sopenharmony_ci HttpClientResponse req; 861e934351Sopenharmony_ci 871e934351Sopenharmony_ci req.SetResponseTime("10"); 881e934351Sopenharmony_ci string responseTime = req.GetResponseTime(); 891e934351Sopenharmony_ci EXPECT_EQ(responseTime, "10"); 901e934351Sopenharmony_ci} 911e934351Sopenharmony_ci 921e934351Sopenharmony_ciHWTEST_F(HttpClientResponseTest, AppendHeaderTest001, TestSize.Level1) 931e934351Sopenharmony_ci{ 941e934351Sopenharmony_ci HttpClientResponse req; 951e934351Sopenharmony_ci std::string add = "test"; 961e934351Sopenharmony_ci req.AppendHeader(add.data(), add.length()); 971e934351Sopenharmony_ci string header = req.GetHeader(); 981e934351Sopenharmony_ci EXPECT_EQ(header, "test"); 991e934351Sopenharmony_ci} 1001e934351Sopenharmony_ci 1011e934351Sopenharmony_ciHWTEST_F(HttpClientResponseTest, SetResponseCodeTest001, TestSize.Level1) 1021e934351Sopenharmony_ci{ 1031e934351Sopenharmony_ci HttpClientResponse req; 1041e934351Sopenharmony_ci 1051e934351Sopenharmony_ci req.SetResponseCode(ResponseCode::MULT_CHOICE); 1061e934351Sopenharmony_ci int responseTest = req.GetResponseCode(); 1071e934351Sopenharmony_ci EXPECT_EQ(responseTest, ResponseCode::MULT_CHOICE); 1081e934351Sopenharmony_ci} 1091e934351Sopenharmony_ci 1101e934351Sopenharmony_ciHWTEST_F(HttpClientResponseTest, ResponseParseHeader001, TestSize.Level1) 1111e934351Sopenharmony_ci{ 1121e934351Sopenharmony_ci HttpClientResponse req; 1131e934351Sopenharmony_ci const char *emptyHead = " \r\n"; 1141e934351Sopenharmony_ci const char *errHead = "test1 data1\r\n"; 1151e934351Sopenharmony_ci const char *realHead = "test:data\r\n"; 1161e934351Sopenharmony_ci req.AppendHeader(emptyHead, strlen(emptyHead)); 1171e934351Sopenharmony_ci req.AppendHeader(errHead, strlen(errHead)); 1181e934351Sopenharmony_ci req.AppendHeader(realHead, strlen(realHead)); 1191e934351Sopenharmony_ci 1201e934351Sopenharmony_ci req.ParseHeaders(); 1211e934351Sopenharmony_ci auto headers = req.GetHeaders(); 1221e934351Sopenharmony_ci std::string ret; 1231e934351Sopenharmony_ci std::for_each(headers.begin(), headers.end(), [&ret](const auto &item) { 1241e934351Sopenharmony_ci if (!item.first.empty() && !item.second.empty()) { 1251e934351Sopenharmony_ci ret += item.first + ":" + item.second + "\r\n"; 1261e934351Sopenharmony_ci } 1271e934351Sopenharmony_ci }); 1281e934351Sopenharmony_ci EXPECT_EQ(realHead, ret); 1291e934351Sopenharmony_ci} 1301e934351Sopenharmony_ci 1311e934351Sopenharmony_ciHWTEST_F(HttpClientResponseTest, ResponseAppendCookie001, TestSize.Level1) 1321e934351Sopenharmony_ci{ 1331e934351Sopenharmony_ci HttpClientResponse req; 1341e934351Sopenharmony_ci const char *emptyHead = " \r\n"; 1351e934351Sopenharmony_ci const char *errHead = "test data\r\n"; 1361e934351Sopenharmony_ci const char *realHead = "test:data\r\n"; 1371e934351Sopenharmony_ci string cookies = ""; 1381e934351Sopenharmony_ci cookies.append(emptyHead); 1391e934351Sopenharmony_ci cookies.append(errHead); 1401e934351Sopenharmony_ci cookies.append(realHead); 1411e934351Sopenharmony_ci req.AppendCookies(emptyHead, strlen(emptyHead)); 1421e934351Sopenharmony_ci req.AppendCookies(errHead, strlen(errHead)); 1431e934351Sopenharmony_ci req.AppendCookies(realHead, strlen(realHead)); 1441e934351Sopenharmony_ci auto ret = req.GetCookies(); 1451e934351Sopenharmony_ci EXPECT_EQ(cookies, ret); 1461e934351Sopenharmony_ci} 1471e934351Sopenharmony_ci 1481e934351Sopenharmony_ciHWTEST_F(HttpClientResponseTest, ResponseSetCookie001, TestSize.Level1) 1491e934351Sopenharmony_ci{ 1501e934351Sopenharmony_ci HttpClientResponse req; 1511e934351Sopenharmony_ci const char *realHead = "test:data\r\n"; 1521e934351Sopenharmony_ci req.SetCookies(realHead); 1531e934351Sopenharmony_ci auto result = req.GetCookies(); 1541e934351Sopenharmony_ci EXPECT_EQ(realHead, result); 1551e934351Sopenharmony_ci} 1561e934351Sopenharmony_ci 1571e934351Sopenharmony_ciHWTEST_F(HttpClientResponseTest, ResponseSetWarning001, TestSize.Level1) 1581e934351Sopenharmony_ci{ 1591e934351Sopenharmony_ci HttpClientResponse req; 1601e934351Sopenharmony_ci const char *realHead = "test:data"; 1611e934351Sopenharmony_ci const char *warningText = "Warning"; 1621e934351Sopenharmony_ci req.SetWarning(realHead); 1631e934351Sopenharmony_ci auto headers = req.GetHeaders(); 1641e934351Sopenharmony_ci for (auto &item: headers) { 1651e934351Sopenharmony_ci auto key = item.first.c_str(); 1661e934351Sopenharmony_ci if (strcmp(warningText, key) == 0) { 1671e934351Sopenharmony_ci EXPECT_EQ(realHead, item.second); 1681e934351Sopenharmony_ci return; 1691e934351Sopenharmony_ci } 1701e934351Sopenharmony_ci } 1711e934351Sopenharmony_ci EXPECT_FALSE(true); 1721e934351Sopenharmony_ci} 1731e934351Sopenharmony_ci 1741e934351Sopenharmony_ciHWTEST_F(HttpClientResponseTest, ResponseSetRawHeader001, TestSize.Level1) 1751e934351Sopenharmony_ci{ 1761e934351Sopenharmony_ci HttpClientResponse req; 1771e934351Sopenharmony_ci const char *realHead = "test:data\r\n"; 1781e934351Sopenharmony_ci req.SetRawHeader(realHead); 1791e934351Sopenharmony_ci auto header = req.GetHeader(); 1801e934351Sopenharmony_ci EXPECT_EQ(realHead, header); 1811e934351Sopenharmony_ci} 1821e934351Sopenharmony_ci} // namespace