Software /
code /
prosody
Diff
spec/util_stanza_spec.lua @ 12139:7d6497294d92
util.stanza: Increase test coverage to cover validation errors
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 31 Dec 2021 14:00:28 +0100 |
parent | 11786:39164ea2ab9e |
child | 12141:3ac801630b4b |
line wrap: on
line diff
--- a/spec/util_stanza_spec.lua Fri Dec 31 13:52:11 2021 +0100 +++ b/spec/util_stanza_spec.lua Fri Dec 31 14:00:28 2021 +0100 @@ -85,6 +85,31 @@ assert.same(st.stanza("foo"):text(nil), s_control); assert.same(st.stanza("foo"):text(""), s_control); end); + it("validates names", function () + assert.has_error_match(function () + st.stanza("invalid\0name"); + end, "invalid tag name:") + assert.has_error_match(function () + st.stanza("name", { ["foo\1\2\3bar"] = "baz" }); + end, "invalid attribute name: contains control characters") + assert.has_error_match(function () + st.stanza("name", { ["foo"] = "baz\1\2\3\255moo" }); + end, "invalid attribute value: contains control characters") + end) + it("validates types", function () + assert.has_error_match(function () + st.stanza(1); + end, "invalid tag name: expected string, got number") + assert.has_error_match(function () + st.stanza("name", "string"); + end, "invalid attributes: expected table, got string") + assert.has_error_match(function () + st.stanza("name",{1}); + end, "invalid attribute name: expected string, got number") + assert.has_error_match(function () + st.stanza("name",{foo=1}); + end, "invalid attribute value: expected string, got number") + end) end); describe("#message()", function()