# HG changeset patch # User Matthew Wild # Date 1441492076 -3600 # Node ID 15e9d47941bd1f2d23da9ba3d143dd9a7d9b6f81 # Parent 42b4e73c0d304d6dde0bdab805cda11ec3fcfbfb testcmp: Small script to test stanzacmp works as expected diff -r 42b4e73c0d30 -r 15e9d47941bd testcmp.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testcmp.lua Sat Sep 05 23:27:56 2015 +0100 @@ -0,0 +1,60 @@ +local stanzacmp = require "scansion.stanzacmp"; +local verse = require "verse"; +local st = require "util.stanza"; + +local function yes(s1, s2) + if not stanzacmp.stanzas_match(s1, s2) then + print("s1", s1) + print("s2", s2) + print("literal", tostring(s1) == tostring(s2)); + assert(false, "No match, but they should."); + end +end + +local function no(s1, s2) + if stanzacmp.stanzas_match(s1, s2) then + print("s1", s1) + print("s2", s2) + assert(false, "Match, but they should not."); + end +end + +local s1 = st.message({ to = "foo", from = "bar"}); +local s2 = st.message({ to = "foo", from = "bar"}); + +yes(s1, s2); +yes(s2, s1); + +s1.attr.to = nil; + +yes(s1, s2); +no(s2, s1); + +s1.attr.to = "foo"; +yes(s1, s2); + +s2:tag("blah", { xmlns = "foobar" }); + +yes(s1, s2); +no(s2, s1); + +s1:tag("blah", { xmlns = "foobar" }); +yes(s1, s2); +yes(s2, s1); + +s1:tag("a"); +no(s1, s2); +s2:tag("a"); +yes(s1, s2); +s2:up():up(); +s2:tag("extension", { xmlns = "blah" }); +yes(s1, s2); +s2:tag("b"); +yes(s1, s2); +s1:up():up(); +s1:tag("extension", { xmlns = "blah" }); +no(s1, s2); +s1:tag("b"); +yes(s1, s2); +s1:tag("c", { n = "1" }); +no(s1, s2);