Software /
code /
prosody
Comparison
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 |
comparison
equal
deleted
inserted
replaced
12138:644ca3583837 | 12139:7d6497294d92 |
---|---|
83 local s_control = st.stanza("foo"); | 83 local s_control = st.stanza("foo"); |
84 assert.same(st.stanza("foo"):text(), s_control); | 84 assert.same(st.stanza("foo"):text(), s_control); |
85 assert.same(st.stanza("foo"):text(nil), s_control); | 85 assert.same(st.stanza("foo"):text(nil), s_control); |
86 assert.same(st.stanza("foo"):text(""), s_control); | 86 assert.same(st.stanza("foo"):text(""), s_control); |
87 end); | 87 end); |
88 it("validates names", function () | |
89 assert.has_error_match(function () | |
90 st.stanza("invalid\0name"); | |
91 end, "invalid tag name:") | |
92 assert.has_error_match(function () | |
93 st.stanza("name", { ["foo\1\2\3bar"] = "baz" }); | |
94 end, "invalid attribute name: contains control characters") | |
95 assert.has_error_match(function () | |
96 st.stanza("name", { ["foo"] = "baz\1\2\3\255moo" }); | |
97 end, "invalid attribute value: contains control characters") | |
98 end) | |
99 it("validates types", function () | |
100 assert.has_error_match(function () | |
101 st.stanza(1); | |
102 end, "invalid tag name: expected string, got number") | |
103 assert.has_error_match(function () | |
104 st.stanza("name", "string"); | |
105 end, "invalid attributes: expected table, got string") | |
106 assert.has_error_match(function () | |
107 st.stanza("name",{1}); | |
108 end, "invalid attribute name: expected string, got number") | |
109 assert.has_error_match(function () | |
110 st.stanza("name",{foo=1}); | |
111 end, "invalid attribute value: expected string, got number") | |
112 end) | |
88 end); | 113 end); |
89 | 114 |
90 describe("#message()", function() | 115 describe("#message()", function() |
91 it("should work", function() | 116 it("should work", function() |
92 local m = st.message(); | 117 local m = st.message(); |