spec/stanzacmp_spec.lua

changeset 93
3f9bda0887d5
child 95
a1e7ad9336db
equal deleted inserted replaced
92:9a58c8ee0757 93:3f9bda0887d5
1 local stanzacmp = require "scansion.stanzacmp";
2 local verse = require "verse";
3 local st = require "util.stanza";
4
5 local function yes(s1, s2)
6 if not stanzacmp.stanzas_match(s1, s2) then
7 print("s1", s1)
8 print("s2", s2)
9 print("literal", tostring(s1) == tostring(s2));
10 assert(false, "No match, but they should.");
11 end
12 end
13
14 local function no(s1, s2)
15 if stanzacmp.stanzas_match(s1, s2) then
16 print("s1", s1)
17 print("s2", s2)
18 assert(false, "Match, but they should not.");
19 end
20 end
21
22 describe("stanzacmp", function ()
23 it("should work", function ()
24 local s1 = st.message({ to = "foo", from = "bar"});
25 local s2 = st.message({ to = "foo", from = "bar"});
26
27 yes(s1, s2);
28 yes(s2, s1);
29
30 s1.attr.to = nil;
31
32 yes(s1, s2);
33 no(s2, s1);
34
35 s1.attr.to = "foo";
36 yes(s1, s2);
37
38 s2:tag("blah", { xmlns = "foobar" });
39
40 yes(s1, s2);
41 no(s2, s1);
42
43 s1:tag("blah", { xmlns = "foobar" });
44 yes(s1, s2);
45 yes(s2, s1);
46
47 s1:tag("a");
48 no(s1, s2);
49 s2:tag("a");
50 yes(s1, s2);
51 s2:up():up();
52 s2:tag("extension", { xmlns = "blah" });
53 yes(s1, s2);
54 s2:tag("b");
55 yes(s1, s2);
56 s1:up():up();
57 s1:tag("extension", { xmlns = "blah" });
58 no(s1, s2);
59 s1:tag("b");
60 yes(s1, s2);
61 s1:tag("c", { n = "1" });
62 no(s1, s2);
63 end);
64 end);

mercurial