From eba0bacfdaeaddd47c323f6681c79d57228d93a5 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Sun, 12 Sep 2021 10:31:02 +0100 Subject: util.stanza: Add :get_child_with_attr() + tests --- spec/util_stanza_spec.lua | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'spec/util_stanza_spec.lua') diff --git a/spec/util_stanza_spec.lua b/spec/util_stanza_spec.lua index b9ab1e31..5306c05b 100644 --- a/spec/util_stanza_spec.lua +++ b/spec/util_stanza_spec.lua @@ -455,6 +455,26 @@ describe("util.stanza", function() end); end); + describe("get_child_with_attr", function () + local s = st.message({ type = "chat" }) + :text_tag("body", "Hello world", { ["xml:lang"] = "en" }) + :text_tag("body", "Bonjour le monde", { ["xml:lang"] = "fr" }) + :text_tag("body", "Hallo Welt", { ["xml:lang"] = "de" }) + + it("works", function () + assert.equal(s:get_child_with_attr("body", nil, "xml:lang", "en"):get_text(), "Hello world"); + assert.equal(s:get_child_with_attr("body", nil, "xml:lang", "de"):get_text(), "Hallo Welt"); + assert.equal(s:get_child_with_attr("body", nil, "xml:lang", "fr"):get_text(), "Bonjour le monde"); + assert.is_nil(s:get_child_with_attr("body", nil, "xml:lang", "FR")); + assert.is_nil(s:get_child_with_attr("body", nil, "xml:lang", "es")); + end); + + it("supports normalization", function () + assert.equal(s:get_child_with_attr("body", nil, "xml:lang", "EN", string.upper):get_text(), "Hello world"); + assert.is_nil(s:get_child_with_attr("body", nil, "xml:lang", "ES", string.upper)); + end); + end); + describe("#clone", function () it("works", function () local s = st.message({type="chat"}, "Hello"):reset(); -- cgit v1.2.3