Software /
code /
prosody
File
spec/util_xml_spec.lua @ 13426:581899aef96f
util.rfc6724: Remove, unused since introduction of Happy Eyeballs
It was mainly used to determine whether to try IPv6 or IPv4 first,
following the rules for this in the RFC.
Now we always try IPv6 and IPv4 at roughly the same time, thus there no
need to carry these rules.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 22 Feb 2024 19:46:52 +0100 (14 months ago) |
parent | 12270:c78639ee6ccb |
line wrap: on
line source
local xml = require "util.xml"; describe("util.xml", function() describe("#parse()", function() it("should work", function() local x = [[<x xmlns:a="b"> <y xmlns:a="c"> <!-- this overwrites 'a' --> <a:z/> </y> <a:z/> <!-- prefix 'a' is nil here, but should be 'b' --> </x> ]] local stanza = xml.parse(x, {allow_comments = true}); assert.are.equal(stanza.tags[2].attr.xmlns, "b"); assert.are.equal(stanza.tags[2].namespaces["a"], "b"); end); it("should reject doctypes", function() local x = "<!DOCTYPE foo []><foo/>"; local ok = xml.parse(x); assert.falsy(ok); end); it("should reject comments by default", function() local x = "<foo><!-- foo --></foo>"; local ok = xml.parse(x); assert.falsy(ok); end); it("should allow comments if asked nicely", function() local x = "<foo><!-- foo --></foo>"; local stanza = xml.parse(x, {allow_comments = true}); assert.are.equal(stanza.name, "foo"); assert.are.equal(#stanza, 0); end); it("should reject processing instructions", function() local x = "<foo><?php die(); ?></foo>"; local ok = xml.parse(x); assert.falsy(ok); end); it("should allow processing instructions if asked nicely", function() local x = "<?xml-stylesheet href='make-fancy.xsl'?><foo/>"; local stanza = xml.parse(x, {allow_processing_instructions = true}); assert.truthy(stanza); assert.are.equal(stanza.name, "foo"); end); it("should allow an xml declaration", function() local x = "<?xml version='1.0'?><foo/>"; local stanza = xml.parse(x); assert.truthy(stanza); assert.are.equal(stanza.name, "foo"); end); end); end);