* Copyright (c) 2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "dash_xml_unit_test.h"
namespace OHOS {
namespace Media {
namespace Plugins {
namespace HttpPlugin {
using namespace testing::ext;
void DashXmlUnitTest::SetUpTestCase(void) {}
void DashXmlUnitTest::TearDownTestCase(void)
{
if (xmlParser_ != nullptr) {
xmlParser_->DestroyDoc();
}
}
void DashXmlUnitTest::SetUp(void) {}
void DashXmlUnitTest::TearDown(void) {}
HWTEST_F(DashXmlUnitTest, Test_ParseFromString_Failed_001, TestSize.Level1)
{
double ret = xmlParser_->ParseFromString("");
EXPECT_GE(ret, -1);
}
HWTEST_F(DashXmlUnitTest, Test_ParseFromString_Failed_002, TestSize.Level1)
{
double ret = xmlParser_->ParseFromString("<test><11111>");
EXPECT_GE(ret, -1);
}
HWTEST_F(DashXmlUnitTest, Test_ParseFromString_Success_001, TestSize.Level1)
{
double ret = xmlParser_->ParseFromString("<test>123</test>");
EXPECT_GE(ret, 0);
}
HWTEST_F(DashXmlUnitTest, Test_ParseFromBuffer_Failed_001, TestSize.Level1)
{
double ret = xmlParser_->ParseFromBuffer(nullptr, 1);
EXPECT_GE(ret, -1);
}
HWTEST_F(DashXmlUnitTest, Test_ParseFromBuffer_Failed_002, TestSize.Level1)
{
std::string xml = "";
double ret = xmlParser_->ParseFromBuffer(xml.c_str(), xml.length());
EXPECT_GE(ret, -1);
}
HWTEST_F(DashXmlUnitTest, Test_ParseFromBuffer_Failed_003, TestSize.Level1)
{
std::string xml = "<test><11111>";
double ret = xmlParser_->ParseFromBuffer(xml.c_str(), xml.length());
EXPECT_GE(ret, -1);
}
HWTEST_F(DashXmlUnitTest, Test_ParseFromBuffer_Failed_004, TestSize.Level1)
{
std::string xml = "<test>123</test>";
double ret = xmlParser_->ParseFromBuffer(xml.c_str(), 0);
EXPECT_EQ(ret, -1);
}
HWTEST_F(DashXmlUnitTest, Test_ParseFromBuffer_Success_001, TestSize.Level1)
{
std::string xml = "<test>123</test>";
double ret = xmlParser_->ParseFromBuffer(xml.c_str(), xml.length());
EXPECT_GE(ret, 0);
}
HWTEST_F(DashXmlUnitTest, Test_ParseFromBuffer_Success_002, TestSize.Level1)
{
std::string xml = "<root id=\"1\"><test1>123</test1><test2></test2></root>";
double ret = xmlParser_->ParseFromBuffer(xml.c_str(), xml.length());
EXPECT_GE(ret, 0);
std::shared_ptr<XmlElement> root = xmlParser_->GetRootElement();
root->GetXmlNode();
std::string attr = root->GetAttribute("test");
EXPECT_TRUE(attr.empty());
std::string id = root->GetAttribute("id");
EXPECT_EQ(id, "1");
std::shared_ptr<XmlElement> child = root->GetChild();
std::shared_ptr<XmlElement> parent = child->GetParent();
std::shared_ptr<XmlElement> last = root->GetLast();
std::shared_ptr<XmlElement> prev = last->GetSiblingPrev();
EXPECT_NE(parent, nullptr);
}
HWTEST_F(DashXmlUnitTest, Test_ParseFromBuffer_Success_003, TestSize.Level1)
{
std::shared_ptr<XmlElement> root = std::make_shared<XmlElement>(nullptr);
std::string name = root->GetName();
EXPECT_TRUE(name.empty());
std::string text = root->GetText();
EXPECT_TRUE(text.empty());
std::string attr = root->GetAttribute("test");
EXPECT_TRUE(attr.empty());
std::shared_ptr<XmlElement> parent = root->GetParent();
EXPECT_EQ(parent, nullptr);
std::shared_ptr<XmlElement> child = root->GetChild();
EXPECT_EQ(child, nullptr);
std::shared_ptr<XmlElement> prev = root->GetSiblingPrev();
EXPECT_EQ(prev, nullptr);
std::shared_ptr<XmlElement> next = root->GetSiblingNext();
EXPECT_EQ(next, nullptr);
std::shared_ptr<XmlElement> last = root->GetLast();
EXPECT_EQ(last, nullptr);
}
HWTEST_F(DashXmlUnitTest, Test_ParseFromBuffer_Success_004, TestSize.Level1)
{
xmlNodePtr node = xmlNewNode(nullptr, BAD_CAST "root");
std::shared_ptr<XmlElement> root = std::make_shared<XmlElement>(node);
std::string name = root->GetName();
EXPECT_FALSE(name.empty());
std::string text = root->GetText();
EXPECT_TRUE(text.empty());
std::string attr = root->GetAttribute("test");
EXPECT_TRUE(attr.empty());
std::shared_ptr<XmlElement> parent = root->GetParent();
EXPECT_EQ(parent, nullptr);
std::shared_ptr<XmlElement> child = root->GetChild();
EXPECT_EQ(child, nullptr);
std::shared_ptr<XmlElement> prev = root->GetSiblingPrev();
EXPECT_EQ(prev, nullptr);
std::shared_ptr<XmlElement> next = root->GetSiblingNext();
EXPECT_EQ(next, nullptr);
std::shared_ptr<XmlElement> last = root->GetLast();
EXPECT_EQ(last, nullptr);
}
HWTEST_F(DashXmlUnitTest, Test_ParseFromFile_Success_001, TestSize.Level1)
{
std::string xml = "/data/test/media/test_dash/segment_base/index.mpd";
double ret = xmlParser_->ParseFromFile(xml);
EXPECT_GE(ret, -1);
}
HWTEST_F(DashXmlUnitTest, Test_ParseFromFile_Failed_001, TestSize.Level1)
{
std::string xml = "";
double ret = xmlParser_->ParseFromFile(xml);
EXPECT_EQ(ret, -1);
}
HWTEST_F(DashXmlUnitTest, Test_ParseFromFile_Failed_002, TestSize.Level1)
{
std::string xml = "/test/index.mpd";
double ret = xmlParser_->ParseFromFile(xml);
EXPECT_EQ(ret, -1);
}
}
}
}
}