Add and extend unit tests for: - Task manager (failed tasks, progress signals, multiple tasks) - Undo stack (multiple undo/redo, push-after-undo, clear, multi-command) - Config defaults and graphics backend string conversion - Node keyframe serialization and default state - Node value string round-trips and table operations - Node globals and project settings/serialization - Timeline coordinate, workarea, and marker commands - Color LUT processor and OCIO transform handling - Common utilities (range, file functions, Qt helpers, XML utils) - Render enums (loop mode, alpha association) - Shader resource availability - Module smoke tests for Tool and HumanStrings All tests pass including RenderWorkerFootage GPU worker tests after rebuilding the stale olive-render-worker binary.
61 lines
1.9 KiB
C++
61 lines
1.9 KiB
C++
#include <gtest/gtest.h>
|
|
|
|
#include <QBuffer>
|
|
#include <QXmlStreamReader>
|
|
#include <QXmlStreamWriter>
|
|
|
|
#include "common/xmlutils.h"
|
|
|
|
TEST(CommonXmlUtils, ReadNextStartElement)
|
|
{
|
|
QByteArray xml = "<root><child>value</child></root>";
|
|
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<root>\n\n<child/>\n</root>";
|
|
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 = "<root/>";
|
|
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 = "<root><unknown/><known/></root>";
|
|
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"));
|
|
}
|