• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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;
__anon26f1b8eb0202(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