import Testing
@testable import PureXML
@Suite("Save options")
struct SaveOptionsTests {
@Test("The serializer emits the XML declaration when requested")
func test_declaration() {
let options = PureXML.Emitting.Options(prettyPrint: false, includeXMLDeclaration: true)
let xml = PureXML.serialize(.element(.init("r")), options: options)
#expect(xml == "\n")
}
@Test("No declaration is emitted by default")
func test_noDeclarationByDefault() {
#expect(PureXML.serialize(.element(.init("r")), options: .compact) == "")
}
@Test("Standalone and an omitted encoding are honored")
func test_declarationVariants() {
let options = PureXML.Emitting.Options(
prettyPrint: false,
includeXMLDeclaration: true,
encodingName: nil,
standalone: true,
)
let xml = PureXML.serialize(.element(.init("r")), options: options)
#expect(xml == "\n")
}
@Test("The writer emits the declaration via writeStartDocument")
func test_writerDeclaration() {
var writer = PureXML.Emitting.Writer(options: .init(prettyPrint: false, includeXMLDeclaration: true))
writer.writeStartDocument()
writer.writeStartElement("r")
writer.writeEndElement()
#expect(writer.output == "\n")
}
}