Files
oak-editor/tests/gtest/render_audioparams_test.cpp
T
2026-01-05 03:11:34 +08:00

39 lines
1.1 KiB
C++

#include <gtest/gtest.h>
#include <QBuffer>
#include <QXmlStreamReader>
#include <QXmlStreamWriter>
#include "node/project/serializer/typeserializer.h"
#include "olive/core/render/audioparams.h"
TEST(RenderAudioParams, SaveLoadRoundTrip)
{
olive::AudioParams params;
params.set_sample_rate(48000);
params.set_enabled(true);
params.set_time_base(olive::core::rational(1, 48000));
QByteArray xml;
QBuffer buffer(&xml);
buffer.open(QIODevice::WriteOnly);
QXmlStreamWriter writer(&buffer);
writer.writeStartDocument();
writer.writeStartElement(QStringLiteral("audioparams"));
olive::TypeSerializer::SaveAudioParams(&writer, params);
writer.writeEndElement();
writer.writeEndDocument();
buffer.close();
QBuffer read_buffer(&xml);
read_buffer.open(QIODevice::ReadOnly);
QXmlStreamReader reader(&read_buffer);
EXPECT_TRUE(reader.readNextStartElement());
EXPECT_EQ(reader.name().toString(), QStringLiteral("audioparams"));
olive::AudioParams loaded = olive::TypeSerializer::LoadAudioParams(&reader);
EXPECT_EQ(loaded.sample_rate(), 48000);
EXPECT_TRUE(loaded.enabled());
EXPECT_EQ(loaded.time_base(), olive::core::rational(1, 48000));
}