#include #include #include #include #include "common/xmlutils.h" TEST(CommonXmlUtils, ReadNextStartElement) { QByteArray xml = "value"; QBuffer buffer(&xml); buffer.open(QIODevice::ReadOnly); QXmlStreamReader reader(&buffer); EXPECT_TRUE(olive::XMLReadNextStartElement(&reader)); EXPECT_EQ(reader.name().toString(), QStringLiteral("root")); EXPECT_TRUE(olive::XMLReadNextStartElement(&reader)); EXPECT_EQ(reader.name().toString(), QStringLiteral("child")); } TEST(CommonXmlUtils, ReadNextStartElementSkipsWhitespace) { QByteArray xml = "\n \n\n\n\n"; QBuffer buffer(&xml); buffer.open(QIODevice::ReadOnly); QXmlStreamReader reader(&buffer); EXPECT_TRUE(olive::XMLReadNextStartElement(&reader)); EXPECT_EQ(reader.name().toString(), QStringLiteral("root")); EXPECT_TRUE(olive::XMLReadNextStartElement(&reader)); EXPECT_EQ(reader.name().toString(), QStringLiteral("child")); } TEST(CommonXmlUtils, ReadNextStartElementReturnsFalseAtEnd) { QByteArray xml = ""; QBuffer buffer(&xml); buffer.open(QIODevice::ReadOnly); QXmlStreamReader reader(&buffer); EXPECT_TRUE(olive::XMLReadNextStartElement(&reader)); EXPECT_EQ(reader.name().toString(), QStringLiteral("root")); EXPECT_FALSE(olive::XMLReadNextStartElement(&reader)); } TEST(CommonXmlUtils, ReadNextStartElementSkipsUnknown) { QByteArray xml = ""; QBuffer buffer(&xml); buffer.open(QIODevice::ReadOnly); QXmlStreamReader reader(&buffer); EXPECT_TRUE(olive::XMLReadNextStartElement(&reader)); EXPECT_TRUE(olive::XMLReadNextStartElement(&reader)); EXPECT_EQ(reader.name().toString(), QStringLiteral("unknown")); reader.skipCurrentElement(); EXPECT_TRUE(olive::XMLReadNextStartElement(&reader)); EXPECT_EQ(reader.name().toString(), QStringLiteral("known")); }