453 s:maptags(function () end); |
453 s:maptags(function () end); |
454 end, "Invalid stanza"); |
454 end, "Invalid stanza"); |
455 end); |
455 end); |
456 end); |
456 end); |
457 |
457 |
|
458 describe("get_child_with_attr", function () |
|
459 local s = st.message({ type = "chat" }) |
|
460 :text_tag("body", "Hello world", { ["xml:lang"] = "en" }) |
|
461 :text_tag("body", "Bonjour le monde", { ["xml:lang"] = "fr" }) |
|
462 :text_tag("body", "Hallo Welt", { ["xml:lang"] = "de" }) |
|
463 |
|
464 it("works", function () |
|
465 assert.equal(s:get_child_with_attr("body", nil, "xml:lang", "en"):get_text(), "Hello world"); |
|
466 assert.equal(s:get_child_with_attr("body", nil, "xml:lang", "de"):get_text(), "Hallo Welt"); |
|
467 assert.equal(s:get_child_with_attr("body", nil, "xml:lang", "fr"):get_text(), "Bonjour le monde"); |
|
468 assert.is_nil(s:get_child_with_attr("body", nil, "xml:lang", "FR")); |
|
469 assert.is_nil(s:get_child_with_attr("body", nil, "xml:lang", "es")); |
|
470 end); |
|
471 |
|
472 it("supports normalization", function () |
|
473 assert.equal(s:get_child_with_attr("body", nil, "xml:lang", "EN", string.upper):get_text(), "Hello world"); |
|
474 assert.is_nil(s:get_child_with_attr("body", nil, "xml:lang", "ES", string.upper)); |
|
475 end); |
|
476 end); |
|
477 |
458 describe("#clone", function () |
478 describe("#clone", function () |
459 it("works", function () |
479 it("works", function () |
460 local s = st.message({type="chat"}, "Hello"):reset(); |
480 local s = st.message({type="chat"}, "Hello"):reset(); |
461 local c = st.clone(s); |
481 local c = st.clone(s); |
462 assert.same(s, c); |
482 assert.same(s, c); |