testcmp.lua

changeset 9
15e9d47941bd
--- /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);

mercurial