1 /* 2 * Copyright (c) 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 <iostream> 17 #include <cstring> 18 #include "gtest/gtest.h" 19 #include "http_client_constant.h" 20 #include "netstack_log.h" 21 22 #include "http_client_response.h" 23 24 using namespace OHOS::NetStack::HttpClient; 25 26 class HttpClientResponseTest : public testing::Test { 27 public: SetUpTestCase()28 static void SetUpTestCase() {} 29 TearDownTestCase()30 static void TearDownTestCase() {} 31 SetUp()32 virtual void SetUp() {} 33 TearDown()34 virtual void TearDown() {} 35 }; 36 37 namespace { 38 using namespace std; 39 using namespace testing::ext; 40 41 HWTEST_F(HttpClientResponseTest, GetResponseCodeTest001, TestSize.Level1) 42 { 43 HttpClientResponse req; 44 45 int responseTest = req.GetResponseCode(); 46 EXPECT_EQ(responseTest, ResponseCode::NONE); 47 } 48 49 HWTEST_F(HttpClientResponseTest, GetHeaderTest001, TestSize.Level1) 50 { 51 HttpClientResponse req; 52 53 string header = req.GetHeader(); 54 EXPECT_EQ(header, ""); 55 } 56 57 HWTEST_F(HttpClientResponseTest, GetRequestTimeTest001, TestSize.Level1) 58 { 59 HttpClientResponse req; 60 61 string requestTime = req.GetRequestTime(); 62 EXPECT_EQ(requestTime, ""); 63 } 64 65 HWTEST_F(HttpClientResponseTest, GetResponseTimeTest001, TestSize.Level1) 66 { 67 HttpClientResponse req; 68 69 string responseTime = req.GetResponseTime(); 70 EXPECT_EQ(responseTime, ""); 71 } 72 73 HWTEST_F(HttpClientResponseTest, SetRequestTimeTest001, TestSize.Level1) 74 { 75 HttpClientResponse req; 76 77 req.SetRequestTime("10"); 78 string requestTime = req.GetRequestTime(); 79 EXPECT_EQ(requestTime, "10"); 80 } 81 82 HWTEST_F(HttpClientResponseTest, SetResponseTimeTest001, TestSize.Level1) 83 { 84 HttpClientResponse req; 85 86 req.SetResponseTime("10"); 87 string responseTime = req.GetResponseTime(); 88 EXPECT_EQ(responseTime, "10"); 89 } 90 91 HWTEST_F(HttpClientResponseTest, AppendHeaderTest001, TestSize.Level1) 92 { 93 HttpClientResponse req; 94 std::string add = "test"; 95 req.AppendHeader(add.data(), add.length()); 96 string header = req.GetHeader(); 97 EXPECT_EQ(header, "test"); 98 } 99 100 HWTEST_F(HttpClientResponseTest, SetResponseCodeTest001, TestSize.Level1) 101 { 102 HttpClientResponse req; 103 104 req.SetResponseCode(ResponseCode::MULT_CHOICE); 105 int responseTest = req.GetResponseCode(); 106 EXPECT_EQ(responseTest, ResponseCode::MULT_CHOICE); 107 } 108 109 HWTEST_F(HttpClientResponseTest, ResponseParseHeader001, TestSize.Level1) 110 { 111 HttpClientResponse req; 112 const char *emptyHead = " \r\n"; 113 const char *errHead = "test1 data1\r\n"; 114 const char *realHead = "test:data\r\n"; 115 req.AppendHeader(emptyHead, strlen(emptyHead)); 116 req.AppendHeader(errHead, strlen(errHead)); 117 req.AppendHeader(realHead, strlen(realHead)); 118 119 req.ParseHeaders(); 120 auto headers = req.GetHeaders(); 121 std::string ret; __anoneb7f55490202(const auto &item) 122 std::for_each(headers.begin(), headers.end(), [&ret](const auto &item) { 123 if (!item.first.empty() && !item.second.empty()) { 124 ret += item.first + ":" + item.second + "\r\n"; 125 } 126 }); 127 EXPECT_EQ(realHead, ret); 128 } 129 130 HWTEST_F(HttpClientResponseTest, ResponseAppendCookie001, TestSize.Level1) 131 { 132 HttpClientResponse req; 133 const char *emptyHead = " \r\n"; 134 const char *errHead = "test data\r\n"; 135 const char *realHead = "test:data\r\n"; 136 string cookies = ""; 137 cookies.append(emptyHead); 138 cookies.append(errHead); 139 cookies.append(realHead); 140 req.AppendCookies(emptyHead, strlen(emptyHead)); 141 req.AppendCookies(errHead, strlen(errHead)); 142 req.AppendCookies(realHead, strlen(realHead)); 143 auto ret = req.GetCookies(); 144 EXPECT_EQ(cookies, ret); 145 } 146 147 HWTEST_F(HttpClientResponseTest, ResponseSetCookie001, TestSize.Level1) 148 { 149 HttpClientResponse req; 150 const char *realHead = "test:data\r\n"; 151 req.SetCookies(realHead); 152 auto result = req.GetCookies(); 153 EXPECT_EQ(realHead, result); 154 } 155 156 HWTEST_F(HttpClientResponseTest, ResponseSetWarning001, TestSize.Level1) 157 { 158 HttpClientResponse req; 159 const char *realHead = "test:data"; 160 const char *warningText = "Warning"; 161 req.SetWarning(realHead); 162 auto headers = req.GetHeaders(); 163 for (auto &item: headers) { 164 auto key = item.first.c_str(); 165 if (strcmp(warningText, key) == 0) { 166 EXPECT_EQ(realHead, item.second); 167 return; 168 } 169 } 170 EXPECT_FALSE(true); 171 } 172 173 HWTEST_F(HttpClientResponseTest, ResponseSetRawHeader001, TestSize.Level1) 174 { 175 HttpClientResponse req; 176 const char *realHead = "test:data\r\n"; 177 req.SetRawHeader(realHead); 178 auto header = req.GetHeader(); 179 EXPECT_EQ(realHead, header); 180 } 181 } // namespace