1 /*
2 * Copyright (c) 2025 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 <gtest/gtest.h>
17 #include <gmock/gmock.h>
18 #include <securec.h>
19
20 #define private public
21 #include "nweb.h"
22 #include "nweb_helper.h"
23 #include "nweb_config_helper.h"
24 #include "nweb_adapter_helper.h"
25 #include "base/web/webview/interfaces/native/arkweb_scheme_handler.h"
26
27 using namespace testing;
28 using namespace testing::ext;
29
30 namespace OHOS {
31 namespace {
32
33 typedef void (*TYPE_OH_ArkWebRequestHeaderList_Destroy)(ArkWeb_RequestHeaderList* requestHeaderList);
34 typedef int32_t (*TYPE_OH_ArkWebRequestHeaderList_GetSize)(const ArkWeb_RequestHeaderList* requestHeaderList);
35 typedef void (*TYPE_OH_ArkWebRequestHeaderList_GetHeader)(
36 const ArkWeb_RequestHeaderList* requestHeaderList, int32_t index, char** key, char** value);
37 typedef void (*TYPE_OH_ArkWebResourceRequest_GetMethod)(const ArkWeb_ResourceRequest* resourceRequest, char** method);
38 typedef void (*TYPE_OH_ArkWebResourceRequest_GetUrl)(const ArkWeb_ResourceRequest* resourceRequest, char** url);
39 typedef void (*TYPE_OH_ArkWebResourceRequest_GetHttpBodyStream)(
40 const ArkWeb_ResourceRequest* resourceRequest, ArkWeb_HttpBodyStream** httpBodyStream);
41 typedef void (*TYPE_OH_ArkWebResourceRequest_DestroyHttpBodyStream)(ArkWeb_HttpBodyStream* httpBodyStream);
42 typedef int32_t (*TYPE_OH_ArkWebResourceRequest_GetResourceType)(const ArkWeb_ResourceRequest* resourceRequest);
43 typedef void (*TYPE_OH_ArkWebResourceRequest_GetFrameUrl)(
44 const ArkWeb_ResourceRequest* resourceRequest, char** frameUrl);
45 typedef int32_t (*TYPE_OH_ArkWebHttpBodyStream_SetUserData)(ArkWeb_HttpBodyStream* httpBodyStream, void* userData);
46 typedef void* (*TYPE_OH_ArkWebHttpBodyStream_GetUserData)(const ArkWeb_HttpBodyStream* httpBodyStream);
47 typedef int32_t (*TYPE_OH_ArkWebHttpBodyStream_SetReadCallback)(
48 ArkWeb_HttpBodyStream* httpBodyStream, ArkWeb_HttpBodyStreamReadCallback readCallback);
49 typedef int32_t (*TYPE_OH_ArkWebHttpBodyStream_SetAsyncReadCallback)(
50 ArkWeb_HttpBodyStream* httpBodyStream, ArkWeb_HttpBodyStreamAsyncReadCallback readCallback);
51
52 typedef int32_t (*TYPE_OH_ArkWebHttpBodyStream_Init)(
53 ArkWeb_HttpBodyStream* httpBodyStream, ArkWeb_HttpBodyStreamInitCallback initCallback);
54 typedef void (*TYPE_OH_ArkWebHttpBodyStream_Read)(
55 const ArkWeb_HttpBodyStream* httpBodyStream, uint8_t* buffer, int bufLen);
56 typedef void (*TYPE_OH_ArkWebHttpBodyStream_AsyncRead)(
57 const ArkWeb_HttpBodyStream* httpBodyStream, uint8_t* buffer, int bufLen);
58 typedef uint64_t (*TYPE_OH_ArkWebHttpBodyStream_GetSize)(const ArkWeb_HttpBodyStream* httpBodyStream);
59 typedef uint64_t (*TYPE_OH_ArkWebHttpBodyStream_GetPosition)(const ArkWeb_HttpBodyStream* httpBodyStream);
60 typedef bool (*TYPE_OH_ArkWebHttpBodyStream_IsChunked)(const ArkWeb_HttpBodyStream* httpBodyStream);
61 typedef bool (*TYPE_OH_ArkWebHttpBodyStream_IsEof)(const ArkWeb_HttpBodyStream* httpBodyStream);
62 typedef bool (*TYPE_OH_ArkWebHttpBodyStream_IsInMemory)(const ArkWeb_HttpBodyStream* httpBodyStream);
63 typedef int32_t (*TYPE_OH_ArkWebResourceRequest_Destroy)(const ArkWeb_ResourceRequest* resourceRequest);
64 typedef void (*TYPE_OH_ArkWebResourceRequest_GetReferrer)(
65 const ArkWeb_ResourceRequest* resourceRequest, char** referrer);
66 typedef void (*TYPE_OH_ArkWebResourceRequest_GetRequestHeaders)(
67 const ArkWeb_ResourceRequest* resourceRequest, ArkWeb_RequestHeaderList** requestHeaderList);
68 typedef int32_t (*TYPE_OH_ArkWebResourceRequest_SetUserData)(ArkWeb_ResourceRequest* resourceRequest, void* userData);
69 typedef void* (*TYPE_OH_ArkWebResourceRequest_GetUserData)(const ArkWeb_ResourceRequest* resourceRequest);
70 typedef bool (*TYPE_OH_ArkWebResourceRequest_IsRedirect)(const ArkWeb_ResourceRequest* resourceRequest);
71 typedef bool (*TYPE_OH_ArkWebResourceRequest_IsMainFrame)(const ArkWeb_ResourceRequest* resourceRequest);
72 typedef bool (*TYPE_OH_ArkWebResourceRequest_HasGesture)(const ArkWeb_ResourceRequest* resourceRequest);
73 typedef int32_t (*TYPE_OH_ArkWeb_RegisterCustomSchemes)(const char* scheme, int32_t option);
74 typedef bool (*TYPE_OH_ArkWeb_SetSchemeHandler)(
75 const char* scheme, const char* webTag, ArkWeb_SchemeHandler* schemeHandler);
76 typedef bool (*TYPE_OH_ArkWebServiceWorker_SetSchemeHandler)(const char* scheme, ArkWeb_SchemeHandler* schemeHandler);
77 typedef int32_t (*TYPE_OH_ArkWeb_ClearSchemeHandlers)(const char* webTag);
78 typedef int32_t (*TYPE_OH_ArkWebServiceWorker_ClearSchemeHandlers)();
79 typedef void (*TYPE_OH_ArkWeb_CreateSchemeHandler)(ArkWeb_SchemeHandler** schemeHandler);
80 typedef void (*TYPE_OH_ArkWeb_DestroySchemeHandler)(ArkWeb_SchemeHandler* schemeHandler);
81 typedef int32_t (*TYPE_OH_ArkWebSchemeHandler_SetUserData)(ArkWeb_SchemeHandler* schemeHandler, void* userData);
82 typedef void* (*TYPE_OH_ArkWebSchemeHandler_GetUserData)(const ArkWeb_SchemeHandler* schemeHandler);
83 typedef int32_t (*TYPE_OH_ArkWebSchemeHandler_SetOnRequestStart)(
84 ArkWeb_SchemeHandler* schemeHandler, ArkWeb_OnRequestStart onRequestStart);
85 typedef int32_t (*TYPE_OH_ArkWebSchemeHandler_SetOnRequestStop)(
86 ArkWeb_SchemeHandler* schemeHandler, ArkWeb_OnRequestStop onRequestStop);
87 typedef void (*TYPE_OH_ArkWeb_CreateResponse)(ArkWeb_Response** response);
88 typedef void (*TYPE_OH_ArkWeb_DestroyResponse)(ArkWeb_Response* response);
89 typedef int32_t (*TYPE_OH_ArkWebResponse_SetUrl)(ArkWeb_Response* response, const char* url);
90 typedef void (*TYPE_OH_ArkWebResponse_GetUrl)(const ArkWeb_Response* response, char** url);
91 typedef int32_t (*TYPE_OH_ArkWebResponse_SetError)(ArkWeb_Response* response, ArkWeb_NetError errorCode);
92 typedef ArkWeb_NetError (*TYPE_OH_ArkWebResponse_GetError)(const ArkWeb_Response* response);
93 typedef int32_t (*TYPE_OH_ArkWebResponse_SetStatus)(ArkWeb_Response* response, int status);
94 typedef int (*TYPE_OH_ArkWebResponse_GetStatus)(const ArkWeb_Response* response);
95 typedef int32_t (*TYPE_OH_ArkWebResponse_SetStatusText)(ArkWeb_Response* response, const char* statusText);
96 typedef void (*TYPE_OH_ArkWebResponse_GetStatusText)(const ArkWeb_Response* response, char** statusText);
97 typedef int32_t (*TYPE_OH_ArkWebResponse_SetMimeType)(ArkWeb_Response* response, const char* mimeType);
98 typedef void (*TYPE_OH_ArkWebResponse_GetMimeType)(const ArkWeb_Response* response, char** mimeType);
99 typedef int32_t (*TYPE_OH_ArkWebResponse_SetCharset)(ArkWeb_Response* response, const char* charset);
100 typedef void (*TYPE_OH_ArkWebResponse_GetCharset)(const ArkWeb_Response* response, char** charset);
101 typedef int32_t (*TYPE_OH_ArkWebResponse_SetHeaderByName)(
102 ArkWeb_Response* response, const char* name, const char* value, bool ow);
103 typedef void (*TYPE_OH_ArkWebResponse_GetHeaderByName)(const ArkWeb_Response* response, const char* name, char** value);
104 typedef int32_t (*TYPE_OH_ArkWebResourceHandler_Destroy)(const ArkWeb_ResourceHandler* resourceHandler);
105 typedef int32_t (*TYPE_OH_ArkWebResourceHandler_DidReceiveResponse)(
106 const ArkWeb_ResourceHandler* resourceHandler, const ArkWeb_Response* response);
107 typedef int32_t (*TYPE_OH_ArkWebResourceHandler_DidReceiveData)(
108 const ArkWeb_ResourceHandler* resourceHandler, const uint8_t* buffer, int64_t bufLen);
109 typedef int32_t (*TYPE_OH_ArkWebResourceHandler_DidFinish)(const ArkWeb_ResourceHandler* resourceHandler);
110 typedef int32_t (*TYPE_OH_ArkWebResourceHandler_DidFailWithError)(
111 const ArkWeb_ResourceHandler* resourceHandler, ArkWeb_NetError errorCode);
112 typedef int32_t (*TYPE_OH_ArkWebResourceHandler_DidFailWithErrorV2)(
113 const ArkWeb_ResourceHandler* resourceHandler, ArkWeb_NetError errorCode, bool completeIfNoResponse);
114 typedef void (*TYPE_OH_ArkWeb_ReleaseString)(char* string);
115 typedef void (*TYPE_OH_ArkWeb_ReleaseByteArray)(uint8_t* byteArray);
116 typedef int32_t (*TYPE_OH_ArkWebSchemeHandler_SetFromEts)(ArkWeb_SchemeHandler* schemeHandler, bool fromEts);
117
118 struct SchemeHandlerApi {
119 TYPE_OH_ArkWebRequestHeaderList_Destroy impl_OH_ArkWebRequestHeaderList_Destroy;
120 TYPE_OH_ArkWebRequestHeaderList_GetSize impl_OH_ArkWebRequestHeaderList_GetSize;
121 TYPE_OH_ArkWebRequestHeaderList_GetHeader impl_OH_ArkWebRequestHeaderList_GetHeader;
122 TYPE_OH_ArkWebResourceRequest_GetMethod impl_OH_ArkWebResourceRequest_GetMethod;
123 TYPE_OH_ArkWebResourceRequest_GetUrl impl_OH_ArkWebResourceRequest_GetUrl;
124 TYPE_OH_ArkWebResourceRequest_GetHttpBodyStream impl_OH_ArkWebResourceRequest_GetHttpBodyStream;
125 TYPE_OH_ArkWebResourceRequest_DestroyHttpBodyStream impl_OH_ArkWebResourceRequest_DestroyHttpBodyStream;
126 TYPE_OH_ArkWebResourceRequest_GetResourceType impl_OH_ArkWebResourceRequest_GetResourceType;
127 TYPE_OH_ArkWebResourceRequest_GetFrameUrl impl_OH_ArkWebResourceRequest_GetFrameUrl;
128 TYPE_OH_ArkWebHttpBodyStream_SetReadCallback impl_OH_ArkWebHttpBodyStream_SetReadCallback;
129 TYPE_OH_ArkWebHttpBodyStream_SetAsyncReadCallback impl_OH_ArkWebHttpBodyStream_SetAsyncReadCallback;
130 TYPE_OH_ArkWebHttpBodyStream_SetUserData impl_OH_ArkWebHttpBodyStream_SetUserData;
131 TYPE_OH_ArkWebHttpBodyStream_GetUserData impl_OH_ArkWebHttpBodyStream_GetUserData;
132 TYPE_OH_ArkWebHttpBodyStream_Init impl_OH_ArkWebHttpBodyStream_Init;
133 TYPE_OH_ArkWebHttpBodyStream_Read impl_OH_ArkWebHttpBodyStream_Read;
134 TYPE_OH_ArkWebHttpBodyStream_AsyncRead impl_OH_ArkWebHttpBodyStream_AsyncRead;
135 TYPE_OH_ArkWebHttpBodyStream_GetSize impl_OH_ArkWebHttpBodyStream_GetSize;
136 TYPE_OH_ArkWebHttpBodyStream_GetPosition impl_OH_ArkWebHttpBodyStream_GetPosition;
137 TYPE_OH_ArkWebHttpBodyStream_IsChunked impl_OH_ArkWebHttpBodyStream_IsChunked;
138 TYPE_OH_ArkWebHttpBodyStream_IsEof impl_OH_ArkWebHttpBodyStream_IsEof;
139 TYPE_OH_ArkWebHttpBodyStream_IsInMemory impl_OH_ArkWebHttpBodyStream_IsInMemory;
140 TYPE_OH_ArkWebResourceRequest_Destroy impl_OH_ArkWebResourceRequest_Destroy;
141 TYPE_OH_ArkWebResourceRequest_SetUserData impl_OH_ArkWebResourceRequest_SetUserData;
142 TYPE_OH_ArkWebResourceRequest_GetUserData impl_OH_ArkWebResourceRequest_GetUserData;
143 TYPE_OH_ArkWebResourceRequest_GetReferrer impl_OH_ArkWebResourceRequest_GetReferrer;
144 TYPE_OH_ArkWebResourceRequest_GetRequestHeaders impl_OH_ArkWebResourceRequest_GetRequestHeaders;
145 TYPE_OH_ArkWebResourceRequest_IsRedirect impl_OH_ArkWebResourceRequest_IsRedirect;
146 TYPE_OH_ArkWebResourceRequest_IsMainFrame impl_OH_ArkWebResourceRequest_IsMainFrame;
147 TYPE_OH_ArkWebResourceRequest_HasGesture impl_OH_ArkWebResourceRequest_HasGesture;
148 TYPE_OH_ArkWeb_RegisterCustomSchemes impl_OH_ArkWeb_RegisterCustomSchemes;
149 TYPE_OH_ArkWeb_SetSchemeHandler impl_OH_ArkWeb_SetSchemeHandler;
150 TYPE_OH_ArkWebServiceWorker_SetSchemeHandler impl_OH_ArkWebServiceWorker_SetSchemeHandler;
151 TYPE_OH_ArkWebServiceWorker_ClearSchemeHandlers impl_OH_ArkWebServiceWorker_ClearSchemeHandlers;
152 TYPE_OH_ArkWeb_ClearSchemeHandlers impl_OH_ArkWeb_ClearSchemeHandlers;
153 TYPE_OH_ArkWeb_CreateSchemeHandler impl_OH_ArkWeb_CreateSchemeHandler;
154 TYPE_OH_ArkWeb_DestroySchemeHandler impl_OH_ArkWeb_DestroySchemeHandler;
155 TYPE_OH_ArkWebSchemeHandler_SetOnRequestStart impl_OH_ArkWebSchemeHandler_SetOnRequestStart;
156 TYPE_OH_ArkWebSchemeHandler_SetOnRequestStop impl_OH_ArkWebSchemeHandler_SetOnRequestStop;
157 TYPE_OH_ArkWebSchemeHandler_SetUserData impl_OH_ArkWebSchemeHandler_SetUserData;
158 TYPE_OH_ArkWebSchemeHandler_GetUserData impl_OH_ArkWebSchemeHandler_GetUserData;
159 TYPE_OH_ArkWeb_CreateResponse impl_OH_ArkWeb_CreateResponse;
160 TYPE_OH_ArkWeb_DestroyResponse impl_OH_ArkWeb_DestroyResponse;
161 TYPE_OH_ArkWebResponse_GetUrl impl_OH_ArkWebResponse_GetUrl;
162 TYPE_OH_ArkWebResponse_SetUrl impl_OH_ArkWebResponse_SetUrl;
163 TYPE_OH_ArkWebResponse_SetError impl_OH_ArkWebResponse_SetError;
164 TYPE_OH_ArkWebResponse_GetError impl_OH_ArkWebResponse_GetError;
165 TYPE_OH_ArkWebResponse_SetStatus impl_OH_ArkWebResponse_SetStatus;
166 TYPE_OH_ArkWebResponse_GetStatus impl_OH_ArkWebResponse_GetStatus;
167 TYPE_OH_ArkWebResponse_SetStatusText impl_OH_ArkWebResponse_SetStatusText;
168 TYPE_OH_ArkWebResponse_GetStatusText impl_OH_ArkWebResponse_GetStatusText;
169 TYPE_OH_ArkWebResponse_SetMimeType impl_OH_ArkWebResponse_SetMimeType;
170 TYPE_OH_ArkWebResponse_GetMimeType impl_OH_ArkWebResponse_GetMimeType;
171 TYPE_OH_ArkWebResponse_SetCharset impl_OH_ArkWebResponse_SetCharset;
172 TYPE_OH_ArkWebResponse_GetCharset impl_OH_ArkWebResponse_GetCharset;
173 TYPE_OH_ArkWebResponse_SetHeaderByName impl_OH_ArkWebResponse_SetHeaderByName;
174 TYPE_OH_ArkWebResponse_GetHeaderByName impl_OH_ArkWebResponse_GetHeaderByName;
175 TYPE_OH_ArkWebResourceHandler_Destroy impl_OH_ArkWebResourceHandler_Destroy;
176 TYPE_OH_ArkWebResourceHandler_DidReceiveResponse impl_OH_ArkWebResourceHandler_DidReceiveResponse;
177 TYPE_OH_ArkWebResourceHandler_DidReceiveData impl_OH_ArkWebResourceHandler_DidReceiveData;
178 TYPE_OH_ArkWebResourceHandler_DidFinish impl_OH_ArkWebResourceHandler_DidFinish;
179 TYPE_OH_ArkWebResourceHandler_DidFailWithError impl_OH_ArkWebResourceHandler_DidFailWithError;
180 TYPE_OH_ArkWebResourceHandler_DidFailWithErrorV2 impl_OH_ArkWebResourceHandler_DidFailWithErrorV2;
181 TYPE_OH_ArkWeb_ReleaseString impl_OH_ArkWeb_ReleaseString;
182 TYPE_OH_ArkWeb_ReleaseByteArray impl_OH_ArkWeb_ReleaseByteArray;
183 TYPE_OH_ArkWebSchemeHandler_SetFromEts impl_OH_ArkWebSchemeHandler_SetFromEts;
184 };
185
186 } // namespace
187
TEST_OH_ArkWebRequestHeaderList_Destroy(ArkWeb_RequestHeaderList * requestHeaderList)188 void TEST_OH_ArkWebRequestHeaderList_Destroy(ArkWeb_RequestHeaderList* requestHeaderList) {
189 return;
190 }
191
TEST_OH_ArkWebRequestHeaderList_GetSize(const ArkWeb_RequestHeaderList * requestHeaderList)192 int32_t TEST_OH_ArkWebRequestHeaderList_GetSize(const ArkWeb_RequestHeaderList* requestHeaderList) {
193 return 0;
194 }
195
TEST_OH_ArkWebRequestHeaderList_GetHeader(const ArkWeb_RequestHeaderList * requestHeaderList,int32_t index,char ** key,char ** value)196 void TEST_OH_ArkWebRequestHeaderList_GetHeader(
197 const ArkWeb_RequestHeaderList* requestHeaderList, int32_t index, char** key, char** value) {
198 return;
199 }
200
TEST_OH_ArkWebResourceRequest_GetMethod(const ArkWeb_ResourceRequest * resourceRequest,char ** method)201 void TEST_OH_ArkWebResourceRequest_GetMethod(const ArkWeb_ResourceRequest* resourceRequest, char** method) {
202 return;
203 }
204
TEST_OH_ArkWebResourceRequest_GetUrl(const ArkWeb_ResourceRequest * resourceRequest,char ** url)205 void TEST_OH_ArkWebResourceRequest_GetUrl(const ArkWeb_ResourceRequest* resourceRequest, char** url) {
206 return;
207 }
208
TEST_OH_ArkWebResourceRequest_GetHttpBodyStream(const ArkWeb_ResourceRequest * resourceRequest,ArkWeb_HttpBodyStream ** httpBodyStream)209 void TEST_OH_ArkWebResourceRequest_GetHttpBodyStream(
210 const ArkWeb_ResourceRequest* resourceRequest, ArkWeb_HttpBodyStream** httpBodyStream) {
211 return;
212 }
213
TEST_OH_ArkWebResourceRequest_DestroyHttpBodyStream(ArkWeb_HttpBodyStream * httpBodyStream)214 void TEST_OH_ArkWebResourceRequest_DestroyHttpBodyStream(ArkWeb_HttpBodyStream* httpBodyStream) {
215 return;
216 }
217
TEST_OH_ArkWebResourceRequest_GetResourceType(const ArkWeb_ResourceRequest * resourceRequest)218 int32_t TEST_OH_ArkWebResourceRequest_GetResourceType(const ArkWeb_ResourceRequest* resourceRequest) {
219 return 0;
220 }
221
TEST_OH_ArkWebResourceRequest_GetFrameUrl(const ArkWeb_ResourceRequest * resourceRequest,char ** frameUrl)222 void TEST_OH_ArkWebResourceRequest_GetFrameUrl(const ArkWeb_ResourceRequest* resourceRequest, char** frameUrl) {
223 return;
224 }
225
TEST_OH_ArkWebHttpBodyStream_SetUserData(ArkWeb_HttpBodyStream * httpBodyStream,void * userData)226 int32_t TEST_OH_ArkWebHttpBodyStream_SetUserData(ArkWeb_HttpBodyStream* httpBodyStream, void* userData) {
227 return 0;
228 }
229
TEST_OH_ArkWebHttpBodyStream_GetUserData(const ArkWeb_HttpBodyStream * httpBodyStream)230 void* TEST_OH_ArkWebHttpBodyStream_GetUserData(const ArkWeb_HttpBodyStream* httpBodyStream) {
231 return nullptr;
232 }
233
TEST_OH_ArkWebHttpBodyStream_SetReadCallback(ArkWeb_HttpBodyStream * httpBodyStream,ArkWeb_HttpBodyStreamReadCallback readCallback)234 int32_t TEST_OH_ArkWebHttpBodyStream_SetReadCallback(
235 ArkWeb_HttpBodyStream* httpBodyStream, ArkWeb_HttpBodyStreamReadCallback readCallback) {
236 return 0;
237 }
238
TEST_OH_ArkWebHttpBodyStream_SetAsyncReadCallback(ArkWeb_HttpBodyStream * httpBodyStream,ArkWeb_HttpBodyStreamAsyncReadCallback readCallback)239 int32_t TEST_OH_ArkWebHttpBodyStream_SetAsyncReadCallback(
240 ArkWeb_HttpBodyStream* httpBodyStream, ArkWeb_HttpBodyStreamAsyncReadCallback readCallback) {
241 return 0;
242 }
243
TEST_OH_ArkWebHttpBodyStream_Init(ArkWeb_HttpBodyStream * httpBodyStream,ArkWeb_HttpBodyStreamInitCallback initCallback)244 int32_t TEST_OH_ArkWebHttpBodyStream_Init(
245 ArkWeb_HttpBodyStream* httpBodyStream, ArkWeb_HttpBodyStreamInitCallback initCallback) {
246 return 0;
247 }
248
TEST_OH_ArkWebHttpBodyStream_Read(const ArkWeb_HttpBodyStream * httpBodyStream,uint8_t * buffer,int bufLen)249 void TEST_OH_ArkWebHttpBodyStream_Read(
250 const ArkWeb_HttpBodyStream* httpBodyStream, uint8_t* buffer, int bufLen) {
251 return;
252 }
253
TEST_OH_ArkWebHttpBodyStream_AsyncRead(const ArkWeb_HttpBodyStream * httpBodyStream,uint8_t * buffer,int bufLen)254 void TEST_OH_ArkWebHttpBodyStream_AsyncRead(
255 const ArkWeb_HttpBodyStream* httpBodyStream, uint8_t* buffer, int bufLen) {
256 return;
257 }
258
TEST_OH_ArkWebHttpBodyStream_GetSize(const ArkWeb_HttpBodyStream * httpBodyStream)259 uint64_t TEST_OH_ArkWebHttpBodyStream_GetSize(const ArkWeb_HttpBodyStream* httpBodyStream) {
260 return 1;
261 }
262
TEST_OH_ArkWebHttpBodyStream_GetPosition(const ArkWeb_HttpBodyStream * httpBodyStream)263 uint64_t TEST_OH_ArkWebHttpBodyStream_GetPosition(const ArkWeb_HttpBodyStream* httpBodyStream) {
264 return 1;
265 }
266
TEST_OH_ArkWebHttpBodyStream_IsChunked(const ArkWeb_HttpBodyStream * httpBodyStream)267 bool TEST_OH_ArkWebHttpBodyStream_IsChunked(const ArkWeb_HttpBodyStream* httpBodyStream) {
268 return true;
269 }
270
TEST_OH_ArkWebHttpBodyStream_IsEof(const ArkWeb_HttpBodyStream * httpBodyStream)271 bool TEST_OH_ArkWebHttpBodyStream_IsEof(const ArkWeb_HttpBodyStream* httpBodyStream) {
272 return true;
273 }
274
TEST_OH_ArkWebHttpBodyStream_IsInMemory(const ArkWeb_HttpBodyStream * httpBodyStream)275 bool TEST_OH_ArkWebHttpBodyStream_IsInMemory(const ArkWeb_HttpBodyStream* httpBodyStream) {
276 return true;
277 }
278
TEST_OH_ArkWebResourceRequest_Destroy(const ArkWeb_ResourceRequest * resourceRequest)279 int32_t TEST_OH_ArkWebResourceRequest_Destroy(const ArkWeb_ResourceRequest* resourceRequest) {
280 return 0;
281 }
282
TEST_OH_ArkWebResourceRequest_GetReferrer(const ArkWeb_ResourceRequest * resourceRequest,char ** referrer)283 void TEST_OH_ArkWebResourceRequest_GetReferrer(const ArkWeb_ResourceRequest* resourceRequest, char** referrer) {
284 return;
285 }
286
TEST_OH_ArkWebResourceRequest_SetUserData(ArkWeb_ResourceRequest * resourceRequest,void * userData)287 int32_t TEST_OH_ArkWebResourceRequest_SetUserData(ArkWeb_ResourceRequest* resourceRequest, void* userData) {
288 return 0;
289 }
290
TEST_OH_ArkWebResourceRequest_GetUserData(const ArkWeb_ResourceRequest * resourceRequest)291 void* TEST_OH_ArkWebResourceRequest_GetUserData(const ArkWeb_ResourceRequest* resourceRequest) {
292 return NULL;
293 }
294
TEST_OH_ArkWebResourceRequest_IsRedirect(const ArkWeb_ResourceRequest * resourceRequest)295 bool TEST_OH_ArkWebResourceRequest_IsRedirect(const ArkWeb_ResourceRequest* resourceRequest) {
296 return true;
297 }
298
TEST_OH_ArkWebResourceRequest_IsMainFrame(const ArkWeb_ResourceRequest * resourceRequest)299 bool TEST_OH_ArkWebResourceRequest_IsMainFrame(const ArkWeb_ResourceRequest* resourceRequest) {
300 return true;
301 }
302
TEST_OH_ArkWebResourceRequest_HasGesture(const ArkWeb_ResourceRequest * resourceRequest)303 bool TEST_OH_ArkWebResourceRequest_HasGesture(const ArkWeb_ResourceRequest* resourceRequest) {
304 return true;
305 }
306
TEST_OH_ArkWeb_RegisterCustomSchemes(const char * scheme,int32_t option)307 int32_t TEST_OH_ArkWeb_RegisterCustomSchemes(const char* scheme, int32_t option) {
308 return 0;
309 }
310
TEST_OH_ArkWeb_SetSchemeHandler(const char * scheme,const char * webTag,ArkWeb_SchemeHandler * schemeHandler)311 bool TEST_OH_ArkWeb_SetSchemeHandler(
312 const char* scheme, const char* webTag, ArkWeb_SchemeHandler* schemeHandler) {
313 return true;
314 }
315
TEST_OH_ArkWebServiceWorker_SetSchemeHandler(const char * scheme,ArkWeb_SchemeHandler * schemeHandler)316 bool TEST_OH_ArkWebServiceWorker_SetSchemeHandler(
317 const char* scheme, ArkWeb_SchemeHandler* schemeHandler) {
318 return true;
319 }
320
TEST_OH_ArkWeb_ClearSchemeHandlers(const char * webTag)321 int32_t TEST_OH_ArkWeb_ClearSchemeHandlers(const char* webTag) {
322 return 0;
323 }
324
TEST_OH_ArkWebServiceWorker_ClearSchemeHandlers()325 int32_t TEST_OH_ArkWebServiceWorker_ClearSchemeHandlers() {
326 return 0;
327 }
328
TEST_OH_ArkWeb_CreateSchemeHandler(ArkWeb_SchemeHandler ** schemeHandler)329 void TEST_OH_ArkWeb_CreateSchemeHandler(ArkWeb_SchemeHandler** schemeHandler) {
330 return;
331 }
332
TEST_OH_ArkWeb_DestroySchemeHandler(ArkWeb_SchemeHandler * schemeHandler)333 void TEST_OH_ArkWeb_DestroySchemeHandler(ArkWeb_SchemeHandler* schemeHandler) {
334 return;
335 }
336
TEST_OH_ArkWebSchemeHandler_SetUserData(ArkWeb_SchemeHandler * schemeHandler,void * userData)337 int32_t TEST_OH_ArkWebSchemeHandler_SetUserData(ArkWeb_SchemeHandler* schemeHandler, void* userData) {
338 return 0;
339 }
340
TEST_OH_ArkWebSchemeHandler_GetUserData(const ArkWeb_SchemeHandler * schemeHandler)341 void* TEST_OH_ArkWebSchemeHandler_GetUserData(const ArkWeb_SchemeHandler* schemeHandler) {
342 return nullptr;
343 }
344
TEST_OH_ArkWebSchemeHandler_SetOnRequestStart(ArkWeb_SchemeHandler * schemeHandler,ArkWeb_OnRequestStart onRequestStart)345 int32_t TEST_OH_ArkWebSchemeHandler_SetOnRequestStart(
346 ArkWeb_SchemeHandler* schemeHandler, ArkWeb_OnRequestStart onRequestStart) {
347 return 0;
348 }
349
TEST_OH_ArkWebSchemeHandler_SetOnRequestStop(ArkWeb_SchemeHandler * schemeHandler,ArkWeb_OnRequestStop onRequestStop)350 int32_t TEST_OH_ArkWebSchemeHandler_SetOnRequestStop(
351 ArkWeb_SchemeHandler* schemeHandler, ArkWeb_OnRequestStop onRequestStop) {
352 return 0;
353 }
354
TEST_OH_ArkWeb_CreateResponse(ArkWeb_Response ** response)355 void TEST_OH_ArkWeb_CreateResponse(ArkWeb_Response** response) {
356 return;
357 }
358
TEST_OH_ArkWeb_DestroyResponse(ArkWeb_Response * response)359 void TEST_OH_ArkWeb_DestroyResponse(ArkWeb_Response* response) {
360 return;
361 }
362
TEST_OH_ArkWebResponse_SetUrl(ArkWeb_Response * response,const char * url)363 int32_t TEST_OH_ArkWebResponse_SetUrl(ArkWeb_Response* response, const char* url) {
364 return 0;
365 }
366
TEST_OH_ArkWebResponse_GetUrl(const ArkWeb_Response * response,char ** url)367 void TEST_OH_ArkWebResponse_GetUrl(const ArkWeb_Response* response, char** url) {
368 return;
369 }
370
TEST_OH_ArkWebResponse_SetError(ArkWeb_Response * response,ArkWeb_NetError errorCode)371 int32_t TEST_OH_ArkWebResponse_SetError(ArkWeb_Response* response, ArkWeb_NetError errorCode) {
372 return 0;
373 }
374
TEST_OH_ArkWebResponse_GetError(const ArkWeb_Response * response)375 ArkWeb_NetError TEST_OH_ArkWebResponse_GetError(const ArkWeb_Response* response) {
376 return ARKWEB_NET_OK;
377 }
378
TEST_OH_ArkWebResponse_SetStatus(ArkWeb_Response * response,int status)379 int32_t TEST_OH_ArkWebResponse_SetStatus(ArkWeb_Response* response, int status) {
380 return 0;
381 }
382
TEST_OH_ArkWebResponse_GetStatus(const ArkWeb_Response * response)383 int TEST_OH_ArkWebResponse_GetStatus(const ArkWeb_Response* response) {
384 return 0;
385 }
386
TEST_OH_ArkWebResponse_SetStatusText(ArkWeb_Response * response,const char * statusText)387 int32_t TEST_OH_ArkWebResponse_SetStatusText(ArkWeb_Response* response, const char* statusText) {
388 return 0;
389 }
390
TEST_OH_ArkWebResponse_GetStatusText(const ArkWeb_Response * response,char ** statusText)391 void TEST_OH_ArkWebResponse_GetStatusText(const ArkWeb_Response* response, char** statusText) {
392 return;
393 }
394
TEST_OH_ArkWebResponse_SetMimeType(ArkWeb_Response * response,const char * mimeType)395 int32_t TEST_OH_ArkWebResponse_SetMimeType(ArkWeb_Response* response, const char* mimeType) {
396 return 0;
397 }
398
TEST_OH_ArkWebResponse_GetMimeType(const ArkWeb_Response * response,char ** mimeType)399 void TEST_OH_ArkWebResponse_GetMimeType(const ArkWeb_Response* response, char** mimeType) {
400 return;
401 }
402
TEST_OH_ArkWebResponse_SetCharset(ArkWeb_Response * response,const char * charset)403 int32_t TEST_OH_ArkWebResponse_SetCharset(ArkWeb_Response* response, const char* charset) {
404 return 0;
405 }
406
TEST_OH_ArkWebResponse_GetCharset(const ArkWeb_Response * response,char ** charset)407 void TEST_OH_ArkWebResponse_GetCharset(const ArkWeb_Response* response, char** charset) {
408 return;
409 }
410
TEST_OH_ArkWebResponse_SetHeaderByName(ArkWeb_Response * response,const char * name,const char * value,bool ow)411 int32_t TEST_OH_ArkWebResponse_SetHeaderByName(
412 ArkWeb_Response* response, const char* name, const char* value, bool ow) {
413 return 0;
414 }
415
TEST_OH_ArkWebResponse_GetHeaderByName(const ArkWeb_Response * response,const char * name,char ** value)416 void TEST_OH_ArkWebResponse_GetHeaderByName(const ArkWeb_Response* response, const char* name, char** value) {
417 return;
418 }
419
TEST_OH_ArkWebResourceHandler_Destroy(const ArkWeb_ResourceHandler * resourceHandler)420 int32_t TEST_OH_ArkWebResourceHandler_Destroy(const ArkWeb_ResourceHandler* resourceHandler) {
421 return 0;
422 }
423
TEST_OH_ArkWebResourceHandler_DidReceiveResponse(const ArkWeb_ResourceHandler * resourceHandler,const ArkWeb_Response * response)424 int32_t TEST_OH_ArkWebResourceHandler_DidReceiveResponse(
425 const ArkWeb_ResourceHandler* resourceHandler, const ArkWeb_Response* response) {
426 return 0;
427 }
428
TEST_OH_ArkWebResourceHandler_DidReceiveData(const ArkWeb_ResourceHandler * resourceHandler,const uint8_t * buffer,int64_t bufLen)429 int32_t TEST_OH_ArkWebResourceHandler_DidReceiveData(
430 const ArkWeb_ResourceHandler* resourceHandler, const uint8_t* buffer, int64_t bufLen) {
431 return 0;
432 }
433
TEST_OH_ArkWebResourceHandler_DidFinish(const ArkWeb_ResourceHandler * resourceHandler)434 int32_t TEST_OH_ArkWebResourceHandler_DidFinish(const ArkWeb_ResourceHandler* resourceHandler) {
435 return 0;
436 }
437
TEST_OH_ArkWebResourceHandler_DidFailWithError(const ArkWeb_ResourceHandler * resourceHandler,ArkWeb_NetError errorCode)438 int32_t TEST_OH_ArkWebResourceHandler_DidFailWithError(
439 const ArkWeb_ResourceHandler* resourceHandler, ArkWeb_NetError errorCode) {
440 return 0;
441 }
442
TEST_OH_ArkWebResourceHandler_DidFailWithErrorV2(const ArkWeb_ResourceHandler * resourceHandler,ArkWeb_NetError errorCode,bool completeIfNoResponse)443 int32_t TEST_OH_ArkWebResourceHandler_DidFailWithErrorV2(
444 const ArkWeb_ResourceHandler* resourceHandler, ArkWeb_NetError errorCode, bool completeIfNoResponse) {
445 return 0;
446 }
447
TEST_OH_ArkWeb_ReleaseString(char * string)448 void TEST_OH_ArkWeb_ReleaseString(char* string) {
449 return;
450 }
451
TEST_OH_ArkWeb_ReleaseByteArray(uint8_t * byteArray)452 void TEST_OH_ArkWeb_ReleaseByteArray(uint8_t* byteArray) {
453 return;
454 }
455
TEST_OH_ArkWebSchemeHandler_SetFromEts(ArkWeb_SchemeHandler * schemeHandler,bool fromEts)456 int32_t TEST_OH_ArkWebSchemeHandler_SetFromEts(ArkWeb_SchemeHandler* schemeHandler, bool fromEts) {
457 return 0;
458 }
459
TEST_OH_ArkWebResourceRequest_GetRequestHeaders(const ArkWeb_ResourceRequest * resourceRequest,ArkWeb_RequestHeaderList ** requestHeaderList)460 void TEST_OH_ArkWebResourceRequest_GetRequestHeaders(
461 const ArkWeb_ResourceRequest* resourceRequest, ArkWeb_RequestHeaderList** requestHeaderList) {
462 return;
463 }
464
465 SchemeHandlerApi g_testSchemeHandlerApi = {
466 .impl_OH_ArkWebRequestHeaderList_Destroy = TEST_OH_ArkWebRequestHeaderList_Destroy,
467 .impl_OH_ArkWebRequestHeaderList_GetSize = TEST_OH_ArkWebRequestHeaderList_GetSize,
468 .impl_OH_ArkWebRequestHeaderList_GetHeader = TEST_OH_ArkWebRequestHeaderList_GetHeader,
469 .impl_OH_ArkWebResourceRequest_GetMethod = TEST_OH_ArkWebResourceRequest_GetMethod,
470 .impl_OH_ArkWebResourceRequest_GetUrl = TEST_OH_ArkWebResourceRequest_GetUrl,
471 .impl_OH_ArkWebResourceRequest_GetHttpBodyStream = TEST_OH_ArkWebResourceRequest_GetHttpBodyStream,
472 .impl_OH_ArkWebResourceRequest_DestroyHttpBodyStream = TEST_OH_ArkWebResourceRequest_DestroyHttpBodyStream,
473 .impl_OH_ArkWebResourceRequest_GetResourceType = TEST_OH_ArkWebResourceRequest_GetResourceType,
474 .impl_OH_ArkWebResourceRequest_GetFrameUrl = TEST_OH_ArkWebResourceRequest_GetFrameUrl,
475 .impl_OH_ArkWebHttpBodyStream_SetUserData = TEST_OH_ArkWebHttpBodyStream_SetUserData,
476 .impl_OH_ArkWebHttpBodyStream_GetUserData = TEST_OH_ArkWebHttpBodyStream_GetUserData,
477 .impl_OH_ArkWebHttpBodyStream_SetReadCallback = TEST_OH_ArkWebHttpBodyStream_SetReadCallback,
478 .impl_OH_ArkWebHttpBodyStream_SetAsyncReadCallback = TEST_OH_ArkWebHttpBodyStream_SetAsyncReadCallback,
479 .impl_OH_ArkWebHttpBodyStream_Init = TEST_OH_ArkWebHttpBodyStream_Init,
480 .impl_OH_ArkWebHttpBodyStream_Read = TEST_OH_ArkWebHttpBodyStream_Read,
481 .impl_OH_ArkWebHttpBodyStream_AsyncRead = TEST_OH_ArkWebHttpBodyStream_AsyncRead,
482 .impl_OH_ArkWebHttpBodyStream_GetSize = TEST_OH_ArkWebHttpBodyStream_GetSize,
483 .impl_OH_ArkWebHttpBodyStream_GetPosition = TEST_OH_ArkWebHttpBodyStream_GetPosition,
484 .impl_OH_ArkWebHttpBodyStream_IsChunked = TEST_OH_ArkWebHttpBodyStream_IsChunked,
485 .impl_OH_ArkWebHttpBodyStream_IsEof = TEST_OH_ArkWebHttpBodyStream_IsEof,
486 .impl_OH_ArkWebHttpBodyStream_IsInMemory = TEST_OH_ArkWebHttpBodyStream_IsInMemory,
487 .impl_OH_ArkWebResourceRequest_Destroy = TEST_OH_ArkWebResourceRequest_Destroy,
488 .impl_OH_ArkWebResourceRequest_SetUserData = TEST_OH_ArkWebResourceRequest_SetUserData,
489 .impl_OH_ArkWebResourceRequest_GetUserData = TEST_OH_ArkWebResourceRequest_GetUserData,
490 .impl_OH_ArkWebResourceRequest_GetReferrer = TEST_OH_ArkWebResourceRequest_GetReferrer,
491 .impl_OH_ArkWebResourceRequest_GetRequestHeaders = TEST_OH_ArkWebResourceRequest_GetRequestHeaders,
492 .impl_OH_ArkWebResourceRequest_IsRedirect = TEST_OH_ArkWebResourceRequest_IsRedirect,
493 .impl_OH_ArkWebResourceRequest_IsMainFrame = TEST_OH_ArkWebResourceRequest_IsMainFrame,
494 .impl_OH_ArkWebResourceRequest_HasGesture = TEST_OH_ArkWebResourceRequest_HasGesture,
495 .impl_OH_ArkWeb_RegisterCustomSchemes = TEST_OH_ArkWeb_RegisterCustomSchemes,
496 .impl_OH_ArkWeb_SetSchemeHandler = TEST_OH_ArkWeb_SetSchemeHandler,
497 .impl_OH_ArkWebServiceWorker_SetSchemeHandler = TEST_OH_ArkWebServiceWorker_SetSchemeHandler,
498 .impl_OH_ArkWeb_ClearSchemeHandlers = TEST_OH_ArkWeb_ClearSchemeHandlers,
499 .impl_OH_ArkWebServiceWorker_ClearSchemeHandlers = TEST_OH_ArkWebServiceWorker_ClearSchemeHandlers,
500 .impl_OH_ArkWeb_CreateSchemeHandler = TEST_OH_ArkWeb_CreateSchemeHandler,
501 .impl_OH_ArkWeb_DestroySchemeHandler = TEST_OH_ArkWeb_DestroySchemeHandler,
502 .impl_OH_ArkWebSchemeHandler_SetUserData = TEST_OH_ArkWebSchemeHandler_SetUserData,
503 .impl_OH_ArkWebSchemeHandler_GetUserData = TEST_OH_ArkWebSchemeHandler_GetUserData,
504 .impl_OH_ArkWebSchemeHandler_SetOnRequestStart = TEST_OH_ArkWebSchemeHandler_SetOnRequestStart,
505 .impl_OH_ArkWebSchemeHandler_SetOnRequestStop = TEST_OH_ArkWebSchemeHandler_SetOnRequestStop,
506 .impl_OH_ArkWeb_CreateResponse = TEST_OH_ArkWeb_CreateResponse,
507 .impl_OH_ArkWeb_DestroyResponse = TEST_OH_ArkWeb_DestroyResponse,
508 .impl_OH_ArkWebResponse_SetUrl = TEST_OH_ArkWebResponse_SetUrl,
509 .impl_OH_ArkWebResponse_GetUrl = TEST_OH_ArkWebResponse_GetUrl,
510 .impl_OH_ArkWebResponse_SetError = TEST_OH_ArkWebResponse_SetError,
511 .impl_OH_ArkWebResponse_GetError = TEST_OH_ArkWebResponse_GetError,
512 .impl_OH_ArkWebResponse_SetStatus = TEST_OH_ArkWebResponse_SetStatus,
513 .impl_OH_ArkWebResponse_GetStatus = TEST_OH_ArkWebResponse_GetStatus,
514 .impl_OH_ArkWebResponse_SetStatusText = TEST_OH_ArkWebResponse_SetStatusText,
515 .impl_OH_ArkWebResponse_GetStatusText = TEST_OH_ArkWebResponse_GetStatusText,
516 .impl_OH_ArkWebResponse_SetMimeType = TEST_OH_ArkWebResponse_SetMimeType,
517 .impl_OH_ArkWebResponse_GetMimeType = TEST_OH_ArkWebResponse_GetMimeType,
518 .impl_OH_ArkWebResponse_SetCharset = TEST_OH_ArkWebResponse_SetCharset,
519 .impl_OH_ArkWebResponse_GetCharset = TEST_OH_ArkWebResponse_GetCharset,
520 .impl_OH_ArkWebResponse_SetHeaderByName = TEST_OH_ArkWebResponse_SetHeaderByName,
521 .impl_OH_ArkWebResponse_GetHeaderByName = TEST_OH_ArkWebResponse_GetHeaderByName,
522 .impl_OH_ArkWebResourceHandler_Destroy = TEST_OH_ArkWebResourceHandler_Destroy,
523 .impl_OH_ArkWebResourceHandler_DidReceiveResponse = TEST_OH_ArkWebResourceHandler_DidReceiveResponse,
524 .impl_OH_ArkWebResourceHandler_DidReceiveData = TEST_OH_ArkWebResourceHandler_DidReceiveData,
525 .impl_OH_ArkWebResourceHandler_DidFinish = TEST_OH_ArkWebResourceHandler_DidFinish,
526 .impl_OH_ArkWebResourceHandler_DidFailWithError = TEST_OH_ArkWebResourceHandler_DidFailWithError,
527 .impl_OH_ArkWebResourceHandler_DidFailWithErrorV2 = TEST_OH_ArkWebResourceHandler_DidFailWithErrorV2,
528 .impl_OH_ArkWeb_ReleaseString = TEST_OH_ArkWeb_ReleaseString,
529 .impl_OH_ArkWeb_ReleaseByteArray = TEST_OH_ArkWeb_ReleaseByteArray,
530 .impl_OH_ArkWebSchemeHandler_SetFromEts = TEST_OH_ArkWebSchemeHandler_SetFromEts
531 };
532
533
534 namespace NWeb {
535 class MockNWebEngine : public OHOS::NWeb::NWebEngine {
536 public:
CreateNWeb(std::shared_ptr<NWebCreateInfo> create_info)537 std::shared_ptr<NWeb> CreateNWeb(std::shared_ptr<NWebCreateInfo> create_info)
538 {
539 return nullptr;
540 }
541
GetNWeb(int32_t nweb_id)542 std::shared_ptr<NWeb> GetNWeb(int32_t nweb_id)
543 {
544 return nullptr;
545 }
546
GetDataBase()547 std::shared_ptr<NWebDataBase> GetDataBase()
548 {
549 return nullptr;
550 }
551
GetWebStorage()552 std::shared_ptr<NWebWebStorage> GetWebStorage()
553 {
554 return nullptr;
555 }
556
GetCookieManager()557 std::shared_ptr<NWebCookieManager> GetCookieManager()
558 {
559 return nullptr;
560 }
561
GetDownloadManager()562 std::shared_ptr<NWebDownloadManager> GetDownloadManager()
563 {
564 return nullptr;
565 }
566
SetWebTag(int32_t nweb_id,const char * web_tag)567 void SetWebTag(int32_t nweb_id, const char* web_tag) {}
568
InitializeWebEngine(std::shared_ptr<NWebEngineInitArgs> init_args)569 void InitializeWebEngine(std::shared_ptr<NWebEngineInitArgs> init_args) {}
570
PrepareForPageLoad(const std::string & url,bool preconnectable,int32_t num_sockets)571 void PrepareForPageLoad(const std::string& url, bool preconnectable, int32_t num_sockets) {}
572
SetWebDebuggingAccess(bool isEnableDebug)573 void SetWebDebuggingAccess(bool isEnableDebug) {}
574
AddIntelligentTrackingPreventionBypassingList(const std::vector<std::string> & hosts)575 void AddIntelligentTrackingPreventionBypassingList(const std::vector<std::string>& hosts) {}
576
RemoveIntelligentTrackingPreventionBypassingList(const std::vector<std::string> & hosts)577 void RemoveIntelligentTrackingPreventionBypassingList(const std::vector<std::string>& hosts) {}
ClearIntelligentTrackingPreventionBypassingList()578 void ClearIntelligentTrackingPreventionBypassingList() {}
579
GetDefaultUserAgent()580 std::string GetDefaultUserAgent()
581 {
582 return "";
583 }
584
PauseAllTimers()585 void PauseAllTimers() {}
586
ResumeAllTimers()587 void ResumeAllTimers() {}
588
PrefetchResource(const std::shared_ptr<NWebEnginePrefetchArgs> & pre_args,const std::map<std::string,std::string> & additional_http_headers,const std::string & cache_key,const uint32_t & cache_valid_time)589 void PrefetchResource(const std::shared_ptr<NWebEnginePrefetchArgs>& pre_args,
590 const std::map<std::string, std::string>& additional_http_headers, const std::string& cache_key,
591 const uint32_t& cache_valid_time)
592 {}
593
SetRenderProcessMode(RenderProcessMode mode)594 void SetRenderProcessMode(RenderProcessMode mode) {}
595
GetRenderProcessMode()596 RenderProcessMode GetRenderProcessMode()
597 {
598 return RenderProcessMode::SINGLE_MODE;
599 }
600
ClearPrefetchedResource(const std::vector<std::string> & cache_key_list)601 void ClearPrefetchedResource(const std::vector<std::string>& cache_key_list) {}
602
WarmupServiceWorker(const std::string & url)603 void WarmupServiceWorker(const std::string& url) {}
604
SetHostIP(const std::string & hostName,const std::string & address,int32_t aliveTime)605 void SetHostIP(const std::string& hostName, const std::string& address, int32_t aliveTime) {}
606
ClearHostIP(const std::string & hostName)607 void ClearHostIP(const std::string& hostName) {}
608
SetAppCustomUserAgent(const std::string & userAgent)609 void SetAppCustomUserAgent(const std::string& userAgent) {}
610
SetUserAgentForHosts(const std::string & userAgent,const std::vector<std::string> & hosts)611 void SetUserAgentForHosts(const std::string& userAgent, const std::vector<std::string>& hosts) {}
612
SetWholeWebDrawing()613 void SetWholeWebDrawing() {}
614
GetAdsBlockManager()615 std::shared_ptr<NWebAdsBlockManager> GetAdsBlockManager()
616 {
617 return nullptr;
618 }
619
EnableBackForwardCache(bool nativeEmbed,bool mediaTakeOver)620 void EnableBackForwardCache(bool nativeEmbed, bool mediaTakeOver) {}
621
RemoveAllCache(bool include_disk_files)622 void RemoveAllCache(bool include_disk_files) {}
623 };
624
625
626 class OHArkwebSchemeHandlerTest : public testing::Test {
627 public:
628 static void SetUpTestCase(void);
629 static void TearDownTestCase(void);
630 void SetUp();
631 void TearDown();
632 };
633
SetUpTestCase(void)634 void OHArkwebSchemeHandlerTest::SetUpTestCase(void)
635 {}
636
TearDownTestCase(void)637 void OHArkwebSchemeHandlerTest::TearDownTestCase(void)
638 {}
639
SetUp(void)640 void OHArkwebSchemeHandlerTest::SetUp(void)
641 {}
642
TearDown(void)643 void OHArkwebSchemeHandlerTest::TearDown(void)
644 {}
645
646
647 /**
648 * @tc.name : OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNull_001
649 * @tc.desc : g_SchemeHandlerApi is nullptr
650 */
651 HWTEST_F(OHArkwebSchemeHandlerTest, OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNull_001, TestSize.Level1) {
652 ArkWeb_RequestHeaderList* headerList = nullptr;
653 OH_ArkWebRequestHeaderList_Destroy(headerList);
654 int32_t ret = OH_ArkWebRequestHeaderList_GetSize(headerList);
655 EXPECT_EQ(ret, -1);
656
657 int32_t index = 0;
658 char* key = nullptr;
659 char* value = nullptr;
660 OH_ArkWebRequestHeaderList_GetHeader(headerList, index, &key, &value);
661
662 ArkWeb_ResourceRequest* resourceRequest = nullptr;
663 char* method = nullptr;
664 OH_ArkWebResourceRequest_GetMethod(resourceRequest, &method);
665
666 char* url = nullptr;
667 OH_ArkWebResourceRequest_GetUrl(resourceRequest, &url);
668
669 ArkWeb_HttpBodyStream* httpBodyStream = nullptr;
670 OH_ArkWebResourceRequest_GetHttpBodyStream(resourceRequest, &httpBodyStream);
671 OH_ArkWebResourceRequest_DestroyHttpBodyStream(httpBodyStream);
672
673 ret = OH_ArkWebResourceRequest_GetResourceType(resourceRequest);
674 EXPECT_EQ(ret, -1);
675
676 char* frameUrl = nullptr;
677 OH_ArkWebResourceRequest_GetFrameUrl(resourceRequest, &frameUrl);
678
679 void* userData = nullptr;
680 int32_t result = OH_ArkWebHttpBodyStream_SetUserData(httpBodyStream, userData);
681 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
682
683 void* userDataGet = OH_ArkWebHttpBodyStream_GetUserData(httpBodyStream);
684 EXPECT_EQ(userDataGet, nullptr);
685 }
686
687 /**
688 * @tc.name : OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNull_002
689 * @tc.desc : g_SchemeHandlerApi is nullptr
690 */
691 HWTEST_F(OHArkwebSchemeHandlerTest, OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNull_002, TestSize.Level1) {
692 ArkWeb_HttpBodyStream* httpBodyStream = nullptr;
693 ArkWeb_HttpBodyStreamReadCallback readCallback = nullptr;
694 int32_t result = OH_ArkWebHttpBodyStream_SetReadCallback(httpBodyStream, readCallback);
695 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
696 ArkWeb_HttpBodyStreamAsyncReadCallback readAsyncCallback = nullptr;
697 result = OH_ArkWebHttpBodyStream_SetAsyncReadCallback(httpBodyStream, readAsyncCallback);
698 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
699
700 ArkWeb_HttpBodyStreamInitCallback initCallback = nullptr;
701 result = OH_ArkWebHttpBodyStream_Init(httpBodyStream, initCallback);
702 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
703
704 const ArkWeb_HttpBodyStream* httpBodyStream1 = nullptr;
705 uint8_t buffer[256] = {0};
706 int bufLen = sizeof(buffer);
707 OH_ArkWebHttpBodyStream_Read(httpBodyStream1, buffer, bufLen);
708 OH_ArkWebHttpBodyStream_AsyncRead(httpBodyStream1, buffer, bufLen);
709
710 uint64_t size = OH_ArkWebHttpBodyStream_GetSize(httpBodyStream1);
711 EXPECT_EQ(size, 0);
712 uint64_t position = OH_ArkWebHttpBodyStream_GetPosition(httpBodyStream1);
713 EXPECT_EQ(position, 0);
714 bool boolResult = OH_ArkWebHttpBodyStream_IsChunked(httpBodyStream);
715 EXPECT_FALSE(boolResult);
716 boolResult = OH_ArkWebHttpBodyStream_IsEof(httpBodyStream);
717 EXPECT_FALSE(boolResult);
718 boolResult = OH_ArkWebHttpBodyStream_IsInMemory(httpBodyStream);
719 EXPECT_FALSE(boolResult);
720
721 const ArkWeb_ResourceRequest* resourceRequest = nullptr;
722 result = OH_ArkWebResourceRequest_Destroy(resourceRequest);
723 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
724 char* referrer = nullptr;
725 OH_ArkWebResourceRequest_GetReferrer(resourceRequest, &referrer);
726 }
727
728 /**
729 * @tc.name : OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNull_003
730 * @tc.desc : g_SchemeHandlerApi is nullptr
731 */
732 HWTEST_F(OHArkwebSchemeHandlerTest, OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNull_003, TestSize.Level1) {
733 ArkWeb_ResourceRequest* resourceRequest = nullptr;
734 void* userData = nullptr;
735 int32_t result = OH_ArkWebResourceRequest_SetUserData(resourceRequest, userData);
736 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
737
738 const ArkWeb_ResourceRequest* resourceRequest1 = nullptr;
739 void* userData1 = OH_ArkWebResourceRequest_GetUserData(resourceRequest1);
740 EXPECT_EQ(userData1, nullptr);
741
742 ArkWeb_RequestHeaderList* requestHeaderList = nullptr;
743 OH_ArkWebResourceRequest_GetRequestHeaders(resourceRequest1, &requestHeaderList);
744 EXPECT_EQ(requestHeaderList, nullptr);
745
746 bool boolResult = OH_ArkWebResourceRequest_IsRedirect(resourceRequest1);
747 EXPECT_EQ(boolResult, false);
748 boolResult = OH_ArkWebResourceRequest_IsMainFrame(resourceRequest1);
749 EXPECT_EQ(boolResult, false);
750 boolResult = OH_ArkWebResourceRequest_HasGesture(resourceRequest);
751 EXPECT_EQ(boolResult, false);
752
753 const char* webTag = nullptr;
754 result = OH_ArkWeb_ClearSchemeHandlers(webTag);
755 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
756 result = OH_ArkWebServiceWorker_ClearSchemeHandlers();
757 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
758 ArkWeb_SchemeHandler* schemeHandler = nullptr;
759 OH_ArkWeb_DestroySchemeHandler(schemeHandler);
760
761 result = OH_ArkWebSchemeHandler_SetUserData(schemeHandler, userData);
762 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
763
764 const ArkWeb_SchemeHandler* schemeHandler1 = nullptr;
765 void* userData2 = OH_ArkWebSchemeHandler_GetUserData(schemeHandler1);
766 EXPECT_EQ(userData2, nullptr);
767 }
768
769 /**
770 * @tc.name : OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNull_004
771 * @tc.desc : g_SchemeHandlerApi is nullptr
772 */
773 HWTEST_F(OHArkwebSchemeHandlerTest, OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNull_004, TestSize.Level1) {
774 ArkWeb_SchemeHandler* schemeHandler = nullptr;
775 ArkWeb_OnRequestStart onRequestStart = nullptr;
776 int32_t result = OH_ArkWebSchemeHandler_SetOnRequestStart(schemeHandler, onRequestStart);
777 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
778 ArkWeb_OnRequestStop onRequestStop = nullptr;
779 result = OH_ArkWebSchemeHandler_SetOnRequestStop(schemeHandler, onRequestStop);
780 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
781 ArkWeb_Response* response = nullptr;
782 OH_ArkWeb_DestroyResponse(response);
783 const char* url = "www.example.com";
784 result = OH_ArkWebResponse_SetUrl(response, url);
785 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
786 char* url1 = nullptr;
787 OH_ArkWebResponse_GetUrl(response, &url1);
788
789 ArkWeb_NetError errorCode = ARKWEB_NET_OK;
790 result = OH_ArkWebResponse_SetError(response, errorCode);
791 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
792 ArkWeb_NetError errorCodeRes = OH_ArkWebResponse_GetError(response);
793 EXPECT_EQ(errorCodeRes, ARKWEB_ERR_FAILED);
794 int status = -1;
795 result = OH_ArkWebResponse_SetStatus(response, status);
796 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
797 int statusRes = OH_ArkWebResponse_GetStatus(response);
798 EXPECT_EQ(statusRes, -1);
799
800 const char* statusText = "Test Status Text";
801 result = OH_ArkWebResponse_SetStatusText(response, statusText);
802 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
803 char* statusTextGet = nullptr;
804 OH_ArkWebResponse_GetStatusText(response, &statusTextGet);
805
806 const char* mimeType = "text/plain";
807 result = OH_ArkWebResponse_SetMimeType(response, mimeType);
808 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
809 char* mimeTypeRes = nullptr;
810 OH_ArkWebResponse_GetMimeType(response, &mimeTypeRes);
811 const char* charSet = "";
812 result = OH_ArkWebResponse_SetCharset(response, charSet);
813 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
814 char* charSetRes = nullptr;
815 OH_ArkWebResponse_GetCharset(response, &charSetRes);
816 const char* name = "TestHeaderName";
817 const char* value = "TestHeaderValue";
818 result = OH_ArkWebResponse_SetHeaderByName(response, name, value, true);
819 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
820 char* valueRes = nullptr;
821 OH_ArkWebResponse_GetHeaderByName(response, name, &valueRes);
822 }
823
824 /**
825 * @tc.name : OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNull_005
826 * @tc.desc : g_SchemeHandlerApi is nullptr
827 */
828 HWTEST_F(OHArkwebSchemeHandlerTest, OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNull_005, TestSize.Level1) {
829 ArkWeb_ResourceHandler* resourceHandler = nullptr;
830 int32_t res = OH_ArkWebResourceHandler_Destroy(resourceHandler);
831 EXPECT_EQ(res, ARKWEB_ERROR_UNKNOWN);
832
833 ArkWeb_Response* response;
834 res = OH_ArkWebResourceHandler_DidReceiveResponse(resourceHandler, response);
835 EXPECT_EQ(res, ARKWEB_ERROR_UNKNOWN);
836
837 const uint8_t* buffer = reinterpret_cast<const uint8_t*>("TestBuffer");
838 int64_t bufLen = strlen("TestBuffer");
839 res = OH_ArkWebResourceHandler_DidReceiveData(nullptr, buffer, bufLen);
840 EXPECT_EQ(res, ARKWEB_ERROR_UNKNOWN);
841 res = OH_ArkWebResourceHandler_DidFinish(nullptr);
842 EXPECT_EQ(res, ARKWEB_ERROR_UNKNOWN);
843
844 ArkWeb_NetError errorCode = ARKWEB_NET_OK;
845 res = OH_ArkWebResourceHandler_DidFailWithError(resourceHandler, errorCode);
846 EXPECT_EQ(res, ARKWEB_ERROR_UNKNOWN);
847 res = OH_ArkWebResourceHandler_DidFailWithErrorV2(resourceHandler, errorCode, true);
848 EXPECT_EQ(res, ARKWEB_ERROR_UNKNOWN);
849 char* str = nullptr;
850 OH_ArkWeb_ReleaseString(str);
851 uint8_t byteArray[10] = {0};
852 OH_ArkWeb_ReleaseByteArray(byteArray);
853 ArkWeb_SchemeHandler* schemeHandler = nullptr;
854 res = OH_ArkWebSchemeHandler_SetFromEts(schemeHandler, true);
855 EXPECT_EQ(res, ARKWEB_ERROR_UNKNOWN);
856 }
857
858 /**
859 * @tc.name : OHArkwebSchemeHandlerTest_WebEngineHandleIsNull_004
860 * @tc.desc : webEngineHandle is nullptr and g_SchemeHandlerApi is nullptr
861 */
862 HWTEST_F(OHArkwebSchemeHandlerTest, OHArkwebSchemeHandlerTest_WebEngineHandleIsNull_004, TestSize.Level1) {
863 NWebHelper::Instance().bundlePath_ = "";
864 const char* scheme = "scheme";
865 int32_t option = 0;
866 const char* webTag = "webTag";
867 ArkWeb_SchemeHandler* schemeHandler = nullptr;
868
869 EXPECT_EQ(OH_ArkWeb_RegisterCustomSchemes(scheme, option), ARKWEB_ERROR_UNKNOWN);
870 EXPECT_FALSE(OH_ArkWeb_SetSchemeHandler(scheme, webTag, schemeHandler));
871 EXPECT_FALSE(OH_ArkWebServiceWorker_SetSchemeHandler(scheme, schemeHandler));
872 OH_ArkWeb_CreateSchemeHandler(&schemeHandler);
873 ArkWeb_Response* response = nullptr;
874 OH_ArkWeb_CreateResponse(&response);
875
876 auto nwebEngineMock = std::make_shared<MockNWebEngine>();
877 NWebHelper::Instance().nwebEngine_ = nwebEngineMock;
878 EXPECT_EQ(OH_ArkWeb_RegisterCustomSchemes(scheme, option), ARKWEB_ERROR_UNKNOWN);
879 DestroySchemeHandlerApiForTest();
880 EXPECT_FALSE(OH_ArkWeb_SetSchemeHandler(scheme, webTag, schemeHandler));
881 DestroySchemeHandlerApiForTest();
882 EXPECT_FALSE(OH_ArkWebServiceWorker_SetSchemeHandler(scheme, schemeHandler));
883 DestroySchemeHandlerApiForTest();
884 OH_ArkWeb_CreateSchemeHandler(&schemeHandler);
885 DestroySchemeHandlerApiForTest();
886 OH_ArkWeb_CreateResponse(&response);
887 }
888
889 /**
890 * @tc.name : OHArkwebSchemeHandlerTest_SchemeHandlerApiXXXIsNull_001
891 * @tc.desc : g_SchemeHandlerApi is not null but g_SchemeHandlerApi->xxx is null
892 */
893 HWTEST_F(OHArkwebSchemeHandlerTest, OHArkwebSchemeHandlerTest_SchemeHandlerApiXXXIsNull_001, TestSize.Level1) {
894 ArkWeb_RequestHeaderList* headerList = nullptr;
895 OH_ArkWebRequestHeaderList_Destroy(headerList);
896 EXPECT_EQ(OH_ArkWebRequestHeaderList_GetSize(headerList), -1);
897
898 int32_t index = 0;
899 char* key = nullptr;
900 char* value = nullptr;
901 OH_ArkWebRequestHeaderList_GetHeader(headerList, index, &key, &value);
902
903 ArkWeb_ResourceRequest* resourceRequest = nullptr;
904 char* method = nullptr;
905 OH_ArkWebResourceRequest_GetMethod(resourceRequest, &method);
906
907 char* url = nullptr;
908 OH_ArkWebResourceRequest_GetUrl(resourceRequest, &url);
909
910 ArkWeb_HttpBodyStream* httpBodyStream = nullptr;
911 OH_ArkWebResourceRequest_GetHttpBodyStream(resourceRequest, &httpBodyStream);
912 OH_ArkWebResourceRequest_DestroyHttpBodyStream(httpBodyStream);
913
914 EXPECT_EQ(OH_ArkWebResourceRequest_GetResourceType(resourceRequest), -1);
915
916 char* frameUrl = nullptr;
917 OH_ArkWebResourceRequest_GetFrameUrl(resourceRequest, &frameUrl);
918
919 void* userData = nullptr;
920 int32_t result = OH_ArkWebHttpBodyStream_SetUserData(httpBodyStream, userData);
921 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
922 EXPECT_EQ(OH_ArkWebHttpBodyStream_GetUserData(httpBodyStream), nullptr);
923 }
924
925 /**
926 * @tc.name : OHArkwebSchemeHandlerTest_SchemeHandlerApiXXXIsNull_002
927 * @tc.desc : g_SchemeHandlerApi is not null but g_SchemeHandlerApi->xxx is null
928 */
929 HWTEST_F(OHArkwebSchemeHandlerTest, OHArkwebSchemeHandlerTest_SchemeHandlerApiXXXIsNull_002, TestSize.Level1) {
930 ArkWeb_HttpBodyStream* httpBodyStream = nullptr;
931 ArkWeb_HttpBodyStreamReadCallback readCallback = nullptr;
932 int32_t result = OH_ArkWebHttpBodyStream_SetReadCallback(httpBodyStream, readCallback);
933 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
934 ArkWeb_HttpBodyStreamAsyncReadCallback readAsyncCallback = nullptr;
935 result = OH_ArkWebHttpBodyStream_SetAsyncReadCallback(httpBodyStream, readAsyncCallback);
936 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
937
938 ArkWeb_HttpBodyStreamInitCallback initCallback = nullptr;
939 result = OH_ArkWebHttpBodyStream_Init(httpBodyStream, initCallback);
940 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
941
942 const ArkWeb_HttpBodyStream* httpBodyStream1 = nullptr;
943 uint8_t buffer[256] = {0};
944 int bufLen = sizeof(buffer);
945 OH_ArkWebHttpBodyStream_Read(httpBodyStream1, buffer, bufLen);
946 OH_ArkWebHttpBodyStream_AsyncRead(httpBodyStream1, buffer, bufLen);
947
948 uint64_t size = OH_ArkWebHttpBodyStream_GetSize(httpBodyStream1);
949 EXPECT_EQ(size, 0);
950 uint64_t position = OH_ArkWebHttpBodyStream_GetPosition(httpBodyStream1);
951 EXPECT_EQ(position, 0);
952 bool boolResult = OH_ArkWebHttpBodyStream_IsChunked(httpBodyStream);
953 EXPECT_FALSE(boolResult);
954 boolResult = OH_ArkWebHttpBodyStream_IsEof(httpBodyStream);
955 EXPECT_FALSE(boolResult);
956 boolResult = OH_ArkWebHttpBodyStream_IsInMemory(httpBodyStream);
957 EXPECT_FALSE(boolResult);
958
959 const ArkWeb_ResourceRequest* resourceRequest = nullptr;
960 result = OH_ArkWebResourceRequest_Destroy(resourceRequest);
961 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
962 char* referrer = nullptr;
963 OH_ArkWebResourceRequest_GetReferrer(resourceRequest, &referrer);
964 }
965
966 /**
967 * @tc.name : OHArkwebSchemeHandlerTest_SchemeHandlerApiXXXIsNull_003
968 * @tc.desc : g_SchemeHandlerApi is not null but g_SchemeHandlerApi->xxx is null
969 */
970 HWTEST_F(OHArkwebSchemeHandlerTest, OHArkwebSchemeHandlerTest_SchemeHandlerApiXXXIsNull_003, TestSize.Level1) {
971 ArkWeb_ResourceRequest* resourceRequest = nullptr;
972 void* userData = nullptr;
973 int32_t result = OH_ArkWebResourceRequest_SetUserData(resourceRequest, userData);
974 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
975
976 const ArkWeb_ResourceRequest* resourceRequest1 = nullptr;
977 void* userData1 = OH_ArkWebResourceRequest_GetUserData(resourceRequest1);
978 EXPECT_EQ(userData1, nullptr);
979
980 ArkWeb_RequestHeaderList* requestHeaderList = nullptr;
981 OH_ArkWebResourceRequest_GetRequestHeaders(resourceRequest1, &requestHeaderList);
982 EXPECT_EQ(requestHeaderList, nullptr);
983
984 bool boolResult = OH_ArkWebResourceRequest_IsRedirect(resourceRequest1);
985 EXPECT_EQ(boolResult, false);
986 boolResult = OH_ArkWebResourceRequest_IsMainFrame(resourceRequest1);
987 EXPECT_EQ(boolResult, false);
988 boolResult = OH_ArkWebResourceRequest_HasGesture(resourceRequest);
989 EXPECT_EQ(boolResult, false);
990
991 const char* webTag = nullptr;
992 result = OH_ArkWeb_ClearSchemeHandlers(webTag);
993 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
994 result = OH_ArkWebServiceWorker_ClearSchemeHandlers();
995 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
996 ArkWeb_SchemeHandler* schemeHandler = nullptr;
997 OH_ArkWeb_DestroySchemeHandler(schemeHandler);
998
999 result = OH_ArkWebSchemeHandler_SetUserData(schemeHandler, userData);
1000 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
1001
1002 const ArkWeb_SchemeHandler* schemeHandler1 = nullptr;
1003 void* userData2 = OH_ArkWebSchemeHandler_GetUserData(schemeHandler1);
1004 EXPECT_EQ(userData2, nullptr);
1005 }
1006
1007 /**
1008 * @tc.name : OHArkwebSchemeHandlerTest_SchemeHandlerApiXXXIsNull_004
1009 * @tc.desc : g_SchemeHandlerApi is not null but g_SchemeHandlerApi->xxx is null
1010 */
1011 HWTEST_F(OHArkwebSchemeHandlerTest, OHArkwebSchemeHandlerTest_SchemeHandlerApiXXXIsNull_004, TestSize.Level1) {
1012 ArkWeb_SchemeHandler* schemeHandler = nullptr;
1013 ArkWeb_OnRequestStart onRequestStart = nullptr;
1014 int32_t result = OH_ArkWebSchemeHandler_SetOnRequestStart(schemeHandler, onRequestStart);
1015 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
1016 ArkWeb_OnRequestStop onRequestStop = nullptr;
1017 result = OH_ArkWebSchemeHandler_SetOnRequestStop(schemeHandler, onRequestStop);
1018 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
1019 ArkWeb_Response* response = nullptr;
1020 OH_ArkWeb_DestroyResponse(response);
1021 const char* url = "www.example.com";
1022 EXPECT_EQ(OH_ArkWebResponse_SetUrl(response, url), ARKWEB_ERROR_UNKNOWN);
1023 char* url1 = nullptr;
1024 OH_ArkWebResponse_GetUrl(response, &url1);
1025
1026 ArkWeb_NetError errorCode = ARKWEB_NET_OK;
1027 EXPECT_EQ(OH_ArkWebResponse_SetError(response, errorCode), ARKWEB_ERROR_UNKNOWN);
1028 ArkWeb_NetError errorCodeRes = OH_ArkWebResponse_GetError(response);
1029 EXPECT_EQ(errorCodeRes, ARKWEB_ERR_FAILED);
1030 int status = -1;
1031 EXPECT_EQ(OH_ArkWebResponse_SetStatus(response, status), ARKWEB_ERROR_UNKNOWN);
1032 EXPECT_EQ(OH_ArkWebResponse_GetStatus(response), -1);
1033
1034 const char* statusText = "Test Status Text";
1035 EXPECT_EQ(OH_ArkWebResponse_SetStatusText(response, statusText), ARKWEB_ERROR_UNKNOWN);
1036 char* statusTextGet = nullptr;
1037 OH_ArkWebResponse_GetStatusText(response, &statusTextGet);
1038
1039 const char* mimeType = "text/plain";
1040 EXPECT_EQ(OH_ArkWebResponse_SetMimeType(response, mimeType), ARKWEB_ERROR_UNKNOWN);
1041 char* mimeTypeRes = nullptr;
1042 OH_ArkWebResponse_GetMimeType(response, &mimeTypeRes);
1043 const char* charSet = "";
1044 EXPECT_EQ(OH_ArkWebResponse_SetCharset(response, charSet), ARKWEB_ERROR_UNKNOWN);
1045 char* charSetRes = nullptr;
1046 OH_ArkWebResponse_GetCharset(response, &charSetRes);
1047 const char* name = "TestHeaderName";
1048 const char* value = "TestHeaderValue";
1049 result = OH_ArkWebResponse_SetHeaderByName(response, name, value, true);
1050 EXPECT_EQ(result, ARKWEB_ERROR_UNKNOWN);
1051 char* valueRes = nullptr;
1052 OH_ArkWebResponse_GetHeaderByName(response, name, &valueRes);
1053 }
1054
1055 /**
1056 * @tc.name : OHArkwebSchemeHandlerTest_SchemeHandlerApiXXXIsNull_005
1057 * @tc.desc : g_SchemeHandlerApi is not null but g_SchemeHandlerApi->xxx is null
1058 */
1059 HWTEST_F(OHArkwebSchemeHandlerTest, OHArkwebSchemeHandlerTest_SchemeHandlerApiXXXIsNull_005, TestSize.Level1) {
1060 ArkWeb_ResourceHandler* resourceHandler = nullptr;
1061 int32_t res = OH_ArkWebResourceHandler_Destroy(resourceHandler);
1062 EXPECT_EQ(res, ARKWEB_ERROR_UNKNOWN);
1063
1064 ArkWeb_Response* response;
1065 res = OH_ArkWebResourceHandler_DidReceiveResponse(resourceHandler, response);
1066 EXPECT_EQ(res, ARKWEB_ERROR_UNKNOWN);
1067
1068 const uint8_t* buffer = reinterpret_cast<const uint8_t*>("TestBuffer");
1069 int64_t bufLen = strlen("TestBuffer");
1070 res = OH_ArkWebResourceHandler_DidReceiveData(nullptr, buffer, bufLen);
1071 EXPECT_EQ(res, ARKWEB_ERROR_UNKNOWN);
1072 res = OH_ArkWebResourceHandler_DidFinish(nullptr);
1073 EXPECT_EQ(res, ARKWEB_ERROR_UNKNOWN);
1074
1075 ArkWeb_NetError errorCode = ARKWEB_NET_OK;
1076 res = OH_ArkWebResourceHandler_DidFailWithError(resourceHandler, errorCode);
1077 EXPECT_EQ(res, ARKWEB_ERROR_UNKNOWN);
1078 res = OH_ArkWebResourceHandler_DidFailWithErrorV2(resourceHandler, errorCode, true);
1079 EXPECT_EQ(res, ARKWEB_ERROR_UNKNOWN);
1080 char* str = nullptr;
1081 OH_ArkWeb_ReleaseString(str);
1082 uint8_t byteArray[10] = {0};
1083 OH_ArkWeb_ReleaseByteArray(byteArray);
1084 ArkWeb_SchemeHandler* schemeHandler = nullptr;
1085 res = OH_ArkWebSchemeHandler_SetFromEts(schemeHandler, true);
1086 EXPECT_EQ(res, ARKWEB_ERROR_UNKNOWN);
1087
1088 DestroySchemeHandlerApiForTest();
1089 NWebHelper::Instance().nwebEngine_ = nullptr;
1090 }
1091
1092 /**
1093 * @tc.name : OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNotNull_001
1094 * @tc.desc : g_SchemeHandlerApi is not nullptr
1095 */
1096 HWTEST_F(OHArkwebSchemeHandlerTest, OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNotNull_001, TestSize.Level1) {
1097 SetSchemeHandlerApiForTest(&g_testSchemeHandlerApi);
1098 ArkWeb_RequestHeaderList* headerList = nullptr;
1099 OH_ArkWebRequestHeaderList_Destroy(headerList);
1100 int32_t ret = OH_ArkWebRequestHeaderList_GetSize(headerList);
1101 EXPECT_EQ(ret, 0);
1102
1103 int32_t index = 0;
1104 char* key = nullptr;
1105 char* value = nullptr;
1106 OH_ArkWebRequestHeaderList_GetHeader(headerList, index, &key, &value);
1107
1108 ArkWeb_ResourceRequest* resourceRequest = nullptr;
1109 char* method = nullptr;
1110 OH_ArkWebResourceRequest_GetMethod(resourceRequest, &method);
1111
1112 char* url = nullptr;
1113 OH_ArkWebResourceRequest_GetUrl(resourceRequest, &url);
1114
1115 ArkWeb_HttpBodyStream* httpBodyStream = nullptr;
1116 OH_ArkWebResourceRequest_GetHttpBodyStream(resourceRequest, &httpBodyStream);
1117 OH_ArkWebResourceRequest_DestroyHttpBodyStream(httpBodyStream);
1118 EXPECT_EQ(OH_ArkWebResourceRequest_GetResourceType(resourceRequest), 0);
1119 OH_ArkWebResourceRequest_GetFrameUrl(resourceRequest, &url);
1120
1121 void* userData = nullptr;
1122 ret = OH_ArkWebHttpBodyStream_SetUserData(httpBodyStream, userData);
1123 EXPECT_EQ(ret, 0);
1124
1125 std::ignore = OH_ArkWebHttpBodyStream_GetUserData(httpBodyStream);
1126 ArkWeb_HttpBodyStreamReadCallback readCallback = nullptr;
1127 ret = OH_ArkWebHttpBodyStream_SetReadCallback(httpBodyStream, readCallback);
1128 EXPECT_EQ(ret, 0);
1129 ArkWeb_HttpBodyStreamAsyncReadCallback readAsyncCallback = nullptr;
1130 ret = OH_ArkWebHttpBodyStream_SetAsyncReadCallback(httpBodyStream, readAsyncCallback);
1131 EXPECT_EQ(ret, 0);
1132
1133 ArkWeb_HttpBodyStreamInitCallback initCallback = nullptr;
1134 EXPECT_EQ(OH_ArkWebHttpBodyStream_Init(httpBodyStream, initCallback), 0);
1135
1136 const ArkWeb_HttpBodyStream* httpBodyStream1 = nullptr;
1137 uint8_t buffer[256] = {0};
1138 int bufLen = sizeof(buffer);
1139 OH_ArkWebHttpBodyStream_Read(httpBodyStream1, buffer, bufLen);
1140 OH_ArkWebHttpBodyStream_AsyncRead(httpBodyStream1, buffer, bufLen);
1141 EXPECT_EQ(OH_ArkWebHttpBodyStream_GetSize(httpBodyStream1), 1);
1142 EXPECT_EQ(OH_ArkWebHttpBodyStream_GetPosition(httpBodyStream1), 1);
1143 EXPECT_TRUE(OH_ArkWebHttpBodyStream_IsChunked(httpBodyStream));
1144 EXPECT_TRUE(OH_ArkWebHttpBodyStream_IsEof(httpBodyStream));
1145 EXPECT_TRUE(OH_ArkWebHttpBodyStream_IsInMemory(httpBodyStream));
1146 EXPECT_EQ(OH_ArkWebResourceRequest_Destroy(resourceRequest), 0);
1147 char* referrer = nullptr;
1148 OH_ArkWebResourceRequest_GetReferrer(resourceRequest, &referrer);
1149 }
1150
1151 /**
1152 * @tc.name : OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNotNull_002
1153 * @tc.desc : g_SchemeHandlerApi is not nullptr
1154 */
1155 HWTEST_F(OHArkwebSchemeHandlerTest, OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNotNull_002, TestSize.Level1) {
1156 ArkWeb_ResourceRequest* resourceRequest = nullptr;
1157 void* userData = nullptr;
1158 EXPECT_EQ(OH_ArkWebResourceRequest_SetUserData(resourceRequest, userData), 0);
1159
1160 const ArkWeb_ResourceRequest* resourceRequest1 = nullptr;
1161 std::ignore = OH_ArkWebResourceRequest_GetUserData(resourceRequest1);
1162 ArkWeb_RequestHeaderList* requestHeaderList = nullptr;
1163 OH_ArkWebResourceRequest_GetRequestHeaders(resourceRequest1, &requestHeaderList);
1164
1165 EXPECT_TRUE(OH_ArkWebResourceRequest_IsRedirect(resourceRequest1));
1166 EXPECT_TRUE(OH_ArkWebResourceRequest_IsMainFrame(resourceRequest1));
1167 EXPECT_TRUE(OH_ArkWebResourceRequest_HasGesture(resourceRequest1));
1168
1169 const char* webTag = nullptr;
1170 EXPECT_EQ(OH_ArkWeb_ClearSchemeHandlers(webTag), 0);
1171 EXPECT_EQ(OH_ArkWebServiceWorker_ClearSchemeHandlers(), 0);
1172 ArkWeb_SchemeHandler* schemeHandler = nullptr;
1173 OH_ArkWeb_DestroySchemeHandler(schemeHandler);
1174 EXPECT_EQ(OH_ArkWebSchemeHandler_SetUserData(schemeHandler, userData), 0);
1175
1176 const ArkWeb_SchemeHandler* schemeHandler1 = nullptr;
1177 void* userData2 = OH_ArkWebSchemeHandler_GetUserData(schemeHandler1);
1178 EXPECT_EQ(userData2, nullptr);
1179
1180 ArkWeb_OnRequestStart onRequestStart = nullptr;
1181 EXPECT_EQ(OH_ArkWebSchemeHandler_SetOnRequestStart(schemeHandler, onRequestStart), 0);
1182 ArkWeb_OnRequestStop onRequestStop = nullptr;
1183 EXPECT_EQ(OH_ArkWebSchemeHandler_SetOnRequestStop(schemeHandler, onRequestStop), 0);
1184 ArkWeb_Response* response = nullptr;
1185 OH_ArkWeb_DestroyResponse(response);
1186 const char* url = "www.example.com";
1187 EXPECT_EQ(OH_ArkWebResponse_SetUrl(response, url), 0);
1188 char* url1 = nullptr;
1189 OH_ArkWebResponse_GetUrl(response, &url1);
1190
1191 const char* statusText = "Test Status Text";
1192 EXPECT_EQ(OH_ArkWebResponse_SetStatusText(response, statusText), 0);
1193 char* statusTextGet = nullptr;
1194 OH_ArkWebResponse_GetStatusText(response, &statusTextGet);
1195 const char* mimeType = "text/plain";
1196 EXPECT_EQ(OH_ArkWebResponse_SetMimeType(response, mimeType), 0);
1197 char* mimeTypeRes = nullptr;
1198 OH_ArkWebResponse_GetMimeType(response, &mimeTypeRes);
1199 const char* charSet = "";
1200 EXPECT_EQ(OH_ArkWebResponse_SetCharset(response, charSet), 0);
1201 char* charSetRes = nullptr;
1202 OH_ArkWebResponse_GetCharset(response, &charSetRes);
1203 const char* name = "TestHeaderName";
1204 const char* value = "TestHeaderValue";
1205 EXPECT_EQ(OH_ArkWebResponse_SetHeaderByName(response, name, value, true), 0);
1206 char* valueRes = nullptr;
1207 OH_ArkWebResponse_GetHeaderByName(response, name, &valueRes);
1208 }
1209
1210 /**
1211 * @tc.name : OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNotNull_003
1212 * @tc.desc : g_SchemeHandlerApi is not nullptr
1213 */
1214 HWTEST_F(OHArkwebSchemeHandlerTest, OHArkwebSchemeHandlerTest_SchemeHandlerApiIsNotNull_003, TestSize.Level1) {
1215 ArkWeb_ResourceHandler* resourceHandler = nullptr;
1216 EXPECT_EQ(OH_ArkWebResourceHandler_Destroy(resourceHandler), 0);
1217
1218 ArkWeb_Response* response;
1219 EXPECT_EQ(OH_ArkWebResourceHandler_DidReceiveResponse(resourceHandler, response), 0);
1220
1221 const uint8_t* buffer = reinterpret_cast<const uint8_t*>("TestBuffer");
1222 int64_t bufLen = strlen("TestBuffer");
1223 EXPECT_EQ(OH_ArkWebResourceHandler_DidReceiveData(nullptr, buffer, bufLen), 0);
1224 EXPECT_EQ(OH_ArkWebResourceHandler_DidFinish(nullptr), 0);
1225
1226 ArkWeb_NetError errorCode = ARKWEB_NET_OK;
1227 EXPECT_EQ(OH_ArkWebResourceHandler_DidFailWithError(resourceHandler, errorCode), 0);
1228 EXPECT_EQ(OH_ArkWebResourceHandler_DidFailWithErrorV2(resourceHandler, errorCode, true), 0);
1229 char* str = nullptr;
1230 OH_ArkWeb_ReleaseString(str);
1231 uint8_t byteArray[10] = {0};
1232 OH_ArkWeb_ReleaseByteArray(byteArray);
1233 ArkWeb_SchemeHandler* schemeHandler = nullptr;
1234 EXPECT_EQ(OH_ArkWebSchemeHandler_SetFromEts(schemeHandler, true), 0);
1235
1236 NWebHelper::Instance().bundlePath_ = "";
1237 const char* scheme = "scheme";
1238 int32_t option = 0;
1239 const char* webTag = "webTag";
1240 EXPECT_EQ(OH_ArkWeb_RegisterCustomSchemes(scheme, option), 0);
1241 EXPECT_TRUE(OH_ArkWeb_SetSchemeHandler(scheme, webTag, schemeHandler));
1242 EXPECT_TRUE(OH_ArkWebServiceWorker_SetSchemeHandler(scheme, schemeHandler));
1243 OH_ArkWeb_CreateSchemeHandler(&schemeHandler);
1244 ArkWeb_Response* response1 = nullptr;
1245 OH_ArkWeb_CreateResponse(&response1);
1246
1247 EXPECT_EQ(OH_ArkWebResponse_SetError(response1, errorCode), 0);
1248 EXPECT_EQ(OH_ArkWebResponse_GetError(response1), ARKWEB_NET_OK);
1249 EXPECT_EQ(OH_ArkWebResponse_SetStatus(response1, -1), 0);
1250 EXPECT_EQ(OH_ArkWebResponse_GetStatus(response1), 0);
1251
1252 SetSchemeHandlerApiForTest(nullptr);
1253 }
1254
1255 }
1256 }
1257