1 /*
2 * Copyright (c) 2022 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 "test.h"
17
18 #include "napi/native_api.h"
19 #include "napi/native_node_api.h"
20
21 #include "js_xml.h"
22 #include "utils/log.h"
23
24 #define ASSERT_CHECK_CALL(call) \
25 { \
26 ASSERT_EQ(call, napi_ok); \
27 }
28
29 #define ASSERT_CHECK_VALUE_TYPE(env, value, type) \
30 { \
31 napi_valuetype valueType = napi_undefined; \
32 ASSERT_TRUE(value != nullptr); \
33 ASSERT_CHECK_CALL(napi_typeof(env, value, &valueType)); \
34 ASSERT_EQ(valueType, type); \
35 }
36
37 std::string testStr = "";
Method(napi_env env,napi_callback_info info)38 napi_value Method(napi_env env, napi_callback_info info)
39 {
40 napi_value thisVar = nullptr;
41 size_t argc = 0;
42 napi_value args[6] = { 0 }; // 6:six args
43 NAPI_CALL(env, napi_get_cb_info(env, info, &argc, nullptr, &thisVar, nullptr));
44 NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, &thisVar, nullptr));
45
46 napi_value name = args[0];
47 napi_value value = args[1];
48
49 std::string buffer1 = "";
50 size_t bufferSize1 = 0;
51 napi_get_value_string_utf8(env, name, nullptr, 0, &bufferSize1);
52 buffer1.reserve(bufferSize1 + 1);
53 buffer1.resize(bufferSize1);
54 napi_get_value_string_utf8(env, name, buffer1.data(), bufferSize1 + 1, &bufferSize1);
55
56 std::string buffer2 = "";
57 size_t bufferSize2 = 0;
58 napi_get_value_string_utf8(env, value, nullptr, 0, &bufferSize2);
59 buffer2.reserve(bufferSize2 + 1);
60 buffer2.resize(bufferSize2);
61 napi_get_value_string_utf8(env, value, buffer2.data(), bufferSize2 + 1, &bufferSize2);
62 testStr += buffer1 + buffer2;
63 napi_value result = nullptr;
64 napi_get_boolean(env, true, &result);
65 return result;
66 }
67
TokenValueCallbackFunction(napi_env env,napi_callback_info info)68 napi_value TokenValueCallbackFunction(napi_env env, napi_callback_info info)
69 {
70 napi_value thisVar = nullptr;
71 size_t argc = 0;
72 napi_value args[6] = { 0 }; // 6:six args
73 NAPI_CALL(env, napi_get_cb_info(env, info, &argc, nullptr, &thisVar, nullptr));
74 NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, &thisVar, nullptr));
75 napi_value value = args[1];
76 napi_value value3 = nullptr;
77 napi_get_named_property(env, value, "getDepth", &value3);
78 napi_get_named_property(env, value, "getColumnNumber", &value3);
79 napi_get_named_property(env, value, "getLineNumber", &value3);
80 napi_get_named_property(env, value, "getAttributeCount", &value3);
81 napi_get_named_property(env, value, "getName", &value3);
82 napi_get_named_property(env, value, "getNamespace", &value3);
83 napi_get_named_property(env, value, "getPrefix", &value3);
84 napi_get_named_property(env, value, "getText", &value3);
85 napi_get_named_property(env, value, "isEmptyElementTag", &value3);
86 napi_get_named_property(env, value, "isWhitespace", &value3);
87 napi_valuetype result2 = napi_null;
88 napi_typeof(env, value3, &result2);
89 napi_value returnVal = nullptr;
90 napi_call_function(env, thisVar, value3, 0, nullptr, &returnVal);
91
92 napi_value result = nullptr;
93 napi_get_boolean(env, true, &result);
94 return result;
95 }
96
TokenValueCallbackFunc(napi_env env,napi_callback_info info)97 napi_value TokenValueCallbackFunc(napi_env env, napi_callback_info info)
98 {
99 napi_value thisVar = nullptr;
100 size_t argc = 0;
101 napi_value args[6] = { 0 }; // 6:six args
102 NAPI_CALL(env, napi_get_cb_info(env, info, &argc, nullptr, &thisVar, nullptr));
103 NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, &thisVar, nullptr));
104 napi_value value = args[1];
105 napi_value value3 = nullptr;
106 napi_get_named_property(env, value, "getDepth", &value3);
107 napi_value returnVal = nullptr;
108 napi_call_function(env, thisVar, value3, 0, nullptr, &returnVal);
109 napi_get_named_property(env, value, "getColumnNumber", &value3);
110 napi_call_function(env, thisVar, value3, 0, nullptr, &returnVal);
111 napi_get_named_property(env, value, "getLineNumber", &value3);
112 napi_call_function(env, thisVar, value3, 0, nullptr, &returnVal);
113 napi_get_named_property(env, value, "getAttributeCount", &value3);
114 napi_call_function(env, thisVar, value3, 0, nullptr, &returnVal);
115 napi_get_named_property(env, value, "getName", &value3);
116 napi_call_function(env, thisVar, value3, 0, nullptr, &returnVal);
117 napi_get_named_property(env, value, "getNamespace", &value3);
118 napi_call_function(env, thisVar, value3, 0, nullptr, &returnVal);
119 napi_get_named_property(env, value, "getPrefix", &value3);
120 napi_call_function(env, thisVar, value3, 0, nullptr, &returnVal);
121 napi_get_named_property(env, value, "getText", &value3);
122 napi_call_function(env, thisVar, value3, 0, nullptr, &returnVal);
123 napi_get_named_property(env, value, "isEmptyElementTag", &value3);
124 napi_call_function(env, thisVar, value3, 0, nullptr, &returnVal);
125 napi_get_named_property(env, value, "isWhitespace", &value3);
126 napi_call_function(env, thisVar, value3, 0, nullptr, &returnVal);
127
128 napi_value result = nullptr;
129 napi_get_boolean(env, true, &result);
130 return result;
131 }
132 /* @tc.name: StartElementTest001
133 * @tc.desc: Test whether write a elemnet start tag with the given name successfully.
134 * @tc.type: FUNC
135 */
136 HWTEST_F(NativeEngineTest, StartElementTest001, testing::ext::TestSize.Level0)
137 {
138 napi_env env = (napi_env)engine_;
139 napi_value arrayBuffer = nullptr;
140 void* pBuffer = nullptr;
141 size_t size = 1024;
142 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
143 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
144 xmlSerializer.StartElement("note1");
145 xmlSerializer.EndElement();
146 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note1/>");
147 }
148
149 /* @tc.name: StartElementTest002
150 * @tc.desc: Test whether write a elemnet start tag with the given name successfully.
151 * @tc.type: FUNC
152 */
153 HWTEST_F(NativeEngineTest, StartElementTest002, testing::ext::TestSize.Level0)
154 {
155 napi_env env = (napi_env)engine_;
156 napi_value arrayBuffer = nullptr;
157 void* pBuffer = nullptr;
158 size_t size = 1024;
159 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
160 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
161 xmlSerializer.StartElement("note1");
162 xmlSerializer.EndElement();
163 xmlSerializer.StartElement("note2");
164 xmlSerializer.EndElement();
165 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note1/>\r\n<note2/>");
166 }
167
168 /* @tc.name: StartElementTest003
169 * @tc.desc: Test whether write a elemnet start tag with the given name successfully.
170 * @tc.type: FUNC
171 */
172 HWTEST_F(NativeEngineTest, StartElementTest003, testing::ext::TestSize.Level0)
173 {
174 napi_env env = (napi_env)engine_;
175 napi_value arrayBuffer = nullptr;
176 void* pBuffer = nullptr;
177 size_t size = 1024;
178 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
179 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
180 xmlSerializer.StartElement("note1");
181 xmlSerializer.StartElement("note2");
182 xmlSerializer.EndElement();
183 xmlSerializer.EndElement();
184 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note1>\r\n <note2/>\r\n</note1>");
185 }
186
187 /* @tc.name: StartElementTest004
188 * @tc.desc: Test whether write a elemnet start tag with the given name successfully.
189 * @tc.type: FUNC
190 */
191 HWTEST_F(NativeEngineTest, StartElementTest004, testing::ext::TestSize.Level0)
192 {
193 napi_env env = (napi_env)engine_;
194 napi_value arrayBuffer = nullptr;
195 void* pBuffer = nullptr;
196 size_t size = 1024;
197 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
198 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
199 xmlSerializer.StartElement("note1");
200 xmlSerializer.StartElement("note2");
201 xmlSerializer.StartElement("note3");
202 xmlSerializer.EndElement();
203 xmlSerializer.EndElement();
204 xmlSerializer.EndElement();
205 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note1>\r\n <note2>\r\n <note3/>\r\n </note2>\r\n</note1>");
206 }
207
208 /* @tc.name: StartElementTest005
209 * @tc.desc: Test whether write a elemnet start tag with the given name successfully.
210 * @tc.type: FUNC
211 */
212 HWTEST_F(NativeEngineTest, StartElementTest005, testing::ext::TestSize.Level0)
213 {
214 napi_env env = (napi_env)engine_;
215 napi_value arrayBuffer = nullptr;
216 void* pBuffer = nullptr;
217 size_t size = 1024;
218 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
219 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
220 xmlSerializer.StartElement("note1");
221 xmlSerializer.StartElement("note2");
222 xmlSerializer.EndElement();
223 xmlSerializer.StartElement("note3");
224 xmlSerializer.EndElement();
225 xmlSerializer.EndElement();
226 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note1>\r\n <note2/>\r\n <note3/>\r\n</note1>");
227 }
228
229 /* @tc.name: SetAttributesTest001
230 * @tc.desc: Test whether write an attribute successfully.
231 * @tc.type: FUNC
232 */
233 HWTEST_F(NativeEngineTest, SetAttributesTest001, testing::ext::TestSize.Level0)
234 {
235 napi_env env = (napi_env)engine_;
236 napi_value arrayBuffer = nullptr;
237 void* pBuffer = nullptr;
238 size_t size = 1024;
239 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
240 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
241 xmlSerializer.StartElement("note");
242 xmlSerializer.SetAttributes("importance1", "high1");
243 xmlSerializer.EndElement();
244 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note importance1=\"high1\"/>");
245 }
246
247 /* @tc.name: SetAttributesTest002
248 * @tc.desc: Test whether write an attribute successfully.
249 * @tc.type: FUNC
250 */
251 HWTEST_F(NativeEngineTest, SetAttributesTest002, testing::ext::TestSize.Level0)
252 {
253 napi_env env = (napi_env)engine_;
254 napi_value arrayBuffer = nullptr;
255 void* pBuffer = nullptr;
256 size_t size = 1024;
257 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
258 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
259 xmlSerializer.StartElement("note");
260 xmlSerializer.SetAttributes("importance1", "high1");
261 xmlSerializer.SetAttributes("importance2", "high2");
262 xmlSerializer.EndElement();
263 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note importance1=\"high1\" importance2=\"high2\"/>");
264 }
265
266 /* @tc.name: SetAttributesTest003
267 * @tc.desc: Test whether write an attribute successfully.
268 * @tc.type: FUNC
269 */
270 HWTEST_F(NativeEngineTest, SetAttributesTest003, testing::ext::TestSize.Level0)
271 {
272 napi_env env = (napi_env)engine_;
273 napi_value arrayBuffer = nullptr;
274 void* pBuffer = nullptr;
275 size_t size = 1024;
276 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
277 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
278 xmlSerializer.StartElement("note");
279 xmlSerializer.SetAttributes("importance1", "high1");
280 xmlSerializer.SetAttributes("importance2", "high2");
281 xmlSerializer.SetAttributes("importance3", "high3");
282 xmlSerializer.EndElement();
283 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer),
284 "<note importance1=\"high1\" importance2=\"high2\" importance3=\"high3\"/>");
285 }
286
287 /* @tc.name: SetAttributesTest004
288 * @tc.desc: Test whether write an attribute successfully.
289 * @tc.type: FUNC
290 */
291 HWTEST_F(NativeEngineTest, SetAttributesTest004, testing::ext::TestSize.Level0)
292 {
293 napi_env env = (napi_env)engine_;
294 napi_value arrayBuffer = nullptr;
295 void* pBuffer = nullptr;
296 size_t size = 1024;
297 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
298 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
299 xmlSerializer.StartElement("note");
300 xmlSerializer.SetAttributes("importance1", "high1");
301 xmlSerializer.SetAttributes("importance2", "high2");
302 xmlSerializer.SetAttributes("importance3", "high3");
303 xmlSerializer.SetAttributes("importance4", "high4");
304 xmlSerializer.EndElement();
305 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer),
306 "<note importance1=\"high1\" importance2=\"high2\" importance3=\"high3\" importance4=\"high4\"/>");
307 }
308
309 /* @tc.name: SetAttributesTest005
310 * @tc.desc: Test whether write an attribute successfully.
311 * @tc.type: FUNC
312 */
313 HWTEST_F(NativeEngineTest, SetAttributesTest005, testing::ext::TestSize.Level0)
314 {
315 napi_env env = (napi_env)engine_;
316 napi_value arrayBuffer = nullptr;
317 void* pBuffer = nullptr;
318 size_t size = 1024;
319 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
320 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
321 xmlSerializer.StartElement("note");
322 xmlSerializer.SetAttributes("importance1", "high1");
323 xmlSerializer.SetAttributes("importance2", "high2");
324 xmlSerializer.SetAttributes("importance3", "high3");
325 xmlSerializer.SetAttributes("importance4", "high4");
326 xmlSerializer.SetAttributes("importance5", "high5");
327 xmlSerializer.EndElement();
328 std::string strPrior = "<note importance1=\"high1\" importance2=\"high2\" ";
329 std::string strBack = "importance3=\"high3\" importance4=\"high4\" importance5=\"high5\"/>";
330 std::string strEnd = strPrior + strBack;
331 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), strEnd.c_str());
332 }
333
334 /* @tc.name: AddEmptyElementTest001
335 * @tc.desc: Test whether add an empty element successfully.
336 * @tc.type: FUNC
337 */
338 HWTEST_F(NativeEngineTest, AddEmptyElementTest001, testing::ext::TestSize.Level0)
339 {
340 napi_env env = (napi_env)engine_;
341 napi_value arrayBuffer = nullptr;
342 void* pBuffer = nullptr;
343 size_t size = 1024;
344 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
345 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
346 xmlSerializer.StartElement("note");
347 xmlSerializer.AddEmptyElement("a");
348 xmlSerializer.EndElement();
349 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note>\r\n <a/>\r\n</note>");
350 }
351
352 /* @tc.name: AddEmptyElementTest002
353 * @tc.desc: Test whether add an empty element successfully.
354 * @tc.type: FUNC
355 */
356 HWTEST_F(NativeEngineTest, AddEmptyElementTest002, testing::ext::TestSize.Level0)
357 {
358 napi_env env = (napi_env)engine_;
359 napi_value arrayBuffer = nullptr;
360 void* pBuffer = nullptr;
361 size_t size = 1024;
362 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
363 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
364 xmlSerializer.StartElement("note");
365 xmlSerializer.EndElement();
366 xmlSerializer.AddEmptyElement("b");
367 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note/>\r\n<b/>");
368 }
369
370 /* @tc.name: AddEmptyElementTest003
371 * @tc.desc: Test whether add an empty element successfully.
372 * @tc.type: FUNC
373 */
374 HWTEST_F(NativeEngineTest, AddEmptyElementTest003, testing::ext::TestSize.Level0)
375 {
376 napi_env env = (napi_env)engine_;
377 napi_value arrayBuffer = nullptr;
378 void* pBuffer = nullptr;
379 size_t size = 1024;
380 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
381 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
382 xmlSerializer.AddEmptyElement("c");
383 xmlSerializer.StartElement("note");
384 xmlSerializer.EndElement();
385 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<c/>\r\n<note/>");
386 }
387
388 /* @tc.name: AddEmptyElementTest004
389 * @tc.desc: Test whether add an empty element successfully.
390 * @tc.type: FUNC
391 */
392 HWTEST_F(NativeEngineTest, AddEmptyElementTest004, testing::ext::TestSize.Level0)
393 {
394 napi_env env = (napi_env)engine_;
395 napi_value arrayBuffer = nullptr;
396 void* pBuffer = nullptr;
397 size_t size = 1024;
398 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
399 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
400 xmlSerializer.AddEmptyElement("d");
401 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<d/>");
402 }
403
404 /* @tc.name: AddEmptyElementTest005
405 * @tc.desc: Test whether add an empty element successfully.
406 * @tc.type: FUNC
407 */
408 HWTEST_F(NativeEngineTest, AddEmptyElementTest005, testing::ext::TestSize.Level0)
409 {
410 napi_env env = (napi_env)engine_;
411 napi_value arrayBuffer = nullptr;
412 void* pBuffer = nullptr;
413 size_t size = 1024;
414 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
415 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
416 xmlSerializer.StartElement("note");
417 xmlSerializer.AddEmptyElement("c");
418 xmlSerializer.AddEmptyElement("d");
419 xmlSerializer.EndElement();
420 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note>\r\n <c/>\r\n <d/>\r\n</note>");
421 }
422
423 /* @tc.name: SetDeclarationTest001
424 * @tc.desc: Test whether write xml declaration with encoding successfully.
425 * @tc.type: FUNC
426 */
427 HWTEST_F(NativeEngineTest, SetDeclarationTest001, testing::ext::TestSize.Level0)
428 {
429 napi_env env = (napi_env)engine_;
430 napi_value arrayBuffer = nullptr;
431 void* pBuffer = nullptr;
432 size_t size = 1024;
433 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
434 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
435 xmlSerializer.SetDeclaration();
436 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<?xml version=\"1.0\" encoding=\"utf-8\"?>");
437 }
438
439 /* @tc.name: SetDeclarationTest002
440 * @tc.desc: Test whether write xml declaration with encoding successfully.
441 * @tc.type: FUNC
442 */
443 HWTEST_F(NativeEngineTest, SetDeclarationTest002, testing::ext::TestSize.Level0)
444 {
445 napi_env env = (napi_env)engine_;
446 napi_value arrayBuffer = nullptr;
447 void* pBuffer = nullptr;
448 size_t size = 1024;
449 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
450 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
451 xmlSerializer.SetDeclaration();
452 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<?xml version=\"1.0\" encoding=\"utf-8\"?>");
453 }
454
455 /* @tc.name: SetDeclarationTest003
456 * @tc.desc: Test whether write xml declaration with encoding successfully.
457 * @tc.type: FUNC
458 */
459 HWTEST_F(NativeEngineTest, SetDeclarationTest003, testing::ext::TestSize.Level0)
460 {
461 napi_env env = (napi_env)engine_;
462 napi_value arrayBuffer = nullptr;
463 void* pBuffer = nullptr;
464 size_t size = 1024;
465 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
466 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
467 xmlSerializer.SetDeclaration();
468 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<?xml version=\"1.0\" encoding=\"utf-8\"?>");
469 }
470
471 /* @tc.name: SetDeclarationTest004
472 * @tc.desc: Test whether write xml declaration with encoding successfully.
473 * @tc.type: FUNC
474 */
475 HWTEST_F(NativeEngineTest, SetDeclarationTest004, testing::ext::TestSize.Level0)
476 {
477 napi_env env = (napi_env)engine_;
478 napi_value arrayBuffer = nullptr;
479 void* pBuffer = nullptr;
480 size_t size = 1024;
481 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
482 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
483 xmlSerializer.SetDeclaration();
484 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<?xml version=\"1.0\" encoding=\"utf-8\"?>");
485 }
486
487 /* @tc.name: SetDeclarationTest005
488 * @tc.desc: Test whether write xml declaration with encoding successfully.
489 * @tc.type: FUNC
490 */
491 HWTEST_F(NativeEngineTest, SetDeclarationTest005, testing::ext::TestSize.Level0)
492 {
493 napi_env env = (napi_env)engine_;
494 napi_value arrayBuffer = nullptr;
495 void* pBuffer = nullptr;
496 size_t size = 1024;
497 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
498 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
499 xmlSerializer.SetDeclaration();
500 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<?xml version=\"1.0\" encoding=\"utf-8\"?>");
501 }
502
503 /* @tc.name: EndElementTest001
504 * @tc.desc: Test whether write end tag of the element successfully.
505 * @tc.type: FUNC
506 */
507 HWTEST_F(NativeEngineTest, EndElementTest001, testing::ext::TestSize.Level0)
508 {
509 napi_env env = (napi_env)engine_;
510 napi_value arrayBuffer = nullptr;
511 void* pBuffer = nullptr;
512 size_t size = 1024;
513 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
514 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
515 xmlSerializer.StartElement("note");
516 xmlSerializer.EndElement();
517 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note/>");
518 }
519
520 /* @tc.name: EndElementTest002
521 * @tc.desc: Test whether write end tag of the element successfully.
522 * @tc.type: FUNC
523 */
524 HWTEST_F(NativeEngineTest, EndElementTest002, testing::ext::TestSize.Level0)
525 {
526 napi_env env = (napi_env)engine_;
527 napi_value arrayBuffer = nullptr;
528 void* pBuffer = nullptr;
529 size_t size = 1024;
530 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
531 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
532 xmlSerializer.StartElement("note");
533 xmlSerializer.SetAttributes("importance", "high");
534 xmlSerializer.EndElement();
535 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note importance=\"high\"/>");
536 }
537
538 /* @tc.name: EndElementTest003
539 * @tc.desc: Test whether write end tag of the element successfully.
540 * @tc.type: FUNC
541 */
542 HWTEST_F(NativeEngineTest, EndElementTest003, testing::ext::TestSize.Level0)
543 {
544 napi_env env = (napi_env)engine_;
545 napi_value arrayBuffer = nullptr;
546 void* pBuffer = nullptr;
547 size_t size = 1024;
548 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
549 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
550 xmlSerializer.StartElement("note");
551 xmlSerializer.SetAttributes("impo", "hi");
552 xmlSerializer.EndElement();
553 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note impo=\"hi\"/>");
554 }
555
556 /* @tc.name: EndElementTest004
557 * @tc.desc: Test whether write end tag of the element successfully.
558 * @tc.type: FUNC
559 */
560 HWTEST_F(NativeEngineTest, EndElementTest004, testing::ext::TestSize.Level0)
561 {
562 napi_env env = (napi_env)engine_;
563 napi_value arrayBuffer = nullptr;
564 void* pBuffer = nullptr;
565 size_t size = 1024;
566 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
567 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
568 xmlSerializer.StartElement("note1");
569 xmlSerializer.StartElement("note2");
570 xmlSerializer.EndElement();
571 xmlSerializer.EndElement();
572 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note1>\r\n <note2/>\r\n</note1>");
573 }
574
575 /* @tc.name: EndElementTest005
576 * @tc.desc: Test whether write end tag of the element successfully.
577 * @tc.type: FUNC
578 */
579 HWTEST_F(NativeEngineTest, EndElementTest005, testing::ext::TestSize.Level0)
580 {
581 napi_env env = (napi_env)engine_;
582 napi_value arrayBuffer = nullptr;
583 void* pBuffer = nullptr;
584 size_t size = 1024;
585 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
586 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
587 xmlSerializer.StartElement("note2");
588 xmlSerializer.SetAttributes("importance", "high");
589 xmlSerializer.EndElement();
590 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note2 importance=\"high\"/>");
591 }
592
593 /* @tc.name: SetNamespaceTest001
594 * @tc.desc: Test whether write the namespace of the current element tag successfully.
595 * @tc.type: FUNC
596 */
597 HWTEST_F(NativeEngineTest, SetNamespaceTest001, testing::ext::TestSize.Level0)
598 {
599 napi_env env = (napi_env)engine_;
600 napi_value arrayBuffer = nullptr;
601 void* pBuffer = nullptr;
602 size_t size = 1024;
603 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
604 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
605 xmlSerializer.SetDeclaration();
606 xmlSerializer.SetNamespace("h", "http://www.w3.org/TR/html4/");
607 xmlSerializer.StartElement("note");
608 xmlSerializer.EndElement();
609 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer),
610 "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<h:note xmlns:h=\"http://www.w3.org/TR/html4/\"/>");
611 }
612
613 /* @tc.name: SetNamespaceTest002
614 * @tc.desc: Test whether write the namespace of the current element tag successfully.
615 * @tc.type: FUNC
616 */
617 HWTEST_F(NativeEngineTest, SetNamespaceTest002, testing::ext::TestSize.Level0)
618 {
619 napi_env env = (napi_env)engine_;
620 napi_value arrayBuffer = nullptr;
621 void* pBuffer = nullptr;
622 size_t size = 1024;
623 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
624 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
625 xmlSerializer.SetDeclaration();
626 xmlSerializer.SetNamespace("b", "http://www.w3.org/TR/html4/");
627 xmlSerializer.StartElement("note");
628 xmlSerializer.EndElement();
629 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer),
630 "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<b:note xmlns:b=\"http://www.w3.org/TR/html4/\"/>");
631 }
632
633 /* @tc.name: SetNamespaceTest003
634 * @tc.desc: Test whether write the namespace of the current element tag successfully.
635 * @tc.type: FUNC
636 */
637 HWTEST_F(NativeEngineTest, SetNamespaceTest003, testing::ext::TestSize.Level0)
638 {
639 napi_env env = (napi_env)engine_;
640 napi_value arrayBuffer = nullptr;
641 void* pBuffer = nullptr;
642 size_t size = 1024;
643 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
644 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
645 xmlSerializer.SetDeclaration();
646 xmlSerializer.SetNamespace("h", "http://www.111/");
647 xmlSerializer.StartElement("note");
648 xmlSerializer.EndElement();
649 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer),
650 "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<h:note xmlns:h=\"http://www.111/\"/>");
651 }
652
653 /* @tc.name: SetNamespaceTest004
654 * @tc.desc: Test whether write the namespace of the current element tag successfully.
655 * @tc.type: FUNC
656 */
657 HWTEST_F(NativeEngineTest, SetNamespaceTest004, testing::ext::TestSize.Level0)
658 {
659 napi_env env = (napi_env)engine_;
660 napi_value arrayBuffer = nullptr;
661 void* pBuffer = nullptr;
662 size_t size = 1024;
663 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
664 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
665 xmlSerializer.SetDeclaration();
666 xmlSerializer.SetNamespace("h", "http://www.w3.org/TR/html4/");
667 xmlSerializer.StartElement("note1");
668 xmlSerializer.StartElement("note2");
669 xmlSerializer.EndElement();
670 xmlSerializer.EndElement();
671 std::string strPrior = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n";
672 std::string strBack = "<h:note1 xmlns:h=\"http://www.w3.org/TR/html4/\">\r\n <h:note2/>\r\n</h:note1>";
673 std::string strEnd = strPrior + strBack;
674 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), strEnd.c_str());
675 }
676
677 /* @tc.name: SetNamespaceTest005
678 * @tc.desc: Test whether write the namespace of the current element tag successfully.
679 * @tc.type: FUNC
680 */
681 HWTEST_F(NativeEngineTest, SetNamespaceTest005, testing::ext::TestSize.Level0)
682 {
683 napi_env env = (napi_env)engine_;
684 napi_value arrayBuffer = nullptr;
685 void* pBuffer = nullptr;
686 size_t size = 1024;
687 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
688 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
689 xmlSerializer.SetDeclaration();
690 xmlSerializer.SetNamespace("h", "http://www.w3.org/TR/html4/");
691 xmlSerializer.StartElement("note1");
692 xmlSerializer.StartElement("note2");
693 xmlSerializer.EndElement();
694 xmlSerializer.EndElement();
695 std::string strPrior = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n";
696 std::string strBack = "<h:note1 xmlns:h=\"http://www.w3.org/TR/html4/\">\r\n <h:note2/>\r\n</h:note1>";
697 std::string strEnd = strPrior + strBack;
698 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), strEnd.c_str());
699 }
700
701 /* @tc.name: SetCommentTest001
702 * @tc.desc: Test write the comment successfully.
703 * @tc.type: FUNC
704 */
705 HWTEST_F(NativeEngineTest, SetCommentTest001, testing::ext::TestSize.Level0)
706 {
707 napi_env env = (napi_env)engine_;
708 napi_value arrayBuffer = nullptr;
709 void* pBuffer = nullptr;
710 size_t size = 1024;
711 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
712 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
713 xmlSerializer.StartElement("note");
714 xmlSerializer.SetComment("Hi!");
715 xmlSerializer.EndElement();
716 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note>\r\n <!--Hi!-->\r\n</note>");
717 }
718
719 /* @tc.name: SetCommentTest002
720 * @tc.desc: Test write the comment successfully.
721 * @tc.type: FUNC
722 */
723 HWTEST_F(NativeEngineTest, SetCommentTest002, testing::ext::TestSize.Level0)
724 {
725 napi_env env = (napi_env)engine_;
726 napi_value arrayBuffer = nullptr;
727 void* pBuffer = nullptr;
728 size_t size = 1024;
729 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
730 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
731 xmlSerializer.StartElement("note");
732 xmlSerializer.SetComment("Hello, World!");
733 xmlSerializer.EndElement();
734 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note>\r\n <!--Hello, World!-->\r\n</note>");
735 }
736
737 /* @tc.name: SetCommentTest003
738 * @tc.desc: Test write the comment successfully.
739 * @tc.type: FUNC
740 */
741 HWTEST_F(NativeEngineTest, SetCommentTest003, testing::ext::TestSize.Level0)
742 {
743 napi_env env = (napi_env)engine_;
744 napi_value arrayBuffer = nullptr;
745 void* pBuffer = nullptr;
746 size_t size = 1024;
747 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
748 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
749 xmlSerializer.SetComment("Hello, World!");
750 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<!--Hello, World!-->");
751 }
752
753 /* @tc.name: SetCommentTest004
754 * @tc.desc: Test write the comment successfully.
755 * @tc.type: FUNC
756 */
757 HWTEST_F(NativeEngineTest, SetCommentTest004, testing::ext::TestSize.Level0)
758 {
759 napi_env env = (napi_env)engine_;
760 napi_value arrayBuffer = nullptr;
761 void* pBuffer = nullptr;
762 size_t size = 1024;
763 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
764 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
765 xmlSerializer.SetComment("Hello, World!");
766 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<!--Hello, World!-->");
767 }
768
769 /* @tc.name: SetCommentTest005
770 * @tc.desc: Test write the comment successfully.
771 * @tc.type: FUNC
772 */
773 HWTEST_F(NativeEngineTest, SetCommentTest005, testing::ext::TestSize.Level0)
774 {
775 napi_env env = (napi_env)engine_;
776 napi_value arrayBuffer = nullptr;
777 void* pBuffer = nullptr;
778 size_t size = 1024;
779 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
780 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
781 xmlSerializer.SetComment("Hello, World!");
782 xmlSerializer.StartElement("note");
783 xmlSerializer.EndElement();
784 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<!--Hello, World!-->\r\n<note/>");
785 }
786
787 /* @tc.name: Test001
788 * @tc.desc: Test .
789 * @tc.type: FUNC
790 */
791 HWTEST_F(NativeEngineTest, SetCDATATest001, testing::ext::TestSize.Level0)
792 {
793 napi_env env = (napi_env)engine_;
794 napi_value arrayBuffer = nullptr;
795 void* pBuffer = nullptr;
796 size_t size = 1024;
797 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
798 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
799 xmlSerializer.SetCData("root SYSTEM");
800 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<![CDATA[root SYSTEM]]>");
801 }
802
803 /* @tc.name: SetCDATATest002
804 * @tc.desc: Test whether Writes the CDATA successfully.
805 * @tc.type: FUNC
806 */
807 HWTEST_F(NativeEngineTest, SetCDATATest002, testing::ext::TestSize.Level0)
808 {
809 napi_env env = (napi_env)engine_;
810 napi_value arrayBuffer = nullptr;
811 void* pBuffer = nullptr;
812 size_t size = 1024;
813 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
814 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
815 xmlSerializer.SetCData("root SYSTEM \"http://www.test.org/test.dtd\"");
816 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<![CDATA[root SYSTEM \"http://www.test.org/test.dtd\"]]>");
817 }
818
819 /* @tc.name: SetCDATATest003
820 * @tc.desc: Test whether Writes the CDATA successfully.
821 * @tc.type: FUNC
822 */
823 HWTEST_F(NativeEngineTest, SetCDATATest003, testing::ext::TestSize.Level0)
824 {
825 napi_env env = (napi_env)engine_;
826 napi_value arrayBuffer = nullptr;
827 void* pBuffer = nullptr;
828 size_t size = 1024;
829 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
830 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
831 xmlSerializer.StartElement("note");
832 xmlSerializer.EndElement();
833 xmlSerializer.SetCData("root SYSTEM \"http://www.test.org/test.dtd\"");
834 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer),
835 "<note/>\r\n<![CDATA[root SYSTEM \"http://www.test.org/test.dtd\"]]>");
836 }
837
838 /* @tc.name: SetCDATATest004
839 * @tc.desc: Test whether Writes the CDATA successfully.
840 * @tc.type: FUNC
841 */
842 HWTEST_F(NativeEngineTest, SetCDATATest004, testing::ext::TestSize.Level0)
843 {
844 napi_env env = (napi_env)engine_;
845 napi_value arrayBuffer = nullptr;
846 void* pBuffer = nullptr;
847 size_t size = 1024;
848 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
849 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
850 xmlSerializer.SetCData("root SYSTEM \"http://www.test.org/test.dtd\"");
851 xmlSerializer.StartElement("note");
852 xmlSerializer.EndElement();
853 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer),
854 "<![CDATA[root SYSTEM \"http://www.test.org/test.dtd\"]]>\r\n<note/>");
855 }
856
857 /* @tc.name: SetCDATATest005
858 * @tc.desc: Test whether Writes the CDATA successfully.
859 * @tc.type: FUNC
860 */
861 HWTEST_F(NativeEngineTest, SetCDATATest005, testing::ext::TestSize.Level0)
862 {
863 napi_env env = (napi_env)engine_;
864 napi_value arrayBuffer = nullptr;
865 void* pBuffer = nullptr;
866 size_t size = 1024;
867 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
868 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
869 xmlSerializer.StartElement("note");
870 xmlSerializer.SetCData("root SYSTEM \"http://www.test.org/test.dtd\"");
871 xmlSerializer.EndElement();
872 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer),
873 "<note>\r\n <![CDATA[root SYSTEM \"http://www.test.org/test.dtd\"]]>\r\n</note>");
874 }
875
876 /* @tc.name: SetTextTest001
877 * @tc.desc: Test whether Writes the text successfully.
878 * @tc.type: FUNC
879 */
880 HWTEST_F(NativeEngineTest, SetTextTest001, testing::ext::TestSize.Level0)
881 {
882 napi_env env = (napi_env)engine_;
883 napi_value arrayBuffer = nullptr;
884 void* pBuffer = nullptr;
885 size_t size = 1024;
886 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
887 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
888 xmlSerializer.StartElement("note");
889 xmlSerializer.SetAttributes("importance", "high");
890 xmlSerializer.SetText("Happy1");
891 xmlSerializer.EndElement();
892 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note importance=\"high\">Happy1</note>");
893 }
894
895 /* @tc.name: SetTextTest002
896 * @tc.desc: Test whether Writes the text successfully.
897 * @tc.type: FUNC
898 */
899 HWTEST_F(NativeEngineTest, SetTextTest002, testing::ext::TestSize.Level0)
900 {
901 napi_env env = (napi_env)engine_;
902 napi_value arrayBuffer = nullptr;
903 void* pBuffer = nullptr;
904 size_t size = 1024;
905 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
906 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
907 xmlSerializer.StartElement("note");
908 xmlSerializer.SetAttributes("importance", "high");
909 xmlSerializer.SetText("Happy2");
910 xmlSerializer.EndElement();
911 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note importance=\"high\">Happy2</note>");
912 }
913
914 /* @tc.name: SetTextTest003
915 * @tc.desc: Test whether Writes the text successfully.
916 * @tc.type: FUNC
917 */
918 HWTEST_F(NativeEngineTest, SetTextTest003, testing::ext::TestSize.Level0)
919 {
920 napi_env env = (napi_env)engine_;
921 napi_value arrayBuffer = nullptr;
922 void* pBuffer = nullptr;
923 size_t size = 1024;
924 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
925 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
926 xmlSerializer.StartElement("note");
927 xmlSerializer.SetAttributes("importance", "high");
928 xmlSerializer.SetText("Happy3");
929 xmlSerializer.EndElement();
930 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note importance=\"high\">Happy3</note>");
931 }
932
933 /* @tc.name: SetTextTest004
934 * @tc.desc: Test whether Writes the text successfully.
935 * @tc.type: FUNC
936 */
937 HWTEST_F(NativeEngineTest, SetTextTest004, testing::ext::TestSize.Level0)
938 {
939 napi_env env = (napi_env)engine_;
940 napi_value arrayBuffer = nullptr;
941 void* pBuffer = nullptr;
942 size_t size = 1024;
943 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
944 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
945 xmlSerializer.StartElement("note");
946 xmlSerializer.SetAttributes("importance", "high");
947 xmlSerializer.SetText("Happy4");
948 xmlSerializer.EndElement();
949 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note importance=\"high\">Happy4</note>");
950 }
951
952 /* @tc.name: SetTextTest005
953 * @tc.desc: Test whether Writes the text successfully.
954 * @tc.type: FUNC
955 */
956 HWTEST_F(NativeEngineTest, SetTextTest005, testing::ext::TestSize.Level0)
957 {
958 napi_env env = (napi_env)engine_;
959 napi_value arrayBuffer = nullptr;
960 void* pBuffer = nullptr;
961 size_t size = 1024;
962 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
963 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
964 xmlSerializer.StartElement("note");
965 xmlSerializer.SetAttributes("importance", "high");
966 xmlSerializer.SetText("Happy5");
967 xmlSerializer.EndElement();
968 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<note importance=\"high\">Happy5</note>");
969 }
970 /* @tc.name: SetDocTypeTest001
971 * @tc.desc: Test whether rites the DOCTYPE successfully.
972 * @tc.type: FUNC
973 */
974 HWTEST_F(NativeEngineTest, SetDocTypeTest001, testing::ext::TestSize.Level0)
975 {
976 napi_env env = (napi_env)engine_;
977 napi_value arrayBuffer = nullptr;
978 void* pBuffer = nullptr;
979 size_t size = 1024;
980 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
981 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
982 xmlSerializer.SetDocType("root SYSTEM");
983 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<!DOCTYPE root SYSTEM>");
984 }
985 /* @tc.name: SetDocTypeTest002
986 * @tc.desc: Test whether rites the DOCTYPE successfully.
987 * @tc.type: FUNC
988 */
989 HWTEST_F(NativeEngineTest, SetDocTypeTest002, testing::ext::TestSize.Level0)
990 {
991 napi_env env = (napi_env)engine_;
992 napi_value arrayBuffer = nullptr;
993 void* pBuffer = nullptr;
994 size_t size = 1024;
995 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
996 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
997 xmlSerializer.SetDocType("root SYSTEM \"http://www.test.org/test.dtd\"");
998 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer), "<!DOCTYPE root SYSTEM \"http://www.test.org/test.dtd\">");
999 }
1000
1001 /* @tc.name: SetDocTypeTest003
1002 * @tc.desc: Test whether rites the DOCTYPE successfully.
1003 * @tc.type: FUNC
1004 */
1005 HWTEST_F(NativeEngineTest, SetDocTypeTest003, testing::ext::TestSize.Level0)
1006 {
1007 napi_env env = (napi_env)engine_;
1008 napi_value arrayBuffer = nullptr;
1009 void* pBuffer = nullptr;
1010 size_t size = 1024;
1011 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
1012 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
1013 xmlSerializer.StartElement("note");
1014 xmlSerializer.EndElement();
1015 xmlSerializer.SetDocType("root SYSTEM \"http://www.test.org/test.dtd\"");
1016 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer),
1017 "<note/>\r\n<!DOCTYPE root SYSTEM \"http://www.test.org/test.dtd\">");
1018 }
1019
1020 /* @tc.name: SetDocTypeTest004
1021 * @tc.desc: Test whether rites the DOCTYPE successfully.
1022 * @tc.type: FUNC
1023 */
1024 HWTEST_F(NativeEngineTest, SetDocTypeTest004, testing::ext::TestSize.Level0)
1025 {
1026 napi_env env = (napi_env)engine_;
1027 napi_value arrayBuffer = nullptr;
1028 void* pBuffer = nullptr;
1029 size_t size = 1024;
1030 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
1031 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
1032 xmlSerializer.SetDocType("root SYSTEM \"http://www.test.org/test.dtd\"");
1033 xmlSerializer.StartElement("note");
1034 xmlSerializer.EndElement();
1035 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer),
1036 "<!DOCTYPE root SYSTEM \"http://www.test.org/test.dtd\">\r\n<note/>");
1037 }
1038
1039 /* @tc.name: SetDocTypeTest005
1040 * @tc.desc: Test whether rites the DOCTYPE successfully.
1041 * @tc.type: FUNC
1042 */
1043 HWTEST_F(NativeEngineTest, SetDocTypeTest005, testing::ext::TestSize.Level0)
1044 {
1045 napi_env env = (napi_env)engine_;
1046 napi_value arrayBuffer = nullptr;
1047 void* pBuffer = nullptr;
1048 size_t size = 1024;
1049 napi_create_arraybuffer(env, size, &pBuffer, &arrayBuffer);
1050 OHOS::xml::XmlSerializer xmlSerializer(reinterpret_cast<char*>(pBuffer), size, "utf-8");
1051 xmlSerializer.StartElement("note");
1052 xmlSerializer.SetDocType("root SYSTEM \"http://www.test.org/test.dtd\"");
1053 xmlSerializer.EndElement();
1054 ASSERT_STREQ(reinterpret_cast<char*>(pBuffer),
1055 "<note>\r\n <!DOCTYPE root SYSTEM \"http://www.test.org/test.dtd\">\r\n</note>");
1056 }
1057
1058 /* @tc.name: XmlParseTest001
1059 * @tc.desc: To XML text to JavaScript object.
1060 * @tc.type: FUNC
1061 */
1062
1063 HWTEST_F(NativeEngineTest, XmlParseTest001, testing::ext::TestSize.Level0)
1064 {
1065 napi_env env = (napi_env)engine_;
1066 std::string str1 = "<?xml version=\"1.0\" encoding=\"utf-8\"?><!DOCTYPE note [\n<!ENTITY foo \"baa\">]>";
1067 std::string str2 = "<note importance=\"high\" logged=\"true\">";
1068 std::string str3 = " <![CDATA[\r\nfuncrion matchwo(a,6)\r\n{\r\nreturn 1;\r\n}\r\n]]>";
1069 std::string str4 = " <!--Hello, World!--> <company>John & Hans</company> <title>Happy</title>";
1070 std::string str5 = " <title>Happy</title> <todo>Work</todo> <todo>Play</todo> <?go there?>";
1071 std::string str6 = " <a><b/></a> <h:table xmlns:h=\"http://www.w3.org/TR/html4/\"> <h:tr>";
1072 std::string str7 = " <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr>";
1073 std::string str8 = " </h:table></note>";
1074 std::string strXml = str1 + str2 + str3 + str4 + str5 + str6 + str7 + str8;
1075 testStr = "";
1076
1077 OHOS::xml::XmlPullParser xmlPullParser(strXml, "utf-8");
1078 napi_value options = nullptr;
1079 napi_create_object(env, &options);
1080 const char* key1 = "supportDoctype";
1081 const char* key2 = "ignoreNameSpace";
1082 const char* key3 = "tagValueCallbackFunction";
1083 napi_value object = nullptr;
1084 napi_create_object(env, &object);
1085 napi_value value1 = nullptr;
1086 napi_value value2 = nullptr;
1087 napi_get_boolean(env, true, &value1);
1088 napi_get_boolean(env, false, &value2);
1089 napi_value value3 = nullptr;
1090 std::string cbName = "Method";
1091 napi_create_function(env, cbName.c_str(), cbName.size(), Method, nullptr, &value3);
1092 napi_set_named_property(env, object, key1, value1);
1093 napi_set_named_property(env, object, key2, value2);
1094 napi_set_named_property(env, object, key3, value3);
1095 xmlPullParser.DealOptionInfo(env, object);
1096 xmlPullParser.Parse(env, options);
1097 ASSERT_STREQ(testStr.c_str(), "notecompanytitletitletodotodoabtabletrtdtd");
1098 }
1099
1100 /* @tc.name: XmlParseTest002
1101 * @tc.desc: To XML text to JavaScript object.
1102 * @tc.type: FUNC
1103 */
1104
1105 HWTEST_F(NativeEngineTest, XmlParseTest002, testing::ext::TestSize.Level0)
1106 {
1107 napi_env env = (napi_env)engine_;
1108 std::string str1 = "<?xml version=\"1.0\" encoding=\"utf-8\"?><!DOCTYPE note [\n<!ENTITY foo \"baa\">]>";
1109 std::string str2 = "<note importance=\"high\" logged=\"true\">";
1110 std::string str3 = " <![CDATA[\r\nfuncrion matchwo(a,6)\r\n{\r\nreturn 1;\r\n}\r\n]]>";
1111 std::string str4 = " <!--Hello, World!--> <company>John & Hans</company> <title>Happy</title>";
1112 std::string str5 = " <title>Happy</title> <todo>Work</todo> <todo>Play</todo> <?go there?>";
1113 std::string str6 = " <a><b/></a> <h:table xmlns:h=\"http://www.w3.org/TR/html4/\"> <h:tr>";
1114 std::string str7 = " <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr>";
1115 std::string str8 = " </h:table></note>";
1116 std::string strXml = str1 + str2 + str3 + str4 + str5 + str6 + str7 + str8;
1117 testStr = "";
1118 OHOS::xml::XmlPullParser xmlPullParser(strXml, "utf-8");
1119 napi_value options = nullptr;
1120 napi_create_object(env, &options);
1121 const char* key1 = "supportDoctype";
1122 const char* key2 = "ignoreNameSpace";
1123 const char* key3 = "attributeValueCallbackFunction";
1124 napi_value object = nullptr;
1125 napi_create_object(env, &object);
1126 napi_value value1 = nullptr;
1127 napi_value value2 = nullptr;
1128 napi_get_boolean(env, false, &value1);
1129 napi_get_boolean(env, true, &value2);
1130 napi_value value3 = nullptr;
1131 std::string cbName = "Method";
1132 napi_create_function(env, cbName.c_str(), cbName.size(), Method, nullptr, &value3);
1133 napi_set_named_property(env, object, key1, value1);
1134 napi_set_named_property(env, object, key2, value2);
1135 napi_set_named_property(env, object, key3, value3);
1136 xmlPullParser.DealOptionInfo(env, object);
1137 xmlPullParser.Parse(env, options);
1138 ASSERT_STREQ(testStr.c_str(), "importancehighloggedtruexmlns:hhttp://www.w3.org/TR/html4/");
1139 }
1140
1141 /* @tc.name: XmlParseTest003
1142 * @tc.desc: To XML text to JavaScript object.
1143 * @tc.type: FUNC
1144 */
1145
1146 HWTEST_F(NativeEngineTest, XmlParseTest003, testing::ext::TestSize.Level0)
1147 {
1148 napi_env env = (napi_env)engine_;
1149 std::string str1 = "<?xml version=\"1.0\" encoding=\"utf-8\"?><!DOCTYPE note [\n<!ENTITY foo \"baa\">]>";
1150 std::string str2 = "<note importance=\"high\" logged=\"true\">";
1151 std::string str3 = " <![CDATA[\r\nfuncrion matchwo(a,6)\r\n{\r\nreturn 1;\r\n}\r\n]]>";
1152 std::string str4 = " <!--Hello, World!--> <company>John & Hans</company> <title>Happy</title>";
1153 std::string str5 = " <title>Happy</title> <todo>Work</todo> <todo>Play</todo> <?go there?>";
1154 std::string str6 = " <a><b/></a> <h:table xmlns:h=\"http://www.w3.org/TR/html4/\"> <h:tr>";
1155 std::string str7 = " <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr>";
1156 std::string str8 = " </h:table></note>";
1157 std::string strXml = str1 + str2 + str3 + str4 + str5 + str6 + str7 + str8;
1158 testStr = "";
1159 OHOS::xml::XmlPullParser xmlPullParser(strXml, "utf-8");
1160 napi_value options = nullptr;
1161 napi_create_object(env, &options);
1162 const char* key1 = "supportDoctype";
1163 const char* key2 = "ignoreNameSpace";
1164 const char* key3 = "tagValueCallbackFunction";
1165 napi_value object = nullptr;
1166 napi_create_object(env, &object);
1167 napi_value value1 = nullptr;
1168 napi_value value2 = nullptr;
1169 napi_get_boolean(env, false, &value1);
1170 napi_get_boolean(env, true, &value2);
1171 napi_value value3 = nullptr;
1172 std::string cbName = "Method";
1173 napi_create_function(env, cbName.c_str(), cbName.size(), Method, nullptr, &value3);
1174 napi_set_named_property(env, object, key1, value1);
1175 napi_set_named_property(env, object, key2, value2);
1176 napi_set_named_property(env, object, key3, value3);
1177 xmlPullParser.DealOptionInfo(env, object);
1178 xmlPullParser.Parse(env, options);
1179 ASSERT_STREQ(testStr.c_str(), "notecompanytitletitletodotodoabh:tableh:trh:tdh:td");
1180 }
1181
1182 /* @tc.name: XmlParseTest004
1183 * @tc.desc: To XML text to JavaScript object.
1184 * @tc.type: FUNC
1185 */
1186
1187 HWTEST_F(NativeEngineTest, XmlParseTest004, testing::ext::TestSize.Level0)
1188 {
1189 napi_env env = (napi_env)engine_;
1190 std::string str1 = "<?xml version=\"1.0\" encoding=\"utf-8\"?><!DOCTYPE note [\n<!ENTITY foo \"baa\">]>";
1191 std::string str2 = "<note importance=\"high\" logged=\"true\">";
1192 std::string str3 = " <![CDATA[\r\nfuncrion matchwo(a,6)\r\n{\r\nreturn 1;\r\n}\r\n]]>";
1193 std::string str4 = " <!--Hello, World!--> <company>John & Hans</company> <title>Happy</title>";
1194 std::string str5 = " <title>Happy</title> <todo>Work</todo> <todo>Play</todo> <?go there?>";
1195 std::string str6 = " <a><b/></a> <h:table xmlns:h=\"http://www.w3.org/TR/html4/\"> <h:tr>";
1196 std::string str7 = " <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr>";
1197 std::string str8 = " </h:table></note>";
1198 std::string strXml = str1 + str2 + str3 + str4 + str5 + str6 + str7 + str8;
1199 testStr = "";
1200 OHOS::xml::XmlPullParser xmlPullParser(strXml, "utf-8");
1201 napi_value options = nullptr;
1202 napi_create_object(env, &options);
1203 const char* key1 = "supportDoctype";
1204 const char* key2 = "ignoreNameSpace";
1205 const char* key3 = "attributeValueCallbackFunction";
1206 napi_value object = nullptr;
1207 napi_create_object(env, &object);
1208 napi_value value1 = nullptr;
1209 napi_value value2 = nullptr;
1210 napi_get_boolean(env, true, &value1);
1211 napi_get_boolean(env, true, &value2);
1212 napi_value value3 = nullptr;
1213 std::string cbName = "Method";
1214 napi_create_function(env, cbName.c_str(), cbName.size(), Method, nullptr, &value3);
1215 napi_set_named_property(env, object, key1, value1);
1216 napi_set_named_property(env, object, key2, value2);
1217 napi_set_named_property(env, object, key3, value3);
1218 xmlPullParser.DealOptionInfo(env, object);
1219 xmlPullParser.Parse(env, options);
1220 ASSERT_STREQ(testStr.c_str(), "importancehighloggedtruexmlns:hhttp://www.w3.org/TR/html4/");
1221 }
1222
1223 /* @tc.name: XmlParseTest005
1224 * @tc.desc: To XML text to JavaScript object.
1225 * @tc.type: FUNC
1226 */
1227
1228 HWTEST_F(NativeEngineTest, XmlParseTest005, testing::ext::TestSize.Level0)
1229 {
1230 napi_env env = (napi_env)engine_;
1231 std::string str1 = "<?xml version=\"1.0\" encoding=\"utf-8\"?><!DOCTYPE note [\n<!ENTITY foo \"baa\">]>";
1232 std::string str2 = "<note importance=\"high\" logged=\"true\">";
1233 std::string str3 = " <![CDATA[\r\nfuncrion matchwo(a,6)\r\n{\r\nreturn 1;\r\n}\r\n]]>";
1234 std::string str4 = " <!--Hello, World!--> <company>John & Hans</company> <title>Happy</title>";
1235 std::string str5 = " <title>Happy</title> <todo>Work</todo> <todo>Play</todo> <?go there?>";
1236 std::string str6 = " <a><b/></a> <h:table xmlns:h=\"http://www.w3.org/TR/html4/\"> <h:tr>";
1237 std::string str7 = " <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr>";
1238 std::string str8 = " </h:table></note>";
1239 std::string strXml = str1 + str2 + str3 + str4 + str5 + str6 + str7 + str8;
1240 testStr = "";
1241 OHOS::xml::XmlPullParser xmlPullParser(strXml, "utf-8");
1242 napi_value options = nullptr;
1243 napi_create_object(env, &options);
1244 const char* key1 = "supportDoctype";
1245 const char* key2 = "ignoreNameSpace";
1246 const char* key3 = "tagValueCallbackFunction";
1247 napi_value object = nullptr;
1248 napi_create_object(env, &object);
1249 napi_value value1 = nullptr;
1250 napi_value value2 = nullptr;
1251 napi_get_boolean(env, true, &value1);
1252 napi_get_boolean(env, true, &value2);
1253 napi_value value3 = nullptr;
1254 std::string cbName = "Method";
1255 napi_create_function(env, cbName.c_str(), cbName.size(), Method, nullptr, &value3);
1256 napi_set_named_property(env, object, key1, value1);
1257 napi_set_named_property(env, object, key2, value2);
1258 napi_set_named_property(env, object, key3, value3);
1259 xmlPullParser.DealOptionInfo(env, object);
1260 xmlPullParser.Parse(env, options);
1261 ASSERT_STREQ(testStr.c_str(), "notecompanytitletitletodotodoabh:tableh:trh:tdh:td");
1262 }
1263
1264 /* @tc.name: XmlParseTest006
1265 * @tc.desc: To XML text to JavaScript object.
1266 * @tc.type: FUNC
1267 */
1268
1269 HWTEST_F(NativeEngineTest, XmlParseTest006, testing::ext::TestSize.Level0)
1270 {
1271 napi_env env = (napi_env)engine_;
1272 std::string str1 = "<?xml version=\"1.0\" encoding=\"utf-8\"?><!DOCTYPE note [\n<!ENTITY foo \"baa\">]>";
1273 std::string str2 = "<note importance=\"high\" logged=\"true\">";
1274 std::string str3 = " <![CDATA[\r\nfuncrion matchwo(a,6)\r\n{\r\nreturn 1;\r\n}\r\n]]>";
1275 std::string str4 = " <!--Hello, World!--> <company>John & Hans</company> <title>Happy</title>";
1276 std::string str5 = " <title>Happy</title> <todo>Work</todo> <todo>Play</todo> <?go there?>";
1277 std::string str6 = " <a><b/></a> <h:table xmlns:h=\"http://www.w3.org/TR/html4/\"> <h:tr>";
1278 std::string str7 = " <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr>";
1279 std::string str8 = " </h:table></note>";
1280 std::string strXml = str1 + str2 + str3 + str4 + str5 + str6 + str7 + str8;
1281 OHOS::xml::XmlPullParser xmlPullParser(strXml, "utf-8");
1282 napi_value options = nullptr;
1283 napi_create_object(env, &options);
1284 const char* key1 = "supportDoctype";
1285 const char* key2 = "ignoreNameSpace";
1286 const char* key3 = "tokenValueCallbackFunction";
1287 napi_value object = nullptr;
1288 napi_create_object(env, &object);
1289 napi_value value1 = nullptr;
1290 napi_value value2 = nullptr;
1291 napi_get_boolean(env, true, &value1);
1292 napi_get_boolean(env, true, &value2);
1293 napi_value value3 = nullptr;
1294 std::string cbName = "TokenValueCallbackFunction";
1295 napi_create_function(env, cbName.c_str(), cbName.size(), TokenValueCallbackFunction, nullptr, &value3);
1296 napi_set_named_property(env, object, key1, value1);
1297 napi_set_named_property(env, object, key2, value2);
1298 napi_set_named_property(env, object, key3, value3);
1299 xmlPullParser.DealOptionInfo(env, object);
1300 xmlPullParser.Parse(env, options);
1301 ASSERT_STREQ(testStr.c_str(), "notecompanytitletitletodotodoabh:tableh:trh:tdh:td");
1302 }
1303
1304 /* @tc.name: XmlParseTest007
1305 * @tc.desc: To XML text to JavaScript object.
1306 * @tc.type: FUNC
1307 */
1308
1309 HWTEST_F(NativeEngineTest, XmlParseTest007, testing::ext::TestSize.Level0)
1310 {
1311 napi_env env = (napi_env)engine_;
1312 std::string str1 = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
1313 std::string str2 = "<note importance=\"high\" logged=\"true\">";
1314 std::string str3 = " <![CDATA[\r\nfuncrion matchwo(a,6)\r\n{\r\nreturn 1;\r\n}\r\n]]>";
1315 std::string str4 = " <!--Hello, World!--> <company>John & Hans</company> <title>Happy</title>";
1316 std::string str5 = " <title>Happy</title> <todo>Work</todo> <todo>Play</todo> <?go there?>";
1317 std::string str6 = " <a><b/></a> <h:table xmlns:h=\"http://www.w3.org/TR/html4/\"> <h:tr>";
1318 std::string str7 = " <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr>";
1319 std::string str8 = " </h:table></note>";
1320 std::string strXml = str1 + str2 + str3 + str4 + str5 + str6 + str7 + str8;
1321 testStr = "";
1322 OHOS::xml::XmlPullParser xmlPullParser(strXml, "utf-8");
1323 napi_value options = nullptr;
1324 napi_create_object(env, &options);
1325 const char* key1 = "supportDoctype";
1326 const char* key2 = "ignoreNameSpace";
1327 const char* key3 = "attributeValueCallbackFunction";
1328 napi_value object = nullptr;
1329 napi_create_object(env, &object);
1330 napi_value value1 = nullptr;
1331 napi_value value2 = nullptr;
1332 napi_get_boolean(env, true, &value1);
1333 napi_get_boolean(env, true, &value2);
1334 napi_value value3 = nullptr;
1335 std::string cbName = "Method";
1336 napi_create_function(env, cbName.c_str(), cbName.size(), Method, nullptr, &value3);
1337 napi_set_named_property(env, object, key1, value1);
1338 napi_set_named_property(env, object, key2, value2);
1339 napi_set_named_property(env, object, key3, value3);
1340 xmlPullParser.DealOptionInfo(env, object);
1341 xmlPullParser.Parse(env, options);
1342 ASSERT_STREQ(testStr.c_str(), "importancehighloggedtruexmlns:hhttp://www.w3.org/TR/html4/");
1343 }
1344
1345 /* @tc.name: XmlParseTest008
1346 * @tc.desc: To XML text to JavaScript object.
1347 * @tc.type: FUNC
1348 */
1349
1350 HWTEST_F(NativeEngineTest, XmlParseTest008, testing::ext::TestSize.Level0)
1351 {
1352 napi_env env = (napi_env)engine_;
1353 std::string str1 = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
1354 std::string str2 = "<note importance=\"high\" logged=\"true\">";
1355 std::string str3 = " <![CDATA[\r\nfuncrion matchwo(a,6)\r\n{\r\nreturn 1;\r\n}\r\n]]>";
1356 std::string str4 = " <!--Hello, World!--> <company>John & Hans</company> <title>Happy</title>";
1357 std::string str5 = " <title>Happy</title> <todo>Work</todo> <todo>Play</todo> <?go there?>";
1358 std::string str6 = " <a><b/></a> <h:table xmlns:h=\"http://www.w3.org/TR/html4/\"> <h:tr>";
1359 std::string str7 = " <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr>";
1360 std::string str8 = " </h:table></note>";
1361 std::string strXml = str1 + str2 + str3 + str4 + str5 + str6 + str7 + str8;
1362 testStr = "";
1363 OHOS::xml::XmlPullParser xmlPullParser(strXml, "utf-8");
1364 napi_value options = nullptr;
1365 napi_create_object(env, &options);
1366 const char* key1 = "supportDoctype";
1367 const char* key2 = "ignoreNameSpace";
1368 const char* key3 = "tagValueCallbackFunction";
1369 napi_value object = nullptr;
1370 napi_create_object(env, &object);
1371 napi_value value1 = nullptr;
1372 napi_value value2 = nullptr;
1373 napi_get_boolean(env, true, &value1);
1374 napi_get_boolean(env, true, &value2);
1375 napi_value value3 = nullptr;
1376 std::string cbName = "Method";
1377 napi_create_function(env, cbName.c_str(), cbName.size(), Method, nullptr, &value3);
1378 napi_set_named_property(env, object, key1, value1);
1379 napi_set_named_property(env, object, key2, value2);
1380 napi_set_named_property(env, object, key3, value3);
1381 xmlPullParser.DealOptionInfo(env, object);
1382 xmlPullParser.Parse(env, options);
1383 ASSERT_STREQ(testStr.c_str(), "notecompanytitletitletodotodoabh:tableh:trh:tdh:td");
1384 }
1385
1386 /* @tc.name: XmlParseTest009
1387 * @tc.desc: To XML text to JavaScript object.
1388 * @tc.type: FUNC
1389 */
1390
1391 HWTEST_F(NativeEngineTest, XmlParseTest009, testing::ext::TestSize.Level0)
1392 {
1393 napi_env env = (napi_env)engine_;
1394 std::string str1 = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
1395 std::string str2 = "<note importance=\"high\" logged=\"true\">";
1396 std::string str3 = " <![CDATA[\r\nfuncrion matchwo(a,6)\r\n{\r\nreturn 1;\r\n}\r\n]]>";
1397 std::string str4 = " <!--Hello, World!--> <company>John & Hans</company> <title>Happy</title>";
1398 std::string str5 = " <title>Happy</title> <todo>Work</todo> <todo>Play</todo> <?go there?>";
1399 std::string str6 = " <a><b/></a> <h:table xmlns:h=\"http://www.w3.org/TR/html4/\"> <h:tr>";
1400 std::string str7 = " <h:td>Apples</h:td> <h:td>Bananas</h:td> </h:tr>";
1401 std::string str8 = " </h:table></note>";
1402 std::string strXml = str1 + str2 + str3 + str4 + str5 + str6 + str7 + str8;
1403 OHOS::xml::XmlPullParser xmlPullParser(strXml, "utf-8");
1404 napi_value options = nullptr;
1405 napi_create_object(env, &options);
1406 const char* key1 = "supportDoctype";
1407 const char* key2 = "ignoreNameSpace";
1408 const char* key3 = "tokenValueCallbackFunction";
1409 napi_value object = nullptr;
1410 napi_create_object(env, &object);
1411 napi_value value1 = nullptr;
1412 napi_value value2 = nullptr;
1413 napi_get_boolean(env, true, &value1);
1414 napi_get_boolean(env, true, &value2);
1415 napi_value value3 = nullptr;
1416 std::string cbName = "TokenValueCallbackFunc";
1417 napi_create_function(env, cbName.c_str(), cbName.size(), TokenValueCallbackFunc, nullptr, &value3);
1418 napi_set_named_property(env, object, key1, value1);
1419 napi_set_named_property(env, object, key2, value2);
1420 napi_set_named_property(env, object, key3, value3);
1421 xmlPullParser.DealOptionInfo(env, object);
1422 xmlPullParser.Parse(env, options);
1423 ASSERT_STREQ(testStr.c_str(), "notecompanytitletitletodotodoabh:tableh:trh:tdh:td");
1424 }
1425