summaryrefslogtreecommitdiff
path: root/tests/caps-hash.el
diff options
context:
space:
mode:
Diffstat (limited to 'tests/caps-hash.el')
-rw-r--r--tests/caps-hash.el51
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/caps-hash.el b/tests/caps-hash.el
new file mode 100644
index 0000000..55d18b9
--- /dev/null
+++ b/tests/caps-hash.el
@@ -0,0 +1,51 @@
+;; Test disco hash against examples in XEP-0115
+
+(message "Let's go")
+(condition-case e
+ (require 'jabber-disco)
+ (error
+ (message "disco bad! %S" e)))
+(message "more")
+(condition-case e
+ (require 'jabber-widget)
+ (error
+ (message "bad! %S" e)))
+(message "done!")
+
+(let ((query
+ (with-temp-buffer
+ (insert "<query xmlns='http://jabber.org/protocol/disco#info'
+ node='http://psi-im.org#q07IKJEyjvHSyhy//CH0CxmKi8w='>
+ <identity xml:lang='en' category='client' name='Psi 0.11' type='pc'/>
+ <identity xml:lang='el' category='client' name='Ψ 0.11' type='pc'/>
+ <feature var='http://jabber.org/protocol/caps'/>
+ <feature var='http://jabber.org/protocol/disco#info'/>
+ <feature var='http://jabber.org/protocol/disco#items'/>
+ <feature var='http://jabber.org/protocol/muc'/>
+ <x xmlns='jabber:x:data' type='result'>
+ <field var='FORM_TYPE' type='hidden'>
+ <value>urn:xmpp:dataforms:softwareinfo</value>
+ </field>
+ <field var='ip_version'>
+ <value>ipv4</value>
+ <value>ipv6</value>
+ </field>
+ <field var='os'>
+ <value>Mac</value>
+ </field>
+ <field var='os_version'>
+ <value>10.5.1</value>
+ </field>
+ <field var='software'>
+ <value>Psi</value>
+ </field>
+ <field var='software_version'>
+ <value>0.11</value>
+ </field>
+ </x>
+ </query>")
+ (car (xml-parse-region (point-min) (point-max))))))
+ (message "parsed xml")
+ (unless (equal "q07IKJEyjvHSyhy//CH0CxmKi8w="
+ (jabber-caps-ver-string query "sha-1"))
+ (error "Incorrect caps hash")))