1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include "dash_xml_unit_test.h"
17
18 namespace OHOS {
19 namespace Media {
20 namespace Plugins {
21 namespace HttpPlugin {
22 using namespace testing::ext;
23
SetUpTestCase(void)24 void DashXmlUnitTest::SetUpTestCase(void) {}
25
TearDownTestCase(void)26 void DashXmlUnitTest::TearDownTestCase(void)
27 {
28 if (xmlParser_ != nullptr) {
29 xmlParser_->DestroyDoc();
30 }
31 }
32
SetUp(void)33 void DashXmlUnitTest::SetUp(void) {}
34
TearDown(void)35 void DashXmlUnitTest::TearDown(void) {}
36
37 HWTEST_F(DashXmlUnitTest, Test_ParseFromString_Failed_001, TestSize.Level1)
38 {
39 double ret = xmlParser_->ParseFromString("");
40 EXPECT_GE(ret, -1);
41 }
42
43 HWTEST_F(DashXmlUnitTest, Test_ParseFromString_Failed_002, TestSize.Level1)
44 {
45 double ret = xmlParser_->ParseFromString("<test><11111>");
46 EXPECT_GE(ret, -1);
47 }
48
49 HWTEST_F(DashXmlUnitTest, Test_ParseFromString_Success_001, TestSize.Level1)
50 {
51 double ret = xmlParser_->ParseFromString("<test>123</test>");
52 EXPECT_GE(ret, 0);
53 }
54
55 HWTEST_F(DashXmlUnitTest, Test_ParseFromBuffer_Failed_001, TestSize.Level1)
56 {
57 double ret = xmlParser_->ParseFromBuffer(nullptr, 1);
58 EXPECT_GE(ret, -1);
59 }
60
61 HWTEST_F(DashXmlUnitTest, Test_ParseFromBuffer_Failed_002, TestSize.Level1)
62 {
63 std::string xml = "";
64 double ret = xmlParser_->ParseFromBuffer(xml.c_str(), xml.length());
65 EXPECT_GE(ret, -1);
66 }
67
68 HWTEST_F(DashXmlUnitTest, Test_ParseFromBuffer_Failed_003, TestSize.Level1)
69 {
70 std::string xml = "<test><11111>";
71 double ret = xmlParser_->ParseFromBuffer(xml.c_str(), xml.length());
72 EXPECT_GE(ret, -1);
73 }
74
75 HWTEST_F(DashXmlUnitTest, Test_ParseFromBuffer_Success_001, TestSize.Level1)
76 {
77 std::string xml = "<test>123</test>";
78 double ret = xmlParser_->ParseFromBuffer(xml.c_str(), xml.length());
79 EXPECT_GE(ret, 0);
80 }
81
82 HWTEST_F(DashXmlUnitTest, Test_ParseFromBuffer_Success_002, TestSize.Level1)
83 {
84 std::string xml = "<root id=\"1\"><test1>123</test1><test2></test2></root>";
85 double ret = xmlParser_->ParseFromBuffer(xml.c_str(), xml.length());
86 EXPECT_GE(ret, 0);
87 std::shared_ptr<XmlElement> root = xmlParser_->GetRootElement();
88 root->GetXmlNode();
89 std::string attr = root->GetAttribute("test");
90 EXPECT_TRUE(attr.empty());
91 std::string id = root->GetAttribute("id");
92 EXPECT_EQ(id, "1");
93 std::shared_ptr<XmlElement> child = root->GetChild();
94 std::shared_ptr<XmlElement> parent = child->GetParent();
95 std::shared_ptr<XmlElement> last = root->GetLast();
96 std::shared_ptr<XmlElement> prev = last->GetSiblingPrev();
97 EXPECT_NE(parent, nullptr);
98 }
99
100 HWTEST_F(DashXmlUnitTest, Test_ParseFromBuffer_Success_003, TestSize.Level1)
101 {
102 std::shared_ptr<XmlElement> root = std::make_shared<XmlElement>(nullptr);
103 std::string name = root->GetName();
104 EXPECT_TRUE(name.empty());
105 std::string text = root->GetText();
106 EXPECT_TRUE(text.empty());
107 std::string attr = root->GetAttribute("test");
108 EXPECT_TRUE(attr.empty());
109 std::shared_ptr<XmlElement> parent = root->GetParent();
110 EXPECT_EQ(parent, nullptr);
111 std::shared_ptr<XmlElement> child = root->GetChild();
112 EXPECT_EQ(child, nullptr);
113 std::shared_ptr<XmlElement> prev = root->GetSiblingPrev();
114 EXPECT_EQ(prev, nullptr);
115 std::shared_ptr<XmlElement> next = root->GetSiblingNext();
116 EXPECT_EQ(next, nullptr);
117 std::shared_ptr<XmlElement> last = root->GetLast();
118 EXPECT_EQ(last, nullptr);
119 }
120
121 HWTEST_F(DashXmlUnitTest, Test_ParseFromBuffer_Success_004, TestSize.Level1)
122 {
123 xmlNodePtr node = xmlNewNode(nullptr, BAD_CAST "root");
124 std::shared_ptr<XmlElement> root = std::make_shared<XmlElement>(node);
125 std::string name = root->GetName();
126 EXPECT_FALSE(name.empty());
127 std::string text = root->GetText();
128 EXPECT_TRUE(text.empty());
129 std::string attr = root->GetAttribute("test");
130 EXPECT_TRUE(attr.empty());
131 std::shared_ptr<XmlElement> parent = root->GetParent();
132 EXPECT_EQ(parent, nullptr);
133 std::shared_ptr<XmlElement> child = root->GetChild();
134 EXPECT_EQ(child, nullptr);
135 std::shared_ptr<XmlElement> prev = root->GetSiblingPrev();
136 EXPECT_EQ(prev, nullptr);
137 std::shared_ptr<XmlElement> next = root->GetSiblingNext();
138 EXPECT_EQ(next, nullptr);
139 std::shared_ptr<XmlElement> last = root->GetLast();
140 EXPECT_EQ(last, nullptr);
141 }
142
143 HWTEST_F(DashXmlUnitTest, Test_ParseFromFile_Success_001, TestSize.Level1)
144 {
145 std::string xml = "/data/test/media/test_dash/segment_base/index.mpd";
146 double ret = xmlParser_->ParseFromFile(xml);
147 EXPECT_GE(ret, -1);
148 }
149 }
150 }
151 }
152 }