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") } }