stanzacmp: Fix for {scansion:any} in top-level attributes being ignored

Thu, 13 Sep 2018 16:05:24 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Thu, 13 Sep 2018 16:05:24 +0100
changeset 151
8191f165b9dd
parent 150
cf2b2fcd0bc1
child 152
ba8219ac7484

stanzacmp: Fix for {scansion:any} in top-level attributes being ignored

scansion/stanzacmp.lua file | annotate | diff | comparison | revisions
spec/stanzacmp_spec.lua file | annotate | diff | comparison | revisions
--- a/scansion/stanzacmp.lua	Wed Sep 12 11:37:55 2018 +0100
+++ b/scansion/stanzacmp.lua	Thu Sep 13 16:05:24 2018 +0100
@@ -77,7 +77,7 @@
 	end
 	
 	for k, v in pairs(stanza1.attr) do
-		if not k:match("^scansion:") and stanza2.attr[k] ~= v then
+		if not k:match("^scansion:") and v ~= "{scansion:any}" and stanza2.attr[k] ~= v then
 			return false;
 		end
 	end
--- a/spec/stanzacmp_spec.lua	Wed Sep 12 11:37:55 2018 +0100
+++ b/spec/stanzacmp_spec.lua	Thu Sep 13 16:05:24 2018 +0100
@@ -139,4 +139,16 @@
 			</x>
 		</s>]]);
 	end);
+	it("should match", function ()
+		yes([[<iq type='set' id='{scansion:any}'>
+			<query ver='{scansion:any}' xmlns='jabber:iq:roster'>
+				<item xmlns='jabber:iq:roster' jid='nurse@localhost' subscription='none'/>
+			</query>
+		</iq>]],
+		[[<iq type='set' id='ncvDjS1d'>
+			<query ver='1' xmlns='jabber:iq:roster'>
+				<item xmlns='jabber:iq:roster' jid='nurse@localhost' subscription='none'/>
+			</query>
+		</iq>]]);
+	end);
 end);

mercurial